Page MenuHomeFreeBSD

No OneTemporary

This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/contrib/ntp/ChangeLog b/contrib/ntp/ChangeLog
index 8e34d2a96696..93cdab8b94eb 100644
--- a/contrib/ntp/ChangeLog
+++ b/contrib/ntp/ChangeLog
@@ -1,5053 +1,5067 @@
+---
+(4.2.8p17) 2023/06/06 Released by Harlan Stenn <stenn@ntp.org>
+
+* [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at
+ event_sync. Reported by Edward McGuire. <hart@ntp.org>
+* [Bug 3822] ntpd significantly delays first poll of servers specified by name.
+ <hart@ntp.org> Miroslav Lichvar identified regression in 4.2.8p16.
+* [Bug 3821] 4.2.8p16 misreads hex authentication keys, won't interop with
+ 4.2.8p15 or earlier. Reported by Matt Nordhoff, thanks to
+ Miroslav Lichvar and Matt for rapid testing and identifying the
+ problem. <hart@ntp.org>
+* Add tests/libntp/digests.c to catch regressions reading keys file or with
+ symmetric authentication digest output.
+
---
(4.2.8p16) 2023/05/31 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3808] Assertion failure in ntpq on malformed RT-11 date <perlinger@ntp.org>
* [Sec 3807] praecis_parse() in the Palisade refclock driver has a
hypothetical input buffer overflow. Reported by ... stenn@
* [Sec 3806] libntp/mstolfp.c needs bounds checking <perlinger@ntp.org>
- solved numerically instead of using string manipulation
* [Sec 3767] An OOB KoD RATE value triggers an assertion when debug is enabled.
<stenn@ntp.org>
* [Bug 3819] Updated libopts/Makefile.am was missing NTP_HARD_* values. <stenn@>
* [Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
* [Bug 3814] First poll delay of new or cleared associations miscalculated.
<hart@ntp.org>
* [Bug 3802] ntp-keygen -I default identity modulus bits too small for
OpenSSL 3. Reported by rmsh1216@163.com <hart@ntp.org>
* [Bug 3801] gpsdjson refclock gps_open() device name mishandled. <hart@ntp.org>
* [Bug 3800] libopts-42.1.17 does not compile with Microsoft C. <hart@ntp.org>
* [Bug 3799] Enable libopts noreturn compiler advice for MSC. <hart@ntp.org>
* [Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when
disconnected, breaking ntpq and ntpdc. <hart@ntp.org>
* [Bug 3795] pollskewlist documentation uses | when it shouldn't.
- ntp.conf manual page and miscopt.html corrections. <hart@ntp.org>
* [Bug 3793] Wrong variable type passed to record_raw_stats(). <hart@ntp.org>
- Report and patch by Yuezhen LUAN <wei6410@sina.com>.
* [Bug 3786] Timer starvation on high-load Windows ntpd. <hart@ntp.org>
* [Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded.
<hart@ntp.org>
* [Bug 3781] log "Unable to listen for broadcasts" for IPv4 <hart@ntp.org>
* [Bug 3774] mode 6 packets corrupted in rawstats file <hart@ntp.org>
- Reported by Edward McGuire, fix identified by <wei6410@sina.com>.
* [Bug 3758] Provide a 'device' config statement for refclocks <perlinger@ntp.org>
* [Bug 3757] Improve handling of Linux-PPS in NTPD <perlinger@ntp.org>
* [Bug 3741] 4.2.8p15 can't build with glibc 2.34 <perlinger@ntp.org>
* [Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
Philippe De Muyter <phdm@macqel.be>
* [Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows <perlinger@ntp.org>
- openssl applink needed again for openSSL-1.1.1
* [Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
Reported by Brian Utterback, broken in 2010 by <hart@ntp.org>
* [Bug 3699] Problems handling drift file and restoring previous drifts <perlinger@ntp.org>
- command line options override config statements where applicable
- make initial frequency settings idempotent and reversible
- make sure kernel PLL gets a recovered drift componsation
* [Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
* [Bug 3694] NMEA refclock seems to unnecessarily require location in messages
- misleading title; essentially a request to ignore the receiver status.
Added a mode bit for this. <perlinger@ntp.org>
* [Bug 3693] Improvement of error handling key lengths <perlinger@ntp.org>
- original patch by Richard Schmidt, with mods & unit test fixes
* [Bug 3692] /dev/gpsN requirement prevents KPPS <perlinger@ntp.org>
- implement/wrap 'realpath()' to resolve symlinks in device names
* [Bug 3691] Buffer Overflow reading GPSD output
- original patch by matt<ntpbr@mattcorallo.com>
- increased max PDU size to 4k to avoid truncation
* [Bug 3690] newline in ntp clock variable (parse) <perlinger@ntp.org>
- patch by Frank Kardel
* [Bug 3689] Extension for MD5, SHA-1 and other keys <perlinger@ntp.org>
- ntp{q,dc} now use the same password processing as ntpd does in the key
file, so having a binary secret >= 11 bytes is possible for all keys.
(This is a different approach to the problem than suggested)
* [Bug 3688] GCC 10 build errors in testsuite <perlinger@ntp.org>
* [Bug 3687] ntp_crypto_rand RNG status not known <perlinger@ntp.org>
- patch by Gerry Garvey
* [Bug 3682] Fixes for warnings when compiled without OpenSSL <perlinger@ntp.org>
- original patch by Gerry Garvey
* [Bug 3677] additional peer events not decoded in associations listing <perlinger@ntp.org>
- original patch by Gerry Garvey
* [Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
- applied patches by Gerry Garvey
* [Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
* [Bug 3674] ntpq command 'execute only' using '~' prefix <perlinger@ntp.org>
- idea+patch by Gerry Garvey
* [Bug 3672] fix biased selection in median cut <perlinger@ntp.org>
* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
- follow-up: fix inverted sense in check, reset shortfall counter
* [Bug 3660] Revert 4.2.8p15 change to manycast. <hart@ntp.org>
* [Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
- fixed bug identified by Edward McGuire <perlinger@ntp.org>
* [Bug 3626] (SNTP) UTC offset calculation needs dst flag <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
Reported by Israel G. Lugo. <hart@ntp.org>
* [Bug 3103] libopts zsave_warn format string too few arguments <bkorb@gnu.org>
* [Bug 2990] multicastclient incorrectly causes bind to broadcast address.
Integrated patch from Brian Utterback. <hart@ntp.org>
* [Bug 2525] Turn on automake subdir-objects across the project. <hart@ntp.org>
* [Bug 2410] syslog an error message on panic exceeded. <brian.utterback@oracle.com>
* Use correct rounding in mstolfp(). perlinger/hart
* M_ADDF should use u_int32. <hart@ntp.org>
* Only define tv_fmt_libbuf() if we will use it. <stenn@ntp.org>
* Use recv_buffer instead of the longer recv_space.X_recv_buffer. hart/stenn
* Make sure the value returned by refid_str() prints cleanly. <stenn@ntp.org>
* If DEBUG is enabled, the startup banner now says that debug assertions
are in force and that ntpd will abort if any are violated. <stenn@ntp.org>
* syslog valid incoming KoDs. <stenn@ntp.org>
* Rename a poorly-named variable. <stenn@ntp.org>
* Disable "embedded NUL in string" messages in libopts, when we can. <stenn@>
* Use https in the AC_INIT URLs in configure.ac. <stenn@ntp.org>
* Implement NTP_FUNC_REALPATH. <stenn@ntp.org>
* Lose a gmake construct in ntpd/Makefile.am. <stenn@ntp.org>
* upgrade to: autogen-5.18.16
* upgrade to: libopts-42.1.17
* upgrade to: autoconf-2.71
* upgrade to: automake-1.16.15
* Upgrade to libevent-2.1.12-stable <stenn@ntp.org>
* Support OpenSSL-3.0
---
(4.2.8p15) 2020/06/23 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
* [Bug 3670] Regression from bad merge of 3592 and 3596 <perlinger@ntp.org>
- fixed a bad merge that happened before 4.2.8-p14. Thanks to
Sylar Tao for noticing this!
* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
- rewrite 'decodenetnum()' in terms of inet_pton
* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
- limit number of receive buffers, with an iron reserve for refclocks
* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
- integrated patch from Charles Claggett
* [Bug 3659] Move definition of psl[] from ntp_config.h to ntp_config.c <perlinger@ntp.org>
* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
- fix by Gerry garvey
* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
- thanks to Gerry Garvey
* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
- patch by Gerry Garvey
* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
- applied patch by Takao Abe
* [Bug 3432] refclocks that 'write()' should check the result <perlinger@ntp.org>
- plus some more work on warnings for unchecked results
---
(4.2.8p14) 2020/03/03 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3610] process_control() should bail earlier on short packets. stenn@
- Reported by Philippe Antoine
* [Sec 3596] Highly predictable timestamp attack. <stenn@ntp.org>
- Reported by Miroslav Lichvar
* [Sec 3592] DoS attack on client ntpd <perlinger@ntp.org>
- Reported by Miroslav Lichvar
* [Bug 3637] Emit the version of ntpd in saveconfig. stenn@
* [Bug 3636] NMEA: combine time/date from multiple sentences <perlinger@ntp.org>
* [Bug 3635] Make leapsecond file hash check optional <perlinger@ntp.org>
* [Bug 3634] Typo in discipline.html, reported by Jason Harrison. stenn@
* [Bug 3628] raw DCF decoding - improve robustness with Zeller's congruence
- implement Zeller's congruence in libparse and libntp <perlinger@ntp.org>
* [Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap <perlinger@ntp.org>
- integrated patch by Cy Schubert
* [Bug 3620] memory leak in ntpq sysinfo <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3619] Honour drefid setting in cooked mode and sysinfo <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3617] Add support for ACE III and Copernicus II receivers <perlinger@ntp.org>
- integrated patch by Richard Steedman
* [Bug 3615] accelerate refclock startup <perlinger@ntp.org>
* [Bug 3613] Propagate noselect to mobilized pool servers <stenn@ntp.org>
- Reported by Martin Burnicki
* [Bug 3612] Use-of-uninitialized-value in receive function <perlinger@ntp.org>
- Reported by Philippe Antoine
* [Bug 3611] NMEA time interpreted incorrectly <perlinger@ntp.org>
- officially document new "trust date" mode bit for NMEA driver
- restore the (previously undocumented) "trust date" feature lost with [bug 3577]
* [Bug 3609] Fixing wrong falseticker in case of non-statistic jitter <perlinger@ntp.org>
- mostly based on a patch by Michael Haardt, implementing 'fudge minjitter'
* [Bug 3608] libparse fails to compile on S11.4SRU13 and later <perlinger@ntp.org>
- removed ffs() and fls() prototypes as per Brian Utterback
* [Bug 3604] Wrong param byte order passing into record_raw_stats() in
ntp_io.c <perlinger@ntp.org>
- fixed byte and paramter order as suggested by wei6410@sina.com
* [Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no <perlinger@ntp.org>
* [Bug 3599] Build fails on linux-m68k due to alignment issues <perlinger@ntp.org>
- added padding as suggested by John Paul Adrian Glaubitz
* [Bug 3594] ntpd discards messages coming through nmead <perlinger@ntp.org>
* [Bug 3593] ntpd discards silently nmea messages after the 5th string <perlinger@ntp.org>
* [Bug 3590] Update refclock_oncore.c to the new GPS date API <perlinger@ntp.org>
* [Bug 3585] Unity tests mix buffered and unbuffered output <perlinger@ntp.org>
- stdout+stderr are set to line buffered during test setup now
* [Bug 3583] synchronization error <perlinger@ntp.org>
- set clock to base date if system time is before that limit
* [Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled <perlinger@ntp.org>
* [Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc) <perlinger@ntp.org>
- Reported by Paulo Neves
* [Bug 3577] Update refclock_zyfer.c to the new GPS date API <perlinger@ntp.org>
- also updates for refclock_nmea.c and refclock_jupiter.c
* [Bug 3576] New GPS date function API <perlinger@ntp.org>
* [Bug 3573] nptdate: missleading error message <perlinger@ntp.org>
* [Bug 3570] NMEA driver docs: talker ID not mentioned, typo <perlinger@ntp.org>
* [Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()' <perlinger@ntp.org>
- sidekick: service port resolution in 'ntpdate'
* [Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH <perlinger@ntp.org>
- applied patch by Douglas Royds
* [Bug 3542] ntpdc monlist parameters cannot be set <perlinger@ntp.org>
* [Bug 3533] ntpdc peer_info ipv6 issues <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3531] make check: test-decodenetnum fails <perlinger@ntp.org>
- try to harden 'decodenetnum()' against 'getaddrinfo()' errors
- fix wrong cond-compile tests in unit tests
* [Bug 3517] Reducing build noise <perlinger@ntp.org>
* [Bug 3516] Require tooling from this decade <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3515] Refactor ntpdmain() dispatcher loop and group common code <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3511] Get rid of AC_LANG_SOURCE() warnings <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3510] Flatten out the #ifdef nesting in ntpdmain() <perlinger@ntp.org>
- partial application of patch by Philipp Prindeville
* [Bug 3491] Signed values of LFP datatypes should always display a sign
- applied patch by Gerry Garvey & fixed unit tests <perlinger@ntp.org>
* [Bug 3490] Patch to support Trimble Resolution Receivers <perlinger@ntp.org>
- applied (modified) patch by Richard Steedman
* [Bug 3473] RefID of refclocks should always be text format <perlinger@ntp.org>
- applied patch by Gerry Garvey (with minor formatting changes)
* [Bug 3132] Building 4.2.8p8 with disabled local libopts fails <perlinger@ntp.org>
- applied patch by Miroslav Lichvar
* [Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
<perlinger@ntp.org>
* [Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user
is specified with -u <perlinger@ntp.org>
- monitor daemon child startup & propagate exit codes
* [Bug 1433] runtime check whether the kernel really supports capabilities
- (modified) patch by Kurt Roeckx <perlinger@ntp.org>
* Clean up sntp/networking.c:sendpkt() error message. <stenn@ntp.org>
* Provide more detail on unrecognized config file parser tokens. <stenn@ntp.org>
* Startup log improvements. <stenn@ntp.org>
* Update the copyright year.
* html/confopt.html: cleanup. <stenn@ntp.org>
---
(4.2.8p13) 2019/03/07 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3565] Crafted null dereference attack in authenticated
mode 6 packet <perlinger@ntp.org>
- reported by Magnus Stubman
* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
- applied patch by Ian Lepore
* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
- isolate and fix linux/windows specific code issue
* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
- provide better function for incremental string formatting
* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
- original finding by Gerry Garvey, additional cleanup needed
* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
- patch by Christous Zoulas
* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
- finding by Chen Jiabin, plus another one by me
* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
- applied patch by Maciej Szmigiero
* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
- applied patch by Andre Charbonneau
* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
- applied patch by Baruch Siach
* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
- applied patch by Baruch Siach
* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
- refactored handling of GPS era based on 'tos basedate' for
parse (TSIP) and JUPITER clocks
* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
- patch by Daniel J. Luke; this does not fix a potential linker
regression issue on MacOS.
* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
anomaly <perlinger@ntp.org>, reported by GGarvey.
- --enable-bug3527-fix support by HStenn
* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3471] Check for openssl/[ch]mac.h. <perlinger@ntp.org>
- added missing check, reported by Reinhard Max <perlinger@ntp.org>
* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- this is a variant of [bug 3558] and should be fixed with it
* Implement --disable-signalled-io
---
(4.2.8p12) 2018/08/14 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3505] CVE-2018-12327 - Arbitrary Code Execution Vulnerability
- fixed stack buffer overflow in the openhost() command-line call
of NTPQ/NTPDC <perlinger@ntp.org>
* [Sec 3012] noepeer tweaks. <stenn@ntp.org>
* [Bug 3521] Fix a logic bug in the INVALIDNAK checks. <stenn@ntp.org>
* [Bug 3509] Add support for running as non-root on FreeBSD, Darwin,
other TrustedBSD platforms
- applied patch by Ian Lepore <perlinger@ntp.org>
* [Bug 3506] Service Control Manager interacts poorly with NTPD <perlinger@ntp.org>
- changed interaction with SCM to signal pending startup
* [Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags() <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3485] Undefined sockaddr used in error messages in ntp_config.c <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3484] ntpq response from ntpd is incorrect when REFID is null <perlinger@ntp.org>
- rework of ntpq 'nextvar()' key/value parsing
* [Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c) <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods)
* [Bug 3480] Refclock sample filter not cleared on clock STEP <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods)
* [Bug 3476]ctl_putstr() sends empty unquoted string [...] <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods); not sure if that's bug or feature, though
* [Bug 3475] modify prettydate() to suppress output of zero time <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3474] Missing pmode in mode7 peer info response <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3471] Check for openssl/[ch]mac.h. HStenn.
- add #define ENABLE_CMAC support in configure. HStenn.
* [Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL <perlinger@ntp.org>
* [Bug 3469] Incomplete string compare [...] in is_refclk_addr <perlinger@ntp.org>
- patch by Stephen Friedl
* [Bug 3467] Potential memory fault in ntpq [...] <perlinger@ntp.org>
- fixed IO redirection and CTRL-C handling in ntq and ntpdc
* [Bug 3465] Default TTL values cannot be used <perlinger@ntp.org>
* [Bug 3461] refclock_shm.c: clear error status on clock recovery <perlinger@ntp.org>
- initial patch by Hal Murray; also fixed refclock_report() trouble
* [Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph. <stenn@ntp.org>
* [Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
- According to Brooks Davis, there was only one location <perlinger@ntp.org>
* [Bug 3449] ntpq - display "loop" instead of refid [...] <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3445] Symmetric peer won't sync on startup <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3442] Fixes for ntpdate as suggested by Gerry Garvey,
with modifications
New macro REFID_ISTEXT() which is also used in ntpd/ntp_control.c.
* [Bug 3434] ntpd clears STA_UNSYNC on start <perlinger@ntp.org>
- applied patch by Miroslav Lichvar
* [Bug 3426] ntpdate.html -t default is 2 seconds. Leonid Evdokimov.
* [Bug 3121] Drop root privileges for the forked DNS worker <perlinger@ntp.org>
- integrated patch by Reinhard Max
* [Bug 2821] minor build issues <perlinger@ntp.org>
- applied patches by Christos Zoulas, including real bug fixes
* html/authopt.html: cleanup, from <stenn@ntp.org>
* ntpd/ntpd.c: DROPROOT cleanup. <stenn@ntp.org>
* Symmetric key range is 1-65535. Update docs. <stenn@ntp.org>
* html/authentic.html: cleanup, from <stenn@ntp.org>
---
(4.2.8p11) 2018/02/27 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3454] Unauthenticated packet can reset authenticated interleave
associations. HStenn.
* [Sec 3453] Interleaved symmetric mode cannot recover from bad state. HStenn.
* [Sec 3415] Permit blocking authenticated symmetric/passive associations.
Implement ippeerlimit. HStenn, JPerlinger.
* [Sec 3414] ntpq: decodearr() can write beyond its 'buf' limits
- initial patch by <stenn@ntp.org>, extended by <perlinger@ntp.org>
* [Sec 3412] ctl_getitem(): Don't compare names past NUL. <perlinger@ntp.org>
* [Sec 3012] Sybil vulnerability: noepeer support. HStenn, JPerlinger.
* [Bug 3457] OpenSSL FIPS mode regression <perlinger@ntp.org>
* [Bug 3455] ntpd doesn't use scope id when binding multicast <perlinger@ntp.org>
- applied patch by Sean Haugh
* [Bug 3452] PARSE driver prints uninitialized memory. <perlinger@ntp.org>
* [Bug 3450] Dubious error messages from plausibility checks in get_systime()
- removed error log caused by rounding/slew, ensured postcondition <perlinger@ntp.org>
* [Bug 3447] AES-128-CMAC (fixes) <perlinger@ntp.org>
- refactoring the MAC code, too
* [Bug 3441] Validate the assumption that AF_UNSPEC is 0. stenn@ntp.org
* [Bug 3439] When running multiple commands / hosts in ntpq... <perlinger@ntp.org>
- applied patch by ggarvey
* [Bug 3438] Negative values and values > 999 days in... <perlinger@ntp.org>
- applied patch by ggarvey (with minor mods)
* [Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
- applied patch (with mods) by Miroslav Lichvar <perlinger@ntp.org>
* [Bug 3435] anchor NTP era alignment <perlinger@ntp.org>
* [Bug 3433] sntp crashes when run with -a. <stenn@ntp.org>
* [Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- fixed several issues with hash algos in ntpd, sntp, ntpq,
ntpdc and the test suites <perlinger@ntp.org>
* [Bug 3424] Trimble Thunderbolt 1024 week millenium bug <perlinger@ntp.org>
- initial patch by Daniel Pouzzner
* [Bug 3423] QNX adjtime() implementation error checking is
wrong <perlinger@ntp.org>
* [Bug 3417] ntpq ifstats packet counters can be negative
made IFSTATS counter quantities unsigned <perlinger@ntp.org>
* [Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
- raised receive buffer size to 1200 <perlinger@ntp.org>
* [Bug 3408] refclock_jjy.c: Avoid a wrong report of the coverity static
analysis tool. <abe@ntp.org>
* [Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
* [Bug 3404] Fix openSSL DLL usage under Windows <perlinger@ntp.org>
- fix/drop assumptions on OpenSSL libs directory layout
* [Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
- initial patch by timeflies@mail2tor.com <perlinger@ntp.org>
* [Bug 3398] tests fail with core dump <perlinger@ntp.org>
- patch contributed by Alexander Bluhm
* [Bug 3397] ctl_putstr() asserts that data fits in its buffer
rework of formatting & data transfer stuff in 'ntp_control.c'
avoids unecessary buffers and size limitations. <perlinger@ntp.org>
* [Bug 3394] Leap second deletion does not work on ntpd clients
- fixed handling of dynamic deletion w/o leap file <perlinger@ntp.org>
* [Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
- increased mimimum stack size to 32kB <perlinger@ntp.org>
* [Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8 <perlinger@ntp.org>
- reverted handling of PPS kernel consumer to 4.2.6 behavior
* [Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
* [Bug 3358] Spurious KoD log messages in .INIT. phase. HStenn.
* [Bug 3016] wrong error position reported for bad ":config pool"
- fixed location counter & ntpq output <perlinger@ntp.org>
* [Bug 2900] libntp build order problem. HStenn.
* [Bug 2878] Tests are cluttering up syslog <perlinger@ntp.org>
* [Bug 2737] Wrong phone number listed for USNO. ntp-bugs@bodosom.net,
perlinger@ntp.org
* [Bug 2557] Fix Thunderbolt init. ntp-bugs@bodosom.net, perlinger@ntp.
* [Bug 948] Trustedkey config directive leaks memory. <perlinger@ntp.org>
* Use strlcpy() to copy strings, not memcpy(). HStenn.
* Typos. HStenn.
* test_ntp_scanner_LDADD needs ntpd/ntp_io.o. HStenn.
* refclock_jjy.c: Add missing "%s" to an msyslog() call. HStenn.
* Build ntpq and libntpq.a with NTP_HARD_*FLAGS. perlinger@ntp.org
* Fix trivial warnings from 'make check'. perlinger@ntp.org
* Fix bug in the override portion of the compiler hardening macro. HStenn.
* record_raw_stats(): Log entire packet. Log writes. HStenn.
* AES-128-CMAC support. BInglis, HStenn, JPerlinger.
* sntp: tweak key file logging. HStenn.
* sntp: pkt_output(): Improve debug output. HStenn.
* update-leap: updates from Paul McMath.
* When using pkg-config, report --modversion. HStenn.
* Clean up libevent configure checks. HStenn.
* sntp: show the IP of who sent us a crypto-NAK. HStenn.
* Allow .../N to specify subnet bits for IPs in ntp.keys. HStenn, JPerlinger.
* authistrustedip() - use it in more places. HStenn, JPerlinger.
* New sysstats: sys_lamport, sys_tsrounding. HStenn.
* Update ntp.keys .../N documentation. HStenn.
* Distribute testconf.yml. HStenn.
* Add DPRINTF(2,...) lines to receive() for packet drops. HStenn.
* Rename the configuration flag fifo variables. HStenn.
* Improve saveconfig output. HStenn.
* Decode restrict flags on receive() debug output. HStenn.
* Decode interface flags on receive() debug output. HStenn.
* Warn the user if deprecated "driftfile name WanderThreshold" is used. HStenn.
* Update the documentation in ntp.conf.def . HStenn.
* restrictions() must return restrict flags and ippeerlimit. HStenn.
* Update ntpq peer documentation to describe the 'p' type. HStenn.
* Rename restrict 'flags' to 'rflags. Use an enum for the values. HStenn.
* Provide dump_restricts() for debugging. HStenn.
* Use consistent 4th arg type for [gs]etsockopt. JPerlinger.
* Some tests might need LIBM. HStenn.
* update-leap: Allow -h/--help early. HStenn.
---
(4.2.8p10) 2017/03/21 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3389] NTP-01-016: Denial of Service via Malformed Config
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3388] NTP-01-014: Buffer Overflow in DPTS Clock
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3387] NTP-01-012: Authenticated DoS via Malicious Config Option
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3386] NTP-01-011: ntpq_stripquotes() returns incorrect Value
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused. HStenn
* [Sec 3384] NTP-01-009: Privileged execution of User Library code
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3383] NTP-01-008: Stack Buffer Overflow from Command Line
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3382] NTP-01-007: Data Structure terminated insufficiently
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3380] NTP-01-005: Off-by-one in Oncore GPS Receiver
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3379] NTP-01-004: Potential Overflows in ctl_put() functions
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3378] NTP-01-003: Improper use of snprintf() in mx4200_send()
(Pentest report 01.2017) <perlinger@ntp.org>
* [Sec 3377] NTP-01-002: Buffer Overflow in ntpq when fetching reslist
(Pentest report 01.2017) <perlinger@ntp.org
* [Sec 3376] Support build "hardening" flags. stenn@ntp.org
* [Sec 3361] 0rigin (zero origin) DoS. HStenn.
* [Bug 3393] clang scan-build findings <perlinger@ntp.org>
* [Bug 3363] Support for openssl-1.1.0 without compatibility modes
- rework of patch set from <ntp.org@eroen.eu>. <perlinger@ntp.org>
* [Bug 3356] Bugfix 3072 breaks multicastclient <perlinger@ntp.org>
* [Bug 3216] libntp audio ioctl() args incorrectly cast to int
on 4.4BSD-Lite derived platforms <perlinger@ntp.org>
- original patch by Majdi S. Abbas
* [Bug 3215] 'make distcheck' fails with new BK repo format <perlinger@ntp.org>
* [Bug 3173] forking async worker: interrupted pipe I/O <perlinger@ntp.org>
- initial patch by Christos Zoulas
* [Bug 3139] (...) time_pps_create: Exec format error <perlinger@ntp.org>
- move loader API from 'inline' to proper source
- augment pathless dlls with absolute path to NTPD
- use 'msyslog()' instead of 'printf() 'for reporting trouble
* [Bug 3107] Incorrect Logic for Peer Event Limiting <perlinger@ntp.org>
- applied patch by Matthew Van Gundy
* [Bug 3065] Quiet warnings on NetBSD <perlinger@ntp.org>
- applied some of the patches provided by Havard. Not all of them
still match the current code base, and I did not touch libopt.
* [Bug 3062] Change the process name of forked DNS worker <perlinger@ntp.org>
- applied patch by Reinhard Max. See bugzilla for limitations.
* [Bug 2923] Trap Configuration Fail <perlinger@ntp.org>
- fixed dependency inversion from [Bug 2837]
* [Bug 2896] Nothing happens if minsane < maxclock < minclock
- produce ERROR log message about dysfunctional daemon. <perlinger@ntp.org>
* [Bug 2851] allow -4/-6 on restrict line with mask <perlinger@ntp.org>
- applied patch by Miroslav Lichvar for ntp4.2.6 compat
* [Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
- Fixed these and some more locations of this pattern.
Probably din't get them all, though. <perlinger@ntp.org>
* Update copyright year.
* bk-7 trigger updates
---
(4.2.8p9-win) 2017/02/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 3144] NTP does not build without openSSL. <perlinger@ntp.org>
- added missed changeset for automatic openssl lib detection
- fixed some minor warning issues
* [Bug 3095] More compatibility with openssl 1.1. <perlinger@ntp.org>
* configure.ac cleanup. stenn@ntp.org
* openssl configure cleanup. stenn@ntp.org
---
(4.2.8p9) 2016/11/21 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3119] Trap crash <perlinger@ntp.org>
* [Sec 3118] Mode 6 information disclosure and DDoS vector <perlinger@ntp.org>
- TRAP config via mode 6 packet requires AUTH now.
* [Sec 3114] Broadcast Mode Replay Prevention DoS
- applied patches by Matthew Van Gundy. <perlinger@ntp.org>
- with bcpollbstep, tweaks and cleanup by stenn@ntp.org
* [Sec 3113] Broadcast Mode Poll Interval Enforcement DoS <perlinger@ntp.org>
- applied fix as suggested by Matthew Van Gundy
* [Sec 3110] Windows: ntpd DoS by oversized UDP packet
- fixed error handling for truncated UDP packets. <perlinger@ntp.org>
* [Sec 3102] Zero origin issues. HStenn.
* [Sec 3082] null pointer dereference in _IO_str_init_static_internal()
- more hardening to read_mru_list(). perlinger@ntp.org
* [Sec 3072] Attack on interface selection <perlinger@ntp.org>
- implemented Miroslav Lichvars <mlichvar@redhat.com> suggestion
to skip interface updates based on incoming packets
* [Bug 3142] bug in netmask prefix length detection <perlinger@ntp.org>
* [Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
* [Bug 3129] Unknown hosts can put resolver thread into a hard loop
- moved retry decision where it belongs. <perlinger@ntp.org>
* [Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order
using the loopback-ppsapi-provider.dll <perlinger@ntp.org>
* [Bug 3116] unit tests for NTP time stamp expansion. <perlinger@ntp.org>
* [Bug 3100] ntpq can't retrieve daemon_version <perlinger@ntp.org>
- fixed extended sysvar lookup (bug introduced with bug 3008 fix)
* [Bug 3095] Compatibility with openssl 1.1 <perlinger@ntp.org>
- applied patches by Kurt Roeckx <kurt@roeckx.be> to source
- added shim layer for SSL API calls with issues (both directions)
* [Bug 3089] Serial Parser does not work anymore for hopfser like device
- simplified / refactored hex-decoding in driver. <perlinger@ntp.org>
* [Bug 3084] update-leap mis-parses the leapfile name. HStenn.
* [Bug 3068] Linker warnings when building on Solaris. perlinger@ntp.org
- applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
* [Bug 3067] Root distance calculation needs improvement. HStenn.
* [Bug 3066] NMEA clock ignores pps. perlinger@ntp.org
- PPS-HACK works again.
* [Bug 3059] Potential buffer overrun from oversized hash <perlinger@ntp.org>
- applied patch by Brian Utterback <brian.utterback@oracle.com>
* [Bug 3053] ntp_loopfilter.c frequency calc precedence error. Sarah White.
* [Bug 3050] Fix for bug #2960 causes [...] spurious error message.
<perlinger@ntp.org>
- patches by Reinhard Max <max@suse.com> and Havard Eidnes <he@uninett.no>
* [Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
- Patch provided by Kuramatsu.
* [Bug 3021] unity_fixture.c needs pragma weak <perlinger@ntp.org>
- removed unnecessary & harmful decls of 'setUp()' & 'tearDown()'
* [Bug 3019] Windows: ERROR_HOST_UNREACHABLE block packet processing.
DMayer and JPerlinger.
* [Bug 2998] sntp/tests/packetProcessing.c broken without openssl. JPerlinger
* [Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY. HStenn.
* [Bug 2959] refclock_jupiter: gps week correction <perlinger@ntp.org>
- fixed GPS week expansion to work based on build date. Special thanks
to Craig Leres for initial patch and testing.
* [Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
- fixed Makefile.am <perlinger@ntp.org>
* [Bug 2689] ATOM driver processes last PPS pulse at startup,
even if it is very old <perlinger@ntp.org>
- make sure PPS source is alive before processing samples
- improve stability close to the 500ms phase jump (phase gate)
* Fix typos in include/ntp.h.
* Shim X509_get_signature_nid() if needed.
* git author attribution cleanup
* bk ignore file cleanup
* remove locks in Windows IO, use rpc-like thread synchronisation instead
---
(4.2.8p8) 2016/06/02 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 3042] Broadcast Interleave. HStenn.
* [Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
- validate origin timestamps on bad MACs, too. stenn@ntp.org
* [Sec 3044] Spoofed server packets are partially processed. HStenn.
* [Sec 3045] Bad authentication demobilizes ephemeral associations. JPerlinger.
* [Sec 3046] CRYPTO_NAK crash. stenn@ntp.org
* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org
- provide build environment
- 'wint_t' and 'struct timespec' defined by VS2015
- fixed print()/scanf() format issues
* [Bug 3052] Add a .gitignore file. Edmund Wong.
* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback,
JPerlinger, HStenn.
* Update the NEWS file for 4.2.8p8. HStenn.
* Fix typo in ntp-wait and plot_summary. HStenn.
* Make sure we have an "author" file for git imports. HStenn.
* Update the sntp problem tests for MacOS. HStenn.
---
(4.2.8p7) 2016/04/26 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2901] KoD packets must have non-zero transmit timestamps. HStenn.
* [Sec 2936] Skeleton Key: Any system knowing the trusted key can serve
time. Include passive servers in this check. HStenn.
* [Sec 2945] Additional KoD packet checks. HStenn.
* [Sec 2978] Interleave can be partially triggered. HStenn.
* [Sec 3007] Validate crypto-NAKs. Danny Mayer.
* [Sec 3008] Always check the return value of ctl_getitem().
- initial work by HStenn
- Additional cleanup of ctl_getitem by perlinger@ntp.org
* [Sec 3009] Crafted addpeer with hmode > 7 causes OOB error. perlinger@ntp.org
- added more stringent checks on packet content
* [Sec 3010] remote configuration trustedkey/requestkey values
are not properly validated. perlinger@ntp.org
- sidekick: Ignore keys that have an unsupported MAC algorithm
but are otherwise well-formed
* [Sec 3011] Duplicate IPs on unconfig directives will cause an assertion botch
- graciously accept the same IP multiple times. perlinger@ntp.org
* [Sec 3020] Refclock impersonation. HStenn.
* [Bug 2831] Segmentation Fault in DNS lookup during startup. perlinger@ntp.org
- fixed yet another race condition in the threaded resolver code.
* [Bug 2858] bool support. Use stdbool.h when available. HStenn.
* [Bug 2879] Improve NTP security against timing attacks. perlinger@ntp.org
- integrated patches by Loganaden Velvidron <logan@ntp.org>
with some modifications & unit tests
* [Bug 2952] Symmetric active/passive mode is broken. HStenn.
* [Bug 2960] async name resolution fixes for chroot() environments.
Reinhard Max.
* [Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile. perlinger@ntp.org
* [Bug 2995] Fixes to compile on Windows
* [Bug 2999] out-of-bounds access in 'is_safe_filename()'. perlinger@ntp.org
* [Bug 3013] Fix for ssl_init.c SHA1 test. perlinger@ntp.org
- Patch provided by Ch. Weisgerber
* [Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
- A change related to [Bug 2853] forbids trailing white space in
remote config commands. perlinger@ntp.org
* [Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- report and patch from Aleksandr Kostikov.
- Overhaul of Windows IO completion port handling. perlinger@ntp.org
* [Bug 3022] authkeys.c should be refactored. perlinger@ntp.org
- fixed memory leak in access list (auth[read]keys.c)
- refactored handling of key access lists (auth[read]keys.c)
- reduced number of error branches (authreadkeys.c)
* [Bug 3023] ntpdate cannot correct dates in the future. perlinger@ntp.org
* [Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
* [Bug 3031] ntp broadcastclient unable to synchronize to an server
when the time of server changed. perlinger@ntp.org
- Check the initial delay calculation and reject/unpeer the broadcast
server if the delay exceeds 50ms. Retry again after the next
broadcast packet.
* [Bug 3036] autokey trips an INSIST in authistrustedip(). Harlan Stenn.
* Document ntp.key's optional IP list in authenetic.html. Harlan Stenn.
* Update html/xleave.html documentation. Harlan Stenn.
* Update ntp.conf documentation. Harlan Stenn.
* Fix some Credit: attributions in the NEWS file. Harlan Stenn.
* Fix typo in html/monopt.html. Harlan Stenn.
* Add README.pullrequests. Harlan Stenn.
* Cleanup to include/ntp.h. Harlan Stenn.
---
(4.2.8p6) 2016/01/20 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode. HStenn.
* [Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
* [Sec 2937] ntpq: nextvar() missing length check. perlinger@ntp.org
* [Sec 2938] ntpq saveconfig command allows dangerous characters
in filenames. perlinger@ntp.org
* [Sec 2939] reslist NULL pointer dereference. perlinger@ntp.org
* [Sec 2940] Stack exhaustion in recursive traversal of restriction
list. perlinger@ntp.org
* [Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
* [Sec 2945] Zero Origin Timestamp Bypass. perlinger@ntp.org
* [Sec 2948] Potential Infinite Loop in ntpq ( and ntpdc) perlinger@ntp.org
* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
- applied patch by shenpeng11@huawei.com with minor adjustments
* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
* [Bug 2892] Several test cases assume IPv6 capabilities even when
IPv6 is disabled in the build. perlinger@ntp.org
- Found this already fixed, but validation led to cleanup actions.
* [Bug 2905] DNS lookups broken. perlinger@ntp.org
- added limits to stack consumption, fixed some return code handling
* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C. perlinger@ntp.org
- make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
* [Bug 2980] reduce number of warnings. perlinger@ntp.org
- integrated several patches from Havard Eidnes (he@uninett.no)
* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
- implement 'auth_log2()' using integer bithack instead of float calculation
* Make leapsec_query debug messages less verbose. Harlan Stenn.
* Disable incomplete t-ntp_signd.c test. Harlan Stenn.
---
(4.2.8p5) 2016/01/07 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2956] small-step/big-step. Close the panic gate earlier. HStenn.
* CID 1339955: Free allocated memory in caljulian test. HStenn.
* CID 1339962: Explicitly initialize variable in caljulian test. HStenn.
* CID 1341527: Quiet a CHECKED_RETURN in sntp/tests/t-log.c. HStenn.
* CID 1341533: Missing assertion in sntp/tests/t-log.c. HStenn.
* CID 1341534: Resource leak in tests/ntpd/t-ntp_signd.c. HStenn.
* CID 1341535: Resource leak in tests/ntpd/t-ntp_signd.c. HStenn.
* CID 1341536: Resource leak in tests/ntpd/t-ntp_signd.c. HStenn.
* CID 1341537: Resource leak in tests/ntpd/t-ntp_signd.c. HStenn.
* CID 1341538: Memory leak in tests/ntpd/ntp_prio_q.c:262. HStenn.
* CID 1341677: Nits in sntp/tests/keyFile.c. HStenn.
* CID 1341678: Nits in sntp/tests/keyFile.c. HStenn.
* CID 1341679: Nits in sntp/tests/keyFile.c. HStenn.
* CID 1341680: Nits in sntp/tests/keyFile.c. HStenn.
* CID 1341681: Nits in sntp/tests/keyFile.c. HStenn.
* CID 1341682: Nit in libntp/authreadkeys.c. HStenn.
* CID 1341684: Nit in tests/ntpd/t-ntp_signd.c. HStenn.
* [Bug 2829] Look at pipe_fds in ntpd.c (did so. perlinger@ntp.org)
* [Bug 2887] stratum -1 config results as showing value 99
- fudge stratum should only accept values [0..16]. perlinger@ntp.org
* [Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn.
* [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray
* [Bug 2944] errno is not preserved properly in ntpdate after sendto call.
- applied patch by Christos Zoulas. perlinger@ntp.org
* [Bug 2952] Symmetric active/passive mode is broken. HStenn.
* [Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- fixed data race conditions in threaded DNS worker. perlinger@ntp.org
- limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
* [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org
- accept key file only if there are no parsing errors
- fixed size_t/u_int format clash
- fixed wrong use of 'strlcpy'
* [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
* [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org
- fixed several other warnings (cast-alignment, missing const, missing prototypes)
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only arguments
- make sure SOCKET values are not truncated (win32-specific)
- format string fixes
* [Bug 2965] Local clock didn't work since 4.2.8p4. Martin Burnicki.
* [Bug 2967] ntpdate command suffers an assertion failure
- fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org
* [Bug 2969] Seg fault from ntpq/mrulist when looking at server with
lots of clients. perlinger@ntp.org
* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C. perlinger@ntp.org
- make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
* Unity cleanup for FreeBSD-6.4. Harlan Stenn.
* Unity test cleanup. Harlan Stenn.
* Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
* Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn.
* Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn.
* Quiet a warning from clang. Harlan Stenn.
* Update the NEWS file. Harlan Stenn.
* Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
---
(4.2.8p4) 2015/10/21 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2899] CVE-2014-9297 perlinger@ntp.org
* [Sec 2901] Drop invalid packet before checking KoD. Check for all KoD's.
Danny Mayer. Log incoming packets that fail TEST2. Harlan Stenn.
* [Sec 2902] configuration directives "pidfile" and "driftfile"
should be local-only. perlinger@ntp.org (patch by Miroslav Lichvar)
* [Sec 2909] added missing call to 'free()' in ntp_crypto.c. perlinger@ntp.org
* [Sec 2913] TALOS-CAN-0052: crash by loop counter underrun. perlinger@ntp.org
* [Sec 2916] TALOS-CAN-0054: memory corruption in password store. JPerlinger
* [Sec 2917] TALOS-CAN-0055: Infinite loop if extended logging enabled and
the logfile and keyfile are the same. perlinger@ntp.org
* [Sec 1918] TALOS-CAN-0062: prevent directory traversal for VMS, too, when
using 'saveconfig' command. perlinger@ntp.org
* [Bug 2919] TALOS-CAN-0063: avoid buffer overrun in ntpq. perlinger@ntp.org
* [Sec 2020] TALOS-CAN-0064: signed/unsiged clash could lead to buffer overun
and memory corruption. perlinger@ntp.org
* [Sec 2921] TALOS-CAN-0065: password length memory corruption. JPerlinger.
* [Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL
on some bogus values. Harlan Stenn.
* [Sec 2941] NAK to the Future: Symmetric association authentication
bypass via crypto-NAK. Patch applied. perlinger@ntp.org
* [Bug 2332] (reopened) Exercise thread cancellation once before dropping
privileges and limiting resources in NTPD removes the need to link
forcefully against 'libgcc_s' which does not always work. J.Perlinger
* [Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn.
* [Bug 2625] Deprecate flag1 in local refclock. Hal Murray, Harlan Stenn.
* [Bug 2817] Stop locking ntpd into memory by default under Linux. H.Stenn.
* [Bug 2821] minor build issues: fixed refclock_gpsdjson.c. perlinger@ntp.org
* [Bug 2823] ntpsweep with recursive peers option doesn't work. H.Stenn.
* [Bug 2849] Systems with more than one default route may never
synchronize. Brian Utterback. Note that this patch might need to
be reverted once Bug 2043 has been fixed.
* [Bug 2864] 4.2.8p3 fails to compile on Windows. Juergen Perlinger
* [Bug 2866] segmentation fault at initgroups(). Harlan Stenn.
* [Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'. J.Perlinger
* [Bug 2873] libevent should not include .deps/ in the tarball. H.Stenn
* [Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
* [Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS. libevent must
be configured for the distribution targets. Harlan Stenn.
* [Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
* [Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
* [Bug 2888] streamline calendar functions. perlinger@ntp.org
* [Bug 2889] ntp-dev-4.3.67 does not build on Windows. perlinger@ntp.org
* [Bug 2890] Ignore ENOBUFS on routing netlink socket. Konstantin Khlebnikov.
* [Bug 2906] make check needs better support for pthreads. Harlan Stenn.
* [Bug 2907] dist* build targets require our libevent/ to be enabled. HStenn.
* [Bug 2912] no munlockall() under Windows. David Taylor, Harlan Stenn.
* libntp/emalloc.c: Remove explicit include of stdint.h. Harlan Stenn.
* Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
* tests/ntpd/g_leapsec.cpp typo fix. Harlan Stenn.
* Phase 1 deprecation of google test in sntp/tests/. Harlan Stenn.
* On some versions of HP-UX, inttypes.h does not include stdint.h. H.Stenn.
* top_srcdir can change based on ntp v. sntp. Harlan Stenn.
* sntp/tests/ function parameter list cleanup. Damir Tomić.
* tests/libntp/ function parameter list cleanup. Damir Tomić.
* tests/ntpd/ function parameter list cleanup. Damir Tomić.
* sntp/unity/unity_config.h: handle stdint.h. Harlan Stenn.
* sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris. H.Stenn.
* tests/libntp/timevalops.c and timespecops.c fixed error printing. D.Tomić.
* tests/libntp/ improvements in code and fixed error printing. Damir Tomić.
* tests/libntp: a_md5encrypt.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
caltontp.c, clocktime.c, humandate.c, hextolfp.c, decodenetnum.c - fixed
formatting; first declaration, then code (C90); deleted unnecessary comments;
changed from sprintf to snprintf; fixed order of includes. Tomasz Flendrich
* tests/libntp/lfpfunc.c remove unnecessary include, remove old comments,
fix formatting, cleanup. Tomasz Flendrich
* tests/libntp/lfptostr.c remove unnecessary include, add consts, fix formatting.
Tomasz Flendrich
* tests/libntp/statestr.c remove empty functions, remove unnecessary include,
fix formatting. Tomasz Flendrich
* tests/libntp/modetoa.c fixed formatting. Tomasz Flendrich
* tests/libntp/msyslog.c fixed formatting. Tomasz Flendrich
* tests/libntp/numtoa.c deleted unnecessary empty functions, fixed formatting.
Tomasz Flendrich
* tests/libntp/numtohost.c added const, fixed formatting. Tomasz Flendrich
* tests/libntp/refnumtoa.c fixed formatting. Tomasz Flendrich
* tests/libntp/ssl_init.c fixed formatting. Tomasz Flendrich
* tests/libntp/tvtots.c fixed a bug, fixed formatting. Tomasz Flendrich
* tests/libntp/uglydate.c removed an unnecessary include. Tomasz Flendrich
* tests/libntp/vi64ops.c removed an unnecessary comment, fixed formatting.
* tests/libntp/ymd3yd.c removed an empty function and an unnecessary include,
fixed formatting. Tomasz Flendrich
* tests/libntp/timespecops.c fixed formatting, fixed the order of includes,
removed unnecessary comments, cleanup. Tomasz Flendrich
* tests/libntp/timevalops.c fixed the order of includes, deleted unnecessary
comments, cleanup. Tomasz Flendrich
* tests/libntp/sockaddrtest.h making it agree to NTP's conventions of formatting.
Tomasz Flendrich
* tests/libntp/lfptest.h cleanup. Tomasz Flendrich
* tests/libntp/test-libntp.c fix formatting. Tomasz Flendrich
* sntp/tests/crypto.c is now using proper Unity's assertions, fixed formatting.
Tomasz Flendrich
* sntp/tests/kodDatabase.c added consts, deleted empty function,
fixed formatting. Tomasz Flendrich
* sntp/tests/kodFile.c cleanup, fixed formatting. Tomasz Flendrich
* sntp/tests/packetHandling.c is now using proper Unity's assertions,
fixed formatting, deleted unused variable. Tomasz Flendrich
* sntp/tests/keyFile.c is now using proper Unity's assertions, fixed formatting.
Tomasz Flendrich
* sntp/tests/packetProcessing.c changed from sprintf to snprintf,
fixed formatting. Tomasz Flendrich
* sntp/tests/utilities.c is now using proper Unity's assertions, changed
the order of includes, fixed formatting, removed unnecessary comments.
Tomasz Flendrich
* sntp/tests/sntptest.h fixed formatting. Tomasz Flendrich
* sntp/tests/fileHandlingTest.h.in fixed a possible buffer overflow problem,
made one function do its job, deleted unnecessary prints, fixed formatting.
Tomasz Flendrich
* sntp/unity/Makefile.am added a missing header. Tomasz Flendrich
* sntp/unity/unity_config.h: Distribute it. Harlan Stenn.
* sntp/libevent/evconfig-private.h: remove generated filefrom SCM. H.Stenn.
* sntp/unity/Makefile.am: fix some broken paths. Harlan Stenn.
* sntp/unity/unity.c: Clean up a printf(). Harlan Stenn.
* Phase 1 deprecation of google test in tests/libntp/. Harlan Stenn.
* Don't build sntp/libevent/sample/. Harlan Stenn.
* tests/libntp/test_caltontp needs -lpthread. Harlan Stenn.
* br-flock: --enable-local-libevent. Harlan Stenn.
* Wrote tests for ntpd/ntp_prio_q.c. Tomasz Flendrich
* scripts/lib/NTP/Util.pm: stratum output is version-dependent. Harlan Stenn.
* Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
* Code cleanup. Harlan Stenn.
* libntp/icom.c: Typo fix. Harlan Stenn.
* util/ntptime.c: initialization nit. Harlan Stenn.
* ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr). Harlan Stenn.
* Add std_unity_tests to various Makefile.am files. Harlan Stenn.
* ntpd/ntp_restrict.c: added a few assertions, created tests for this file.
Tomasz Flendrich
* Changed progname to be const in many files - now it's consistent. Tomasz
Flendrich
* Typo fix for GCC warning suppression. Harlan Stenn.
* Added tests/ntpd/ntp_scanner.c test. Damir Tomić.
* Added declarations to all Unity tests, and did minor fixes to them.
Reduced the number of warnings by half. Damir Tomić.
* Updated generate_test_runner.rb and updated the sntp/unity/auto directory
with the latest Unity updates from Mark. Damir Tomić.
* Retire google test - phase I. Harlan Stenn.
* Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
* Update the NEWS file. Harlan Stenn.
* Autoconf cleanup. Harlan Stenn.
* Unit test dist cleanup. Harlan Stenn.
* Cleanup various test Makefile.am files. Harlan Stenn.
* Pthread autoconf macro cleanup. Harlan Stenn.
* Fix progname definition in unity runner scripts. Harlan Stenn.
* Clean trailing whitespace in tests/ntpd/Makefile.am. Harlan Stenn.
* Update the patch for bug 2817. Harlan Stenn.
* More updates for bug 2817. Harlan Stenn.
* Fix bugs in tests/ntpd/ntp_prio_q.c. Harlan Stenn.
* gcc on older HPUX may need +allowdups. Harlan Stenn.
* Adding missing MCAST protection. Harlan Stenn.
* Disable certain test programs on certain platforms. Harlan Stenn.
* Implement --enable-problem-tests (on by default). Harlan Stenn.
* build system tweaks. Harlan Stenn.
---
(4.2.8p3) 2015/06/29 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2853] Crafted remote config packet can crash some versions of
ntpd. Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
* [Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c. Helge Oldach.
* [Bug 2846] Report 'unsynchronized' status during the leap second.
Fixed in Martin's changes to Bug 2855. Martin Burnicki.
* [Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
* [Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
* README.leapsmear added. Martin Burnicki.
* README.leapsmear edited. Harlan Stenn.
* tests/libntp/msyslog.c: fixed a gcc warning. Tomasz Flendrich.
* ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
* html/miscopt.html: Document leapsmearinterval, other cleanup. Harlan Stenn.
---
(4.2.8p3-RC3) 2015/06/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
* [Bug 2855] Report leap smear in the REFID. Harlan Stenn.
* [Bug 2856] ntpd should wait() on terminated child processes. Paul Green.
* [Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
* html/drivers/driver22.html: typo fix. Harlan Stenn.
* refidsmear test cleanup. Tomasz Flendrich.
* refidsmear function support and tests. Harlan Stenn.
* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
something that was only in the 4.2.6 sntp. Harlan Stenn.
* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
Damir Tomić
* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
Damir Tomić
* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
Damir Tomić
* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
* Converted from gtest to Unity: tests/bug-2803/. Damir Tomić
* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
Damir Tomić
* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
networking.c, keyFile.c, utilities.cpp, sntptest.h,
fileHandlingTest.h. Damir Tomić
* Converted from gtest to Unity: sntp/tests/ caltontp.c, humandate.c,
msyslog.c, prettydate.c, recvbuff.c, sfptostr.c, tstotv.c, tvtots.c,
sntp/tests/packetProcessing.c. Tomasz Flendrich
---
(4.2.8p3-RC2) 2015/06/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2778] Implement "apeers" ntpq command to include associd.
* [Bug 2805] ntpd fails to join multicast group.
* [Bug 2824] Convert update-leap to perl. (also see 2769)
* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTPD transfers the current TAI (instead of an announcement) now.
This might still needed improvement.
Update autokey data ASAP when 'sys_tai' changes.
Fix unit test that was broken by changes for autokey update.
Avoid potential signature length issue and use DPRINTF where possible
in ntp_crypto.c.
* [Bug 2832] refclock_jjy.c supports the TDC-300.
* [Bug 2834] Correct a broken html tag in html/refclock.html
* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
robust, and require 2 consecutive timestamps to be consistent.
* [Bug 2837] Allow a configurable DSCP value.
* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
* [Bug 2842] Bug in mdoc2man.
* [Bug 2843] make check fails on 4.3.36
Fixed compiler warnings about numeric range overflow
(The original topic was fixed in a byplay to bug#2830)
* [Bug 2845] Harden memory allocation in ntpd.
* [Bug 2852] 'make check' can't find unity.h. Hal Murray.
* [Bug 2854] Missing brace in libntp/strdup.c. Masanari Iida.
* [Bug 2855] Implement conditional leap smear code. Martin Burnicki.
* [Bug 2855] leap smear cleanup. Harlan Stenn.
* Initial support for experimental leap smear code. Harlan Stenn.
* Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
* Report select() debug messages at debug level 3 now.
* sntp/scripts/genLocInfo: treat raspbian as debian.
* Unity test framework fixes.
** Requires ruby for changes to tests.
* Initial support for PACKAGE_VERSION tests.
* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
* tests/bug-2803/Makefile.am must distribute bug-2803.h.
* automake-1.15 cleanup for sntp/tests/fileHandlingTest.h.in . Harlan Stenn.
---
(4.2.8p3-RC1) 2015/05/12 Released by Harlan Stenn <stenn@ntp.org>
* CID 739725: Fix a rare resource leak in libevent/listener.c.
* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
* CID 1269537: Clean up a line of dead code in getShmTime().
* [Bug 2590] autogen-5.18.5.
* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
of 'limited'.
* [Bug 2650] fix includefile processing.
* [Bug 2745] ntpd -x steps clock on leap second
Fixed an initial-value problem that caused misbehaviour in absence of
any leapsecond information.
Do leap second stepping only of the step adjustment is beyond the
proper jump distance limit and step correction is allowed at all.
* [Bug 2750] build for Win64
Building for 32bit of loopback ppsapi needs def file
* [Bug 2776] Improve ntpq's 'help keytype'.
* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
interface is ignored as long as this flag is not set since the
interface is not usable (e.g., no link).
* [Bug 2794] Clean up kernel clock status reports.
* [Bug 2800] refclock_true.c true_debug() can't open debug log because
of incompatible open/fdopen parameters.
* [Bug 2804] install-local-data assumes GNU 'find' semantics.
* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
* [Bug 2808] GPSD_JSON driver enhancements, step 1.
Fix crash during cleanup if GPS device not present and char device.
Increase internal token buffer to parse all JSON data, even SKY.
Defer logging of errors during driver init until the first unit is
started, so the syslog is not cluttered when the driver is not used.
Various improvements, see http://bugs.ntp.org/2808 for details.
Changed libjsmn to a more recent version.
* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
* [Bug 2825] Quiet file installation in html/ .
* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTPD transfers the current TAI (instead of an announcement) now.
This might still needed improvement.
* Add an assert to the ntpq ifstats code.
* Clean up the RLIMIT_STACK code.
* Improve the ntpq documentation around the controlkey keyid.
* ntpq.c cleanup.
* Windows port build cleanup.
---
(4.2.8p2) 2015/04/07 Released by Harlan Stenn <stenn@ntp.org>
(4.2.8p2-RC3) 2015/04/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2763] Fix for different thresholds for forward and backward steps.
* Initial import of the Unity test framework.
---
(4.2.8p2-RC2) 2015/04/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c.
* [Bug 2769] New script: update-leap
* [Bug 2769] cleannup for update-leap
* [Bug 2788] New flag -G (force_step_once).
* [Bug 2794] Clean up kernel clock status reports.
* [Bug 2795] Cannot build without OpenSLL (on Win32).
Provided a Win32 specific wrapper around libevent/arc4random.c.
fixed some minor warnings.
* [Bug 2796] ntp-keygen crashes in 'getclock()' on Win32.
* [Bug 2797] ntp-keygen trapped in endless loop for MD5 keys
on big-endian machines.
* [Bug 2798] sntp should decode and display the leap indicator.
* Simple cleanup to html/build.html
---
(4.2.8p2-RC1) 2015/03/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2794] Don't let reports on normal kernel status changes
look like errors.
* [Bug 2788] New flag -G (force_step_once).
* [Bug 2592] Account for PPS sources which can provide an accurate
absolute time stamp, and status information.
Fixed indention and removed trailing whitespace.
* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
* [Bug 2346] "graceful termination" signals do not do peer cleanup.
* [Bug 2728] See if C99-style structure initialization works.
* [Bug 2747] Upgrade libevent to 2.1.5-beta.
* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
* [Bug 2751] jitter.h has stale copies of l_fp macros.
* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
* [Bug 2757] Quiet compiler warnings.
* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
* [Bug 2763] Allow different thresholds for forward and backward steps.
* [Bug 2766] ntp-keygen output files should not be world-readable.
* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
* [Bug 2771] nonvolatile value is documented in wrong units.
* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
* [Bug 2774] Unreasonably verbose printout - leap pending/warning
* [Bug 2775] ntp-keygen.c fails to compile under Windows.
* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
Removed non-ASCII characters from some copyright comments.
Removed trailing whitespace.
Updated definitions for Meinberg clocks from current Meinberg header files.
Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Account for updated definitions pulled from Meinberg header files.
Updated comments on Meinberg GPS receivers which are not only called GPS16x.
Replaced some constant numbers by defines from ntp_calendar.h
Modified creation of parse-specific variables for Meinberg devices
in gps16x_message().
Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
Modified mbg_tm_str() which now expexts an additional parameter controlling
if the time status shall be printed.
* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
* [Sec 2781] Authentication doesn't protect symmetric associations against
DoS attacks.
* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
* [Bug 2784] Fix for 2782 uses clock_gettime() instead of get_ostime().
* [Bug 2789] Quiet compiler warnings from libevent.
* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
pause briefly before measuring system clock precision to yield
correct results.
* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
* Use predefined function types for parse driver functions
used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast parse conversion results to appropriate types to avoid
compiler warnings.
Let ioctl() for Windows accept a (void *) to avoid compiler warnings
when called with pointers to different types.
---
(4.2.8p1) 2015/02/04 Released by Harlan Stenn <stenn@ntp.org>
* Update the NEWS file.
* [Sec 2671] vallen in extension fields are not validated.
---
(4.2.8p1-RC2) 2015/01/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2627] shm refclock allows only two units with owner-only access
rework: reverted sense of mode bit (so default reflects previous
behaviour) and updated ducumentation.
* [Bug 2732] - Leap second not handled correctly on Windows 8
use 'GetTickCount()' to get the true elapsed time of slew
(This should work for all versions of Windows >= W2K)
* [Bug 2738] Missing buffer initialization in refclocK_parse.c::parsestate().
* [Bug 2739] Parse driver with PPS enabled occasionally evaluates
PPS timestamp with wrong sign.
Removed some German umlauts.
* [Bug 2740] Removed some obsolete code from the parse driver.
* [Bug 2741] Incorrect buffer check in refclocK_parse.c::parsestatus().
---
(4.2.8p1-RC1) 2015/01/24 Released by Harlan Stenn <stenn@ntp.org>
* Start the RC for 4.2.8p1.
* [Bug 2187] Update version number generation scripts.
* [Bug 2617] Fix sntp Usage documentation section.
* [Sec 2672] Code cleanup: On some OSes ::1 can be spoofed...
* [Bug 2736] Show error message if we cannot open the config file.
* Copyright update.
* Fix the package name.
---
(4.2.8p1-beta5) 2015/01/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2695] Windows build: __func__ not supported under Windows.
* [Bug 2728] Work around C99-style structure initialization code
for older compilers, specifically Visual Studio prior to VS2013.
---
(4.2.8p1-beta4) 2015/01/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1084] PPSAPI for ntpd on Windows with DLL backends
* [Bug 2695] Build problem on Windows (sys/socket.h).
* [Bug 2715] mdnstries option for ntp.conf from NetBSD.
* Fix a regression introduced to timepps-Solaris.h as part of:
[Bug 1206] Required compiler changes for Windows
(4.2.5p181) 2009/06/06
---
(4.2.8p1-beta3) 2015/01/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2627] shm refclock allows only two units with owner-only access
Use mode bit 0 to select public access for units >= 2 (units 0 & 1 are
always private.
* [Bug 2681] Fix display of certificate EOValidity dates on 32-bit systems.
* [Bug 2695] 4.2.8 does not build on Windows.
* [bug 2700] mrulist stopped working in 4.2.8.
* [Bug 2706] libparse/info_trimble.c build dependencies are broken.
* [Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD.
* [Bug 2714] libevent may need to be built independently of any build of sntp.
* [Bug 2715] mdnstries option for ntp.conf from NetBSD.
---
(4.2.8p1-beta2) 2014/12/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2674] Install sntp in sbin on NetBSD.
* [Bug 2693] ntp-keygen doesn't build without OpenSSL and sntp.
* [Bug 2707] Avoid a C90 extension in libjsmn/jsmn.c.
* [Bug 2709] see if we have a C99 compiler (not yet required).
---
(4.2.8p1-beta1) 2014/12/23 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs.
* [Bug 2693] ntp-keygen doesn't build without OpenSSL.
* [Bug 2697] IN6_IS_ADDR_LOOPBACK build problems on some OSes.
* [Bug 2699] HAVE_SYS_SELECT_H is misspelled in refclock_gpsdjson.c.
---
(4.2.8) 2014/12/19 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 730] Increase RSA_generate_key modulus.
* [Sec 2666] Use cryptographic random numbers for md5 key generation.
* [Sec 2667] buffer overflow in crypto_recv().
* [Sec 2668] buffer overflow in ctl_putdata().
* [Sec 2669] buffer overflow in configure().
* [Sec 2670] Missing return; from error clause.
* [Sec 2671] vallen in extension fields are not validated.
* [Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs.
* [Bug 2691] Wrong variable name in refclock_ripencc.c.
(4.2.7p486-RC) 2014/12/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2687] RefClock 26/hpgps doesn't work at default line speed
(4.2.7p485-RC) 2014/12/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2686] refclock_gpsdjson needs strtoll(), which is not always present.
(4.2.7p484-RC) 2014/12/11 Released by Harlan Stenn <stenn@ntp.org>
(4.2.7p483) 2014/12/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2685] Better document the KOD file for sntp.
(4.2.7p482) 2014/12/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2641] sntp is installed in the wrong location in Solaris.
* [Bug 2678] nmea_control() now checks 'refclock_params()' result.
(4.2.7p481) 2014/11/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2314] Only enable PPS if kernel consumer binding succeeds.
* [Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition.
* Rename pps_enable to hardpps_enable.
(4.2.7p480) 2014/11/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2677] PATH_MAX isn't #define'd under Windows.
Regression from the patch fixing Bug 2639.
(4.2.7p479) 2014/11/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed.
(4.2.7p478) 2014/11/14 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 2630] buffer overrun in ntpq tokenize().
* [Bug 2639] Check return value of ntp_adjtime().
* [Bug 2650] includefile processing broken.
* [Bug 2661] ntpq crashes with mreadvar.
(4.2.7p477) 2014/11/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2657] Document that "restrict nopeer" intereferes with "pool".
(4.2.7p476) 2014/10/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2503] SHT utility outdated
(4.2.7p475) 2014/09/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2654] refclock_true.c doesn't identify the Mk III.
(4.2.7p474) 2014/09/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2536] ntpd sandboxing support (libseccomp2) cleanup.
* [Bug 2649] Clean up html/ page installation.
(4.2.7p473) 2014/09/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2649] Clean up html/ page installation.
(4.2.7p472) 2014/09/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2556] mrulist is missing from the generated ntpq man page.
(4.2.7p471) 2014/09/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2649] "make install" leaves wrong owner for files in html/.
* [Bug 2652] Windows hates directory names that contain a :.
(4.2.7p470) 2014/09/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2502] Autogen text replacement errors.
* autogen-5.18.5pre1
* html/ cleanups from Hal Murray.
(4.2.7p469) 2014/09/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2536] ntpd sandboxing support (libseccomp2) cleanup.
(4.2.7p468) 2014/08/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2556] ntpq man page cleanup.
* autogen-5.18.4
(4.2.7p467) 2014/08/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2639] Check return value of ntp_adjtime().
* [Bug 2640] STA_NANO can result in invalid ntv.constant.
(4.2.7p466) 2014/08/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2536] ntpd sandboxing support (libseccomp2) cleanup.
(4.2.7p465) 2014/08/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2538] NTP programs print exit code in help/usage text.
* [Bug 2595] Man page quirks: ntpdate references in ntpd.
* [Bug 2613] www.ntp.org/bugs.html tells folks to email doc bugs to DLM.
* [Bug 2636] Clutter in syslog if gpsd not running
- found (hopefully) last cause for clutter in protocol version
- log GPSD revision and release numbers with protocol version
(4.2.7p464) 2014/08/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2636] Fix coverity warning from previous patch.
(4.2.7p463) 2014/08/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2636] Clutter in syslog if gpsd not running
- make driver work with GPSD protocol version 3.9
- use exponential back-off for connection problems
- implement rate-limit for syslog entries
(4.2.7p462) 2014/08/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2622] Synchronisation problem using SHM [...]
Add 'control' function -- fudge values not available during start.
(4.2.7p461) 2014/08/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1128] ntpq truncates "remote" host information.
* More autogen-5.18.4pre14 cleanup.
(4.2.7p460) 2014/08/13 Released by Harlan Stenn <stenn@ntp.org>
* More autogen-5.18.4pre14 cleanup.
(4.2.7p459) 2014/08/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2630] Limit the ntpq command buffer to 512 bytes.
* FlexeLint cleanups.
* Try bison-3.0.2 instead of bison-2.5.
(4.2.7p458) 2014/08/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2633] Provide stdnoreturn.h for windows port.
(4.2.7p457) 2014/08/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2622] Synchronisation problem using SHM when time difference is
more than four hours: Change SHM driver so TOY restricted API is not
used any more. (Plus some minor cleanup in logic and flow control)
* Pass the configration source into the parser as argument rather
than through a global variable.
* Fix nits in the ntpq man page.
* autogen-5.18.4pre14
(4.2.7p456) 2014/08/07 Released by Harlan Stenn <stenn@ntp.org>
* CID 739722: Change the way the extention and MAC fields are processed.
(4.2.7p455) 2014/08/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2565] ntpd sometimes logs unexpected getifaddrs() errors.
* CID 739722: Clean up the definition of the exten field of struct pkt.
(4.2.7p454) 2014/07/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2628] 'mon_getmoremem()' relies on undefined behaviour
(4.2.7p453) 2014/07/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2597] leap file loose ends (follow-up)
- uniform expiration check messages for config and timer triggered
leap file loads
- timer triggered loads log messages only once per day
(4.2.7p452) 2014/07/18 Released by Harlan Stenn <stenn@ntp.org>
* Make all of the html/ .html files use the same format for "Last update".
(4.2.7p451) 2014/07/17 Released by Harlan Stenn <stenn@ntp.org>
* Fix the "Last update" entries in the html/ subtree.
(4.2.7p450) 2014/07/16 Released by Harlan Stenn <stenn@ntp.org>
* Distribute the scripts needed for the fix for Bug 2547.
(4.2.7p449) 2014/07/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2547] Automate update of "Last Update" datestamps in .html files.
* [Bug 2623] Missing {} in refclock_oncore.c.
* Quiet warnings from ntp_calendar.h: avoid using argument names.
* Fix typos in decode.html and debug.html .
(4.2.7p448) 2014/07/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2621] Avoid use of indeterminate address after 'free()'
(minor C standard conformance issue)
* Quiet warnings from ntp_calendar.h: avoid using argument names.
(4.2.7p447) 2014/07/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2620] Use version.pm for checking version numbers in NTP::Util.
* [Bug 2624] Fix signed compare on 'l_fp'.
(4.2.7p446) 2014/06/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2597] leap file processing -- loose ends.
* [Bug 2614] use 'unsigned long' consistently in ntp_random.c
to avoid possibly undefined behaviour in signed int overflow
* [Bug 2619] Save a signed int copy of the return value of i2d_DSA_SIG().
Provide missing msyslog() message in crypto_alice().
* Fix a variable lifetime issue.
* Allow for version suffix in libevent in ntp_libevent.m4.
(4.2.7p445) 2014/06/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2556] mrulist isn't mentioned in the ntpq man page.
(4.2.7p444) 2014/05/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2597] leap file processing -- loose ends
fixed coverity issues
(4.2.7p443) 2014/05/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2594] Update the year in sntp/include/copyright.def.
(4.2.7p442) 2014/05/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2589] Update VS2013 project files for libntp.
* [Bug 2600] Fix "Undisicplined Local Clock" driver1.html page.
(4.2.7p441) 2014/05/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2597] leap file processing -- loose ends
log daily warning when leap info less than 28 days to expiration or
already expired; nag hourly on last day before expiration; log when
leapfile name is invalid
(4.2.7p440) 2014/04/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2536] ntpd sandboxing support (libseccomp2) cleanup.
* [Bug 2570] cleanup: fix log format for successful leapfile load
(4.2.7p439) 2014/04/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2589] fix VS2009 compile problem.
(4.2.7p438) 2014/04/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2546] Windows build documentation updates.
(4.2.7p437) 2014/03/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2537] ntpd truncates symmetric keys to 20 bytes.
* [Bug 2546] Documentation updates.
(4.2.7p436) 2014/03/31 Released by Harlan Stenn <stenn@ntp.org>
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
(4.2.7p435) 2014/03/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2570] cleanup: reduced logging noise, moved some functions
into libntp.
(4.2.7p434) 2014/03/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2577] Update VS2013 solution and project files.
(4.2.7p433) 2014/03/10 Released by Harlan Stenn <stenn@ntp.org>
* Clean up last-update timestamps of html/*.html files.
* [Bug 2546] Documentation updates.
(4.2.7p432) 2014/03/09 Released by Harlan Stenn <stenn@ntp.org>
* CID 711660: Do a non-NULL pointer assertion check a bit earlier.
(4.2.7p431) 2014/03/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2572] cross-compiling fails for --with-yielding-select.
(4.2.7p430) 2014/03/04 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to libevent-2.1.3-alpha-dev.
* [Bug 2572] cross-compiling fails for --with-yielding-select.
(4.2.7p429) 2014/03/03 Released by Harlan Stenn <stenn@ntp.org>
* CID 1165098: Remove logically dead code from refclock_true.c.
* CID 1189401: Use INSIST() instead of a belt-and-suspenders pointer check.
* In ntp_dir_sep.m4, we care about $host_os, not $target_os.
* [Bug 2170] Use AC_PREPROC_IFELSE instead of AC_EGREP_CPP.
* [Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups.
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
-- change reading the hash line code: NIST omits leading zeros.
* [Bug 2576] refclock_gpsdjson.c doesn't compile if CLOCK_GPSDJSON is
not enabled at configure time.
(4.2.7p428) 2014/03/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
* [Bug 2562] Distribute the code in libjsmn/ .
(4.2.7p427) 2014/03/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2562] GPSD_JSON: fix solaris issues (asprintf(), isfinite())
* [Bug 2562] first release of the GPSD client clock (type 46)
(4.2.7p426) 2014/02/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2113] Warn about ignored extra args in ntpq.
* [Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups.
* [Bug 2561] Allow wildcards in the target of the "interface" command.
* [Bug 2572] cross-compiling fails for --with-yielding_select.
(4.2.7p425) 2014/02/26 Released by Harlan Stenn <stenn@ntp.org>
* Copyright file update.
(4.2.7p424) 2014/02/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2541] ntpd terminates itself with SIGHUP unexpectedly.
(4.2.7p423) 2014/02/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2565] Handle EINTR on getifaddrs().
(4.2.7p422) 2014/02/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2536] ntpd sandboxing support (libseccomp2).
(4.2.7p421) 2014/02/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 898] More documentation fixes.
* [Bug 2555] Autogen mdoc man pages all stamped with SunOS 5.10.
* calc_tickadj/Makefile.am man/mdoc page build cleanup.
(4.2.7p420) 2014/02/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 492] Clearly document ntpdate's pending deprecation.
* [Bug 1186] ntpd fails with link local IPv6 addresses.
* [Sec 2542] Strengthen the mrulist nonce.
(4.2.7p419) 2014/02/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2466] Wrap NMEA timestamps in 1024 week cycles.
(4.2.7p418) 2014/02/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2551] --disable-local-libevent breaks the build.
(4.2.7p417) 2014/02/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2539] doc and code tweaks for NMEA driver.
* Add check for enable stats to ntpd/complete.conf.in
* Fix typo in html/confopt.html
(4.2.7p416) 2014/01/31 Released by Harlan Stenn <stenn@ntp.org>
* Tweak the 'Modified' line on appropriate html pages.
* Note in the deprecation of ntpdc in its documentation.
* [Bug 2332] Be more careful about when we use 'libgcc_s'.
(4.2.7p415) 2014/01/28 Released by Harlan Stenn <stenn@ntp.org>
* Fix the man page installation for the scripts/ files.
(4.2.7p414) 2014/01/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 792] TrueTime TL-3 WWV refclock support.
* [Bug 898] Documentation fixes.
* [Bug 930] ntpdc docs refer to 'clockinfo', but mean 'clockstat'.
* [Bug 1002] ntp-keygen option and documentation updates: -p/--pvt-passwd
is now -p/--password, and -q/--get-pvt-passwd is now -q/--export-passwd.
* [Bug 1349] statistics command not documented in HTML documentation.
In html/monopt.html, add statistics id, definition, description, and
correct typo.
In html/scripts/monopt.txt, add statistics item, href, and comment.
In ntpd/ntp.conf.def, under statistics correct four to eight kinds.
In ntpd/complete.conf.in, add all eight kinds to statistics.
In html/comdex.html, remove duplicate footer.
* [Bug 1734] Include man page for ntp.conf (fixed in 4.2.7p297).
* [Bug 2049] Clarify ntpdate's -d option behavior.
* [Bug 2366] ntpdc.html: burst/iburst only work on servers.
* [Bug 2493] ntptrace needs a man page (fixed in 4.2.7p402).
* [Bug 2545] Cleanup of scripts/monitoring/ntptrap.
(4.2.7p413) 2014/01/27 Released by Harlan Stenn <stenn@ntp.org>
* Require a version string for perl scripts that use autogen.
* html/ cleanup.
(4.2.7p412) 2014/01/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups.
(4.2.7p411) 2014/01/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2532] Note in ntpdc docs that "enable pps" only works on older ntpd.
(4.2.7p410) 2014/01/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2332] Force reference to 'libgcc_s' when using GCC, because
threading+restricted user+locked memory otherwise fails on Linux.
* [Bug 2530] Fix documentation for enable/disable mode7 and pps.
* Cleanup to the new scripts/*/Makefile.am files.
(4.2.7p409) 2014/01/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2060] Warn about restrictions with "kod" but not "limited".
(4.2.7p408) 2013/12/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2187] Update version number generation scripts.
(4.2.7p407) 2013/12/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2519] mktime.c does not compile on 64-bit Solaris but we do not
need timegm() and the Solaris provides mktime().
* [Bug 2522] Revert Bug 2513 fix - it breaks backward compatibility.
(4.2.7p406) 2013/12/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2521] VPATH tweaks for perl -opts files.
(4.2.7p405) 2013/12/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2521] bootstrap script needs a tweak for perl -opts files.
* [Bug 2524] Add ntpsweep to sntp/loc/* files.
* [Bug 2526] Add "noinst" support to the sntp/loc/ framework.
(4.2.7p404) 2013/12/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 135] AIX5: "Address already in use" for IPv6 wildcard.
(4.2.7p403) 2013/12/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2513] Remove any PIDFILE in finish().
* [Bug 2516] Enable clock_gettime() support for AIX 5+.
* [Bug 2517] Fix peer status errors in decode.html.
(4.2.7p402) 2013/12/23 Released by Harlan Stenn <stenn@ntp.org>
* Incorporate Oliver Kindernay's GSoC 2013 scripts/ cleanup.
(4.2.7p401) 2013/11/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2491] VS20xx compile fixes.
(4.2.7p400) 2013/11/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2491] VS2013 project files.
(4.2.7p399) 2013/11/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] More leapsecond file notification cleanup.
* [Bug 2506] make sure routing updates are always tracked
* [Bug 2514] secs/* #define usage cleanup.
(4.2.7p398) 2013/11/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] More leapsecond file notification cleanup.
* Improve sntp KoD data file fopen() error message.
(4.2.7p397) 2013/11/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] More leapsecond file notification cleanup.
(4.2.7p396) 2013/11/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] Improve stale leapsecond notifications.
(4.2.7p395) 2013/11/12 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.18.3pre5 and libopts-40.1.15.
(4.2.7p394) 2013/11/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1050] Change ONCORE log message for leap second announcement
to avoid misunderstandings.
* [Bug 2499] Win32 user-space/loopback ppsapi provider drops samples.
* [Bug 2256] Improve configure's function searches in libraries.
(4.2.7p393) 2013/10/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2272] Use C99 integer types. ntp_calendar.h and ntp_types.h .
(4.2.7p392) 2013/10/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2375] Improve AIX compatibility.
* [Bug 2490] Fixed non-const initializer coming from [Bug 2250] fix.
(4.2.7p391) 2013/10/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2250] Rework of leap second handling machine.
* [Bug 2419] [rc-nmea] Improve clockstats reporting when receiver sends
data without valid GPS fix.
(4.2.7p390) 2013/09/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2482] Cleanup of droproot and jail support for Solaris.
(4.2.7p389) 2013/09/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2473] revisited: NTPD exits after clock is stepped backwards
Avoid possible unsigned underrun for startup condition when testing
for clock backstep.
* [Bug 2481] ntpd aborts when both user and group are specified with -u.
* [Bug 2482] Add droproot and jail support for Solaris.
(4.2.7p388) 2013/09/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2473] NTPD exits after clock is stepped backwards externally
(4.2.7p387) 2013/09/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1642] ntpdsim can't find simnulate block in config file.
(4.2.7p386) 2013/09/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2472] (WinXP) Avoid self-termination of IO thread during exit().
(4.2.7p385) 2013/08/19 Released by Harlan Stenn <stenn@ntp.org>
* CID 975596: Copy/paste error: vallen should be siglen.
* CID 1009579: Check return status of X509_add_ext().
* [2085] Fix root distance and root dispersion calculations.
* [Bug 2426] Possibly uninitialized data in crypto_send() - CID 975596.
(4.2.7p384) 2013/08/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2450] --version has bogus short option.
(4.2.7p383) 2013/08/10 Released by Harlan Stenn <stenn@ntp.org>
* (no changes - force a rebuild for a new Coverity scan)
(4.2.7p382) 2013/08/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2454] Need way to set file descriptor limit - cleanup.
(4.2.7p381) 2013/08/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2451] rlimit command is missing from the table of contents in
miscopt.html .
* [Bug 2452] provide io_handler/input_handler only on
non HAVE_IO_COMPLETION_PORT platforms
* [Bug 2453] Need a way to avoid calling mlockall.
* [Bug 2454] Need way to set file descriptor limit.
* [Bug 2458] AM_CONFIG_HEADER is obsolete.
(4.2.7p380) 2013/08/03 Released by Harlan Stenn <stenn@ntp.org>
* CID 984511: Some systems have different printf needs for sizeof.
(4.2.7p379) 2013/08/02 Released by Harlan Stenn <stenn@ntp.org>
* CID 739724: Fix printf arg mismatch in a debug line.
* [Bug 2425] compile io_handler() in ntp_io.c unconditionally
* [Bug 2448] Fix checks for configure --with-stack-limit and --with-memlock
values.
(4.2.7p378) 2013/08/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2425] move part of input handler code from ntpd.c to ntp_io.c
and fix select()-only platforms calling input_handler directly.
* [Bug 2446] Quiet warnings from Oracle's Studio compiler.
* Upgrade to AutoGen-5.18.1pre3
* Upgrade to libopts-40.1.15.
(4.2.7p377) 2013/07/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2397] License/copyright cleanup.
* [Bug 2439] Fix check of EscapeCommFunction() in ports/winnt/libntp/termios.c.
(4.2.7p376) 2013/07/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2322] Oncore driver should send 0 PPS offset to GPS.
(4.2.7p375) 2013/07/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 883] log warning arguments swapped in refclock_gpsvme.c.
* [Bug 2368] Correct bug in previous attempt.
* [Bug 2413] Fix "make check" with automake >= 1.13.
* [Bug 2434] Line-buffer (v. block-buffer) stdout.
(4.2.7p374) 2013/07/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2368] make check troubles in libevent.
* [Bug 2425] setup SIGIO/SIGPOLL for asyncio on the read side
of a socketpair for the worker thread.
(4.2.7p373) 2013/07/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2427] configure fails to detect recvmsg() on Solaris.
(4.2.7p372) 2013/07/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1466] Oncore should set FLAG_PPS.
* [Bug 2375] AIX 7 doesn't like a libevent validation check.
* [Bug 2423] Log command-line args at LOG_INFO.
* [Bug 2428] do_unconf() should reset 'items' before the 2nd loop.
(4.2.7p371) 2013/07/07 Released by Harlan Stenn <stenn@ntp.org>
* CID 1042586: Check the return value of clock_gettime() in worker_sleep().
* Upgrade to libopts-39.0.14 from 5.17.5pre10.
(4.2.7p370) 2013/07/06 Released by Harlan Stenn <stenn@ntp.org>
* Remove \n's from syslog output strings.
(4.2.7p369) 2013/07/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2415] RES_LIMITED flags check should use &, not &&.
* Have NTP_LIBNTP check for time.h and clock_getres().
* Fix ntpsweep to use sntp instead of ntpdate, from Oliver Kindernay.
(4.2.7p368) 2013/05/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2145] ntpq dumps core when displaying sys_var_list and more.
(4.2.7p367) 2013/04/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1485] Sometimes ntpd crashes
* [Bug 2382] Implement LOGTOD using ldexp() instead of shifting.
(4.2.7p366) 2013/04/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1866] Disable some debugging output in refclock_oncore.
(4.2.7p365) 2013/04/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2149] Log an error message if /proc/net/if_inet6 cannot be opened.
(4.2.7p364) 2013/03/26 Released by Harlan Stenn <stenn@ntp.org>
* Bump sntp/include/autogen-version.def .
(4.2.7p363) 2013/03/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2357] sntp/libopts/usage.c sometimes needs -lintl.
* Upgrade to libopts from 5.17.3pre10.
(4.2.7p362) 2013/03/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2364] "sed -i" is not portable.
(4.2.7p361) 2013/03/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2357] sntp/libopts/usage.c sometimes needs -lintl.
* [Bug 2365] "make check" fails in libevent.
(4.2.7p360) 2013/03/15 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade libevent (coverity fixes, etc.).
* EEXIST is OK for mkdir() in sntp/kod_management.c.
(4.2.7p359) 2013/03/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2359] Fix send_via_ntp_signd() prototype.
(4.2.7p358) 2013/02/27 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.17.3pre4 and libopts-38.0.13.
* [Bug 2357] sntp/libopts/usage.c on NetBSD needs -lintl.
(4.2.7p357) 2013/02/22 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.17.2pre and libopts-38.0.13.
(4.2.7p356) 2013/02/19 Released by Harlan Stenn <stenn@ntp.org>
* Added loc/debian.
(4.2.7p355) 2013/02/18 Released by Harlan Stenn <stenn@ntp.org>
* CID 739708: Check return status of fcntl() in refclock_arc.c.
* CID 739709: Check return status of fcntl() in refclock_datum.c.
* CID 739710: Check return status of mkdir() in sntp/kod_management.c.
* CID 739711: Ignore return status of remove() in ntp-keygen.c.
* CID 739723: Print sizeof as unsigned.
* CID 971094: Clean up time of check/time of use in check_leap_file().
(4.2.7p354) 2013/02/10 Released by Harlan Stenn <stenn@ntp.org>
* CID 97194: Check return from setsockopt().
* CID 739473,739532: Out-of-bounds access/illegal address computation.
* CID 739558: Double close.
* CID 739559: Double close.
* CID 739713: devmask/recmask copy/paste error.
* CID 739714: Fix code indentation level.
* CID 739715: Clean up sockaddr_dump().
(4.2.7p353) 2013/02/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] Check hourly for a new leapfile if the old one expired.
(4.2.7p352) 2013/01/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2326] Notice when a new leapfile has been installed.
(4.2.7p351) 2013/01/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2328] Don't apply small time adjustments on Windows versions
which don't support this.
(4.2.7p350) 2013/01/21 Released by Harlan Stenn <stenn@ntp.org>
* Added sntp/loc/netbsd based on info from Christos Zoulas.
(4.2.7p349) 2013/01/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2321] Fixed Windows build, but autogen update still required.
(4.2.7p348) 2013/01/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2327] Rename sntp/ag-tpl/:Old to sntp/ag-tpl/Old.
* Cleanup to ntpsnmpd-opts.def.
* Cleanup to ntpq.texi.
* Documentation cleanup to the ntpd, ntpdc, ntpq and ntp-wait
.def files.
* In ntp.conf.def, cleanup SEE ALSO, document 'rlimit' options.
* Add a reference to RFC5907 in the ntpsnmpd documentation.
(4.2.7p347) 2013/01/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2325] Re-enable mlockall() check under Linux post-1223 fix.
(4.2.7p346) 2013/01/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1223] reorganize inclusion of sys/resource.h.
(4.2.7p345) 2013/01/04 Released by Harlan Stenn <stenn@ntp.org>
* Update several .def files to use autogen-5.17 feature set.
(4.2.7p344) 2013/01/03 Released by Harlan Stenn <stenn@ntp.org>
* Refactor and enhance mdoc2texi.
* Make sure agtexi-file.tpl defines label-str.
* Cleanup to ntp.conf.def.
* Upgrade to autogen-5.17 and libopts-37.0.12.
(4.2.7p343) 2013/01/02 Released by Harlan Stenn <stenn@ntp.org>
* Update the copyright year.
(4.2.7p342) 2012/12/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2081 - Backward Incompatible] rawstats now logs everything.
(4.2.7p341) 2012/12/30 Released by Harlan Stenn <stenn@ntp.org>
(4.2.7p340) 2012/12/29 Released by Harlan Stenn <stenn@ntp.org>
* mdoc2texi fixes: trailing punctuation.
(4.2.7p339) 2012/12/26 Released by Harlan Stenn <stenn@ntp.org>
* mdoc2texi fixes: parseQuote, closing of list item tables.
* ntp-wait, ntpd, ntpdc, ntpq, ntpsnmpd autogen documentation updates.
(4.2.7p338) 2012/12/25 Released by Harlan Stenn <stenn@ntp.org>
* mdoc2texi fixes: Handle_ArCmFlIc, Handle_Fn, HandleQ.
* ntp-keygen autogen documentation updates.
* ntpq autogen docs.
(4.2.7p337) 2012/12/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1223] More final cleanup for rlimit changes.
(4.2.7p336) 2012/12/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1223] Final cleanup for rlimit changes.
(4.2.7p335) 2012/12/18 Released by Harlan Stenn <stenn@ntp.org>
* Update documentation templates and definitions.
* Create agtexi-file.tpl .
(4.2.7p334) 2012/12/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2114] Update tests for sntp's synch distance.
* Create ntp-keygen.{html,texi}.
(4.2.7p333) 2012/12/07 Released by Harlan Stenn <stenn@ntp.org>
* Autogen documentation cleanup.
(4.2.7p332) 2012/12/06 Released by Harlan Stenn <stenn@ntp.org>
* sntp documentation cleanup.
(4.2.7p331) 2012/12/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2114] Correctly calculate sntp's synch distance.
(4.2.7p330) 2012/12/03 Released by Harlan Stenn <stenn@ntp.org>
* autogen doc cleanup
(4.2.7p329) 2012/12/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2278] ACTS flag3 mismatch between code and driver18.html.
* Use an enum for the ACTS state table.
* html doc reconciliation with DLM's copy.
(4.2.7p328) 2012/11/30 Released by Harlan Stenn <stenn@ntp.org>
* html doc reconciliation with DLM's copy.
(4.2.7p327) 2012/11/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2024] Identify Events in the system status word in decode.html.'
* [Bug 2040] Provide a command-line option for the identity key bits.
* Create loc/darwin for Mac OSX
(4.2.7p326) 2012/11/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1214] 'proto: precision = ...' should be at INFO, not NOTICE.
* [Bug 2246] Clear sys_leap when voting says to disarm the leap.
(4.2.7p325) 2012/11/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2202] ntpq.html: there is no "acv" billboard.
* [Bug 2306] keep pps hack for Win32 even if user-mode/loopback
PPS API is activated on a serial line.
(4.2.7p324) 2012/11/19 Released by Harlan Stenn <stenn@ntp.org>
* Reinstate doc fix to authentic.html from Mike T.
* [Bug 1223] cleanup for rlimit changes.
* [Bug 2098] Install DLM's HTML documentation.
* [Bug 2306] Added user-mode/loop-back PPS API provider for Win32
(4.2.7p323) 2012/11/18 Released by Harlan Stenn <stenn@ntp.org>
* html/ updates from Dave Mills.
(4.2.7p322) 2012/11/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1223] Allow configurable values for RLIMIT_STACK and
RLIMIT_MEMLOCK.
* [Bug 1320] Log ntpd's initial command-line parameters. (updated fix)
* [Bug 2120] no sysexits.h under QNX.
* [Bug 2123] cleanup to html/leap.html.
(4.2.7p321) 2012/11/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1320] Log ntpd's initial command-line parameters.
(4.2.7p320) 2012/11/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 969] Clarify ntpdate.html documentation about -u and ntpd.
* [Bug 1217] libisc/ifiter_sysctl.c:internal_current(): Ignore RTM
messages with wrong version
(4.2.7p319) 2012/11/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2296] Fix compile problem with building with old OpenSSL.
(4.2.7p318) 2012/11/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2301] Remove spurious debug output from ntpq.
(4.2.7p317) 2012/11/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 922] Allow interspersed -4 and -6 flags on the ntpq command line.
(4.2.7p316) 2012/10/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2296] Update fix for Bug 2294 to handle --without-crypto.
(4.2.7p315) 2012/10/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2294] ntpd crashes in FIPS mode.
(4.2.7p314) 2012/10/23 Released by Harlan Stenn <stenn@ntp.org>
* Document a tricky malloc() of dns_ctx in sntp.
(4.2.7p313) 2012/10/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2291] sntp should report why it cannot open file.kod.
* [Bug 2293] add support for SO_BINTIME, refine support for
SO_TIMESTAMPNS (bug 1374)
(4.2.7p312) 2012/10/11 Released by Harlan Stenn <stenn@ntp.org>
* Clean up testing/debugging of fix for [Bug 938] from sntp/main.c .
(4.2.7p311) 2012/10/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 938] The argument to the -D flag takes a number, not a string.
* [Bug 1013] ntpdate's HTML page claims wrong default version.
* [Bug 1374] Support SO_TIMESTAMPNS.
(4.2.7p310) 2012/10/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1374] Support SO_TIMESTAMPNS.
* [Bug 2266] Remove deprecated refclock_trak.c from Windows Makefile
equivalents.
* [Bug 2274] Bring libopts/enum.c back to (old) ANSI C compliance.
(4.2.7p309) 2012/10/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2287] ntpdate returns 0 even if adjtime() call fails.
(4.2.7p308) 2012/09/29 Released by Harlan Stenn <stenn@ntp.org>
* CID 97198: Check return from ioctl() calls in refclock_acts.c.
(4.2.7p307) 2012/09/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1997] Fix sntp broadcast timeouts.
* [Bug 2234] Fix incorrect ntptrace html documentation.
* [Bug 2262] Install html docs in $htmldir.
* Fix typo in html/select.html.
(4.2.7p306) 2012/09/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 752] ToS cleanup from Mike Tatarinov.
(4.2.7p305) 2012/09/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 752] Use proper ToS network packet markings for IPv4 and IPv6.
* [Bug 1232] Convert SHM refclock to use struct timespec.
* [Bug 2258] Add syslog message about leap insertion.
* [Bug 2263] broadcast server doesn't work for host with
OS_MISSES_SPECIFIC_ROUTE_UPDATES.
* [Bug 2271] Decode refclock types when built with --disable-all-clocks.
* [Bug 2276] clk_sel240x.c #define's _XOPEN_SOURCE, breaking QNX6.
* Updates to driver28.html.
(4.2.7p304) 2012/09/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2264] Cleanup SEL240X Refclock.
* In refclock_wwv.c rename SECOND to WWV_SEC and MINUTE to WWV_MIN.
(4.2.7p303) 2012/09/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1232] Add nanosecond support to SHM driver.
(4.2.7p302) 2012/09/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2160] Log warning about expired leapseconds file.
(4.2.7p301) 2012/09/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2164] Greater precision needed for ntpq offset report.
* Clean the man5_MANS in ntpd/ .
(4.2.7p300) 2012/09/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2262] Install sntp.html into htmldir.
* [Bug 2270] Install fails due to repeated man5 page names.
(4.2.7p299) 2012/09/01 Released by Harlan Stenn <stenn@ntp.org>
* More cleanup to the bootstrap script.
(4.2.7p298) 2012/09/01 Released by Harlan Stenn <stenn@ntp.org>
* Handle additional man page sections in the bootstrap script.
* Remove extraneous parens.
* Add a missing "%s" syslog format string.
(4.2.7p297) 2012/09/01 Released by Harlan Stenn <stenn@ntp.org>
* Fix mdoc2man.
* Distribute ntp.conf.def and ntp.keys.def.
(4.2.7p296) 2012/08/31 Released by Harlan Stenn <stenn@ntp.org>
* Begin support for autogen maintaining ntp.conf and ntp.keys docs.
* Upgrade to autogen-5.16.2 and libopts-36.5.11.
* Potential bugfix for agtexi-cmd.tpl.
(4.2.7p295) 2012/08/11 Released by Harlan Stenn <stenn@ntp.org>
* Look for syslog's facilitynames[].
(4.2.7p294) 2012/08/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2242] configure fails to detect getifaddrs function on Solaris.
* [Bug 2249] Bad operator for 'test' in 'make check' of libevent.
* [Bug 2252] palisade: formats nanosecs to a 6-char field.
* Attempt to resolve strict-aliasing violation in refclock_tsyncpci.c.
* Fix && -> & typo in refclock_palisade.c debug statements.
(4.2.7p293) 2012/08/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2247] (more) Get rid of the TRAK refclock - deprecated since 2006.
* Documentation cleanup from Mike T.
* Cleanup kclk_sel240x.o rules in libparse/Makefile.am.
(4.2.7p292) 2012/08/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1545] Note why we are logging the Version string.
* [Bug 1872] Remove legacy ppsclock fdpps, #ifdef PPS.
* [Bug 2075] Fix spelling of 'incompatible'.
* [Bug 2247] Get rid of the TRAK refclock - deprecated since 2006.
* Clean up an exit status in ntpq.c.
(4.2.7p291) 2012/07/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2241] MDNS registration should only happen if requested.
(4.2.7p290) 2012/07/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1454] Add parse clock support for the SEL-240x GPS products.
* CID 709185: refclock_chu.c will leak fd==0 (better fix)
(4.2.7p289) 2012/07/16 Released by Harlan Stenn <stenn@ntp.org>
* CID 97123: Future-proof possible change to refclock_nmea.c.
* CID 97377: ntp-keygen.c's followlink() might not NUL-terminate.
* CID 709185: refclock_chu.c will leak fd==0 (which should be impossible).
(4.2.7p288) 2012/07/03 Released by Harlan Stenn <stenn@ntp.org>
* CID 709173: Make sure a libisc function we do not use is called properly.
(4.2.7p287) 2012/07/03 Released by Harlan Stenn <stenn@ntp.org>
* Remove 1024 associations-per-server limit from ntpq.
* Remove blank line between ntpq mreadvar associations.
(4.2.7p286) 2012/06/28 Released by Harlan Stenn <stenn@ntp.org>
* CID 97193: check return from sscanf() in ntp_config.c.
* CID 709169: check return from open("/dev/null", 0) and friends.
* CID 709207: Initialize "quality" for ulink_receive.
(4.2.7p285) 2012/06/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2227] Enable mrulist access control via "restrict ... nomrulist".
* Automake-1.12 wants us to use AM_PROG_AR.
* Conditionalize msyslog messages about rejected mode 6 requests due to
nomodify and nomrulist restrictions under "logconfig +sysinfo".
* Increment sys_restricted in a few rejection paths due to nomodify
restrictions where previosuly overlooked.
(4.2.7p284) 2012/06/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2225] libevent configure hangs.
* Update bundled libevent to git master, post libevent 2.1.1-alpha.
(4.2.7p283) 2012/06/16 Released by Harlan Stenn <stenn@ntp.org>
* In sntp/m4/ntp_openssl.m4, Support multiple package names for the
crypto library. Add legacy support for -Wl,-rpath.
(4.2.7p282) 2012/06/15 Released by Harlan Stenn <stenn@ntp.org>
* tickadj may need to be linked with PTHREAD_LIBS.
(4.2.7p281) 2012/06/14 Released by Harlan Stenn <stenn@ntp.org>
* U_INT32_MAX cleanup in include/ntp_types.h .
* When linking, ntp_keygen and tickadj need $(LIBM).
(4.2.7p280) 2012/06/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2224] Use-after-free in routing socket code after dropping root.
(4.2.7p279) 2012/06/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2211] findbcastinter(): possibly undefined variable iface used.
* [Bug 2220] Incorrect check for maximum association id in ntpq.
(4.2.7p278) 2012/06/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2204] Build with --enable-getifaddrs=glibc fails.
* [Bug 2178] refclock_tsyncpci.c reach register fails to shift.
* [Bug 2191] dcfd -Y y2kcheck on CentOS 6.2 x86_64 breaks make check.
(4.2.7p277) 2012/05/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2193] Building timestruct tests with Clang 3.1 fails.
(4.2.7p276) 2012/05/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2179] Remove sntp/header.h.
(4.2.7p275) 2012/04/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1744] Remove obsolete ntpdate/ntptime* items.
(4.2.7p274) 2012/04/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2174] ntpd rejects source UDP ports less than 123 as bogus.
(4.2.7p273) 2012/04/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2141] handle_sigio() calls get_systime(), which must be
reentrant when SIGIO is used. Sanity checks relative to the prior
get_systime() are disabled in ntpd on systems with signaled I/O, but
active in sntp and ntpdate.
* Correct authnumfreekeys accounting broken in 4.2.7p262.
(4.2.7p272) 2012/04/14 Released by Harlan Stenn <stenn@ntp.org>
* LCRYPTO is gone - replace with VER_SUFFIX.
* Change the link order for ntpsntpd.
* Remove extra 'nlist' check from configure.ac.
(4.2.7p271) 2012/04/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1122] openssl detection via pkg-config fails when no additional
-Idir flags are needed.
* Avoid overwriting user variable LDFLAGS with OpenSSL flags, instead
they are added to LDFLAGS_NTP.
(4.2.7p270) 2012/03/26 Released by Harlan Stenn <stenn@ntp.org>
* Update driver45.html page.
(4.2.7p269) 2012/03/25 Released by Harlan Stenn <stenn@ntp.org>
* Clean up configure.ac.
* Cleanup configure.ac's TSYNC PCI section.
(4.2.7p268) 2012/03/24 Released by Harlan Stenn <stenn@ntp.org>
* Update driver45.html page.
(4.2.7p267) 2012/03/23 Released by Harlan Stenn <stenn@ntp.org>
* Initial cut at a basic driver45.html page.
(4.2.7p266) 2012/03/21 Released by Harlan Stenn <stenn@ntp.org>
* Add refclock_tsyncpci.c (driver 45) supporting Spectracom TSYNC timing
boards.
(4.2.7p265) 2012/03/20 Released by Harlan Stenn <stenn@ntp.org>
* Treat zero counter as indication of precise system time in Windows
PPSAPI helper function pps_ntp_timestamp_from_counter(), enabling
PPSAPI providers to use the Windows 8 precise clock directly.
(4.2.7p264) 2012/03/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2160] Note if leapseconds file is past its prime.
* Use GetSystemTimePreciseAsFileTime() on Windows 8.
(4.2.7p263) 2012/03/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2156] clock instability with LOCAL driver, from Miroslav Lichvar.
* [Bug 2159] Windows ntpd using leapfile erroneous leap second 20120401.
(4.2.7p262) 2012/02/29 Released by Harlan Stenn <stenn@ntp.org>
* Improve ntpd scalability for servers with many trusted keys.
(4.2.7p261) 2012/02/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2048] add the clock variable timecode to SHM refclock.
(4.2.7p260) 2012/02/24 Released by Harlan Stenn <stenn@ntp.org>
* Fix the check-scm-rev invocation in several Makefile.am's.
(4.2.7p259) 2012/02/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2148] ntpd 4.2.7p258 segfault with 0x0100000 bit in NMEA mode.
* refclock_nmea.c merge cleanup thanks to Juergen Perlinger.
(4.2.7p258) 2012/02/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2140] Rework of Windows I/O completion port handling to avoid
garbling serial input in UNIX line discipline emulation.
* [Bug 2143] NMEA driver: discard data if quality indication not good,
add statistic counters (mode bit enabled) to clockstats file.
(4.2.7p257) 2012/02/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2135] defer calls to 'io_input' to main thread under Windows.
(4.2.7p256) 2012/02/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2131] Set the system variable settimeofday only after clock step.
* [Bug 2134] --enable-C99-snprintf does not force rpl_snprintf use.
(4.2.7p255) 2012/01/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 603] Only link with nlist()-related libraries when needed:
More cleanup.
(4.2.7p254) 2012/01/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 603] Only link with nlist()-related libraries when needed.
(4.2.7p253) 2012/01/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2126] Compile error on Windows with libopts from Autogen 5.14.
* Update one of the license URLs.
(4.2.7p252) 2012/01/25 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.14 (and libopts-36.1.11).
(4.2.7p251) 2012/01/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2115] ntptrace should accept both rootdispersion and rootdisp.
(4.2.7p250) 2012/01/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2113] Warn about ignored extra args in ntpq.
* Update the copyright year.
(4.2.7p249) 2012/01/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2111] Remove minpoll delay before iburst for pool and
manycastclient.
* Move refclock-specific scheduled timer code under #ifdef REFCLOCK
and move "action" and "nextaction" data for same from struct peer to
struct refclockproc. These provide a way to schedule a callback some
seconds in the future.
(4.2.7p248) 2012/01/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2109] "make clean check" is broken with gtest available.
* [Bug 2110] systime.c typo breaks build on microsecond clocks.
(4.2.7p247) 2012/01/07 Released by Harlan Stenn <stenn@ntp.org>
* Fix build break triggered by updating deps-ver and libntp/systime.c at
the same time by explicitly depending systime_s.c on systime.c.
(4.2.7p246) 2012/01/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2104] ntpdc fault with oversize -c command.
* [Bug 2106] Fix warnings when using -Wformat-security.
* Refactor timespecops.h and timevalops.h into inline functions.
(4.2.7p245) 2011/12/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2100] conversion problem with timespec/timeval <--> l_fp fixed;
added tests to expose the bug.
(4.2.7p244) 2011/12/25 Released by Harlan Stenn <stenn@ntp.org>
* Updates from 4.2.6p5.
(4.2.7p243) 2011/12/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2095] ntptrace now needs 'rv' instead of 'pstat', reported
by Michael Tatarinov.
(4.2.7p242) 2011/12/21 Released by Harlan Stenn <stenn@ntp.org>
* Include missing html/icons/sitemap.png, reported by Michael Tatarinov.
* Documentation updates from Dave Mills.
(4.2.7p241) 2011/12/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2015] Overriding sys_tick should recalculate sys_precision.
* [Bug 2037] Fuzzed non-interpolated clock may decrease.
* [Bug 2068] "tos ceiling" default and cap changed to 15.
* Floor peer delay using system precision, as with jitter, reflecting
inability to measure shorter intervals.
(4.2.7p240) 2011/12/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2092] clock_select() selection jitter miscalculated.
* [Bug 2093] Reintroduce smaller stratum factor to system peer metric.
(4.2.7p239) 2011/12/11 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p238) 2011/12/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2082] from 4.2.6p5-RC3: 3-char refid sent by ntpd 4.2.6p5-RC2
ends with extra dot.
* [Bug 2085] from 4.2.6p5-RC3: clock_update() sys_rootdisp calculation
omits root delay.
* [Bug 2086] from 4.2.6p5-RC3: get_systime() should not offset by
sys_residual.
* [Bug 2087] from 4.2.6p5-RC3: sys_jitter calculation overweights
sys.peer jitter.
* from 4.2.6p5-RC3: Ensure NULL peer->dstadr is not accessed in orphan
parent selection.
(4.2.7p237) 2011/12/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2050] from 4.2.6p5-RC2: Orphan mode stratum counting to infinity.
* [Bug 2059] from 4.2.6p5-RC2: optional billboard column "server" does
not honor -n.
* [Bug 2066] from 4.2.6p5-RC2: ntpq lopeers ipv6 "local" column overrun.
* [Bug 2068] from 4.2.6p5-RC2: ntpd sends nonprintable stratum 16 refid
to ntpq.
* [Bug 2069] from 4.2.6p5-RC2: broadcastclient, multicastclient spin up
duplicate ephemeral associations without broadcastdelay.
* [Bug 2072] from 4.2.6p5-RC2: Orphan parent selection metric needs
ntohl().
* [Bug 2073] Correct ntpq billboard's MODE_PASSIVE t from 'u' to 'S'.
* from 4.2.6p5-RC2: Exclude not-yet-determined sys_refid from use in
loopback TEST12 (from Dave Mills).
* from 4.2.6p5-RC2: Never send KoD rate limiting response to MODE_SERVER.
* Floor calculation of sys_rootdisp at sys_mindisp in clock_update (from
Dave Mills).
* Restore 4.2.6 clock_combine() weighting to ntp-dev, reverting to pre-
4.2.7p70 method while also avoiding divide-by-zero (from Dave Mills).
* Round l_fp traffic interval when converting to integer in rate limit
and KoD calculation.
(4.2.7p236) 2011/11/16 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p235) 2011/11/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2052] Autokey CRYPTO_ASSOC host@group vallen needs checking.
(4.2.7p234) 2011/11/07 Released by Harlan Stenn <stenn@ntp.org>
* Clean up -libm entries regarding libntp.a
(4.2.7p233) 2011/11/06 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p232) 2011/11/05 Released by Harlan Stenn <stenn@ntp.org>
* Update the NEWS file so we note the default disable of mode 7 requests.
* Clean up some bitrotted code in libntp/socket.c.
(4.2.7p231) 2011/11/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1940] ignore auth key if hex decoding fails.
* Add ntpq reslist command to query access restrictions, similar to
ntpdc's reslist.
(4.2.7p230) 2011/11/01 Released by Harlan Stenn <stenn@ntp.org>
* Disable mode 7 (ntpdc) query processing in ntpd by default. ntpq is
believed to provide all functionality ntpdc did, and uses a less-
fragile protocol that's safer and easier to maintain. If you do find
some management via ntpdc is needed, you can use "enable mode7" in the
ntpd configuration.
* Directly limit the number of datagrams in a mrulist response, rather
than limiting the number of entries returned to indirectly limit the
datagram count.
* Documentation updates from Dave Mills.
(4.2.7p229) 2011/10/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1995] fix wrong use of ZERO() macro in 'ntp_calendar.c'
(4.2.7p228) 2011/10/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1995] add compile time stamp based era unfolding for
'step_systime()' and necessary support to 'ntp-calendar.c'.
(4.2.7p227) 2011/10/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2036] gcc 2.95.3 preprocessor can't nest #ifdef in macro args.
* A number of compiler warnings eliminated.
(4.2.7p226) 2011/10/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2035] ntpq -c mrulist sleeps 1 sec between queries, not 5 msec.
* Documentation updates from Dave Mills.
(4.2.7p225) 2011/10/15 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p224) 2011/10/14 Released by Harlan Stenn <stenn@ntp.org>
* ntpq mrulist shows intermediate counts every five seconds while
retrieving list, and allows Ctrl-C interruption of the retrieval,
showing the incomplete list as retrieved. Reduce delay between
successive mrulist retrieval queries from 30 to 5 msec. Do not
give up mrulist retrieval when a single query times out.
(4.2.7p223) 2011/10/12 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p222) 2011/10/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2029] "make check" clutters syslog.
* Log signal description along with number on ntpd exit.
(4.2.7p221) 2011/10/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2025] Switching between daemon and kernel loops can doubly-
correct drift
* [Bug 2028] ntpd -n (nofork) redirects logging to stderr.
* Documentation updates from Dave Mills.
(4.2.7p220) 2011/10/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1945] mbg_gps166.h use of _TM_DEFINED conflicts with MS VC.
* [Bug 1946] parse_start uses open; does not work on Windows.
* [Bug 1947] Porting parse-based Wharton refclock driver to Windows.
* [Bug 2024] Remove unused system event code EVNT_CLKHOP.
(4.2.7p219) 2011/10/04 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p218) 2011/10/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2019] Allow selection of cipher for private key files.
* Documentation updates from Dave Mills.
* ntp-keygen private key cipher default now triple-key triple DES CBC.
* ntp-keygen -M is intended to ignore all other defaults and
options, so do not attempt to open existing Autokey host certificate
before generating symmetric keys and terminating.
* Restore IFF, MV, and GQ identity parameter filename convention to
ntpkey_<scheme>par_<group/host> in ntpd, matching ntp-keygen.
* Change some error logging to syslog to ignore logconfig mask, such
as reporting PPSAPI failure in NMEA and WWVB refclocks.
* ntp-keygen on Windows XP and later systems will now create links
expected by ntpd. They are hardlinks on Windows, soft on POSIX.
* Conditionalize NMEA serial open message under clockevent.
* Send all peer variables to trappers in report_event().
(4.2.7p217) 2011/09/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2020] ntp-keygen -s no longer sets host in cert file name.
* [Backward Incompatible] ntp-keygen -i option long name changed from
misleading --issuer-name to --ident.
(4.2.7p216) 2011/09/27 Released by Harlan Stenn <stenn@ntp.org>
* sntp documentation tag cleanup.
* mdoc2man improvements.
(4.2.7p215) 2011/09/24 Released by Harlan Stenn <stenn@ntp.org>
* Use patched mdoc2man script, from Eric Feng.
* Sync with ntp-4.2.6p4 (a no-op).
(4.2.7p214) 2011/09/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1981] Initial offset convergence applies frequency correction 2x
with kernel discipline.
* [Bug 2008] Initial offset convergence degraded with 500 PPM adjtime().
* [Bug 2009] EVNT_NSET adj_systime() mishandled by Windows ntpd.
(4.2.7p213) 2011/09/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1999] NMEA does not send PMOTG messages any more.
(4.2.7p212) 2011/09/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2003] from 4.2.6p4-RC3: ntpq_read_assoc_peervars() broken.
(4.2.7p211) 2011/09/01 Released by Harlan Stenn <stenn@ntp.org>
* Update libevent to git head (2.1 branch) as of 2.0.14-stable.
(4.2.7p210) 2011/08/31 Released by Harlan Stenn <stenn@ntp.org>
* Require -D4 or higher for ntpd SIGALRM debug trace from [Bug 2000].
(4.2.7p209) 2011/08/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2000] ntpd worker threads must block signals expected in main
thread.
* [Bug 2001] add ntpq -c timerstats like ntpdc -c timerstats.
* [Bug 2001] from 4.2.6p4-RC3: ntpdc timerstats reports overruns as
handled.
* Update sntp tests to track the change of root dispersion to
synchronization distance.
(4.2.7p208) 2011/08/24 Released by Harlan Stenn <stenn@ntp.org>
* Fix the CLOCK_MONOTONIC TRACE() message.
(4.2.7p207) 2011/08/22 Released by Harlan Stenn <stenn@ntp.org>
* Restore the original CLOCK_MONOTONIC output format in sntp.
* Cleanups for ntp-wait-opts.def and ntp.keys.def .
(4.2.7p206) 2011/08/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1993] ntpd Windows port adj_systime() broken in 4.2.7p203.
* sntp documentation and behavior improvements suggested by
Steven Sommars.
* Have sntp report synchronization distance instead of root dispersion.
* Clean up ntp-wait-opts.def .
(4.2.7p205) 2011/08/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1992] util/tg2 doesn't compile, needs libntp.
(4.2.7p204) 2011/08/16 Released by Harlan Stenn <stenn@ntp.org>
* Added support for Garmin's $PGRMF sentence to NMEA driver
* [Bug 1988] Better sntp send failed error message needed.
* [Bug 1989] sntp manual page sometimes refers to SNTP as a program.
* [Bug 1990] sntp output should include stratum.
(4.2.7p203) 2011/08/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1986] Require Visual C++ 2005 or later compilers in Windows port.
* Actually use long long for (u_)int64 by correcting spelling of
SIZEOF_LONG_LONG in ntp_types.h.
* Force .exe minimum Windows version to 0x0400 to allow NT4 in
vs2005/*.vcproj files.
* Fix make distcheck with --enable-libevent-regress problem with
unwritable $srcdir.
* Correct init_logging()'s def_syslogmask type to u_int32 following
change of ntp_syslogmask from u_long to u_int32 in p202.
(4.2.7p202) 2011/08/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1983] --without-sntp build breaks in sntp subdir.
* [Bug 1984] from 4.2.6p4-RC3: ntp/libisc fails to compile on OS X 10.7.
* [Bug 1985] from 4.2.6p4-RC3: "logconfig =allall" rejected.
(4.2.7p201) 2011/08/05 Released by Harlan Stenn <stenn@ntp.org>
* sntp: change -h/--headspace to -g/--gap, and change the default gap
from 10 to 50ms
* [Backward Incompatible] from 4.2.6p4: sntp: -l/--filelog ->
-l/--logfile, to be consistent with ntpd.
* Documentation updates from Dave Mills.
* From 4.2.6p4: libopts/file.c fix from Bruce Korb (arg-type=file).
(4.2.7p200) 2011/08/04 Released by Harlan Stenn <stenn@ntp.org>
* Sync with 4.2.6p4-RC2.
(4.2.7p199) 2011/07/29 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p198) 2011/07/28 Released by Harlan Stenn <stenn@ntp.org>
* remove old binsubdir stuff from SNTP, as NTP_LOCINFO does that now.
(4.2.7p197) 2011/07/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1975] from 4.2.6p4-RC2: libntp/mktime.c won't work with 64-bit
time_t
* [Bug 1976] genLocInfo writes to srcdir break 'make distcheck'.
* [Bug 1977] Fix flag/description mismatches in ntp-keygen-opts.def.
* Do not force "legacy" when --with-locfile is not given, genLocInfo
will find the correct default for the system.
* Fix warnings in ntp_request.c ([Bug 1973] oversight) and sntp/main.c
(CID 159, apparent overrun due to union, actually correct).
* Update sntp/loc/solaris to conform to stock locations.
(4.2.7p196) 2011/07/27 Released by Harlan Stenn <stenn@ntp.org>
* DEFAULT INSTALLATION DIRECTORY CHANGES ON SOME OSes: to get the old
behavior, pass --with-locfile=legacy to 'configure'
* [Bug 1972] from 4.2.6p4-RC2: checking for struct rtattr fails.
* [Bug 1973] Widen reference clock mode from 8 to 32 bits.
* Removed sntp/m4/ntp_bindir.m4 - no longer needed.
* Move loc/ to sntp/loc/ .
* Move scripts/cvo.sh to sntp/scripts/cvo.sh .
* Move scripts/genLocInfo to sntp/scripts/genLocInfo .
* Give NTP_LOCINFO an optional path-to argument.
* Remove hacks to get NTP_LOCINFO-related data to sntp/ .
* Move sntp/include/mansec2subst.sed to sntp/scripts/mansec2subst.sed .
* If no "more specific" loc file is found for redhat* or fedora*,
look for a loc/redhat file.
* If no "more specific" loc file is found and uname says this is Linux,
look for a loc/linux file.
* Improve the help text: --with-locfile=XXX .
* work around solaris /bin/sh issues for genLocInfo.
(4.2.7p195) 2011/07/25 Released by Harlan Stenn <stenn@ntp.org>
* Added loc/redhat.
(4.2.7p194) 2011/07/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1608] from 4.2.6p4-RC2: Parse Refclock driver should honor
trusttime.
* Add support for installing programs and scripts to libexec.
* Added loc/solaris.
(4.2.7p193) 2011/07/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1970] from 4.2.6p4-RC2: UNLINK_EXPR_SLIST() causes crash if list
is empty.
* Update libevent to 2.1 HEAD as of merge of 2.0.13-stable-dev.
* Match addr_eqprefix() sizeof and memcpy destination to make it clear
to static analysis that there is no buffer overrun (CID 402).
(4.2.7p192) 2011/07/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1966] Broken FILES section for ntp.keys.def.
(4.2.7p191) 2011/07/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1948] Update man page section layout.
* [Bug 1963] add reset command for ntpq :config, similar to ntpdc's.
* [Bug 1964] --without-sntp should not build sntp.
(4.2.7p190) 2011/07/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1961] from 4.2.6p4: html2man update: distribute ntp-wait.html.
* Require autogen-5.12.
(4.2.7p189) 2011/07/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1134] from 4.2.6p4-RC1: ntpd fails binding to tentative IPv6
addresses.
* [Bug 1790] from 4.2.6p4-RC1: Update config.guess and config.sub to
detect AIX6.
(4.2.7p188) 2011/06/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1958] genLocInfo must export PATH.
* ntp-wait: some versions of ntpd spell "associd" differently.
(4.2.7p187) 2011/06/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1954] Fix typos in [s]bin_PROGRAMS in ntpd/Makefile.am.
* Implement --with-locfile=filename configure argument. If filename is
empty we'll look under loc/ for a good fit. If the filename contains
a / character, it will be treated as a "normal" pathname. Otherwise,
that explicit file will be searched for under loc/ .
(4.2.7p186) 2011/06/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1950] Control installation of event_rpcgen.py.
* Update .point-changed-filelist for the new man pages.
* Update the building of OS-specific programs.
* Finish conversion to genLocInfo.
* validate MANTAGFMT in genLocInfo.
* Documentation update from Dave Mills.
(4.2.7p185) 2011/06/21 Released by Harlan Stenn <stenn@ntp.org>
* ntp_locs.m4: handle the case where . is not in the PATH.
* More genLocInfo cleanup.
(4.2.7p184) 2011/06/20 Released by Harlan Stenn <stenn@ntp.org>
* Added ntp_locs.m4.
* genLocInfo improvements.
* Add the man page tag "flavor" to the loc.* files.
* Add/distribute genLocInfo.
(4.2.7p183) 2011/06/19 Released by Harlan Stenn <stenn@ntp.org>
* Update the autogen include list for scripts/Makefile.am.
* Added loc.freebsd (and distribute it).
* Added loc.legacy (and distribute it).
(4.2.7p182) 2011/06/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1304] Update sntp.html to reflect new implementation.
* Update .point-changed-filelist .
* ntpdc documentation fixes.
* Update ntp-wait autogen docs.
* Update the ntpd autogen docs.
* Update the ntpsnmpd autogen docs.
* Use autogen to produce ntp-keygen docs.
* Add "license name" to ntp.lic for autogen-5.11.10.
* Prepare for ntp.keys.5.
(4.2.7p181) 2011/06/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1938] addr_eqprefix() doesn't clear enough storage.
(4.2.7p180) 2011/06/06 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to libevent-2.0.12.
* More sntp.1 cleanups.
* Produce ntpq.1 with the new autogen macros.
* Remove the deprecated "detail" stanza from ntpdc-opts.def.
(4.2.7p179) 2011/06/03 Released by Harlan Stenn <stenn@ntp.org>
* Update cmd-doc.tlib to autogen-5.11.10pre5.
* Upgrade local autoopts templates to 5.11.10pre5.
(4.2.7p178) 2011/06/02 Released by Harlan Stenn <stenn@ntp.org>
* Update the std_def_list to include the ntp.lic file.
* Distribute the ntp.lic file.
* Add http://ntp.org/license to the ntp.lic file.
(4.2.7p177) 2011/06/01 Released by Harlan Stenn <stenn@ntp.org>
* Use the latest autogen's new copyright template code.
* Clean up the ntp.lic file.
(4.2.7p176) 2011/05/31 Released by Harlan Stenn <stenn@ntp.org>
* sntp documentation cleanup.
* autogen documentation template cleanup.
(4.2.7p175) 2011/05/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1936] Correctly set IPV6_MULTICAST_LOOP.
* cmd-doc.tlib cleanup from Bruce Korb.
* sntp documentation cleanup.
(4.2.7p174) 2011/05/28 Released by Harlan Stenn <stenn@ntp.org>
* ntpdc documentation cleanup.
* sntp documentation cleanup.
* Don't build libevent with openssl support. Right now, libevent
doesn't use pkg-config to find openssl's installation location.
(4.2.7p173) 2011/05/25 Released by Harlan Stenn <stenn@ntp.org>
* Typo in emalloc.c hides file and line number from emalloc() error msg.
* parsesolaris.c compile fails on SPARC Solaris with conflicting printf.
* ntp_util.c compile fails on AIX and OSF with conflicting statsdir.
(4.2.7p172) 2011/05/24 Released by Harlan Stenn <stenn@ntp.org>
* Remove hardcoded 1/960 s. fudge for <CR> transmission time at 9600 8n1
from WWVB/Spectracom driver introduced in 4.2.7p169.
(4.2.7p171) 2011/05/23 Released by Harlan Stenn <stenn@ntp.org>
* Eliminate warnings about shadowing global "basename" on Linux.
* Use filegen_config() consistently when changing filegen options.
* mprintf() should go to stdout, not stderr. DPRINTF() uses mprintf().
* Repair a few simulator problems (more remain).
* Documentation updates from Dave Mills.
(4.2.7p170) 2011/05/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1932] libevent/util_internal.h builtin_expect compile error with
gcc 2.95.
* Use 64-bit scalars in LFPTOD() and DTOLFP() on more platforms by
conditionalizing on HAVE_U_INT64 rather than UINT64_MAX.
(4.2.7p169) 2011/05/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1933] WWVB/Spectracom driver timestamps LFs, not CRs.
(4.2.7p168) 2011/05/16 Released by Harlan Stenn <stenn@ntp.org>
* Convert receive buffer queue from doubly-linked list to FIFO.
(4.2.7p167) 2011/05/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1927] io_closeclock() should purge pending recvbufs.
* [Bug 1931] cv always includes fudgetime1, never fudgetime2.
* Use acts_close() in acts_shutdown() to avoid leaving a stale lockfile
if unpeered via runtime configuration while the modem is open.
* Correct acts_close() test of pp->io.fd to see if it is open.
* 4.2.7p164 documentation updates re: 'tos orphanwait' expanded scope.
(4.2.7p166) 2011/05/13 Released by Harlan Stenn <stenn@ntp.org>
* If we have local overrides for autogen template files, use them.
* Convert more of the sntp-opt.def documentation from man to mdoc.
(4.2.7p165) 2011/05/11 Released by Harlan Stenn <stenn@ntp.org>
* Convert snmp docs to mdoc format, which requires autogen 5.11.9.
* from 4.2.6p4-RC1: Require autogen 5.11.9.
(4.2.7p164) 2011/05/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 988] Local clock eats up -g option, so ntpd stops with large
initial time offset.
* [Bug 1921] LOCAL, ACTS drivers with "prefer" excluded from initial
candidate list.
* [Bug 1922] "tos orphanwait" applied incorrectly at startup.
* [Bug 1923] orphan parent favored over LOCAL, ACTS drivers.
* [Bug 1924] Billboard tally codes sometimes do not match operation,
variables.
* Change "pool DNS" messages from msyslog to debug trace output.
* Remove unused FLAG_SYSPEER from peer->status.
* Respect "tos orphanwait" at startup. Previously there was an
unconditional 300 s. startup orphanwait, though other values were
respected for subsequent orphan wait periods after no_sys_peer events.
* Apply "tos orphanwait" (def. 300 seconds) to LOCAL and ACTS reference
clock drivers, in addition to orphan parent operation. LOCAL and ACTS
are not selectable during the orphanwait delay at startup and after
each no_sys_peer event. This prevents a particular form of clock-
hopping, such as using LOCAL briefly at startup before remote peers
are selectable. This fixes the issue reported in [Bug 988].
* Documentation updates from Dave Mills.
(4.2.7p163) 2011/05/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1911] missing curly brace in libntp/ntp_rfc2553.c
(4.2.7p162) 2011/05/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1910] Support the Tristate Ltd. TS-GPSclock-01.
(4.2.7p161) 2011/05/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1904] 4.2.7p160 Windows build broken (POSIX_SHELL).
* [Bug 1906] 4.2.7p160 - libtool: compile: cannot determine name of
library object in ./libevent
* Share a single sntp/libevent/build-aux directory between all three
configure scripts.
* Add missing --enable-local-libevent help to top-level configure.
(4.2.7p160) 2011/05/01 Released by Harlan Stenn <stenn@ntp.org>
* from 4.2.6p4-RC1: Upgrade to libopts 35.0.10 from AutoGen 5.11.9pre8.
* [Bug 1901] Simulator does not set progname.
(4.2.7p159) 2011/04/28 Released by Harlan Stenn <stenn@ntp.org>
* Fix a couple of unused variable warnings.
* cleanup in timespecops.c / timevalops.c
(4.2.7p158) 2011/04/24 Released by Harlan Stenn <stenn@ntp.org>
* Update libevent --disable-libevent-regress handling to work when
building libevent using mingw.
(4.2.7p157) 2011/04/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1890] 4.2.7p156 segfault in duplicate freeaddrinfo().
(4.2.7p156) 2011/04/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1851] freeaddrinfo() called after getaddrinfo() fails.
(4.2.7p155) 2011/04/18 Released by Harlan Stenn <stenn@ntp.org>
* Fix leak in refclock_datum.c start failure path.
(4.2.7p154) 2011/04/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1887] DNS fails on 4.2.7p153 using threads.
(4.2.7p153) 2011/04/16 Released by Harlan Stenn <stenn@ntp.org>
* A few more Coverity Scan cleanups.
(4.2.7p152) 2011/04/15 Released by Harlan Stenn <stenn@ntp.org>
* Update embedded libevent to current 2.1 git HEAD.
(4.2.7p151) 2011/04/14 Released by Harlan Stenn <stenn@ntp.org>
* Detect vsnprintf() support for "%m" and disable our "%m" expansion.
* Add --enable-c99-sprintf to configure args for -noopenssl variety of
flock-build to avoid regressions in (v)snprintf() replacement.
* More msnprintf() unit tests.
* Coverity Scan error checking fixes.
* Log failure to fetch time from HOPF_P hardware.
* Check HOPF_S sscanf() conversion count before converted values.
(4.2.7p150) 2011/04/13 Released by Harlan Stenn <stenn@ntp.org>
* Remove never-used, incomplete ports/winnt/ntpd/refclock_trimbledc.[ch]
* On systems without C99-compliant (v)snprintf(), use C99-snprintf
replacements (http://www.jhweiss.de/software/snprintf.html)
* Remove remaining sprintf() calls except refclock_ripencc.c (which is
kept out of --enable-all-clocks as a result), upstream libs which use
sprintf() only after careful buffer sizing.
(4.2.7p149) 2011/04/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1881] describe the {+,-,s} characters in configure --help output.
(4.2.7p148) 2011/04/09 Released by Harlan Stenn <stenn@ntp.org>
* Use _mkgmtime() as timegm() in the Windows port, rather than
libntp/mktime.c's timegm(). Fixed [Bug 1875] on Windows using the old
asn2ntp() code from before 4.2.7p147.
* ntp_crypto.c string buffer safety.
* Remove use of MAXFILENAME in mode 7 (ntpdc) on-wire structs.
* Change ntpd MAXFILENAME from 128 to 256 to match ntp-keygen.
* Buffer safety and sign extension fixes (thanks Coverity Scan).
(4.2.7p147) 2011/04/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1875] 'asn2ntp()' rewritten with 'caltontp()'; 'timegm()'
substitute likely to crash with 64bit time_t.
(4.2.7p146) 2011/04/05 Released by Harlan Stenn <stenn@ntp.org>
* String buffer safety cleanup, converting to strlcpy() and strlcat().
* Use utmpname() before pututline() so repeated steps do not
accidentally record into wtmp where utmp was intended.
* Use setutent() before each pututline() including first.
(4.2.7p145) 2011/04/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1840] ntp_lists.h FIFO macros buggy.
(4.2.7p144) 2011/04/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1874] ntpq -c "rv 0 sys_var_list" empty.
(4.2.7p143) 2011/03/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1732] ntpd ties up CPU on disconnected USB refclock.
* [Bug 1861] tickadj build failure using uClibc.
* [Bug 1862] in6addr_any test in configure fooled by arm gcc 4.1.3 -O2.
* Remove kernel line discipline driver code for clk and chu, deprecate
related LDISC_ flags, and remove associated ntpd code to decode the
timestamps, remove clktest line discipline test program.
* Remove "signal_no_reset: signal 17 had flags 4000000" logging, as it
indicates no problem and is interpreted as an error. Previously some
bits had been ignored one-by-one, but Linux SA_RESTORER definition is
unavailable to user headers.
(4.2.7p142) 2011/03/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1844] ntpd 4.2.7p131 NetBSD, --gc-sections links bad executable.
* Fix "make distcheck" break in libevent/sample caused by typo.
(4.2.7p141) 2011/03/20 Released by Harlan Stenn <stenn@ntp.org>
* Add "ntpq -c iostats" similar to "ntpdc -c iostats".
* Compare entire timestamp to reject duplicates in refclock_pps().
(4.2.7p140) 2011/03/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1848] ntpd 4.2.7p139 --disable-thread-support does not compile.
* Add --disable-thread-support to one flock-build variation.
* One more lock-while-init in lib/isc/task.c to quiet lock analysis.
(4.2.7p139) 2011/03/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1848] make check ntpd --saveconfigquit clutters syslog.
(4.2.7p138) 2011/03/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1846] MacOSX: debug symbol not found by propdelay or tickadj.
(4.2.7p137) 2011/03/07 Released by Harlan Stenn <stenn@ntp.org>
* Use TRACE() instead of DPRINTF() for libntp and utilities, which
use the "debug" variable regardless of #ifdef DEBUG.
* Declare debug in libntp instead of each program. Expose extern
declaration to utilities, libntp, and DEBUG ntpd.
* Lock under-construction task, taskmgr objects to satisfy Coverity's
mostly-correct assumptions about which variables are protected by
which locks.
(4.2.7p136) 2011/03/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1839] 4.2.7p135 still installs libevent ev*.h headers.
(4.2.7p135) 2011/03/02 Released by Harlan Stenn <stenn@ntp.org>
* libevent: When building on systems with CLOCK_MONOTONIC available,
separate the internal timeline (possibly counting since system boot)
from the gettimeofday() timeline in event_base cached timevals. Adds
new event_base_tv_cached() to retrieve cached callback round start
time on the internal timeline, and changes
event_based_gettimeofday_cached() to always return times using the
namesake timeline. This preserves the benefit of using the never-
stepped monotonic clock for event timeouts while providing clients
with times consistently using gettimeofday().
* Correct event_base_gettimeofday_cached() workaround code in
sntp to work with corrected libevent.
* Remove sntp l_fp_output() test now that it uses prettydate().
* [Bug 1839] 4.2.7p131 installs libevent ev*.h headers.
* Ensure CONFIG_SHELL is not empty before relying on it for #! scripts.
(4.2.7p134) 2011/02/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1837] Build fails on Win7 due to regedit requiring privilege.
* Provide fallback definitions for GetAdaptersAddresses() for Windows
build environments lacking iphlpapi.h.
* Rename file containing 1.xxxx ChangeSet revision from version to
scm-rev to avoid invoking GNU make implicit rules attempting to
compile version.c into version. Problem was with sntp/version.o
during make distcheck after fix for spurious sntp rebuilds.
* Add INC_ALIGNED_PTR() macro to align pointers like malloc().
(4.2.7p133) 2011/02/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1834] ntpdate 4.2.7p131 aborts with assertion failure.
* Move sntp last in top-level Makefile.am SUBDIRS so that the libevent
tearoff (if required) and sntp are compiled after the rest.
* Use a single set of Automake options for each package in configure.ac
AM_INIT, remove Makefile.am AUTOMAKE_OPTIONS= lines.
* Correct spurious sntp rebuilds triggered by a make misperception
sntp/version was out-of-date relative to phony target FRC.version.
* Do not cache paths to perl, test, or pkg-config, searching the PATH
at configure time is worth it to pick up tool updates.
(4.2.7p132) 2011/02/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1832] ntpdate doesn't allow timeout > 2s.
* [Bug 1833] The checking sem_timedwait() fails without -pthread.
* ElectricFence was suffering bitrot - remove it. valgrind works well.
* Enable all relevant automake warnings.
* Correct Solaris 2.1x PTHREAD_ONCE_INIT extra braces test to avoid
triggering warnings due to excess braces.
* Remove libevent-cfg from sntp/Makefile.am.
* Provide bug report and URL options to Autoconf.
* Avoid relying on remake rules for routine build/flock-build for
libevent as for the top-level and sntp subproject.
(4.2.7p131) 2011/02/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1087] -v/--normalverbose conflicts with -v/--version in sntp.
* [Bug 1088] sntp should (only) report the time difference without -s/-a.
* older autoconf sometimes dislikes [].
* Move "can't write KoD file" warning from sntp shutdown to startup.
* refclock_acts.c cleanup from Dave Mills.
* Convert sntp to libevent event-driven socket programming. Instead of
blocking name resolution and querying one NTP server at a time,
resolve server names and send NTP queries without blocking. Add
sntp command-line options to adjust timing and optionally wait for all
servers to respond instead of exiting after the first.
* Import libevent 2.0.10-stable plus local patches as a tearoff, used
only if the target system lacks an installed libevent 2.0.9 or later.
* Move blocking worker and resolver to libntp from ntpd.
* Use threads rather than forked child processes for blocking worker
when possible. Override with configure --disable-thread-support.
* Move init_logging(), change_logfile(), and setup_logfile() from ntpd
to libntp, use them in sntp.
* Test --without-sntp in flock-build script's -no-refclocks variety.
* Avoid invoking config.status twice in a row in build script.
* Move more m4sh tests needed by libntp to shared .m4 files.
* Split up ntp_libntp.m4 into smaller, more specific subsets.
* Enable gcc -Wcast-align, fix many instances of warnings when casting
a pointer to a more-strictly-aligned underlying type.
(4.2.7p130) 2011/02/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1811] Update the download location in WHERE-TO-START.
(4.2.7p129) 2011/02/09 Released by Harlan Stenn <stenn@ntp.org>
* Add missing "break;" to ntp_control.c ctl_putsys() for caliberrs, used
by ntpq -c kerninfo introduced in 4.2.7p104.
* Fix leak in ntp_control.c read_mru_list().
(4.2.7p128) 2011/01/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1799] ntpq mrv crash.
* [Bug 1801] ntpq mreadvar requires prior association caching.
(4.2.7p127) 2011/01/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1797] Restore stale timestamp check from the RANGEGATE cleanup.
(4.2.7p126) 2011/01/27 Released by Harlan Stenn <stenn@ntp.org>
* Fix unexposed fencepost error in format_time_fraction().
* Add more unit tests for timeval_tostr() and timespec_tostr().
(4.2.7p125) 2011/01/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1794] ntpq -c rv missing clk_wander information.
* [Bug 1795] ntpq readvar does not display last variable.
(4.2.7p124) 2011/01/25 Released by Harlan Stenn <stenn@ntp.org>
* sntp/Makefile.am needs any passed-in CFLAGS.
(4.2.7p123) 2011/01/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1788] tvtots.c tables inaccurate
(4.2.7p122) 2011/01/22 Released by Harlan Stenn <stenn@ntp.org>
* ACTS refclock cleanup from Dave Mills.
* Avoid shadowing the "group" global variable.
(4.2.7p121) 2011/01/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1786] Remove extra semicolon from ntp_proto.c .
(4.2.7p120) 2011/01/20 Released by Harlan Stenn <stenn@ntp.org>
* Change new timeval and timespec to string routines to use snprintf()
rather than hand-crafted conversion, avoid signed int overflow there.
* Add configure support for SIZEOF_LONG_LONG to enable portable use of
snprintf() with time_t.
* Grow ntpd/work_thread.c arrays as needed.
* Add DEBUG_* variants of ntp_assert.h macros which compile away using
./configure --disable-debugging.
* Fix tvalops.cpp unit test failures for 32-bit builds.
* Return to a single autoreconf invocation in ./bootstrap script.
* Fix warnings seen on FreeBSD 9.
* crypto group changes from Dave Mills.
* Lose the RANGEGATE check in PPS, from Dave Mills.
* ACTS refclock cleanup from Dave Mills.
* Documentation updates from Dave Mills.
* NMEA driver documentation update from Juergen Perlinger.
(4.2.7p119) 2011/01/18 Released by Harlan Stenn <stenn@ntp.org>
* added timespecops.{c,h} and tievalops.{c.h} to libntp and include
added tspecops.cpp to tests/libntp
* Correct msyslog.c build break on Solaris 2.9 from #ifdef/#if mixup.
(4.2.7p118) 2011/01/15 Released by Harlan Stenn <stenn@ntp.org>
* Simplify the built-sources stuff in sntp/ .
* Fix check for -lipv6 on HP-UX 11.
(4.2.7p117) 2011/01/13 Released by Harlan Stenn <stenn@ntp.org>
* Add configure --without-sntp option to disable building sntp and
sntp/tests. withsntp=no in the environment changes the default.
* Build infrastructure cleanup:
Move m4 directory to sntp/m4.
Share a single set of genver output between sntp and the top level.
Share a single set of autogen included .defs in sntp/include.
Share a single set of build-aux scripts (e.g. config.guess, missing).
Add ntp_libntp.m4 and ntp_ipv6.m4 to reduce configure.ac duplication.
Warn and exit build/flock-build if bootstrap needs to be run.
(4.2.7p116) 2011/01/10 Released by Harlan Stenn <stenn@ntp.org>
* refclock_nmea.c refactoring by Juergen Perlinger.
(4.2.7p115) 2011/01/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1780] Windows ntpd 4.2.7p114 crashes in ioctl().
* [Bug 1781] longlong undefined in sntp handle_pkt() on Debian amd64.
(4.2.7p114) 2011/01/08 Released by Harlan Stenn <stenn@ntp.org>
* Fix for openssl pkg-config detection eval failure.
* Add erealloc_zero(), refactor estrdup(), emalloc(), emalloc_zero() to
separate tracking callsite file/line from using debug MS C runtime,
and to reduce code duplication.
(4.2.7p113) 2011/01/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1776] sntp mishandles -t/--timeout and -a/--authentication.
* Default to silent make rules, override with make V=1 or ./configure
--disable-silent-rules.
* Correct --with-openssl-incdir defaulting with pkg-config.
* Correct ./build on systems without gtest available.
* Begin moving some of the low-level socket stuff to libntp.
(4.2.7p112) 2011/01/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1773] openssl not detected during ./configure.
* [Bug 1774] Segfaults if cryptostats enabled and built without OpenSSL.
* Use make V=0 in build script to increase signal/noise ratio.
(4.2.7p111) 2011/01/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1772] refclock_open() return value check wrong for ACTS.
* Default --with-openssl-libdir and --with-openssl-incdir to the values
from pkg-config, falling back on our usual search paths if pkg-config
is not available or does not have openssl.pc on PKG_CONFIG_PATH.
* Change refclock_open() to return -1 on failure like open().
* Update all refclock_open() callers to check for fd <= 0 indicating
failure, so they work with older and newer refclock_open() and can
easily backport.
* Initialize refclockproc.rio.fd to -1, harmonize refclock shutdown
entrypoints to avoid crashing, particularly if refclock_open() fails.
* Enable tickadj-like taming of wildly off-spec Windows clock using
NTPD_TICKADJ_PPM env. var. specifying baseline slew.
(4.2.7p110) 2011/01/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1771] algorithmic error in 'clocktime()' fixed.
* Unit tests extended for hard-coded system time.
* make V=0 and configure --enable-silent-rules supported.
* setvar modemsetup = ATE0... overrides ACTS driver default.
* Preserve last timecode in ACTS driver (ntpq -ccv).
* Tolerate previous ATE1 state when sending ACTS setup.
* Enable raw tty line discipline in Windows port.
* Allow tty open/close/open to succeed on Windows port.
* Enable ACTS and CHU reference clock drivers on Windows.
(4.2.7p109) 2011/01/02 Released by Harlan Stenn <stenn@ntp.org>
* Remove nearly all strcpy() and most strcat() from NTP distribution.
One major pocket remains in ntp_crypto.c. libopts & libisc also have
(safe) uses of strcpy() and strcat() remaining.
* Documentation updates from Dave Mills.
(4.2.7p108) 2011/01/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1764] Move Palisade modem control logic to configure.ac.
* [Bug 1768] TIOCFLUSH undefined in linux for refclock_acts.
* Autokey multiple identity group improvements from Dave Mills.
* from 4.2.6p3: Update the copyright year.
(4.2.7p107) 2010/12/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1764] Palisade driver doesn't build on Linux.
* [Bug 1766] Oncore clock has offset/high jitter at startup.
* Move ntp_control.h variable IDs to ntp_control.c, remove their use by
ntpq. They are implementation details private to ntpd. [Bug 597] was
caused by ntpq's reliance on these IDs it need not know about.
* refclock_acts.c updates from Dave Mills.
(4.2.7p106) 2010/12/30 Released by Harlan Stenn <stenn@ntp.org>
* from 4.2.6p3: Update genCommitLog for the bk-5 release.
(4.2.7p105) 2010/12/29 Released by Harlan Stenn <stenn@ntp.org>
(4.2.7p104) 2010/12/28 Released by Harlan Stenn <stenn@ntp.org>
* from 4.2.6p3: Create and use scripts/check--help when generating
.texi files.
* from 4.2.6p3: Update bk triggers for the bk-5 release.
* Support for multiple Autokey identity groups from Dave Mills.
* Documentation updates from Dave Mills.
* Add ntpq kerninfo, authinfo, and sysinfo commands similar to ntpdc's.
(4.2.7p103) 2010/12/24 Released by Harlan Stenn <stenn@ntp.org>
* Add ntpq pstats command similar to ntpdc's.
* Remove ntpq pstatus command, rv/readvar does the same and more.
* Documentation updates from Dave Mills.
(4.2.7p102) 2010/12/23 Released by Harlan Stenn <stenn@ntp.org>
* Allow ntpq &1 associd use without preceding association-fetching.
* Documentation updates from Dave Mills.
(4.2.7p101) 2010/12/22 Released by Harlan Stenn <stenn@ntp.org>
* from 4.2.6p3-RC12: Upgrade to libopts 34.0.9 from AutoGen 5.11.6pre7.
* from 4.2.6p3-RC12: Relax minimum Automake version to 1.10 with updated
libopts.m4.
(4.2.7p100) 2010/12/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1743] from 4.2.6p3-RC12: Display timezone offset when showing
time for sntp in the local timezone (documentation updates).
(4.2.7p99) 2010/12/21 Released by Harlan Stenn <stenn@ntp.org>
* Add unit tests for msnprintf().
(4.2.7p98) 2010/12/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1761] clockstuff/clktest-opts.h omitted from tarball.
* [Bug 1762] from 4.2.6p3-RC12: manycastclient responses interfere.
* Documentation updates from Dave Mills.
(4.2.7p97) 2010/12/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1458] from 4.2.6p3-RC12: Can not compile NTP on FreeBSD 4.7.
* [Bug 1760] from 4.2.6p3-RC12: ntpd Windows interpolation cannot be
disabled.
* from 4.2.6p3-RC12: Upgrade to libopts 34.0.9 from AutoGen 5.11.6pre5.
* Documentation updates from Dave Mills.
(4.2.7p96) 2010/12/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1758] from 4.2.6p3-RC12: setsockopt IPV6_MULTICAST_IF with wrong
ifindex.
* Documentation updates from Dave Mills.
(4.2.7p95) 2010/12/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1753] 4.2.7p94 faults on startup in newpeer(), strdup(NULL).
* [Bug 1754] from 4.2.6p3-RC12: --version output should be more verbose.
* [Bug 1757] from 4.2.6p3-RC12: oncore snprintf("%m") doesn't expand %m.
* from 4.2.6p3-RC12: Suppress ntp-keygen OpenSSL version display for
--help, --version, display both build and runtime OpenSSL versions
when they differ.
* from 4.2.6p3-RC12: Upgrade to libopts 33.5.8 from AutoGen 5.11.6pre3.
* Documentation updates from Dave Mills.
(4.2.7p94) 2010/12/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1751] from 4.2.6p3-RC12: Support for Atari FreeMiNT OS.
* Documentation updates from Dave Mills.
(4.2.7p93) 2010/12/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1510] from 4.2.6p3-RC12: Add modes 20/21 for driver 8 to support
RAWDCF @ 75 baud.
* [Bug 1741] from 4.2.6p3-RC12: Enable multicast reception on each
address (Windows).
* from 4.2.6p3-RC12: Other manycastclient repairs:
Separate handling of scope ID embedded in many in6_addr from ifindex
used for IPv6 multicasting ioctls.
Add INT_PRIVACY endpt bit flag for IPv6 RFC 4941 privacy addresses.
Enable outbound multicast from only one address per interface in the
same subnet, and in that case prefer embedded MAC address modified
EUI-64 IPv6 addresses first, then static, and last RFC 4941 privacy
addresses.
Use setsockopt(IP[V6]_MULTICAST_IF) before each send to multicast to
select the local source address, using the correct socket is not
enough.
* "server ... ident <groupname>" changes from Dave Mills.
* Documentation updates from Dave Mills.
(4.2.7p92) 2010/12/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1743] from 4.2.6p3-RC12: Display timezone offset when showing
time for sntp in the local timezone.
(4.2.7p91) 2010/12/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1732] ntpd ties up CPU on disconnected USB device.
* [Bug 1742] form 4.2.6p3-RC12: Fix a typo in an error message in the
"build" script.
(4.2.7p90) 2010/12/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1738] Windows ntpd has wrong net adapter name.
* [Bug 1740] ntpdc -c reslist packet count wrongly treated as signed.
(4.2.7p89) 2010/12/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1736] tos int, bool options broken in 4.2.7p66.
* from 4.2.6p3-RC12: Clean up the SNTP documentation.
(4.2.7p88) 2010/12/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1735] 'clocktime()' aborts ntpd on bogus input
(4.2.7p87) 2010/12/01 Released by Harlan Stenn <stenn@ntp.org>
* from 4.2.6p3-RC12: Clean up m4 quoting in configure.ac, *.m4 files,
resolving intermittent AC_LANG_PROGRAM possibly undefined errors.
(4.2.7p86) 2010/11/29 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p85) 2010/11/24 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p84) 2010/11/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1618] Unreachable code in jjy_start().
* [Bug 1725] from 4.2.6p3-RC11: ntpd sends multicast from only one
address.
* from 4.2.6p3-RC11: Upgrade libopts to 33.3.8.
* from 4.2.6p3-RC11: Bump minimum Automake version to 1.11, required for
AM_COND_IF use in LIBOPTS_CHECK.
* An almost complete rebuild of the initial loopfilter configuration
process, including the code that determines the interval between
frequency file updates, from Dave Mills.
* Documentation updates from Dave Mills.
* Add ntp-keygen -l/--lifetime to control certificate expiry.
* JJY driver improvements for Tristate JJY01/02, including changes
to its clockstats format.
* Add "nonvolatile" ntp.conf directive to control how often the
driftfile is written.
(4.2.7p83) 2010/11/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1727] ntp-keygen PLEN, ILEN undeclared --without-crypto.
* Remove top-level libopts, use sntp/libopts.
* from 4.2.6p3-RC11: Remove log_msg() and debug_msg() from sntp in favor
of msyslog().
* Documentation updates from Dave Mills.
(4.2.7p82) 2010/11/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1728] from 4.2.6p3-RC11: In ntp_openssl.m4, don't add
-I/usr/include or -L/usr/lib to CPPFLAGS or LDFLAGS.
(4.2.7p81) 2010/11/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1681] from 4.2.6p3-RC10: More sntp logging cleanup.
* [Bug 1683] from 4.2.6p3-RC10: Non-localhost on loopback exempted from
nic rules.
* [Bug 1719] Cleanup for ntp-keygen and fix -V crash, from Dave Mills.
(4.2.7p80) 2010/11/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1574] from 4.2.6p3-RC9: sntp doesn't set tv_usec correctly.
* [Bug 1681] from 4.2.6p3-RC9: sntp logging cleanup.
* [Bug 1683] from 4.2.6p3-RC9: Interface binding does not seem to work
as intended.
* [Bug 1708] make check fails with googletest 1.4.0.
* [Bug 1709] from 4.2.6p3-RC9: ntpdate ignores replies with equal
receive and transmit timestamps.
* [Bug 1715] sntp utilitiesTest.IPv6Address failed.
* [Bug 1718] Improve gtest checks in configure.ac.
(4.2.7p79) 2010/11/07 Released by Harlan Stenn <stenn@ntp.org>
* Correct frequency estimate with no drift file, from David Mills.
(4.2.7p78) 2010/11/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1697] filegen implementation should be improved.
* Refactor calendar functions in terms of new common code.
* Documentation updates from Dave Mills.
(4.2.7p77) 2010/11/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1692] packageinfo.sh needs to be "sourced" using ./ .
* [Bug 1695] ntpdate takes longer than necessary.
(4.2.7p76) 2010/11/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1690] Unit tests fails to build on some systems.
* [Bug 1691] Use first NMEA sentence each second.
* Put the sntp tests under sntp/ .
* ... and only build/run them if we have gtest.
* Documentation updates from Dave Mills.
(4.2.7p75) 2010/10/30 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* Include Linus Karlsson's GSoC 2010 testing code.
(4.2.7p74) 2010/10/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1685] from 4.2.6p3-RC8: NMEA driver mode byte confusion.
* from 4.2.6p3-RC8: First cut at using scripts/checkChangeLog.
* Documentation updates from Dave Mills.
(4.2.7p73) 2010/10/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1680] Fix alignment of clock_select() arrays.
* refinements to new startup behavior from David Mills.
* For the bootstrap script, touch .html files last.
* Add 'make check' test case that would have caught [Bug 1678].
(4.2.7p72) 2010/10/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1679] Fix test for -lsocket.
* Clean up missing ;; entries in configure.ac.
(4.2.7p71) 2010/10/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1676] from 4.2.6p3-RC7: NMEA: $GPGLL did not work after fix
for Bug 1571.
* [Bug 1678] "restrict source" treated as "restrict default".
* from 4.2.6p3-RC7: Added scripts/checkChangeLog.
(4.2.7p70) 2010/10/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1571] from 4.2.6p3-RC6: NMEA does not relate data to PPS edge.
* [Bug 1572] from 4.2.p63-RC6: NMEA time adjustment for GPZDG buggy.
* [Bug 1675] from 4.2.6p3-RC6: Prohibit includefile remote config.
* Enable generating ntpd/ntp_keyword.h after keyword-gen.c changes on
Windows as well as POSIX platforms.
* Fix from Dave Mills for a rare singularity in clock_combine().
(4.2.7p69) 2010/10/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1671] Automatic delay calibration is sometimes inaccurate.
(4.2.7p68) 2010/10/22 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* Documentation and code cleanup from Dave Mills. No more NTP_MAXASSOC.
(4.2.7p60) 2010/10/04 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p59) 2010/10/02 Released by Harlan Stenn <stenn@ntp.org>
* 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 <stenn@ntp.org>
* 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 <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p56) 2010/09/25 Released by Harlan Stenn <stenn@ntp.org>
* 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 <stenn@ntp.org>
* 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 <stenn@ntp.org>
* 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 <stenn@ntp.org>
* Documentation updates from Dave Mills.
* More Initial convergence improvements from Dave Mills.
(4.2.7p52) 2010/09/19 Released by Harlan Stenn <stenn@ntp.org>
* Initial convergence improvements from Dave Mills.
(4.2.7p51) 2010/09/18 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* Cleanup NTP_LIB_M.
* [Bug 1628] Clean up -lxnet/-lsocket usage for (open)solaris.
(4.2.7p49) 2010/09/13 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p48) 2010/09/12 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.7p47) 2010/09/11 Released by Harlan Stenn <stenn@ntp.org>
* 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 <stenn@ntp.org>
* Use AC_SEARCH_LIBS instead of AC_CHECK_LIB for NTP_LIB_M.
(4.2.7p45) 2010/09/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1578] Consistently use -lm when needed.
(4.2.7p44) 2010/08/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1573] from 4.2.6p3-beta1: Miscalculation of offset in sntp.
(4.2.7p43) 2010/08/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1602] Refactor some of the sntp/ directory to facililtate testing.
(4.2.7p42) 2010/08/18 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* 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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [Bug 1576] sys/sysctl.h depends on sys/param.h on OpenBSD.
(4.2.7p36) 2010/06/15 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* Rewrite of multiprecision macros in 'ntp_fp.h' from J. Perlinger
<perlinger@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* 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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
(4.2.7p26) 2010/04/24 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [Bug 2399] Reset sys_kodsent in proto_clr_stats().
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [Bug 1467] from 4.2.6p1: Fix bogus rebuild of sntp/sntp.html.
(4.2.7p12) 2010/01/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1468] 'make install' broken for root on default NFS mount.
(4.2.7p11) 2010/01/28 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
(4.2.7p8) 2010/01/12 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* Include 4.2.6p1-RC2
(4.2.7p4) 2009/12/24 Released by Harlan Stenn <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [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 <stenn@ntp.org>
* [Bug 1407] configure.ac: recent GNU Make -v does not include "version".
---
(4.2.6p5) 2011/12/24 Released by Harlan Stenn <stenn@ntp.org>
No changes from 4.2.6p5-RC3.
---
(4.2.6p5-RC3) 2011/12/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2082] 3-char refid sent by ntpd 4.2.6p5-RC2 ends with extra dot.
* [Bug 2085] clock_update() sys_rootdisp calculation omits root delay.
* [Bug 2086] get_systime() should not offset by sys_residual.
* [Bug 2087] sys_jitter calculation overweights sys.peer jitter.
* Ensure NULL peer->dstadr is not accessed in orphan parent selection.
---
(4.2.6p5-RC2) 2011/11/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2050] Orphan mode stratum counting to infinity.
* [Bug 2059] optional billboard column "server" does not honor -n.
* [Bug 2066] ntpq lopeers ipv6 "local" column overrun.
* [Bug 2068] ntpd sends nonprintable stratum 16 refid to ntpq.
* [Bug 2069] broadcastclient, multicastclient spin up duplicate
ephemeral associations without broadcastdelay.
* [Bug 2072] Orphan parent selection metric needs ntohl().
* Exclude not-yet-determined sys_refid from use in loopback TEST12
(from David Mills).
* Never send KoD rate limiting response to MODE_SERVER response.
---
(4.2.6p5-RC1) 2011/10/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 2034] Listening address configuration with prefix misapplied.
---
(4.2.6p4) 2011/09/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1984] ntp/libisc fails to compile on OS X 10.7 (Lion).
* [Bug 1985] "logconfig =allall" rejected.
* [Bug 2001] ntpdc timerstats reports overruns as handled.
* [Bug 2003] libntpq ntpq_read_assoc_peervars() broken.
* [Backward Incompatible] sntp: -l/--filelog -> -l/--logfile, to be
consistent with ntpd.
* libopts/file.c fix from Bruce Korb (arg-type=file).
---
(4.2.6p4-RC2) 2011/08/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1608] Parse Refclock driver should honor trusttime.
* [Bug 1961] html2man update: distribute ntp-wait.html.
* [Bug 1970] UNLINK_EXPR_SLIST() causes crash if list is empty.
* [Bug 1972] checking for struct rtattr fails.
* [Bug 1975] libntp/mktime.c won't work with 64-bit time_t
* [Bug 1978] [Bug 1134] fix in 4.2.6p4-RC1 doesn't build on older Linux.
* Backport several fixes for Coverity warnings from ntp-dev.
* Backport if_nametoindex() check for hpux.
---
(4.2.6p4-RC1) 2011/07/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1134] ntpd fails binding to tentative IPv6 addresses.
* [Bug 1790] Update config.guess and config.sub to detect AIX6.
* [Bug 1961] html2man needs an update.
* Update the NEWS file.
---
(4.2.6p4-beta2) 2011/05/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1695] ntpdate takes longer than necessary.
* [Bug 1832] ntpdate doesn't allow timeout > 2s.
* [Bug 1933] WWVB/Spectracom driver timestamps LFs, not CRs.
* Backport utility routines from ntp-dev: mprintf(), emalloc_zero().
---
(4.2.6p4-beta1) 2011/05/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1554] peer may stay selected as system peer after becoming
unreachable.
* [Bug 1921] LOCAL, ACTS drivers with "prefer" excluded from initial
candidate list.
* [Bug 1923] orphan parent favored over LOCAL, ACTS drivers.
* [Bug 1924] Billboard tally codes sometimes do not match operation,
variables.
* Enable tickadj-like taming of wildly off-spec Windows clock using
NTPD_TICKADJ_PPM env. var. specifying baseline slew.
* Upgrade to AutoGen 5.11.9 (and require it).
* Upgrade to libopts 35.0.10 from AutoGen 5.11.9pre8.
---
(4.2.6p3) 2011/01/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1764] Palisade driver doesn't build on Linux
* Create and use scripts/check--help when generating .texi files.
* Update bk triggers for the bk-5 release.
* Update genCommitLog for the bk-5 release.
* Update the copyright year.
---
(4.2.6p3-RC12) 2010/12/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1458] Can not compile NTP on FreeBSD 4.7.
* [Bug 1510] Add modes 20/21 for driver 8 to support RAWDCF @ 75 baud.
* [Bug 1618] Unreachable code in jjy_start(). (backport from ntp-dev)
* [Bug 1719] ntp-keygen -V crash. (backport)
* [Bug 1740] ntpdc treats many counters as signed. (backport)
* [Bug 1741] Enable multicast reception on each address (Windows).
* [Bug 1742] Fix a typo in an error message in the "build" script.
* [Bug 1743] Display timezone offset when showing time for sntp in the
local timezone.
* [Bug 1751] Support for Atari FreeMiNT OS.
* [Bug 1754] --version output should be more verbose.
* [Bug 1757] oncore snprintf("%m") doesn't expand %m.
* [Bug 1758] setsockopt IPV6_MULTICAST_IF with wrong ifindex.
* [Bug 1760] ntpd Windows interpolation cannot be disabled.
* [Bug 1762] manycastclient solicitation responses interfere.
* Upgrade to libopts 34.0.9 from AutoGen 5.11.6pre7.
* Relax minimum Automake version to 1.10 with updated libopts.m4.
* Suppress ntp-keygen OpenSSL version display for --help, --version,
display both build and runtime OpenSSL versions when they differ.
* Clean up m4 quoting in configure.ac, *.m4 files, resolving
intermittent AC_LANG_PROGRAM possibly undefined errors.
* Clean up the SNTP documentation.
* Other manycastclient repairs:
Separate handling of scope ID embedded in many in6_addr from ifindex
used for IPv6 multicasting ioctls.
Add INT_PRIVACY endpt bit flag for IPv6 RFC 4941 privacy addresses.
Enable outbound multicast from only one address per interface in the
same subnet, and in that case prefer embedded MAC address modified
EUI-64 IPv6 addresses first, then static, and last RFC 4941 privacy
addresses.
Use setsockopt(IP[V6]_MULTICAST_IF) before each send to multicast to
select the local source address, using the correct socket is not
enough.
---
(4.2.6p3-RC11) 2010/11/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1725] ntpd sends multicast from only one address.
* [Bug 1728] In ntp_openssl.m4, don't add -I/usr/include or -L/usr/lib
to CPPFLAGS or LDFLAGS.
* [Bug 1733] IRIX doesn't have 'head' (affects scripts/checkChangeLog).
* Remove log_msg() and debug_msg() from sntp in favor of msyslog().
* Use a single copy of libopts/, in sntp/.
* Upgrade libopts to 33.3.8.
* Bump minimum Automake version to 1.11, required for AM_COND_IF
use in LIBOPTS_CHECK.
* Improvements to the 'build' script.
---
(4.2.6p3-RC10) 2010/11/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1681] More sntp logging cleanup.
* [Bug 1683] Non-localhost on loopback exempted from nic rules.
---
(4.2.6p3-RC9) 2010/11/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1574] sntp:set_time doesn't set tv_usec correctly.
* [Bug 1681] sntp logging cleanup.
* [Bug 1683] Interface binding does not seem to work as intended.
* [Bug 1691] Use first NMEA sentence each second.
* [Bug 1692] packageinfo.sh needs to be "sourced" using ./ .
* [Bug 1709] ntpdate ignores replies with equal receive and transmit
timestamps.
* Backport sntp from -dev
---
(4.2.6p3-RC8) 2010/10/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1685] NMEA driver mode byte confusion.
* First cut at using scripts/checkChangeLog.
---
(4.2.6p3-RC7) 2010/10/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1676] NMEA: $GPGLL did not work after fix for Bug 1571.
* Added scripts/checkChangeLog.
---
(4.2.6p3-RC6) 2010/10/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1571] NMEA does not relate data to PPS edge.
* [Bug 1572] NMEA time adjustment for GPZDG buggy.
* [Bug 1675] Prohibit includefile remote config.
---
(4.2.6p3-RC5) 2010/10/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1649] Require NMEA checksum if $GPRMC or previously seen.
* [Bug 1669] NTP 4.2.6p2 fails to compile on IBM AIX 5.3.
---
(4.2.6p3-RC4) 2010/10/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1584] wrong SNMP type for precision, resolution.
* [Bug 1659] Need CLOCK_TRUETIME not CLOCK_TRUE.
* [Bug 1665] is_anycast() u_int32_t should be u_int32.
* ntpsnmpd, libntpq warning cleanup.
---
(4.2.6p3-RC3) 2010/10/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 750] Non-existing device causes coredump with RIPE-NCC driver.
* [Bug 1080] ntpd on ipv6 routers very chatty.
* [Bug 1567] Support Arbiter 1093C Satellite Clock on Windows.
* [Bug 1581] printf format string mismatch leftover.
* [Bug 1584] ntpsnmpd OID must be mib-2.197.
* [Bug 1643] Range-check the decoding of the RIPE-NCC status codes.
* [Bug 1644] cvo.sh should use lsb_release to identify linux distros.
* [Bug 1659] Support Truetime Satellite Clocks on Windows.
* [Bug 1660] On some systems, test is in /usr/bin, not /bin.
* [Bug 1661] Re-indent refclock_ripencc.c.
---
(4.2.6p3-RC2) 2010/09/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1635] "filegen ... enable" is not default.
* [Bug 1636] yyparse() segfault after denied filegen remote config.
---
(4.2.6p3-RC1) 2010/09/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1344] ntpd on Windows exits without logging cause.
---
(4.2.6p3-beta1) 2010/09/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1573] Miscalculation of offset in sntp.
* [Bug 1595] empty last line in key file causes duplicate key to be added
* [Bug 1597] packet processing ignores RATE KoD packets, because of
a bug in string comparison.
* [Bug 1581] ntp_intres.c size_t printf format string mismatch.
---
(4.2.6p2) 2010/07/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1581] size_t printf format string mismatches, IRIG string buffers
undersized. Mostly backported from earlier ntp-dev fixes by Juergen
Perlinger.
---
(4.2.6p2-RC7) 2010/06/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1570] serial clock drivers get outdated input from kernel tty
line buffer after startup
* [Bug 1575] use 'snprintf' with LIB_BUFLENGTH in inttoa.c, tvtoa.c and
utvtoa.c
* [Bug 1576] sys/sysctl.h depends on sys/param.h on OpenBSD.
---
(4.2.6p2-RC6) 2010/06/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 715] libisc Linux IPv6 interface iteration drops multicast flags.
---
(4.2.6p2-RC5) 2010/06/03 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1561] ntpq, ntpdc "passwd" prompts for MD5 password w/SHA1.
* [Bug 1565] sntp/crypto.c compile fails on MacOS over vsnprintf().
* Windows port: do not exit in ntp_timestamp_from_counter() without
first logging the reason.
* Support "passwd blah" syntax in ntpq.
---
(4.2.6p2-RC4) 2010/05/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1555] 4.2.6p2-RC3 sntp illegal C (mixed code and declarations).
---
(4.2.6p2-RC3) 2010/05/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1325] unreachable code in sntp recv_bcst_data().
* [Bug 1459] sntp MD5 authentication does not work with ntpd.
* [Bug 1512] ntpsnmpd should connect to net-snmpd via a unix-domain
socket by default. Provide a command-line 'socket name' option.
* [Bug 1538] update refclock_nmea.c's call to getprotobyname().
* [Bug 1541] Fix wrong keyword for "maxclock".
* [Bug 1552] update and complete broadcast and crypto features in sntp.
* [Bug 1553] sntp/configure.ac OpenSSL support.
* Escape unprintable characters in a refid in ntpq -p billboard.
* Simplify hash client code by providing OpenSSL EVP_*() API when built
without OpenSSL. (from ntp-dev)
* Do not depend on ASCII values for ('A' - '0'), ('a' - '0') in sntp.
* Windows compiling hints/winnt.html update from G. Sunil Tej.
---
(4.2.6p2-RC2) 2010/04/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1465] Make sure time from TS2100 is not invalid (backport from
ntp-dev).
* [Bug 1528] Fix EDITLINE_LIBS link order for ntpq and ntpdc.
* [Bug 1534] win32/include/isc/net.h conflicts with VC++ 2010 errno.h.
* [Bug 1535] "restrict -4 default" and "restrict -6 default" ignored.
* Remove --with-arlib from br-flock.
---
(4.2.6p2-RC1) 2010/04/18 Released by Harlan Stenn <stenn@ntp.org>
* [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.
* [Bug 1518] Windows ntpd should lock to one processor more
conservatively.
* [Bug 1522] Enable range syntax "trustedkey (301 ... 399)".
* Update html/authopt.html controlkey, requestkey, and trustedkey docs.
---
(4.2.6p1) 2010/04/09 Released by Harlan Stenn <stenn@ntp.org>
(4.2.6p1-RC6) 2010/03/31 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1514] Typo in ntp_proto.c: fabs(foo < .4) should be fabs(foo) < .4.
* [Bug 1464] synchronization source wrong for refclocks ARCRON_MSF (27)
and SHM (28).
* Correct Windows port's refclock_open() to return 0 on failure not -1.
* Correct CHU, dumbclock, and WWVB drivers to check for 0 returned from
refclock_open() on failure.
* Correct "SIMUL=4 ./flock-build -1" to prioritize -1/--one.
---
(4.2.6p1-RC5) 2010/02/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1140] Clean up debug.html, decode.html, and ntpq.html.
* [Bug 1438] Remove dead code from sntp/networking.c.
* [Bug 1477] 1st non-gmake make in clone w/VPATH can't make COPYRIGHT.
* [Bug 1478] linking fails with undefined reference EVP_MD_pkey_type.
* [Bug 1479] Compilation fails because of not finding readline headers.
* [Bug 1480] snprintf() cleanup caused unterminated refclock IDs.
* [Bug 1484] ushort is not defined in QNX6.
---
(4.2.6p1-RC4) 2010/02/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1455] ntpd does not try /etc/ntp.audio as documented.
* [Bug 1467] Fix bogus rebuild of sntp/sntp.html
* [Bug 1470] "make distdir" in $srcdir builds keyword-gen, libntp.a.
* [Bug 1473] "make distcheck" before build can't make sntp/version.m4.
* [Bug 1474] ntp_keygen needs LCRYPTO after libntp.a.
* Convert many sprintf() calls to snprintf(), also strcpy(), strcat().
* Fix widely cut-n-pasted bug in refclock shutdown after failed start.
* Remove some dead code checking for emalloc() returning NULL.
* Remove arlib.
---
(4.2.6p1-RC3) 2010/01/24 Released by Harlan Stenn <stenn@ntp.org>
* Use TZ=UTC instead of TZ= when calling date in scripts/mkver.in .
* [Bug 1448] Some macros not correctly conditionally or absolutely defined
on Windows.
* [Bug 1449] ntpsim.h in ntp_config.c should be used conditionally.
* [Bug 1450] Option to exclude warnings not unconditionally defined on Windows.
* [Bug 1127] Properly check the return of X590_verify() - missed one.
* [Bug 1439] .texi generation must wait until after binary is linked.
* [Bug 1440] Update configure.ac to support kfreebsd.
* [Bug 1445] IRIX does not have -lcap or support linux capabilities.
* [Bug 1451] CID 115: sntp leaks KoD entry when updating existing.
* [Bug 1453] Use $CC in config.cache filename in ./build script.
---
(4.2.6p1-RC2) 2009/12/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1411] Fix status messages in refclock_oncore.c.
* [Bug 1416] MAXDNAME undefined on Solaris 2.6.
* [Bug 1419] ntpdate, ntpdc, sntp, ntpd ignore configure --bindir.
* [Bug 1424] Fix check for rtattr (rtnetlink.h).
* [Bug 1425] unpeer by association ID sets up for duplicate free().
* [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
* [Bug 1429] ntpd -4 option does not reliably force IPv4 resolution.
* [Bug 1431] System headers must come before ntp headers in ntp_intres.c .
* [Bug 1434] HP-UX 11 ip_mreq undeclared, _HPUX_SOURCE helps some.
* [Bug 1435] sntp: Test for -lresolv using the same tests as in ntp.
---
(4.2.6p1-RC1) 2009/12/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1409] Put refclock_neoclock4x.c under the NTP COPYRIGHT notice.
This should allow debian and other distros to add this refclock driver
in further distro releases.
Detect R2 hardware releases.
* [Bug 1412] m4/os_cflags.m4 caches results that depend on $CC.
* [Bug 1413] test OpenSSL headers regarding -Wno-strict-prototypes.
* [Bug 1414] Enable "make distcheck" success with BSD make.
* [Bug 1415] Fix Mac OS X link problem.
* [Bug 1418] building ntpd/ntpdc/ntpq statically with ssl fails.
* Build infrastructure updates to enable beta releases of ntp-stable.
---
(4.2.6) 2009/12/09 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 1331] from4.2.4p8: DoS with mode 7 packets - CVE-2009-3563.
* [Bug 508] Fixed leap second handling for Windows.
(4.2.5p250-RC) 2009/11/30 Released by Harlan Stenn <stenn@ntp.org>
* sntp documentation updates.
* [Bug 761] internal resolver does not seem to honor -4/-6 qualifiers
* [Bug 1386] Deferred DNS doesn't work on NetBSD
* [Bug 1391] avoid invoking autogen twice for .c and .h files.
* [Bug 1397] shmget() refclock_shm failing because of file mode.
* Pass no_needed to ntp_intres as first part of fixing [Bug 975].
* Add ./configure --enable-force-defer-DNS to help debugging.
(4.2.5p249-RC) 2009/11/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1400] An empty KOD DB file causes sntp to coredump.
* sntp: documentation cleanup.
* sntp: clean up some error messages.
* sntp: Use the precision to control how many offset digits are shown.
* sntp: Show root dispersion.
* Cleanup from the automake/autoconf upgrades.
(4.2.5p248-RC) 2009/11/26 Released by Harlan Stenn <stenn@ntp.org>
* Prepare for the generation of sntp.html.
* Documentation changes from Dave Mills.
* [Bug 1387] Storage leak in ntp_intres (minor).
* [Bug 1389] buffer overflow in refclock_oncore.c
* [Bug 1391] .texi usage text from installed, not built binaries.
* [Bug 1392] intres retries duplicate assocations endlessly.
* Correct *-opts.h dependency so default 'get' action isn't used.
(4.2.5p247-RC) 2009/11/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1142] nodebug builds shed no light on -d, -D option failure.
* [Bug 1179] point out the problem with -i/--jaildir and -u/--user when
they are disabled by configure.
* [Bug 1308] support systems that lack fork().
* [Bug 1343] sntp doesn't link on Solaris 7, needs -lresolv.
(4.2.5p246-RC) 2009/11/17 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.10
* [Bug 1378] Unnecessary resetting of peers during interface update.
* [Bug 1382] p245 configure --disable-dependency-tracking won't build.
* [Bug 1384] ntpq :config core dumped with a blank password.
(4.2.5p245-RC) 2009/11/14 Released by Harlan Stenn <stenn@ntp.org>
* Cleanup from Dave Mills.
* [Bug 1343] sntp illegal C does not compile on Solaris 7.
* [Bug 1381] Version .deps generated include file dependencies to allow
known dependency-breaking changes to force .deps to be cleaned,
triggered by changing the contents of deps-ver and/or sntp/deps-ver.
(4.2.5p244-RC) 2009/11/12 Released by Harlan Stenn <stenn@ntp.org>
* keygen.html updates from Dave Mills.
* [Bug 1003] ntpdc unconfig command doesn't prompt for keyid.
* [Bug 1376] Enable authenticated ntpq and ntpdc using newly-available
digest types.
* ntp-keygen, Autokey OpenSSL build vs. run version mismatch is now a
non-fatal warning.
(4.2.5p243-RC) 2009/11/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1226] Fix deferred DNS lookups.
* new crypto signature cleanup.
(4.2.5p242-RC) 2009/11/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1363] CID 92 clarify fallthrough case in clk_trimtsip.c
* [Bug 1366] ioctl(TIOCSCTTY, 0) fails on NetBSD *[0-2].* > 3.99.7.
* [Bug 1368] typos in libntp --without-crypto case
* [Bug 1371] deferred DNS lookup failing with INFO_ERR_AUTH.
* CID 87 dead code in ntpq.c atoascii().
* Fix authenticated ntpdc, broken in p240.
* Stub out isc/mem.h, shaving 47k from a MIPS ntpd binary.
* Shrink keyword scanner FSM entries from 64 to 32 bits apiece.
* Documention updates from Dave Mills.
* authkeys.c cleanup from Dave Mills.
(4.2.5p241-RC) 2009/11/07 Released by Harlan Stenn <stenn@ntp.org>
* html/authopt.html update from Dave Mills.
* Remove unused file from sntp/Makefile.am's distribution list.
* new crypto signature cleanup.
(4.2.5p240-RC) 2009/11/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1364] clock_gettime() not detected, need -lrt on Debian 5.0.3.
* Provide all of OpenSSL's signature methods for ntp.keys (FIPS 140-2).
(4.2.5p239-RC) 2009/10/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1357] bogus assert from refclock_shm.
* [Bug 1359] Debug message cleanup.
* CID 101: more pointer/array cleanup.
* [Bug 1356] core dump from refclock_nmea when can't open /dev/gpsU.
* [Bug 1358] AIX 4.3 sntp/networking.c IPV6_JOIN_GROUP undeclared.
* CID 101: pointer/array cleanup.
(4.2.5p238-RC) 2009/10/27 Released by Harlan Stenn <stenn@ntp.org>
* Changes from Dave Mills.
* driver4.html updates from Dave Mills.
* [Bug 1252] PPSAPI cleanup on ntpd/refclock_wwvb.c.
* [Bug 1354] libtool error building after bootstrap with Autoconf 2.64.
* Allow NTP_VPATH_HACK configure test to handle newer gmake versions.
* CIDs 94-99 make it more clearly impossible for sock_hash() to return
a negative number.
* CID 105, 106 ensure ntpdc arrays are not overrun even if callers
misbehave.
* CID 113 use va_end() in refclock_true.c true_debug().
* Get rid of configure tests for __ss_family and __ss_len when the more
common ss_family and ss_len are present.
(4.2.5p237-RC) 2009/10/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 610] NMEA support for using PPSAPI on a different device.
* [Bug 1238] use only fudge time2 to offset NMEA serial timestamp.
* [Bug 1355] ntp-dev won't compile on OpenBSD 4.6.
(4.2.5p236-RC) 2009/10/22 Released by Harlan Stenn <stenn@ntp.org>
* Cleanup from Dave Mills.
* [Bug 1343] ntpd/ntp_io.c close_fd() does not compile on Solaris 7.
* [Bug 1353] ntpq "rv 0 settimeofday" always shows UNKNOWN on unix.
* Do not attempt to execute built binaries from ntpd/Makefile when
cross-compiling (keyword-gen and ntpd --saveconfigquit).
* sntp/main.c: Remove duplicate global adr_buf[] (also defined in
networking.c) which Piotr Grudzinski identified breaking his build.
* Correct in6addr_any test in configure.ac to attempt link too.
(4.2.5p235-RC) 2009/10/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1343] lib/isc build breaks on systems without IPv6 headers.
(4.2.5p234-RC) 2009/10/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1339] redux, use unmodified lib/isc/win32/strerror.c and
move #define strerror... to a header not used by lib/isc code.
* [Bug 1345] illegal 'grep' option prevents compilation.
* [Bug 1346] keyword scanner broken where char defaults to unsigned.
* [Bug 1347] ntpd/complete.conf missing multicastclient test case.
(4.2.5p233-RC) 2009/10/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1337] cast setsockopt() v4 address pointer to void *.
* [Bug 1342] ignore|drop one IPv6 address on an interface blocks all
addresses on that interface.
* Documentation cleanup and updates.
(4.2.5p232-RC) 2009/10/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1302] OpenSSL under Windows needs applink support.
* [Bug 1337] fix incorrect args to setsockopt(fd, IP_MULTICAST_IF,...).
* [Bug 1339] Fix Windows-only ntp_strerror() infinite recursion.
* [Bug 1341] NMEA driver requires working PPSAPI #ifdef HAVE_PPSAPI.
* Construct ntpd keyword scanner finite state machine at compile time
rather than at runtime, shrink entries from 40+ to 8 bytes.
* Update documentation for ntpq --old-rv, saveconfig, saveconfigdir,
ntpd -I -L and -M, and interface/nic rules. (From Dave Hart)
* [Bug 1337] fix incorrect args to setsockopt(fd, IP_MULTICAST_IF,...)
(4.2.5p231-RC) 2009/10/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1335] Broadcast client degraded by wildcard default change.
(4.2.5p230-RC) 2009/10/09 Released by Harlan Stenn <stenn@ntp.org>
* Start the 4.2.6 Release Candidate cycle.
* Broadcast and transit phase cleanup from Dave Mills.
(4.2.5p229) 2009/10/07 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1334] ntpsnmpd undefined reference to `ntpqOptions'.
* Change ntpsnmpd/Makefile.am include file order to fix FreeBSD build.
(4.2.5p228) 2009/10/06 Released by Harlan Stenn <stenn@ntp.org>
* Reclaim syntax tree memory after application in ntpd built with
configure --disable-saveconfig.
* [Bug 1135] ntpq uses sizeof(u_long) where sizeof(u_int32) is meant.
* [Bug 1333] ntpd --interface precedence over --novirtualips lost.
(4.2.5p227) 2009/10/05 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1135] :config fails with "Server disallowed request"
* [Bug 1330] disallow interface/nic rules when --novirtualips or
--interface are used.
* [Bug 1332] ntpq -c 'rv 0 variablename' returns extra stuff.
* Add test of ntpd --saveconfigquit fidelity using new complete.conf.
* Documentation updates from Dave Hart/Dave Mills.
(4.2.5p226) 2009/10/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1318] Allow multiple -g options on ntpd command line.
* [Bug 1327] ntpq, ntpdc, ntp-keygen -d & -D should work with configure
--disable-debugging.
* Add ntpd --saveconfigquit <filename> option for future build-time
testing of saveconfig fidelity.
* Clockhop and autokey cleanup from Dave Mills.
* Documentation updates from Dave Mills.
(4.2.5p225) 2009/09/30 Released by Harlan Stenn <stenn@ntp.org>
* authopt documentation changes from Dave Mills/Dave Hart.
* [Bug 1324] support bracketed IPv6 numeric addresses for restrict.
(4.2.5p224) 2009/09/29 Released by Harlan Stenn <stenn@ntp.org>
* Clockhop and documentation fixes from Dave Mills.
* Remove "tos maxhop" ntp.conf knob.
(4.2.5p223) 2009/09/28 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1321] build doesn't work if . isn't on $PATH.
* [Bug 1323] Implement "revoke #" to match documentation, deprecate
"crypto revoke #".
(4.2.5p222) 2009/09/27 Released by Harlan Stenn <stenn@ntp.org>
* Update libisc code using bind-9.6.1-P1.tar.gz, rearrange our copy to
mirror the upstream layout (lib/isc/...), and merge in NTP-local
modifications to libisc. There is a new procedure to ease future
libisc merges using a separate "upstream" bk repo. That will enable
normal bk pull automerge to handle carrying forward any local changes
and should enable us to take updated libisc snapshots more often.
* Updated build and flock-build scripts. flock-build --one is a way
to perform a flock-build compatible solitary build, handy for a repo
clone's first build on a machine with autoconf, automake, etc.
* Compiling ntp_parser.y using BSD make correctly places ntp_parser.h
in the top-level ntpd directory instead of A.*/ntpd.
* bootstrap script updated to remove potentially stale .deps dirs.
* Remove unneeded Makefile.am files from the lib/isc/include tree.
(4.2.5p221) 2009/09/26 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1316] segfault if refclock_nmea can't open file.
* [Bug 1317] Distribute cvo.sh.
(4.2.5p220) 2009/09/25 Released by Harlan Stenn <stenn@ntp.org>
* Rearrange libisc code to match the upstream layout in BIND. This is
step one of two, changing the layout but keeping our existing libisc.
(4.2.5p219) 2009/09/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1315] "interface ignore 0.0.0.0" is ignored.
* add implicit "nic ignore all" rule before any rules from ntp.conf, so
"nic listen eth0" alone means the same as "-I eth0".
* add wildcard match class for interface/nic rules.
* fix mistaken carryover of prefixlen from one rule to the next.
* Ensure IPv6 localhost address ::1 is included in libisc's Windows IPv6
address enumeration, allowing ntpq and ntpdc's hardcoding to 127.0.0.1
on Windows to end.
(4.2.5p218) 2009/09/21 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1314] saveconfig emits -4 and -6 on when not given.
* correct parsing and processing of setvar directive.
* highlight location of ntpq :config syntax errors with ^.
* clarify (former) NO_ARG, SINGLE_ARG, MULTIPLE_ARG renaming to
FOLLBY_TOKEN, FOLLBY_STRING, FOLLBY_STRINGS_TO_EOC.
* parser, saveconfig cleanup to store T_ identifiers in syntax tree.
(4.2.5p217) 2009/09/20 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1300] reject remote configuration of dangerous items.
(4.2.5p216) 2009/09/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1312] ntpq/ntpdc MD5 passwords truncated to 8 chars on Suns.
* CID 10 missing free(up); in refclock_palisade.c error return, again.
* CID 83 added assertion to demonstrate config_nic_rules() does not
call strchr(NULL, '/').
(4.2.5p215) 2009/09/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1292] Workaround last VC6 unsigned __int64 kink.
(4.2.5p214) 2009/09/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1303] remove top-level "autokey" directive.
* use "nic listen 192.168.0.0/16" instead of
"nic listen 192.168.0.0 prefixlen 16".
(4.2.5p213) 2009/09/16 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1310] fix Thunderbolt mode in refclock_palisade.c
(4.2.5p212) 2009/09/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 983] add interface [listen | ignore | drop] ... directive.
* [Bug 1243] MD5auth_setkey zero-fills key from first zero octet.
* [Bug 1295] leftover fix, do not crash on exit in free_config_trap()
when "trap 1.2.3.4" is used without any further options.
* [Bug 1311] 4.2.5p211 doesn't build in no-debug mode.
* document interface (alias nic) and unpeer.
* Correct syntax error line & column numbers.
* CID 79: kod_init_kod_db() fails to fclose(db_s) in two error paths.
* CID 80: attempt to quiet Coverity false positive re: leaking "reason"
in main().
* Documentation updates from Dave Mills.
* CID 81: savedconfig leaked in save_config().
* Make the code agree with the spec and the book (Dave Mills).
(4.2.5p211) 2009/09/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 663] respect ntpq -c and -p order on command line.
* [Bug 1292] more VC6 unsigned __int64 workarounds.
* [Bug 1296] Added Support for Trimble Acutime Gold.
(4.2.5p210) 2009/09/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1294] Use OPENSSL_INC and OPENSSL_LIB macros for Windows
and remove unnecessary reference to applink.c for Windows
* [Bug 1295] trap directive options are not optional.
* [Bug 1297] yylex() must always set yylval before returning.
(4.2.5p209) 2009/09/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1290] Fix to use GETTIMEOFDAY macro
* [Bug 1289] Update project files for VC6, VS2003, VS2005, VS 2008
(4.2.5p208) 2009/08/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1293] make configuration dumper ready for release, specifically:
* rename ntpq dumpcfg command to "saveconfig".
* require authentication for saveconfig.
* "restrict ... nomodify" prevents saveconfig and :config.
* "saveconfig ." shorthand to save to startup configuration file.
* support strftime() substitution in saveconfig arg to timestamp
the output filename, for example "saveconfig %Y%m%d-%H%M%S.conf".
* display saveconfig response message from ntpd in ntpq.
* save output filename in "savedconfig" variable, fetched with ntpq -c
"rv 0 savedconfig".
* document saveconfig in html/ntpq.html.
* add ./configure --disable-saveconfig to build a smaller ntpd.
* log saveconfig failures and successes to syslog.
(4.2.5p207) 2009/08/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1292] Minor Windows source tweaks for VC6-era SDK headers.
(4.2.5p206) 2009/08/26 Released by Harlan Stenn <stenn@ntp.org>
* accopt.html typo fixes from Dave Mills.
* [Bug 1283] default to remembering KoD in sntp.
* clean up numerous sntp/kod_management.c bugs.
* use all addresses resolved from each DNS name in sntp.
(4.2.5p205) 2009/08/18 Released by Harlan Stenn <stenn@ntp.org>
* accopt.html typo fixes from Dave Mills.
* [Bug 1285] Log ntpq :config/config-from-file events.
* [Bug 1286] dumpcfg omits statsdir, mangles filegen.
(4.2.5p204) 2009/08/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1284] infinite loop in ntpd dumping more than one trustedkey
(4.2.5p203) 2009/08/16 Released by Harlan Stenn <stenn@ntp.org>
* Add ntpq -c dumpcfg, Google Summer of Code project of Max Kuehn
(4.2.5p202) 2009/08/14 Released by Harlan Stenn <stenn@ntp.org>
* install the binary and man page for sntp.
(4.2.5p201) 2009/08/13 Released by Harlan Stenn <stenn@ntp.org>
* sntp: out with the old, in with the new.
(4.2.5p200) 2009/08/12 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1281] Build ntpd on Windows without big SDK download, burn,
and install by checking in essentially unchanging messages.mc build
products to avoid requiring mc.exe, which is not included with VC++
2008 EE.
(4.2.5p199) 2009/08/09 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1279] Cleanup for warnings from Veracode static analysis.
(4.2.5p198) 2009/08/03 Released by Harlan Stenn <stenn@ntp.org>
* Upgrade to autogen-5.9.9-pre5.
(4.2.5p197) 2009/07/30 Released by Harlan Stenn <stenn@ntp.org>
* The build script now has . at the end of PATH for config.guess.
(4.2.5p196) 2009/07/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1272] gsoc_sntp IPv6 build problems under HP-UX 10.
* [Bug 1273] CID 10: Palisade leaks unit struct in error path.
* [Bug 1274] CID 67: ensure resolve_hosts() output count and pointers
are consistent.
* [Bug 1275] CID 45: CID 46: old sntp uses uninitialized guesses[0],
precs[0].
* [Bug 1276] CID 52: crypto_xmit() may call crypto_alice[23]()
with NULL peer.
(4.2.5p195) 2009/07/27 Released by Harlan Stenn <stenn@ntp.org>
* cvo.sh: Add support for CentOS, Fedora, Slackware, SuSE, and QNX.
(4.2.5p194) 2009/07/26 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* Use scripts/cvo.sh in the build script to get better subdir names.
(4.2.5p193) 2009/07/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1261] CID 34: simulate_server() rbuf.msg_flags uninitialized.
* [Bug 1262] CID 35: xpkt.mac uninitialized in simulate_server().
* [Bug 1263] CID 37: CID 38: CID 40: CID 43: multiple refclocks
uninitialized tm_zone (arc, chronolog, dumbclock, pcf).
* [Bug 1264] CID 64: gsoc_sntp on_wire() frees wrong ptr receiving KoD.
* [Bug 1265] CID 65: CID 66: gsoc_sntp on_wire() leaks x_pkt, r_pkt.
* [Bug 1266] CID 39: datum_pts_start() uninitialized arg.c_ospeed.
* [Bug 1267] CID 44: old sntp handle_saving() writes stack garbage to
file when clearing.
* [Bug 1268] CID 63: resolve_hosts() leaks error message buffer.
* [Bug 1269] CID 74: use assertion to ensure move_fd() does not return
negative descriptors.
* [Bug 1270] CID 70: gsoc_sntp recv_bcst_data mdevadr.ipv6mr_interface
uninitialized.
(4.2.5p192) 2009/07/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 965] CID 42: ss_family uninitialized.
* [Bug 1250] CID 53: kod_init_kod_db() overruns kod_db malloc'd buffer.
* [Bug 1251] CID 68: search_entry() mishandles dst argument.
* [Bug 1252] CID 32: Quiet Coverity warning with assertion.
* [Bug 1253] CID 50: gsoc_sntp/crypto.c auth_init() always returns a
list with one entry.
* [Bug 1254] CID 56: tv_to_str() leaks a struct tm each call.
* [Bug 1255] CID 55: pkt_output() leaks a copy of each packet.
* [Bug 1256] CID 51: Coverity doesn't recognize our assertion macros as
terminal.
* [Bug 1257] CID 57: gsoc_sntp auth_init() fails to fclose(keyfile).
* [Bug 1258] CID 54: gsoc_sntp resolve_hosts() needs simplification.
* [Bug 1259] CID 59: gsoc_sntp recv_bcast_data() fails to free(rdata)
on error paths.
* [Bug 1260] CID 60: gsoc_sntp recvpkt() fails to free(rdata).
* Updated to AutoGen-5.9.9pre2.
(4.2.5p191) 2009/07/21 Released by Harlan Stenn <stenn@ntp.org>
* Updated to AutoGen-5.9.9pre1.
(4.2.5p190) 2009/07/20 Released by Harlan Stenn <stenn@ntp.org>
* Updated to AutoGen-5.9.8.
* [Bug 1248] RES_MSSNTP typo in ntp_proto.c.
* [Bug 1246] use a common template for singly-linked lists, convert most
doubly-linked lists to singly-linked.
* Log warning about signd blocking when restrict mssntp used.
(4.2.5p189) 2009/07/16 Released by Harlan Stenn <stenn@ntp.org>
* Documentation cleanup from Dave Mills.
(4.2.5p188) 2009/07/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1245] Broken xmt time sent in fast_xmit() of 4.2.5p187.
(4.2.5p187) 2009/07/11 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1042] multicast listeners IPv4+6 ignore new interfaces.
* [Bug 1237] Windows serial code treat CR and LF both as line
terminators.
* [Bug 1238] use fudge time2 for serial timecode offset in NMEA driver.
* [Bug 1242] Remove --enable-wintime, symmetric workaround is now
always enabled.
* [Bug 1244] NTP_INSIST(fd != maxactivefd) failure in intres child
* Added restrict keyword "mssntp" for Samba4 DC operation, by Dave Mills.
(4.2.5p186) 2009/07/08 Released by Harlan Stenn <stenn@ntp.org>
* ntp_proto.c cleanup from Dave Mills.
(4.2.5p185) 2009/07/01 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* [Bug 1234] convert NMEA driver to use common PPSAPI code.
* timepps-Solaris.h pps_handle_t changed from pointer to scalar
* Spectracom refclock added to Windows port of ntpd
* [Bug 1236] Declaration order fixed.
* Bracket private ONCORE debug statements with #if 0 rather than #ifdef
DEBUG
* Delete ONCORE debug statement that is now handled elsewhere.
(4.2.5p184) 2009/06/24 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1233] atom refclock fudge time1 sign flipped in 4.2.5p164.
(4.2.5p183) 2009/06/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1196] setsockopt(SO_EXCLUSIVEADDRUSE) can fail on Windows 2000
and earlier with WSAINVAL, do not log a complaint in that case.
* [Bug 1210] ONCORE driver terminates ntpd without logging a reason.
* [Bug 1218] Correct comment in refclock_oncore on /etc/ntp.oncore*
configuration file search order.
* Change ONCORE driver to log using msyslog as well as to any
clockstats file.
* [Bug 1231] ntpsnmpd build fails after sockaddr union changes.
(4.2.5p182) 2009/06/18 Released by Harlan Stenn <stenn@ntp.org>
* Add missing header dependencies to the ntpdc layout verification.
* prefer.html updates from Dave Mills.
* [Bug 1205] Add ntpd --usepcc and --pccfreq options on Windows
* [Bug 1215] unpeer by association ID
* [Bug 1225] Broadcast address miscalculated on Windows 4.2.5p180
* [Bug 1229] autokey segfaults in cert_install().
* Use a union for structs sockaddr, sockaddr_storage, sockaddr_in, and
sockaddr_in6 to remove casts and enable type checking. Collapse
some previously separate IPv4/IPv6 paths into a single codepath.
(4.2.5p181) 2009/06/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1206] Required compiler changes for Windows
* [Bug 1084] PPSAPI for ntpd on Windows with DLL backends
* [Bug 1204] Unix-style refclock device paths on Windows
* [Bug 1205] partial fix, disable RDTSC use by default on Windows
* [Bug 1208] decodenetnum() buffer overrun on [ with no ]
* [Bug 1211] keysdir free()d twice #ifdef DEBUG
* Enable ONCORE, ARCRON refclocks on Windows (untested)
(4.2.5p180) 2009/05/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1200] Enable IPv6 in Windows port
* Lose FLAG_FIXPOLL, from Dave Mills.
(4.2.5p179) 2009/05/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1041] xmt -> aorg timestamp cleanup from Dave Mills,
reported by Dave Hart.
* [Bug 1193] Compile error: conflicting types for emalloc.
* [Bug 1196] VC6 winsock2.h does not define SO_EXCLUSIVEADDRUSE.
* Leap/expire cleanup from Dave Mills.
(4.2.5p178) 2009/05/21 Released by Harlan Stenn <stenn@ntp.org>
* Provide erealloc() and estrdup(), a la emalloc().
* Improve ntp.conf's parser error messages.
* [Bug 320] "restrict default ignore" does not affect IPv6.
* [Bug 1192] "restrict -6 ..." reports a syntax error.
(4.2.5p177) 2009/05/18 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p7
* [Bug 1174] nmea_shutdown assumes that nmea has a unit assigned
* [Bug 1190] NMEA refclock fudge flag4 1 obscures position in timecode
* Update NMEA refclock documentation in html/drivers/driver20.html
(4.2.5p176) 2009/05/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1154] mDNS registration should be done later, repeatedly and only
if asked for. (second try for fix)
(4.2.5p175) 2009/05/12 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p7-RC7
* [Bug 1180] ntpd won't start with more than ~1000 interfaces
* [Bug 1182] Documentation typos and missing bits.
* [Bug 1183] COM port support should extend past COM3
* [Bug 1184] ntpd is deaf when restricted to second IP on the same net
* Clean up configure.ac NTP_CACHEVERSION interface, display cache
version when clearing. Fixes a regression.
(4.2.5p174) 2009/05/09 Released by Harlan Stenn <stenn@ntp.org>
* Stale leapsecond file fixes from Dave Mills.
(4.2.5p173) 2009/05/08 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p7-RC6
(4.2.5p172) 2009/05/06 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1175] Instability in PLL daemon mode.
* [Bug 1176] refclock_parse.c does not compile without PPSAPI.
(4.2.5p171) 2009/05/04 Released by Harlan Stenn <stenn@ntp.org>
* Autokey documentation cleanup from Dave Mills.
* [Bug 1171] line editing libs found without headers (Solaris 11)
* [Bug 1173] NMEA refclock fails with Solaris PPSAPI
* Fix problem linking msntp on Solaris when sntp subdir is configured
before parent caused by different gethostent library search order.
* Do not clear config.cache when it is empty.
(4.2.5p170) 2009/05/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1152] adjust PARSE to new refclock_pps logic
* Include 4.2.4p7-RC5
* loopfilter FLL/PLL crossover cleanup from Dave Mills.
* Documentation updates from Dave Mills.
* ntp-keygen cleanup from Dave Mills.
* crypto API cleanup from Dave Mills.
* Add NTP_CACHEVERSION mechanism to ignore incompatible config.cache
* Enable gcc -Wstrict-overflow for gsoc_sntp as well
(4.2.5p169) 2009/04/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1171] Note that we never look for -lreadline by default.
* [Bug 1090] Fix bogus leap seconds in refclock_hpgps.
(4.2.5p168) 2009/04/29 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p7-RC4
* [Bug 1169] quiet compiler warnings
* Re-enable gcc -Wstrict-prototypes when not building with OpenSSL
* Enable gcc -Wstrict-overflow
* ntpq/ntpdc emit newline after accepting password on Windows
* Updates from Dave Mills:
* ntp-keygen.c: Updates.
* Fix the error return and syslog function ID in refclock_{param,ppsapi}.
* Make sure syspoll is within the peer's minpoll/maxpoll bounds.
* ntp_crypto.c: Use sign_siglen, not len. sign key filename cleanup.
* Bump NTP_MAXEXTEN from 1024 to 2048, update values for some field lengths.
* m4/ntp_lineeditlibs.m4: fix warnings from newer Autoconf
* [Bug 1166] Remove truncation of position (blanking) code in refclock_nmea.c
(4.2.5p167) 2009/04/26 Released by Harlan Stenn <stenn@ntp.org>
* Crypto cleanup from Dave Mills.
(4.2.5p166) 2009/04/25 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1165] Clean up small memory leaks in the config file parser
* Correct logconfig keyword declaration to MULTIPLE_ARG
* Enable filename and line number leak reporting on Windows when built
DEBUG for all the typical C runtime allocators such as calloc,
malloc, and strdup. Previously only emalloc calls were covered.
* Add DEBUG-only code to free dynamically allocated memory that would
otherwise remain allocated at ntpd exit, to allow less forgivable
leaks to stand out in leaks reported after exit.
* Ensure termination of strings in ports/winnt/libisc/isc_strerror.c
and quiet compiler warnings.
* [Bug 1057] ntpdc unconfig failure
* [Bug 1161] unpeer AKA unconfig command for ntpq :config
* PPS and crypto cleanup in ntp_proto.c from Dave Mills.
(4.2.5p165) 2009/04/23 Released by Harlan Stenn <stenn@ntp.org>
* WWVB refclock cleanup from Dave Mills.
* Code cleanup: requested_key -> request_key.
* [Bug 833] ignore whitespace at end of remote configuration lines
* [Bug 1033] ntpdc/ntpq crash prompting for keyid on Windows
* [Bug 1028] Support for W32Time authentication via Samba.
* quiet ntp_parser.c malloc redeclaration warning
* Mitigation and PPS/PPSAPI cleanup from Dave Mills.
* Documentation updates from Dave Mills.
* timepps-Solaris.h patches from Dave Hart.
(4.2.5p164) 2009/04/22 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p7-RC3
* PPS/PPSAPI cleanup from Dave Mills.
* Documentation updates from Dave Mills.
* [Bug 1125] C runtime per-thread initialization on Windows
* [Bug 1152] temporarily disable refclock_parse, refclock_true until
maintainers can repair build break from pps_sample()
* [Bug 1153] refclock_nmea should not mix UTC with GPS time
* [Bug 1159] ntpq overlap diagnostic message test buggy
(4.2.5p163) 2009/04/10 Released by Harlan Stenn <stenn@ntp.org>
(4.2.5p162) 2009/04/09 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* Mitigation and PPS cleanup from Dave Mills.
* Include 4.2.4p7-RC2
* [Bug 216] New interpolation scheme for Windows eliminates 1ms jitter
* remove a bunch of #ifdef SYS_WINNT from portable code
* 64-bit time_t cleanup for building on newer Windows compilers
* Only set CMOS clock during ntpd exit on Windows if the computer is
shutting down or restarting.
* [Bug 1148] NMEA reference clock improvements
* remove deleted gsoc_sntp/utilities.o from repository so that .o build
products can be cleaned up without corrupting the repository.
(4.2.5p161) 2009/03/31 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
(4.2.5p160) 2009/03/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1141] refclock_report missing braces cause spurious "peer event:
clock clk_unspec" log entries
* Include 4.2.4p7-RC1
(4.2.5p159) 2009/03/28 Released by Harlan Stenn <stenn@ntp.org>
* "bias" changes from Dave Mills.
(4.2.5p158) 2009/01/30 Released by Harlan Stenn <stenn@ntp.org>
* Fix [CID 72], a typo introduced at the latest fix to prettydate.c.
(4.2.5p157) 2009/01/26 Released by Harlan Stenn <stenn@ntp.org>
* Cleanup/fixes for ntp_proto.c and ntp_crypto.c from Dave Mills.
(4.2.5p156) 2009/01/19 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1118] Fixed sign extension for 32 bit time_t in caljulian() and prettydate().
Fixed some compiler warnings about missing prototypes.
Fixed some other simple compiler warnings.
* [Bug 1119] [CID 52] Avoid a possible null-dereference in ntp_crypto.c.
* [Bug 1120] [CID 51] INSIST that peer is non-null before we dereference it.
* [Bug 1121] [CID 47] double fclose() in ntp-keygen.c.
(4.2.5p155) 2009/01/18 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* CHU frequency updates.
* Design assertion fixes for ntp_crypto.c from Dave Mills.
(4.2.5p154) 2009/01/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 992] support interface event change on Linux from
Miroslav Lichvar.
(4.2.5p153) 2009/01/09 Released by Harlan Stenn <stenn@ntp.org>
* Renamed gsoc_sntp/:fetch-stubs to gsoc_sntp/fetch-stubs to avoid
file name problems under Windows.
Removed German umlaut from log msg for 4.2.5p142.
(4.2.5p152) 2009/01/08 Released by Harlan Stenn <stenn@ntp.org>
* Include 4.2.4p6: 2009/01/08 Released by Harlan Stenn <stenn@ntp.org>
(4.2.5p151) 2008/12/23 Released by Harlan Stenn <stenn@ntp.org>
* Stats file logging cleanup from Dave Mills.
(4.2.5p150) 2008/12/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1099] Fixed wrong behaviour in sntp's crypto.c.
* [Bug 1103] Fix 64-bit issues in the new calendar code.
(4.2.5p149) 2008/12/05 Released by Harlan Stenn <stenn@ntp.org>
* Fixed mismatches in data types and OID definitions in ntpSnmpSubAgent.c
* added a premliminary MIB file to ntpsnmpd (ntpv4-mib.mib)
(4.2.5p148) 2008/12/04 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1070] Fix use of ntpq_parsestring() in ntpsnmpd.
(4.2.5p147) 2008/11/27 Released by Harlan Stenn <stenn@ntp.org>
* Update gsoc_sntp's GCC warning code.
(4.2.5p146) 2008/11/26 Released by Harlan Stenn <stenn@ntp.org>
* Update Solaris CFLAGS for gsoc_sntp.
(4.2.5p145) 2008/11/20 Released by Harlan Stenn <stenn@ntp.org>
* Deal with time.h for sntp under linux.
* Provide rpl_malloc() for sntp for systems that need it.
* Handle ss_len and socklen type for sntp.
* Fixes to the sntp configure.ac script.
* Provide INET6_ADDRSTRLEN if it is missing.
* [Bug 1095] overflow in caljulian.c.
(4.2.5p144) 2008/11/19 Released by Harlan Stenn <stenn@ntp.org>
* Use int32, not int32_t.
* Avoid the sched*() functions under OSF - link problems.
(4.2.5p143) 2008/11/17 Released by Harlan Stenn <stenn@ntp.org>
* sntp cleanup and fixes.
(4.2.5p142) 2008/11/16 Released by Harlan Stenn <stenn@ntp.org>
* Imported GSoC SNTP code from Johannes Maximilian Kuehn.
(4.2.5p141) 2008/11/13 Released by Harlan Stenn <stenn@ntp.org>
* New caltontp.c and calyearstart.c from Juergen Perlinger.
(4.2.5p140) 2008/11/12 Released by Harlan Stenn <stenn@ntp.org>
* Cleanup lint from the ntp_scanner files.
* [Bug 1011] gmtime() returns NULL on windows where it would not under Unix.
* Updated caljulian.c and prettydate.c from Juergen Perlinger.
(4.2.5p139) 2008/11/11 Released by Harlan Stenn <stenn@ntp.org>
* Typo fix to driver20.html.
(4.2.5p138) 2008/11/10 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 474] --disable-ipv6 is broken.
* IPv6 interfaces were being looked for twice.
* SHM driver grabs more samples, add clockstats
* decode.html and driver20.html updates from Dave Mills.
(4.2.5p137) 2008/11/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1069] #undef netsnmp's PACKAGE_* macros.
* [Bug 1068] Older versions of netsnmp do not have netsnmp_daemonize().
(4.2.5p136) 2008/10/27 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1078] statsdir configuration parsing is broken.
(4.2.5p135) 2008/09/23 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1072] clock_update should not allow updates older than sys_epoch.
(4.2.5p134) 2008/09/17 Released by Harlan Stenn <stenn@ntp.org>
* Clean up build process for ntpsnmpd.
(4.2.5p133) 2008/09/16 Released by Harlan Stenn <stenn@ntp.org>
* Add options processing to ntpsnmpd.
* [Bug 1062] Check net-snmp headers before deciding to build ntpsnmpd.
* Clean up the libntpq.a build.
* Regenerate ntp_parser.[ch] from ntp_parser.y
(4.2.5p132) 2008/09/15 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1067] Multicast DNS service registration must come after the fork
on Solaris.
* [Bug 1066] Error messages should log as errors.
(4.2.5p131) 2008/09/14 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1065] Re-enable support for the timingstats file.
(4.2.5p130) 2008/09/13 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1064] Implement --with-net-snmp-config=progname
* [Bug 1063] ntpSnmpSubagentObject.h is missing from the distribution.
(4.2.5p129) 2008/09/11 Released by Harlan Stenn <stenn@ntp.org>
* Quiet some libntpq-related warnings.
(4.2.5p128) 2008/09/08 Released by Harlan Stenn <stenn@ntp.org>
* Import Heiko Gerstung's GSoC2008 NTP MIB daemon.
(4.2.5p127) 2008/09/01 Released by Harlan Stenn <stenn@ntp.org>
* Regenerate ntpd/ntp_parser.c
(4.2.5p126) 2008/08/31 Released by Harlan Stenn <stenn@ntp.org>
* Stop libtool-1.5 from looking for C++ or Fortran.
* [BUG 610] Documentation update for NMEA reference clock driver.
* [Bug 828] Fix IPv4/IPv6 address parsing.
* Changes from Dave Mills:
Documentation updates.
Fix a corner case where a frequency update was reported but not set.
When LEAP_NOTINSYNC->LEAP_NOWARNING, call crypto_update() if we have
crypto_flags.
(4.2.5p125) 2008/08/18 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1052] Add linuxPPS support to ONCORE driver.
(4.2.5p124) 2008/08/17 Released by Harlan Stenn <stenn@ntp.org>
* Documentation updates from Dave Mills.
* Include 4.2.4p5: 2008/08/17 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 861] leap info was not being transmitted.
* [Bug 1046] refnumtoa.c is using the wrong header file.
* [Bug 1047] enable/disable options processing fix.
* header file cleanup.
* [Bug 1037] buffer in subroutine was 1 byte short.
* configure.ac: cleanup, add option for wintime, and lay the groundwork
for the changes needed for bug 1028.
* Fixes from Dave Mills: 'bias' and 'interleave' work. Separate
phase and frequency discipline (for long poll intervals). Update
TAI function to match current leapsecond processing.
* Documentation updates from Dave Mills.
* [Bug 1037] Use all 16 of the MD5 passwords generated by ntp-keygen.
* Fixed the incorrect edge parameter being passed to time_pps_kcbind in
NMEA refclock driver.
* [Bug 399] NMEA refclock driver does not honor time1 offset if flag3 set.
* [Bug 985] Modifications to NMEA reference clock driver to support Accord
GPS Clock.
* poll time updates from Dave Mills.
* local refclock documentation updates from Dave Mills.
* [Bug 1022] Fix compilation problems with yesterday's commit.
* Updates and cleanup from Dave Mills:
I've now spent eleven months of a sabbatical year - 7 days a week, 6-10
hours most days - working on NTP. I have carefully reviewed every major
algorithm, examined its original design and evolution from that design.
I've trimmed off dead code and briar patches and did zillions of tests
contrived to expose evil vulnerabilities. The development article is in
rather good shape and should be ready for prime time.
1. The protostats statistics files have been very useful in exposing
little twitches and turns when something hiccups, like a broken PPS
signal. Most of what used to be syslog messages are now repackaged as
protostats messages with optional syslog as well. These can also be sent
as traps which might be handy to tiggle a beeper or celltext. These, the
sysstats files and cryptostats files reveal the ambient health of a busy
server, monitor traffic and error counts and spot crypto attacks.
2. Close inspection of the clock discipline behavior at long poll
intervals (36 h) showed it not doing as well as it should. I redesigned
the FLL loop to improve nominal accuracy from several tens of
milliseconds to something less than ten milliseconds.
3. Autokey (again). The enhanced error checking was becoming a major
pain. I found a way to toss out gobs of ugly fat code and replace the
function with a much simpler and more comprehensive scheme. It resists
bait-and-switch attacks and quickly detect cases when the protocol is
not correctly synchronized.
4. The interface code for the kernel PPS signal was not in sync with the
kernel code itself. Some error checks were duplicated and some
ineffective. I found none of the PPS-capable drivers, including the atom
driver, do anything when the prefer peer fails; the kernel PPS signal
remains in control. The atom driver now disables the kernel PPS when the
prefer peer comes bum. This is important when the prefer peer is not a
reference clock but a remote NTP server.
5. The flake restrict bit turned out to be really interesting,
especially with symmtric modes and of those especially those using
Autokey. Small changes in the recovery procedures when packets are lost
now avoid almost all scenarios which previously required protocol resets.
6. I've always been a little uncomfortable when using the clock filter
with long poll intervals because the samples become less and less
correlated as the sample age exceeds the Allan intercept. Various
schemes have been used over the years to cope with this fact. The latest
one and the one that works the best is to use a modified sort metric
where the delay is used when the age of the sample is less than the
intercept and the sum of delay and dispersion above that. The net result
is that, at small poll intervals the algorithm operates as a minimum
filter, while at larger poll intervals it morphs to FIFO. Left
unmodified, a sample could be used when twelve days old. This along with
the FLL modifications has made a dramatic improvement at large poll
intervals.
- [Backward Incompatible] The 'state' variable is no longer reported or
available via ntpq output. The following system status bit names
have been changed:
- sync_alarm -> leap_alarm
- sync_atomic -> sync_pps
- sync_lf_clock -> sync_lf_radio
- sync_hf_clock -> sync_hf_radio
- sync_uhf_clock -> sync_uhf_radio
- sync_local_proto -> sync_local
- sync_udp/time -> sync_other
Other names have been changed as well. See the change history for
libntp/statestr.c for more details.
Other backward-incompatible changes in ntpq include:
- assID -> associd
- rootdispersion -> rootdisp
- pkt_head -> pkt_neader
See the change history for other details.
* Updates and cleanup from Dave Mills.
* [Bug 995] Remove spurious ; from ntp-keygen.c.
* More cleanup and changes from Dave Mills.
* [Bug 980] Direct help to stdout.
---
(4.2.4p8) 2009/12/08 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
---
(4.2.4p7) 2009/05/18 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 1151] Remote exploit if autokey is enabled - CVE-2009-1252.
* [Bug 1187] Update the copyright date.
* [Bug 1191] ntpd fails on Win2000 - "Address already in use" after fix
for [Sec 1149].
---
(4.2.4p7-RC7) 2009/05/12 Released by Harlan Stenn <stenn@ntp.org>
* ntp.isc.org -> ntp.org cleanup.
* [Bug 1178] Use prior FORCE_DNSRETRY behavior as needed at runtime,
add configure --enable-ignore-dns-errors to be even more stubborn
---
(4.2.4p7-RC6) 2009/05/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 784] Make --enable-linuxcaps the default when available
* [Bug 1179] error messages for -u/--user and -i lacking droproot
* Updated JJY reference clock driver from Takao Abe
* [Bug 1071] Log a message and exit before trying to use FD_SET with a
descriptor larger than FD_SETSIZE, which will corrupt memory
* On corruption of the iface list head in add_interface, log and exit
---
(4.2.4p7-RC5) 2009/05/02 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1172] 4.2.4p7-RC{3,4} fail to build on linux.
* flock-build script unportable 'set -m' use removed
---
(4.2.4p7-RC4) 2009/04/29 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1167] use gcc -Winit-self only if it is understood
---
(4.2.4p7-RC3) 2009/04/22 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 787] Bug fixes for 64-bit time_t on Windows
* [Bug 813] Conditional naming of Event
* [Bug 1147] System errors should be logged to msyslog()
* [Bug 1155] Fix compile problem on Windows with VS2005
* [Bug 1156] lock_thread_to_processor() should be declared in header
* [Bug 1157] quiet OpenSSL warnings, clean up configure.ac
* [Bug 1158] support for aix6.1
* [Bug 1160] MacOS X is like BSD regarding F_SETOWN
---
(4.2.4p7-RC2) 2009/04/09 Released by Harlan Stenn <stenn@ntp.org>
* [Sec 1144] limited buffer overflow in ntpq. CVE-2009-0159
* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
---
(4.2.4p7-RC1) 2009/03/30 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1131] UDP sockets should not use SIGPOLL on Solaris.
* build system email address cleanup
* [Bug 774] parsesolaris.c does not compile under the new Solaris
* [Bug 873] Windows serial refclock proper TTY line discipline emulation
* [Bug 1014] Enable building with VC9 (in Visual Studio 2008,
Visual C++ 2008, or SDK)
* [Bug 1117] Deferred interface binding under Windows works only correctly
if FORCE_DNSRETRY is defined
* [BUG 1124] Lock QueryPerformanceCounter() client threads to same CPU
* DPRINTF macro made safer, always evaluates to a statement and will not
misassociate an else which follows the macro.
---
(4.2.4p6) 2009/01/08 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 1113] Fixed build errors with recent versions of openSSL.
* [Sec 1111] Fix incorrect check of EVP_VerifyFinal()'s return value.
* Update the copyright year.
---
(4.2.4p5) 2008/08/17 Released by Harlan Stenn <stenn@ntp.org>
* [BUG 1051] Month off by one in leap second message written to clockstats
file fixed.
* [Bug 450] Windows only: Under original Windows NT we must not discard the
wildcard socket to workaround a bug in NT's getsockname().
* [Bug 1038] Built-in getpass() function also prompts for password if
not built with DEBUG.
* [Bug 841] Obsolete the "dynamic" keyword and make deferred binding
to local interfaces the default.
Emit a warning if that keyword is used for configuration.
* [Bug 959] Refclock on Windows not properly releasing recvbuffs.
* [Bug 993] Fix memory leak when fetching system messages.
* much cleanup, fixes, and changes from Dave Mills.
* ntp_control.c: LEAPTAB is a filestamp, not an unsigned. From Dave Mills.
* ntp_config.c: ntp_minpoll fixes from Dave Mills.
* ntp-keygen updates from Dave Mills.
* refresh epoch, throttle, and leap cleanup from Dave Mills.
* Documentation cleanup from Dave Mills.
* [Bug 918] Only use a native md5.h if MD5Init() is available.
* [Bug 979] Provide ntptimeval if it is not otherwise present.
* [Bug 634] Re-instantiate syslog() and logfiles after the daemon fork.
* [Bug 952] Use md5 code with a friendlier license.
* [Bug 977] Fix mismatching #ifdefs for builds without IPv6.
* [Bug 830] Fix the checking order of the interface options.
* Clean up the logfile/syslog setup.
* [Bug 970] Lose obsolete -g flag to ntp-keygen.
* The -e flag to ntp-keygen can write GQ keys now, too.
* ntp_proto.c: sys_survivors and hpoll cleanup from Dave Mills.
* ntp_loopfilter.c: sys_poll cleanup from Dave Mills.
* refclock_wwv.c: maximum-likelihood digit and DSYNC fixes from Dave Mills.
* [Bug 967] preemptable associations are lost forever on a step.
* ntp_config.c: [CID 48] missing "else" clause.
* [Bug 833] ntpq config keyword is quote-mark unfriendly.
* Rename the ntpq "config" keyword to ":config".
* Dave Mills shifted some orphan processing.
* Fix typos in the [Bug 963] patch.
* bootstrap: squawk if genver fails. Use -f with cp in case Dave does a chown.
* Remove obsolete simulator command-line options.
* ntp_request.c: [CID 36] zero sin_zero.
* [Bug 963] get_systime() is too noisy.
* [Bug 960] spurious syslog:crypto_setup:spurious crypto command
* [Bug 964] Change *-*-linux* to *-*-*linux* to allow for uclinux.
* Changes from Dave Mills:
- ntp_util.c: cleanup.
- ntp_timer.c: watch the non-burst packet rate.
- ntp_request.c: cleanup.
- ntp_restrict.c: RES_LIMITED cleanup.
- ntp_proto.c: RES_LIMITED, rate bucktes, counters, overall cleanup.
- ntp_peer.c: disallow peer_unconfig().
- ntp_monitor.c: RES_LIMITED cleanup.
- ntp_loopfilter.c: poll interval cleanup.
- ntp_crypto.c: volley -> retry. Cleanup TAI leap message.
- ntp_config: average and minimum are ^2 values.
- ntpdc: unknownversion is really "declined", not "bad version".
- Packet retry cleanup.
* [Bug 961] refclock_tpro.c:tpro_poll() calls refclock_receive() twice.
* [Bug 957] Windows only: Let command line parameters from the Windows SCM GUI
override the standard parameters from the ImagePath registry key.
* Added HAVE_INT32_T to the Windows config.h to avoid duplicate definitions.
* Work around a VPATH difference in FreeBSD's 'make' command.
* Update bugreport URL.
* Update -I documentation.
* [Bug 713] Fix bug reporting information.
* A bug in the application of the negative-sawtooth for 12 channel receivers.
* The removal of unneeded startup code used for the original LinuxPPS, it now
conforms to the PPSAPI and does not need special code.
* ntp-keygen.c: Coverity fixes [CID 33,47].
* Volley cleanup from Dave Mills.
* Fuzz cleanup from Dave Mills.
* [Bug 861] Leap second cleanups from Dave Mills.
* ntpsim.c: add missing protypes and fix [CID 34], a nit.
* Upgraded bison at UDel.
* Update br-flock and flock-build machine lists.
* [Bug 752] QoS: add parse/config handling code.
* Fix the #include order in tickadj.c for picky machines.
* [Bug 752] QoS: On some systems, netinet/ip.h needs netinet/ip_systm.h.
* [Bug 752] Update the QoS tagging (code only - configuration to follow).
* Orphan mode and other protocol cleanup from Dave Mills.
* Documentation cleanup from Dave Mills.
* [Bug 940] ntp-keygen uses -v. Disallow it as a shortcut for --version.
* more cleanup to ntp_lineeditlibs.m4.
* Documentation updates from Dave Mills.
* -ledit cleanup for ntpdc and ntpq.
* Association and other cleanup from Dave Mills.
* NTP_UNREACH changes from Dave Mills.
* Fix the readline history test.
* [Bug 931] Require -lreadline to be asked for explicitly.
* [Bug 764] When looking for -lreadline support, also try using -lncurses.
* [Bug 909] Fix int32_t errors for ntohl().
* [Bug 376/214] Enhancements to support multiple if names and IP addresses.
* [Bug 929] int32_t is undefined on Windows. Casting wrong.
* [Bug 928] readlink missing braces.
* [Bug 788] Update macros to support VS 2005.
* ntpd/ntp_timer.c: add missing sys_tai parameter for debug printf
* [Bug 917] config parse leaves files open
* [Bug 912] detect conflicting enable/disable configuration on interfaces
sharing an IP address
* [Bug 771] compare scopeid if available for IPv6 addresses
* Lose obsolete crypto subcommands (Dave Mills).
* WWV is an HF source, not an LF source (Dave Mills).
* [Bug 899] Only show -i/--jaildir -u/--user options if we HAVE_DROPROOT.
* [Bug 916] 'cryptosw' is undefined if built without OpenSSL.
* [Bug 891] 'restrict' config file keyword does not work (partial fix).
* [Bug 890] the crypto command seems to be required now.
* [Bug 915] ntpd cores during processing of x509 certificates.
* Crypto lint cleanup from Dave Mills.
* [Bug 897] Check RAND_status() - we may not need a .rnd file.
* Crypto cleanup from Dave Mills.
* [Bug 911] Fix error message in cmd_args.c.
* [Bug 895] Log assertion failures via syslog(), not stderr.
* Documentation updates from Dave Mills.
* Crypto cleanup from Dave Mills.
* [Bug 905] ntp_crypto.c fails to compile without -DDEBUG.
* Avoid double peer stats logging.
* ntp-keygen cleanup from Dave Mills.
* libopts needs to be built after ElectricFence.
* [Bug 894] Initialize keysdir before calling crypto_setup().
* Calysto cleanup for ntpq.
* ntp-keygen -i takes an arg.
* Cleanup and fixes from Dave Mills.
* [Bug 887] Fix error in ntp_types.h (for sizeof int != 4).
* Bug 880 bug fixes for Windows build
* Improve Calysto support.
* The "revoke" parameter is a crypto command.
* The driftfile wander threshold is a real number.
* [Bug 850] Fix the wander threshold parameter on the driftfile command.
* ntp_io.c: Dead code cleanup - Coverity View 19.
* Leap file related cleanup from Dave Mills.
* ntp_peer.c: Set peer->srcadr before (not after) calling set_peerdstadr().
* Initialize offset in leap_file() - Coverity View 17.
* Use the correct stratum on KISS codes.
* Fuzz bits cleanup.
* Show more digits in some debug printf's.
* Use drift_file_sw internally to control writing the drift file.
* Implement the wander_threshold option for the driftfile config keyword.
* reformat ntp_control.c; do not use c++ // comments.
* [Bug 629] Undo bug #629 fixes as they cause more problems than were being
solved
* Changes from Dave Mills: in/out-bound data rates, leapsecond cleanup,
driftfile write cleanup, packet buffer length checks, documentation updates.
* More assertion checks and malloc()->emalloc(), courtesy of Calysto.
* [Bug 864] Place ntpd service in maintenance mode if using SMF on Solaris
* [Bug 862] includefile nesting; preserve phonelist on reconfig.
* [Bug 604] ntpd regularly dies on linux/alpha.
* more leap second infrastructure fixes from Dave Mills.
* [Bug 858] recent leapfile changes broke non-OpenSSL builds.
* Use emalloc() instead of malloc() in refclock_datum.c (Calysto).
* Start using 'design by contract' assertions.
* [Bug 767] Fast sync to refclocks wanted.
* Allow null driftfile.
* Use YYERROR_VERBOSE for the new parser, and fix related BUILT_SOURCES.
* [Bug 629] changes to ensure broadcast works including on wildcard addresses
* [Bug 853] get_node() must return a pointer to maximally-aligned memory.
* Initial leap file fixes from Dave Mills.
* [Bug 858] Recent leapfile changes broke without OPENSSL.
* Use a char for DIR_SEP, not a string.
* [Bug 850] driftfile parsing changes.
* driftfile maintenance changes from Dave Mills. Use clock_phi instead of
stats_write_tolerance.
* [Bug 828] refid string not being parsed correctly.
* [Bug 846] Correct includefile parsing.
* [Bug 827] New parsing code does not handle "fudge" correctly.
* Enable debugging capability in the config parser.
* [Bug 839] Crypto password not read from ntp.conf.
* Have autogen produce writable output files.
* [Bug 825] Correct logconfig -/+ keyword processing.
* [Bug 828] Correct parsing of " delimited strings.
* Cleanup FILE * usage after fclose() in ntp_filegen.c.
* [Bug 843] Windows Completion port code was incorrectly merged from -stable.
* [Bug 840] do fudge configuration AFTER peers (thus refclocks) have been
configured.
* [Bug 824] Added new parser modules to the Windows project file.
* [Bug 832] Add libisc/log.c headers to the distribution.
* [Bug 808] Only write the drift file if we are in state 4.
* Initial import of libisc/log.c and friends.
* [Bug 826] Fix redefinition of PI.
* [Bug 825] ntp_scanner.c needs to #include <config.h> .
* [Bug 824] New parser code has some build problems with the SIM code.
* [Bug 817] Use longnames for setting ntp variables on the command-line;
Allowing '-v' with and without an arg to disambiguate usage is error-prone.
* [Bug 822] set progname once, early.
* [Bug 819] remove erroneous #if 0 in Windows completion port code.
* The new config code missed an #ifdef for building without refclocks.
* Distribute some files needed by the new config parsing code.
* [Bug 819] Timeout for WaitForMultipleObjects was 500ms instead of INFINITE
* Use autogen 5.9.1.
* Fix clktest command-line arg processing.'
* Audio documentation updates from Dave Mills.
* New config file parsing code, from Sachin Kamboj.
* fuzz bit cleanup from Dave Mills.
* replay cleanup from Dave Mills.
* [Bug 542] Tolerate missing directory separator at EO statsdir.
* [Bug 812] ntpd should drop supplementary groups.
* [Bug 815] Fix warning compiling 4.2.5p22 under Windows with VC6.
* [Bug 740] Fix kernel/daemon startup drift anomaly.
* refclock_wwv.c fixes from Dave Mills.
* [Bug 810] Fix ntp-keygen documentation.
* [Bug 787] Bug fixes for 64-bit time_t on Windows.
* [Bug 796] Clean up duplicate #defines in ntp_control.c.
* [Bug 569] Use the correct precision for the Leitch CSD-5300.
* [Bug 795] Moved declaration of variable to top of function.
* [Bug 798] ntpq [p typo crashes ntpq/ntpdc.
* [Bug 786] Fix refclock_bancomm.c on Solaris.
* [Bug 774] parsesolaris.c does not compile under the new Solaris.
* [Bug 782] Remove P() macros from Windows files.
* [Bug 778] ntpd fails to lock with drift=+500 when started with drift=-500.
* [Bug 592] Trimble Thunderbolt GPS support.
* IRIG, CHU, WWV, WWVB refclock improvements from Dave Mills.
* [Bug 757] Lose ULONG_CONST().
* [Bug 756] Require ANSI C (function prototypes).
* codec (audio) and ICOM changes from Dave Mills.
---
* [Bug 450] Windows only: Under original Windows NT we must not discard the
wildcard socket to workaround a bug in NT's getsockname().
* [Bug 1038] Built-in getpass() function also prompts for password if
not built with DEBUG.
* [Bug 841] Obsolete the "dynamic" keyword and make deferred binding
to local interfaces the default.
Emit a warning if that keyword is used for configuration.
* [Bug 959] Refclock on Windows not properly releasing recvbuffs.
* [Bug 993] Fix memory leak when fetching system messages.
* [Bug 987] Wake up the resolver thread/process when a new interface has
become available.
* Correctly apply negative-sawtooth for oncore 12 channel receiver.
* Startup code for original LinuxPPS removed. LinuxPPS now conforms to
the PPSAPI.
* [Bug 1000] allow implicit receive buffer allocation for Windows.
fixes startup for windows systems with many interfaces.
reduces dropped packets on network bursts.
additionally fix timer() starvation during high load.
* [Bug 990] drop minimum time restriction for interface update interval.
* [Bug 977] Fix mismatching #ifdefs for builds without IPv6.
* Update the copyright year.
* Build system cleanup (make autogen-generated files writable).
* [Bug 957] Windows only: Let command line parameters from the Windows SCM GUI
override the standard parameters from the ImagePath registry key.
* Fixes for ntpdate:
* [Bug 532] nptdate timeout is too long if several servers are supplied.
* [Bug 698] timeBeginPeriod is called without timeEndPeriod in some NTP tools.
* [Bug 857] ntpdate debug mode adjusts system clock when it shouldn't.
* [Bug 908] ntpdate crashes sometimes.
* [Bug 982] ntpdate(and ntptimeset) buffer overrun if HAVE_POLL_H isn't set
(dup of 908).
* [Bug 997] ntpdate buffer too small and unsafe.
* ntpdate.c: Under Windows check whether NTP port in use under same conditions
as under other OSs.
* ntpdate.c: Fixed some typos and indents (tabs/spaces).
(4.2.4p4) Released by Harlan Stenn <stenn@ntp.org>
* [Bug 902] Fix problems with the -6 flag.
* Updated include/copyright.def (owner and year).
* [Bug 878] Avoid ntpdc use of refid value as unterminated string.
* [Bug 881] Corrected display of pll offset on 64bit systems.
* [Bug 886] Corrected sign handling on 64bit in ntpdc loopinfo command.
* [Bug 889] avoid malloc() interrupted by SIGIO risk
* ntpd/refclock_parse.c: cleanup shutdown while the file descriptor is still
open.
* [Bug 885] use emalloc() to get a message at the end of the memory
unsigned types cannot be less than 0
default_ai_family is a short
lose trailing , from enum list
clarify ntp_restrict.c for easier automated analysis
* [Bug 884] don't access recv buffers after having them passed to the free
list.
* [Bug 882] allow loopback interfaces to share addresses with other
interfaces.
---
(4.2.4p3) Released by Harlan Stenn <stenn@ntp.org>
* [Bug 863] unable to stop ntpd on Windows as the handle reference for events
changed
---
(4.2.4p2) Released by Harlan Stenn <stenn@ntp.org>
* [Bug 854] Broadcast address was not correctly set for interface addresses
* [Bug 829] reduce syslog noise, while there fix Enabled/Disable logging
to reflect the actual configuration.
* [Bug 795] Moved declaration of variable to top of function.
* [Bug 789] Fix multicast client crypto authentication and make sure arriving
multicast packets do not disturb the autokey dance.
* [Bug 785] improve handling of multicast interfaces
(multicast routers still need to run a multicast routing software/daemon)
* ntpd/refclock_parse.c: cleanup shutdown while the file descriptor is still
open.
* [Bug 885] use emalloc() to get a message at the end of the memory
unsigned types cannot be less than 0
default_ai_family is a short
lose trailing , from enum list
* [Bug 884] don't access recv buffers after having them passed to the free list.
* [Bug 882] allow loopback interfaces to share addresses with other interfaces.
* [Bug 527] Don't write from source address length to wrong location
* Upgraded autogen and libopts.
* [Bug 811] ntpd should not read a .ntprc file.
---
(4.2.4p1) (skipped)
---
(4.2.4p0) Released by Harlan Stenn <stenn@ntp.org>
* [Bug 793] Update Hans Lambermont's email address in ntpsweep.
* [Bug 776] Remove unimplemented "rate" flag from ntpdate.
* [Bug 586] Avoid lookups if AI_NUMERICHOST is set.
* [Bug 770] Fix numeric parameters to ntp-keygen (Alain Guibert).
* [Bug 768] Fix io_setbclient() error message.
* [Bug 765] Use net_bind_service capability on linux.
* [Bug 760] The background resolver must be aware of the 'dynamic' keyword.
* [Bug 753] make union timestamp anonymous (Philip Prindeville).
* confopt.html: move description for "dynamic" keyword into the right section.
* pick the right type for the recv*() length argument.
---
(4.2.4) Released by Harlan Stenn <stenn@ntp.org>
* monopt.html fixes from Dave Mills.
* [Bug 452] Do not report kernel PLL/FLL flips.
* [Bug 746] Expert mouseCLOCK USB v2.0 support added.'
* driver8.html updates.
* [Bug 747] Drop <NOBR> tags from ntpdc.html.
* sntp now uses the returned precision to control decimal places.
* sntp -u will use an unprivileged port for its queries.
* [Bug 741] "burst" doesn't work with !unfit peers.
* [Bug 735] Fix a make/gmake VPATH issue on Solaris.
* [Bug 739] ntpd -x should not take an argument.
* [Bug 737] Some systems need help providing struct iovec.
* [Bug 717] Fix libopts compile problem.
* [Bug 728] parse documentation fixes.
* [Bug 734] setsockopt(..., IP_MULTICAST_IF, ...) fails on 64-bit platforms.
* [Bug 732] C-DEX JST2000 patch from Hideo Kuramatsu.
* [Bug 721] check for __ss_family and __ss_len separately.
* [Bug 666] ntpq opeers displays jitter rather than dispersion.
* [Bug 718] Use the recommended type for the saddrlen arg to getsockname().
* [Bug 715] Fix a multicast issue under Linux.
* [Bug 690] Fix a Windows DNS lookup buffer overflow.
* [Bug 670] Resolved a Windows issue with the dynamic interface rescan code.
* K&R C support is being deprecated.
* [Bug 714] ntpq -p should conflict with -i, not -c.
* WWV refclock improvements from Dave Mills.
* [Bug 708] Use thread affinity only for the clock interpolation thread.
* [Bug 706] ntpd can be running several times in parallel.
* [Bug 704] Documentation typos.
* [Bug 701] coverity: NULL dereference in ntp_peer.c
* [Bug 695] libopts does not protect against macro collisions.
* [Bug 693] __adjtimex is independent of ntp_{adj,get}time.
* [Bug 692] sys_limitrejected was not being incremented.
* [Bug 691] restrictions() assumption not always valid.
* [Bug 689] Deprecate HEATH GC-1001 II; the driver never worked.
* [Bug 688] Fix documentation typos.
* [Bug 686] Handle leap seconds better under Windows.
* [Bug 685] Use the Windows multimedia timer.
* [Bug 684] Only allow debug options if debugging is enabled.
* [Bug 683] Use the right version string.
* [Bug 680] Fix the generated version string on Windows.
* [Bug 678] Use the correct size for control messages.
* [Bug 677] Do not check uint_t in configure.ac.
* [Bug 676] Use the right value for msg_namelen.
* [Bug 675] Make sure ntpd builds without debugging.
* [Bug 672] Fix cross-platform structure padding/size differences.
* [Bug 660] New TIMESTAMP code fails tp build on Solaris Express.
* [Bug 659] libopts does not build under Windows.
* [Bug 658] HP-UX with cc needs -Wp,-H8166 in CFLAGS.
* [Bug 656] ntpdate doesn't work with multicast address.
* [Bug 638] STREAMS_TLI is deprecated - remove it.
* [Bug 635] Fix tOptions definition.
* [Bug 628] Fallback to ntp discipline not working for large offsets.
* [Bug 622] Dynamic interface tracking for ntpd.
* [Bug 603] Don't link with libelf if it's not needed.
* [Bug 523] ntpd service under Windows does't shut down properly.
* [Bug 500] sntp should always be built.
* [Bug 479] Fix the -P option.
* [Bug 421] Support the bc637PCI-U card.
* [Bug 342] Deprecate broken TRAK refclock driver.
* [Bug 340] Deprecate broken MSF EES refclock driver.
* [Bug 153] Don't do DNS lookups on address masks.
* [Bug 143] Fix interrupted system call on HP-UX.
* [Bug 42] Distribution tarballs should be signed.
* Support separate PPS devices for PARSE refclocks.
* [Bug 637, 51?] Dynamic interface scanning can now be done.
* Options processing now uses GNU AutoGen.
---
(4.2.2p4) Released by Harlan Stenn <stenn@ntp.org>
* [Bug 710] compat getnameinfo() has off-by-one error
* [Bug 690] Buffer overflow in Windows when doing DNS Lookups
---
(4.2.2p3) Released by Harlan Stenn <stenn@ntp.org>
* Make the ChangeLog file cleaner and easier to read
* [Bug 601] ntpq's decodeint uses an extra level of indirection
* [Bug 657] Different OSes need different sized args for IP_MULTICAST_LOOP
* release engineering/build changes
* Documentation fixes
* Get sntp working under AIX-5
---
(4.2.2p2) (broken)
* Get sntp working under AIX-5
---
(4.2.2p1)
* [Bug 661] Use environment variable to specify the base path to openssl.
* Resolve an ambiguity in the copyright notice
* Added some new documentation files
* URL cleanup in the documentation
* [Bug 657]: IP_MULTICAST_LOOP uses a u_char value/size
* quiet gcc4 complaints
* more Coverity fixes
* [Bug 614] manage file descriptors better
* [Bug 632] update kernel PPS offsets when PPS offset is re-configured
* [Bug 637] Ignore UP in*addr_any interfaces
* [Bug 633] Avoid writing files in srcdir
* release engineering/build changes
---
(4.2.2)
* SNTP
* Many bugfixes
* Implements the current "goal state" of NTPv4
* Autokey improvements
* Much better IPv6 support
* [Bug 360] ntpd loses handles with LAN connection disabled.
* [Bug 239] Fix intermittent autokey failure with multicast clients.
* Rewrite of the multicast code
* New version numbering scheme
---
(4.2.0)
* More stuff than I have time to document
* IPv6 support
* Bugfixes
* call-gap filtering
* wwv and chu refclock improvements
* OpenSSL integration
---
(4.1.2)
* clock state machine bugfix
* Lose the source port check on incoming packets
* (x)ntpdc compatibility patch
* Virtual IP improvements
* ntp_loopfilter fixes and improvements
* ntpdc improvements
* GOES refclock fix
* JJY driver
* Jupiter refclock fixes
* Neoclock4X refclock fixes
* AIX 5 port
* bsdi port fixes
* Cray unicos port upgrade
* HP MPE/iX port
* Win/NT port upgrade
* Dynix PTX port fixes
* Document conversion from CVS to BK
* readline support for ntpq
---
(4.1.0)
* CERT problem fixed (99k23)
* Huff-n-Puff filter
* Preparation for OpenSSL support
* Resolver changes/improvements are not backward compatible with mode 7
requests (which are implementation-specific anyway)
* leap second stuff
* manycast should work now
* ntp-genkeys does new good things.
* scripts/ntp-close
* PPS cleanup and improvements
* readline support for ntpdc
* Crypto/authentication rewrite
* WINNT builds with MD5 by default
* WINNT no longer requires Perl for building with Visual C++ 6.0
* algorithmic improvements, bugfixes
* Solaris dosynctodr info update
* html/pic/* is *lots* smaller
* New/updated drivers: Forum Graphic GPS, WWV/H, Heath GC-100 II, HOPF
serial and PCI, ONCORE, ulink331
* Rewrite of the audio drivers
---
(4.0.99)
* Driver updates: CHU, DCF, GPS/VME, Oncore, PCF, Ulink, WWVB, burst
If you use the ONCORE driver with a HARDPPS kernel module,
you *must* have a properly specified:
pps <filename> [assert/clear] [hardpps]
line in the /etc/ntp.conf file.
* PARSE cleanup
* PPS cleanup
* ntpd, ntpq, ntpdate cleanup and fixes
* NT port improvements
* AIX, BSDI, DEC OSF, FreeBSD, NetBSD, Reliant, SCO, Solaris port improvements
---
(4.0.98)
* Solaris kernel FLL bug is fixed in 106541-07
* Bug/lint cleanup
* PPS cleanup
* ReliantUNIX patches
* NetInfo support
* Ultralink driver
* Trimble OEM Ace-II support
* DCF77 power choices
* Oncore improvements
---
(4.0.97)
* NT patches
* AIX,SunOS,IRIX portability
* NeXT portability
* ntptimeset utility added
* cygwin portability patches
---
(4.0.96)
* -lnsl, -lsocket, -lgen configuration patches
* Y2K patches from AT&T
* Linux portability cruft
---
(4.0.95)
* NT port cleanup/replacement
* a few portability fixes
* VARITEXT Parse clock added
---
(4.0.94)
* PPS updates (including ntp.config options)
* Lose the old DES stuff in favor of the (optional) RSAREF stuff
* html cleanup/updates
* numerous drivers cleaned up
* numerous portability patches and code cleanup
---
(4.0.93)
* Oncore refclock needs PPS or one of two ioctls.
* Don't make ntptime under Linux. It doesn't compile for too many folks.
* Autokey cleanup
* ReliantUnix patches
* html cleanup
* tickadj cleanup
* PARSE cleanup
* IRIX -n32 cleanup
* byte order cleanup
* ntptrace improvements and patches
* ntpdc improvements and patches
* PPS cleanup
* mx4200 cleanup
* New clock state machine
* SCO cleanup
* Skip alias interfaces
---
(4.0.92)
* chronolog and dumbclock refclocks
* SCO updates
* Cleanup/bugfixes
* Y2K patches
* Updated palisade driver
* Plug memory leak
* wharton kernel clock
* Oncore clock upgrades
* NMEA clock improvements
* PPS improvements
* AIX portability patches
---
(4.0.91)
* New ONCORE driver
* New MX4200 driver
* Palisade improvements
* config file bugfixes and problem reporting
* autoconf upgrade and cleanup
* HP-UX, IRIX lint cleanup
* AIX portability patches
* NT cleanup
---
(4.0.90)
* Nanoseconds
* New palisade driver
* New Oncore driver
---
(4.0.73)
* README.hackers added
* PARSE driver is working again
* Solaris 2.6 has nasty kernel bugs. DO NOT enable pll!
* DES is out of the distribution.
---
(4.0.72)
* K&R C compiling should work again.
* IRIG patches.
* MX4200 driver patches.
* Jupiter driver added.
* Palisade driver added. Needs work (ANSI, ntoh/hton, sizeof double, ???)
diff --git a/contrib/ntp/CommitLog b/contrib/ntp/CommitLog
index 54bf0f9a45fc..adeda2c60402 100644
--- a/contrib/ntp/CommitLog
+++ b/contrib/ntp/CommitLog
@@ -1,65535 +1,65999 @@
+ChangeSet@1.4004, 2023-06-06 04:40:27-07:00, ntpreleng@ntp-build.tal1.ntfo.org
+ NTP_4_2_8P17
+ TAG: NTP_4_2_8P17
+
+ ChangeLog@1.2053 +1 -0
+ NTP_4_2_8P17
+
+ ntpd/invoke-ntp.conf.texi@1.225 +1 -1
+ NTP_4_2_8P17
+
+ ntpd/invoke-ntp.keys.texi@1.210 +1 -1
+ NTP_4_2_8P17
+
+ ntpd/invoke-ntpd.texi@1.524 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.conf.5man@1.259 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.conf.5mdoc@1.259 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.conf.html@1.207 +1 -1
+ NTP_4_2_8P17
+
+ ntpd/ntp.conf.man.in@1.259 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.conf.mdoc.in@1.259 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.keys.5man@1.244 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.keys.5mdoc@1.244 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.keys.html@1.204 +1 -1
+ NTP_4_2_8P17
+
+ ntpd/ntp.keys.man.in@1.244 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntp.keys.mdoc.in@1.244 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntpd-opts.c@1.549 +7 -7
+ NTP_4_2_8P17
+
+ ntpd/ntpd-opts.h@1.548 +3 -3
+ NTP_4_2_8P17
+
+ ntpd/ntpd.1ntpdman@1.353 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntpd.1ntpdmdoc@1.353 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntpd.html@1.198 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntpd.man.in@1.353 +2 -2
+ NTP_4_2_8P17
+
+ ntpd/ntpd.mdoc.in@1.353 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/invoke-ntpdc.texi@1.523 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc-opts.c@1.544 +7 -7
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc-opts.h@1.543 +3 -3
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc.1ntpdcman@1.354 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc.1ntpdcmdoc@1.354 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc.html@1.368 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc.man.in@1.354 +2 -2
+ NTP_4_2_8P17
+
+ ntpdc/ntpdc.mdoc.in@1.354 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/invoke-ntpq.texi@1.533 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/ntpq-opts.c@1.553 +7 -7
+ NTP_4_2_8P17
+
+ ntpq/ntpq-opts.h@1.551 +3 -3
+ NTP_4_2_8P17
+
+ ntpq/ntpq.1ntpqman@1.361 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/ntpq.1ntpqmdoc@1.361 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/ntpq.html@1.198 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/ntpq.man.in@1.361 +2 -2
+ NTP_4_2_8P17
+
+ ntpq/ntpq.mdoc.in@1.361 +2 -2
+ NTP_4_2_8P17
+
+ ntpsnmpd/invoke-ntpsnmpd.texi@1.523 +1 -1
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd-opts.c@1.544 +7 -7
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd-opts.h@1.543 +3 -3
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.352 +2 -2
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.352 +2 -2
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd.html@1.190 +1 -1
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd.man.in@1.352 +2 -2
+ NTP_4_2_8P17
+
+ ntpsnmpd/ntpsnmpd.mdoc.in@1.352 +2 -2
+ NTP_4_2_8P17
+
+ packageinfo.sh@1.550 +2 -2
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.113 +2 -2
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.115 +2 -2
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/calc_tickadj.html@1.114 +1 -1
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/calc_tickadj.man.in@1.112 +2 -2
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/calc_tickadj.mdoc.in@1.115 +2 -2
+ NTP_4_2_8P17
+
+ scripts/calc_tickadj/invoke-calc_tickadj.texi@1.117 +1 -1
+ NTP_4_2_8P17
+
+ scripts/invoke-plot_summary.texi@1.135 +2 -2
+ NTP_4_2_8P17
+
+ scripts/invoke-summary.texi@1.134 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/invoke-ntp-wait.texi@1.346 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait-opts@1.82 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait.1ntp-waitman@1.341 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.343 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait.html@1.362 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait.man.in@1.341 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntp-wait/ntp-wait.mdoc.in@1.343 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/invoke-ntpsweep.texi@1.132 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep-opts@1.85 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep.1ntpsweepman@1.120 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.120 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep.html@1.134 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep.man.in@1.120 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntpsweep/ntpsweep.mdoc.in@1.121 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/invoke-ntptrace.texi@1.135 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace-opts@1.85 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace.1ntptraceman@1.120 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace.1ntptracemdoc@1.122 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace.html@1.135 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace.man.in@1.120 +2 -2
+ NTP_4_2_8P17
+
+ scripts/ntptrace/ntptrace.mdoc.in@1.123 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary-opts@1.86 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary.1plot_summaryman@1.133 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary.1plot_summarymdoc@1.133 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary.html@1.137 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary.man.in@1.133 +2 -2
+ NTP_4_2_8P17
+
+ scripts/plot_summary.mdoc.in@1.133 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary-opts@1.85 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary.1summaryman@1.132 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary.1summarymdoc@1.132 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary.html@1.136 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary.man.in@1.132 +2 -2
+ NTP_4_2_8P17
+
+ scripts/summary.mdoc.in@1.132 +2 -2
+ NTP_4_2_8P17
+
+ scripts/update-leap/invoke-update-leap.texi@1.33 +1 -1
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap-opts@1.35 +2 -2
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap.1update-leapman@1.33 +2 -2
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap.1update-leapmdoc@1.34 +2 -2
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap.html@1.33 +1 -1
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap.man.in@1.33 +2 -2
+ NTP_4_2_8P17
+
+ scripts/update-leap/update-leap.mdoc.in@1.34 +2 -2
+ NTP_4_2_8P17
+
+ sntp/invoke-sntp.texi@1.523 +2 -2
+ NTP_4_2_8P17
+
+ sntp/sntp-opts.c@1.545 +7 -7
+ NTP_4_2_8P17
+
+ sntp/sntp-opts.h@1.543 +3 -3
+ NTP_4_2_8P17
+
+ sntp/sntp.1sntpman@1.358 +2 -2
+ NTP_4_2_8P17
+
+ sntp/sntp.1sntpmdoc@1.358 +2 -2
+ NTP_4_2_8P17
+
+ sntp/sntp.html@1.539 +2 -2
+ NTP_4_2_8P17
+
+ sntp/sntp.man.in@1.358 +2 -2
+ NTP_4_2_8P17
+
+ sntp/sntp.mdoc.in@1.358 +2 -2
+ NTP_4_2_8P17
+
+ util/invoke-ntp-keygen.texi@1.526 +2 -2
+ NTP_4_2_8P17
+
+ util/ntp-keygen-opts.c@1.547 +7 -7
+ NTP_4_2_8P17
+
+ util/ntp-keygen-opts.h@1.545 +3 -3
+ NTP_4_2_8P17
+
+ util/ntp-keygen.1ntp-keygenman@1.354 +2 -2
+ NTP_4_2_8P17
+
+ util/ntp-keygen.1ntp-keygenmdoc@1.354 +2 -2
+ NTP_4_2_8P17
+
+ util/ntp-keygen.html@1.199 +2 -2
+ NTP_4_2_8P17
+
+ util/ntp-keygen.man.in@1.354 +2 -2
+ NTP_4_2_8P17
+
+ util/ntp-keygen.mdoc.in@1.354 +2 -2
+ NTP_4_2_8P17
+
+ChangeSet@1.4003, 2023-06-06 04:28:11-07:00, ntpreleng@ntp-build.tal1.ntfo.org
+ p17
+
+ tests/libntp/run-digests.c@1.2 +7 -7
+ p17
+
+ChangeSet@1.4002, 2023-06-06 04:09:35-07:00, ntpreleng@ntp-build.tal1.ntfo.org
+ p17
+
+ packageinfo.sh@1.549 +1 -1
+ p17
+
+ChangeSet@1.4001, 2023-06-06 09:43:55+00:00, hart@ntp-devbuild.chi1.ntfo.org
+ Makefile.am:
+ Fix make distcheck failure with generated srcdir.c
+
+ tests/libntp/Makefile.am@1.104 +2 -2
+ Fix make distcheck failure with generated srcdir.c
+
+ChangeSet@1.4000, 2023-06-06 03:43:29-05:00, stenn@stenn.chi1.ntfo.org
+ prep for p17
+
+ ChangeLog@1.2052 +8 -6
+ prep for p17
+
+ NEWS@1.219 +25 -0
+ prep for p17
+
+ChangeSet@1.3998, 2023-06-05 00:21:10+00:00, davehart@tl.davehart.net
+ Add tests for loading and using all supported symmetric auth digests.
+
+ ChangeLog@1.2050 +2 -0
+ Add tests/libntp/digests.c to catch regressions reading keys file or with
+ symmetric authentication digest output.
+
+ include/ntp.h@1.235 +1 -1
+ move KEY_TYPE_MD5 to ntp_md5.h
+
+ include/ntp_md5.h@1.15 +4 -0
+ move a few items here where they better fit.
+
+ include/ntp_stdlib.h@1.91 +21 -18
+ Move items to ntp_md5.h, add some arg names to prototypes.
+
+ libntp/a_md5encrypt.c@1.55 +13 -10
+ %zu isn't supported by all compilers we support
+
+ libntp/authkeys.c@1.46 +11 -12
+ Get rid of magic number 4 for sizeof(u_int32), use zero_mem()
+
+ libntp/authreadkeys.c@1.36 +10 -2
+ Warn if AES128CMAC key is less than 128 bits.
+
+ libntp/msyslog.c@1.57 +3 -2
+ Comment grammar
+
+ libparse/clk_hopf6021.c@1.14 +3 -2
+ include ascii.h after ntp_stdlib.h to avoid clash with EM define
+
+ libparse/clk_wharton.c@1.13 +3 -2
+ include ascii.h after ntp_stdlib.h to avoid clash with EM define
+
+ ntpd/ntp_control.c@1.241 +0 -1
+ ntp_md5.h in ntp_stdlib.h now
+
+ ntpd/ntp_loopfilter.c@1.197 +0 -3
+ Move PATH_MAX definition to header file.
+
+ sntp/crypto.c@1.42 +0 -5
+ Remove redundancies
+
+ sntp/crypto.h@1.15 +0 -1
+ separate include of ntp_md5.h no longer needed
+
+ tests/libntp/Makefile.am@1.103 +33 -6
+ add digests.c
+
+ tests/libntp/data/ntp.keys@1.2 +1 -1
+ typo
+
+ tests/libntp/digests.c@1.1 +415 -0
+ Unit test for loading and using all supported symmetric auth methods.
+
+ tests/libntp/digests.c@1.0 +0 -0
+
+ tests/libntp/run-digests.c@1.1 +80 -0
+ Unity generated runner for digests.c
+
+ tests/libntp/run-digests.c@1.0 +0 -0
+
+ChangeSet@1.3996.2.1, 2023-06-03 22:48:12+00:00, davehart@tl.davehart.net
+ [Bug 3822] ntpd significantly delays first poll of servers specified by name.
+
+ ChangeLog@1.2048.2.1 +4 -0
+ [Bug 3822] ntpd significantly delays first poll of servers specified by name.
+
+ ntpd/ntp_config.c@1.383 +18 -0
+ Treat associations from ntp.conf with hostnames the same as those with IP addresses.
+
+ChangeSet@1.3996.1.1, 2023-06-02 23:42:10+00:00, davehart@tl.davehart.net
+ [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at event_sync.
+
+ ChangeLog@1.2048.1.1 +4 -0
+ [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at event_sync.
+
+ ntpd/ntp_proto.c@1.446 +3 -2
+ CLarify error message
+
+ ntpd/ntpd.c@1.189 +4 -2
+ Fix logic error, clarify message
+
+ChangeSet@1.3997, 2023-06-02 19:29:12+00:00, davehart@tl.davehart.net
+ [Bug 3821] 4.2.8p16 misreads hex auth keys, won't interop with 4.2.8p15.
+
+ ChangeLog@1.2049 +5 -0
+ [Bug 3821] 4.2.8p16 misreads hex auth keys, won't interop with 4.2.8p15.
+
+ libntp/authkeys.c@1.45 +2 -2
+ > typo for >>
+
+ tests/libntp/data/mills,david-03.jpg@1.1 +912 -0
+ The internet's Father Time
+
+ tests/libntp/data/mills,david-03.jpg@1.0 +0 -0
+
+ tests/libntp/data/ntp.keys@1.1 +34 -0
+ Test keys for libntp/tests/digest.c
+
+ tests/libntp/data/ntp.keys@1.0 +0 -0
+
ChangeSet@1.3996, 2023-05-31 20:05:32-07:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P16
TAG: NTP_4_2_8P16
ChangeLog@1.2048 +1 -0
NTP_4_2_8P16
ntpd/invoke-ntp.conf.texi@1.224 +1 -1
NTP_4_2_8P16
ntpd/invoke-ntp.keys.texi@1.209 +1 -1
NTP_4_2_8P16
ntpd/invoke-ntpd.texi@1.523 +2 -2
NTP_4_2_8P16
ntpd/ntp.conf.5man@1.258 +2 -2
NTP_4_2_8P16
ntpd/ntp.conf.5mdoc@1.258 +2 -2
NTP_4_2_8P16
ntpd/ntp.conf.html@1.206 +68 -121
NTP_4_2_8P16
ntpd/ntp.conf.man.in@1.258 +2 -2
NTP_4_2_8P16
ntpd/ntp.conf.mdoc.in@1.258 +2 -2
NTP_4_2_8P16
ntpd/ntp.keys.5man@1.243 +2 -2
NTP_4_2_8P16
ntpd/ntp.keys.5mdoc@1.243 +3 -3
NTP_4_2_8P16
ntpd/ntp.keys.html@1.203 +23 -43
NTP_4_2_8P16
ntpd/ntp.keys.man.in@1.243 +2 -2
NTP_4_2_8P16
ntpd/ntp.keys.mdoc.in@1.243 +3 -3
NTP_4_2_8P16
ntpd/ntpd-opts.c@1.548 +7 -7
NTP_4_2_8P16
ntpd/ntpd-opts.h@1.547 +3 -3
NTP_4_2_8P16
ntpd/ntpd.1ntpdman@1.352 +2 -2
NTP_4_2_8P16
ntpd/ntpd.1ntpdmdoc@1.352 +2 -2
NTP_4_2_8P16
ntpd/ntpd.html@1.197 +162 -254
NTP_4_2_8P16
ntpd/ntpd.man.in@1.352 +2 -2
NTP_4_2_8P16
ntpd/ntpd.mdoc.in@1.352 +2 -2
NTP_4_2_8P16
ntpdc/invoke-ntpdc.texi@1.522 +2 -2
NTP_4_2_8P16
ntpdc/ntpdc-opts.c@1.543 +7 -7
NTP_4_2_8P16
ntpdc/ntpdc-opts.h@1.542 +3 -3
NTP_4_2_8P16
ntpdc/ntpdc.1ntpdcman@1.353 +2 -2
NTP_4_2_8P16
ntpdc/ntpdc.1ntpdcmdoc@1.353 +2 -2
NTP_4_2_8P16
ntpdc/ntpdc.html@1.367 +79 -129
NTP_4_2_8P16
ntpdc/ntpdc.man.in@1.353 +2 -2
NTP_4_2_8P16
ntpdc/ntpdc.mdoc.in@1.353 +2 -2
NTP_4_2_8P16
ntpq/invoke-ntpq.texi@1.532 +2 -2
NTP_4_2_8P16
ntpq/ntpq-opts.c@1.552 +7 -7
NTP_4_2_8P16
ntpq/ntpq-opts.h@1.550 +3 -3
NTP_4_2_8P16
ntpq/ntpq.1ntpqman@1.360 +2 -2
NTP_4_2_8P16
ntpq/ntpq.1ntpqmdoc@1.360 +2 -2
NTP_4_2_8P16
ntpq/ntpq.html@1.197 +149 -215
NTP_4_2_8P16
ntpq/ntpq.man.in@1.360 +2 -2
NTP_4_2_8P16
ntpq/ntpq.mdoc.in@1.360 +2 -2
NTP_4_2_8P16
ntpsnmpd/invoke-ntpsnmpd.texi@1.522 +2 -2
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd-opts.c@1.543 +7 -7
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd-opts.h@1.542 +3 -3
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.351 +2 -2
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.351 +2 -2
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd.html@1.189 +14 -29
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd.man.in@1.351 +2 -2
NTP_4_2_8P16
ntpsnmpd/ntpsnmpd.mdoc.in@1.351 +2 -2
NTP_4_2_8P16
packageinfo.sh@1.548 +2 -2
NTP_4_2_8P16
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.112 +2 -2
NTP_4_2_8P16
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.114 +2 -2
NTP_4_2_8P16
scripts/calc_tickadj/calc_tickadj.html@1.113 +30 -51
NTP_4_2_8P16
scripts/calc_tickadj/calc_tickadj.man.in@1.111 +2 -2
NTP_4_2_8P16
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.114 +2 -2
NTP_4_2_8P16
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.116 +1 -1
NTP_4_2_8P16
scripts/invoke-plot_summary.texi@1.134 +2 -2
NTP_4_2_8P16
scripts/invoke-summary.texi@1.133 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/invoke-ntp-wait.texi@1.345 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait-opts@1.81 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.340 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.342 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait.html@1.361 +37 -63
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait.man.in@1.340 +2 -2
NTP_4_2_8P16
scripts/ntp-wait/ntp-wait.mdoc.in@1.342 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/invoke-ntpsweep.texi@1.131 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep-opts@1.84 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.119 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.119 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep.html@1.133 +39 -65
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep.man.in@1.119 +2 -2
NTP_4_2_8P16
scripts/ntpsweep/ntpsweep.mdoc.in@1.120 +2 -2
NTP_4_2_8P16
scripts/ntptrace/invoke-ntptrace.texi@1.134 +2 -2
NTP_4_2_8P16
scripts/ntptrace/ntptrace-opts@1.84 +2 -2
NTP_4_2_8P16
scripts/ntptrace/ntptrace.1ntptraceman@1.119 +2 -2
NTP_4_2_8P16
scripts/ntptrace/ntptrace.1ntptracemdoc@1.121 +2 -2
NTP_4_2_8P16
scripts/ntptrace/ntptrace.html@1.134 +36 -59
NTP_4_2_8P16
scripts/ntptrace/ntptrace.man.in@1.119 +2 -2
NTP_4_2_8P16
scripts/ntptrace/ntptrace.mdoc.in@1.122 +2 -2
NTP_4_2_8P16
scripts/plot_summary-opts@1.85 +2 -2
NTP_4_2_8P16
scripts/plot_summary.1plot_summaryman@1.132 +2 -2
NTP_4_2_8P16
scripts/plot_summary.1plot_summarymdoc@1.132 +2 -2
NTP_4_2_8P16
scripts/plot_summary.html@1.136 +46 -73
NTP_4_2_8P16
scripts/plot_summary.man.in@1.132 +2 -2
NTP_4_2_8P16
scripts/plot_summary.mdoc.in@1.132 +2 -2
NTP_4_2_8P16
scripts/summary-opts@1.84 +2 -2
NTP_4_2_8P16
scripts/summary.1summaryman@1.131 +2 -2
NTP_4_2_8P16
scripts/summary.1summarymdoc@1.131 +2 -2
NTP_4_2_8P16
scripts/summary.html@1.135 +41 -66
NTP_4_2_8P16
scripts/summary.man.in@1.131 +2 -2
NTP_4_2_8P16
scripts/summary.mdoc.in@1.131 +2 -2
NTP_4_2_8P16
scripts/update-leap/invoke-update-leap.texi@1.32 +1 -1
NTP_4_2_8P16
scripts/update-leap/update-leap-opts@1.34 +2 -2
NTP_4_2_8P16
scripts/update-leap/update-leap.1update-leapman@1.32 +2 -2
NTP_4_2_8P16
scripts/update-leap/update-leap.1update-leapmdoc@1.33 +2 -2
NTP_4_2_8P16
scripts/update-leap/update-leap.html@1.32 +48 -80
NTP_4_2_8P16
scripts/update-leap/update-leap.man.in@1.32 +2 -2
NTP_4_2_8P16
scripts/update-leap/update-leap.mdoc.in@1.33 +2 -2
NTP_4_2_8P16
sntp/invoke-sntp.texi@1.522 +2 -2
NTP_4_2_8P16
sntp/sntp-opts.c@1.544 +7 -7
NTP_4_2_8P16
sntp/sntp-opts.h@1.542 +3 -3
NTP_4_2_8P16
sntp/sntp.1sntpman@1.357 +2 -2
NTP_4_2_8P16
sntp/sntp.1sntpmdoc@1.357 +2 -2
NTP_4_2_8P16
sntp/sntp.html@1.538 +93 -149
NTP_4_2_8P16
sntp/sntp.man.in@1.357 +2 -2
NTP_4_2_8P16
sntp/sntp.mdoc.in@1.357 +2 -2
NTP_4_2_8P16
util/invoke-ntp-keygen.texi@1.525 +2 -2
NTP_4_2_8P16
util/ntp-keygen-opts.c@1.546 +7 -7
NTP_4_2_8P16
util/ntp-keygen-opts.h@1.544 +3 -3
NTP_4_2_8P16
util/ntp-keygen.1ntp-keygenman@1.353 +2 -2
NTP_4_2_8P16
util/ntp-keygen.1ntp-keygenmdoc@1.353 +2 -2
NTP_4_2_8P16
util/ntp-keygen.html@1.198 +156 -234
NTP_4_2_8P16
util/ntp-keygen.man.in@1.353 +2 -2
NTP_4_2_8P16
util/ntp-keygen.mdoc.in@1.353 +2 -2
NTP_4_2_8P16
ChangeSet@1.3995, 2023-05-30 06:27:39-07:00, ntpreleng@ntp-build.tal1.ntfo.org
Prep for roll of p16
packageinfo.sh@1.547 +1 -1
Prep for roll of p16
ChangeSet@1.3993, 2023-05-30 02:06:11-05:00, stenn@stenn.chi1.ntfo.org
Update NEWS file for ntp-4.2.8p16
NEWS@1.218 +1 -0
Update NEWS file for ntp-4.2.8p16
ChangeSet@1.3992, 2023-05-30 01:37:16-05:00, stenn@stenn.chi1.ntfo.org
Update NEWS file for ntp-4.2.8p16
NEWS@1.217 +1 -0
Update NEWS file for ntp-4.2.8p16
ChangeSet@1.3990, 2023-05-29 22:30:00-05:00, stenn@stenn.chi1.ntfo.org
Note OpenSSL-3.0 support
NEWS@1.216 +121 -0
Note OpenSSL-3.0 support
ChangeSet@1.3989, 2023-05-29 22:29:10-05:00, stenn@stenn.chi1.ntfo.org
Note OpenSSL-3.0 support
ChangeLog@1.2046 +2 -0
Note OpenSSL-3.0 support
ChangeSet@1.3971.2.11, 2023-05-29 21:21:01-05:00, stenn@stenn.chi1.ntfo.org
Updated libopts/Makefile.am was missing NTP_HARD_* values
ChangeLog@1.2031.3.5 +1 -0
Updated libopts/Makefile.am was missing NTP_HARD_* values
README.leapsmear@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/libopts/Makefile.am@1.31 +6 -3
Updated libopts/Makefile.am was missing NTP_HARD_* values
ChangeSet@1.3912.22.1, 2023-05-19 05:17:41-07:00, ntpreleng@ntp-build.tal1.ntfo.org
Update the 2mirrors script
BitKeeper/triggers/2mirrors@1.12 +8 -6
Update the 2mirrors script
ChangeSet@1.3971.2.10, 2023-05-13 17:18:57-05:00, stenn@stenn.chi1.ntfo.org
Put 3432 in the right place in the ChangeLog
ChangeLog@1.2031.3.4 +2 -2
Put 3432 in the right place in the ChangeLog
ChangeSet@1.3988, 2023-05-10 18:03:29-05:00, stenn@stenn.chi1.ntfo.org
remove duplicate line from ChangeLog
ChangeLog@1.2045 +0 -1
remove duplicate line from ChangeLog
ChangeSet@1.3971.2.9, 2023-05-10 04:46:32+00:00, davehart@tl.davehart.net
[Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
ChangeLog@1.2031.3.3 +1 -0
[Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
ntpd/ntp_config.c@1.380.1.1 +45 -16
[Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
Also sanity check floor < ceiling and correct ceiling lower bound check and message.
ChangeSet@1.3986, 2023-05-07 03:46:52-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Make sure the value returned by refid_str() prints cleanly
ChangeLog@1.2043 +1 -0
Make sure the value returned by refid_str() prints cleanly
libntp/numtoa.c@1.8 +16 -0
Make sure the value returned by refid_str() prints cleanly
ChangeSet@1.3985, 2023-05-07 02:21:55-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Validate pkt->ppoll
ntpd/ntp_proto.c@1.445 +32 -2
Validate pkt->ppoll
ChangeSet@1.3971.2.8, 2023-05-07 02:10:38-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Startup banner now notes when debug assertions are in force
ChangeLog@1.2031.3.2 +2 -0
Startup banner now notes when debug assertions are in force
ntpd/ntpd.c@1.188 +4 -0
Startup banner now notes when debug assertions are in force
ChangeSet@1.3983, 2023-05-06 06:34:11-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Bug 3767: An OOB KoD RATE value triggers an assertion when debug is enabled.
ChangeLog@1.2041 +4 -2
Bug 3767: An OOB KoD RATE value triggers an assertion when debug is enabled.
configure.ac@1.629 +18 -0
Bug 3767: An OOB KoD RATE value triggers an assertion when debug is enabled.
ntpd/ntp_config.c@1.381 +2 -0
Bug 3767: An OOB KoD RATE value triggers an assertion when debug is enabled.
ChangeSet@1.3971.5.1, 2023-05-03 21:16:16+00:00, davehart@tl.davehart.net
[Bug 3814] First poll delay of new or cleared associations miscalculated.
Switch NONEMPTY_TRANSLATION_UNIT extern reference from exit() to abs() to avoid
warning on VS 2022 due to mismatching declaration as exit() is now noreturn.
Minimum supported Visual Studio has been 2005, remove code for earlier.
BitKeeper/deleted/21/ntptrace.dsp~29080509@1.11 +0 -0
Delete: ports/winnt/ntptrace/ntptrace.dsp
ChangeLog@1.2031.3.1 +2 -0
[Bug 3814] First poll delay of new or cleared associations miscalculated.
include/ntp_types.h@1.37.1.1 +4 -3
Switch NONEMPTY_TRANSLATION_UNIT extern reference from exit() to abs() to avoid
warning on VS 2022 due to mismatching declaration as exit() is now noreturn.
libntp/mktime.c@1.14 +2 -2
Use NONEMPTY_TRANSLATION_UNIT
libntp/systime.c@1.76.1.1 +3 -0
#if out code unused with 64-bit time_t
ntpd/ntp_proto.c@1.442.1.1 +6 -6
[Bug 3814] First poll delay of new or cleared associations miscalculated.
ports/winnt/include/config.h@1.119 +2 -10
Minimum supported Visual Studio has been 2005, remove code for earlier.
ChangeSet@1.3971.3.1, 2023-04-30 08:54:37+02:00, perlinger@ntp.org
[Bug 3808] Assertion failure in ntpq on malformed RT-11 date
ChangeLog@1.2031.2.4 +1 -0
[Bug 3808] Assertion failure in ntpq on malformed RT-11 date
libntp/caltontp.c@1.9 +18 -14
[Bug 3808] Assertion failure in ntpq on malformed RT-11 date
- set 'errno' instead of blowing up!
ntpq/ntpq.c@1.197 +4 -2
[Bug 3808] Assertion failure in ntpq on malformed RT-11 date
- check 'errno' after calling 'caltontp()'
ChangeSet@1.3971.2.5, 2023-04-30 03:28:14+00:00, davehart@tl.davehart.net
Updated Solaris-specific patch from Brian Utterback
ntpd/ntp_proto.c@1.443 +4 -3
Patch from [Bug 2410] was not quite done.
ChangeSet@1.3971.2.4, 2023-04-28 03:01:47-05:00, stenn@ntp-devbuild.chi1.ntfo.org
typo fix
libntp/caltontp.c@1.8 +1 -1
typo fix
ChangeSet@1.3971.2.3, 2023-04-28 03:00:57-05:00, stenn@ntp-devbuild.chi1.ntfo.org
syslog valid incoming KoDs
ChangeLog@1.2031.2.3 +1 -0
syslog valid incoming KoDs
ntpd/ntp_proto.c@1.442 +28 -24
syslog valid incoming KoDs
ChangeSet@1.3971.2.2, 2023-04-19 02:37:17-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Rename a poorly-named variable
ChangeLog@1.2031.2.2 +1 -0
Rename a poorly-named variable
ntpd/ntp_crypto.c@1.193 +4 -4
Rename a poorly-named variable
ChangeSet@1.3976, 2023-04-17 04:19:46-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Use correct rounding in mstolfp()
ChangeLog@1.2036 +1 -0
Use correct rounding in mstolfp()
libntp/mstolfp.c@1.9 +3 -9
Use correct rounding in mstolfp()
ChangeSet@1.3975, 2023-04-17 04:14:15-05:00, stenn@ntp-devbuild.chi1.ntfo.org
M_ADDF should use u_int32
ChangeLog@1.2035 +1 -0
M_ADDF should use u_int32
include/ntp_fp.h@1.36 +2 -2
M_ADDF should use u_int32
ChangeSet@1.3974, 2023-04-16 03:27:34-05:00, stenn@ntp-devbuild.chi1.ntfo.org
cleanups
ChangeLog@1.2034 +4 -3
libntp/mstolfp.c@1.8 +4 -3
libntp/systime.c@1.77 +3 -0
ChangeSet@1.3971.1.3, 2023-04-16 02:30:18-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Use recv_buffer instead of the longer recv_space.X_recv_buffer
ChangeLog@1.2031.1.3 +2 -1
Use recv_buffer instead of the longer recv_space.X_recv_buffer
ntpd/refclock_fg.c@1.17 +2 -2
Use recv_buffer instead of the longer recv_space.X_recv_buffer
ntpd/refclock_palisade.c@1.51 +1 -1
Use recv_buffer instead of the longer recv_space.X_recv_buffer
ChangeSet@1.3971.2.1, 2023-04-16 02:12:16-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Disable "embedded NUL in string" messages in libopts, when we can.
ChangeLog@1.2031.2.1 +1 -0
Disable "embedded NUL in string" messages in libopts, when we can.
sntp/libopts/Makefile.am@1.30 +2 -0
Disable "embedded NUL in string" messages in libopts, when we can.
sntp/m4/ntp_compiler.m4@1.8 +29 -1
Disable "embedded NUL in string" messages in libopts, when we can.
ChangeSet@1.3971.1.1, 2023-04-15 06:41:21-05:00, stenn@ntp-devbuild.chi1.ntfo.org
Bug 3807: praecis_parse() input buffer
ChangeLog@1.2031.1.1 +2 -0
Bug 3807: praecis_parse() input buffer
ntpd/refclock_palisade.c@1.50 +37 -4
Bug 3807: praecis_parse() input buffer
ChangeSet@1.3972, 2023-04-15 10:54:14+02:00, perlinger@ntp.org
[Bug 3806] libntp/mstolfp.c needs bounds checking
ChangeLog@1.2032 +2 -0
[Bug 3806] libntp/mstolfp.c needs bounds checking
libntp/mstolfp.c@1.7 +45 -68
[Bug 3806] libntp/mstolfp.c needs bounds checking
- soved numerically instead of using string manipulation
tests/libntp/strtolfp.c@1.8 +19 -14
[Bug 3806] libntp/mstolfp.c needs bounds checking
- dump numerical values on failed number comparison
ChangeSet@1.3964.4.1, 2023-04-11 10:21:33+00:00, davehart@tl.davehart.net
Remove unused cruft from BitKeeper ignore file.
Clean up redundancy in VS 2015 project files.
Correct lingering instances of references to lib/isc to libntp/lib/isc [Bug 2525].
Prevent spurious rebuild of ntp_keyword.h and keyword_gen_utd during clean build or rebuild.
Enable vs2015 randomized base address and data execution prevention.
Use vs2015 link-time whole program optimization for release builds.
BitKeeper/etc/ignore@1.96 +1 -77
include/ntp_types.h@1.38 +2 -2
Fix comment typo (confirmed by perlinger@ntp.org)
libntp/msyslog.c@1.56 +1 -1
Comment typo
ntpd/ntp_control.c@1.240 +0 -4
Scrap unused MAX() macro, ours is max()
ntpd/ntp_parser.c@1.119 +1 -1
Use sizeof buffer
ntpd/ntp_parser.y@1.107 +1 -1
Use sizeof buffer
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c@1.1.1.1 +1 -1
Update email address
ports/winnt/scripts/mkver.bat@1.19 +116 -36
Enable splitting out fetching ChangeSet revision as a first step before generating
version.c. This is used by vs2015 build to enable proper dependency checking of
the revision so stale revisions aren't kept in version.c. Separate rules are used
to get the revision from scm-rev (from tarball) or from bk directly.
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.15 +50 -50
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.5 +1 -1
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.2 +1 -1
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.13 +14 -14
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.10 +14 -14
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj@1.7 +1 -1
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters@1.4 +1 -1
Account for [Bug 2525] move of lib/isc under libntp
ports/winnt/vs2015/common.props@1.2.1.1 +2 -3
Enable randomized base address and data execution prevention..
Use link-time code generation for release builds only.
ports/winnt/vs2015/debug-x64.props@1.3.1.1 +0 -1
minimize
ports/winnt/vs2015/debug.props@1.3.1.1 +0 -1
minimize
ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.1.1.1 +21 -163
Eliminate redundancy, include common.props first.
instsrv doesn't use version string.
ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.1.1.1 +0 -6
instsrv doesn't use version string.
ports/winnt/vs2015/libntp/libntp.vcxproj@1.7.1.1 +25 -141
Eliminate redundancy, include common.props first.
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.7.1.1 +1 -1
Move override libisc mem.h to libisc Header Files.
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.1.1.1 +16 -148
Eliminate redundancy, include common.props first.
ports/winnt/vs2015/mkver.props@1.1 +25 -0
Centralize version.c dependencies for all consumer .vcxproj files.
ports/winnt/vs2015/mkver.props@1.0 +0 -0
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.1.1.1 +20 -154
Eliminate redundancy, include common.props first.
Improve version.c dependency checking.
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.1.1.1 +17 -122
Eliminate redundancy, include common.props first.
Correct path to libntp/lib/isc.
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.1.1.1 +3 -3
Correct lib/isc path
ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.1.1.1 +14 -2
Prevent spurious rebuild of ntp_keyword.h and keyword_gen_utd during clean build or rebuild.
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.5.3.1 +38 -239
Eliminate redundancy, include common.props first.
Improve version.c dependency checking.
Correct lib\isc to libntp\lib\isc
Remove uselesss message resource references.
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.4.2.1 +14 -14
Correct lib/isc path
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.1.1.1 +25 -162
Eliminate redundancy, include common.props first.
Improve version.c dependency checking.
Correct path to libntp/lib/isc.
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.1.1.1 +1 -1
Correct path to libntp/lib/isc.
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.1.1.1 +24 -160
Eliminate redundancy, include common.props first.
Improve version.c dependency checking.
ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.1.1.1 +23 -160
Eliminate redundancy, include common.props first.
Improve version.c dependency checking.
ports/winnt/vs2015/release-x64.props@1.3.1.1 +4 -1
Use link-time code generation for release builds only.
ports/winnt/vs2015/release.props@1.3.1.1 +4 -4
Use link-time code generation for release builds only.
ChangeSet@1.3969.1.2, 2023-03-28 18:17:07+00:00, davehart@tl.davehart.net
Consolidate and correct check-scm-rev invocations.
Quiet -Wunused-function warnings in ntp_config.c building ntpdsim.
Quiet -Warray-bounds warning in ntpdc.c.
Fix make distcheck failure due to leftover version.Po files.
Use silent rules for Autogen invocations.
Remove other write permissions, e.g. chmod o-w
Add missing comma in configure.ac syscall() test.
Remove remnant of the no-longer-used Google Test framework.
BitKeeper/deleted/7c/ntp_googletest.m4~54a23ec15985e26c@1.5 +0 -0
Rename: sntp/m4/ntp_googletest.m4 -> BitKeeper/deleted/7c/ntp_googletest.m4~54a23ec15985e26c
check-libntp.mf@1.2 +0 -0
Change mode to -rw-rw-r--
check-libntpd.mf@1.2 +0 -0
Change mode to -rw-rw-r--
check-libopts.mf@1.3 +0 -0
Change mode to -rw-rw-r--
check-libunity.mf@1.2 +0 -0
Change mode to -rw-rw-r--
check-scm-rev.mf@1.1 +8 -0
Consolidate and correct check-scm-rev invocations
check-scm-rev.mf@1.0 +0 -0
configure.ac@1.628 +2 -9
Add missing comma to declare syscall() test.
Remove remnant of the no-longer-used Google Test framework.
depsver.mf@1.6 +2 -2
Use silent rules for deps-ver cp
include/declcond.h@1.3 +0 -0
Change mode to -rw-rw-r--
include/ntp_intres.h@1.3 +0 -0
Change mode to -rw-rw-r--
include/ntp_lineedit.h@1.2 +0 -0
Change mode to -rw-rw-r--
include/ntp_lists.h@1.16 +0 -0
Change mode to -rw-rw-r--
include/safecast.h@1.2 +0 -0
Change mode to -rw-rw-r--
includes.mf@1.3 +0 -0
Change mode to -rw-rw-r--
libntp/ntp_lineedit.c@1.15 +0 -0
Change mode to -rw-rw-r--
libntp/strl_obsd.c@1.2 +0 -0
Change mode to -rw-rw-r--
libparse/Makefile.am@1.35 +2 -2
Use silent rules for VPATH hack
ntpd/Makefile.am@1.146 +49 -36
Ensure bk revision is up-to-date in version
Use distinct progname for ntpdsim version string
Use silent rules for VPATH hack
Use silent rules for Autogen invocations.
ntpd/complete.conf.in@1.38 +0 -0
Change mode to -rw-rw-r--
ntpd/declcond.h@1.3 +0 -0
Change mode to -rw-rw-r--
ntpd/ntp_config.c@1.380 +23 -18
Quiet -Wunused-function warnings building ntpdsim.
Quiet string truncation warning with our one use of strncpy.
ntpdate/Makefile.am@1.41 +8 -9
Ensure bk revision is up-to-date in version
Use silent rules for Autogen invocations.
ntpdc/Makefile.am@1.80 +28 -17
Ensure bk revision is up-to-date in version
Use silent rules for Autogen invocations and ntpdc-layout
ntpdc/ntpdc.c@1.116 +1 -2
Quiet warning from gcc 11.3.0:
In file included from ../../ntpdc/ntpdc.h:4,
from ../../ntpdc/ntpdc.c:22:
../../ntpdc/ntpdc.c: In function 'doquery':
../../include/ntp_fp.h:86:22: warning: array subscript -1 is outside array bounds of 'struct req_pkt[1]' [-Warray-bounds]
86 | (ni) = htonl(hi); \
| ^
../../include/ntp_fp.h:91:9: note: in expansion of macro 'HTONL_MFP'
91 | HTONL_MFP((h)->l_ui, (h)->l_uf, (n)->l_ui, (n)->l_uf)
| ^~~~~~~~~
../../ntpdc/ntpdc.c:968:9: note: in expansion of macro 'HTONL_FP'
968 | HTONL_FP(&ts, ptstamp);
| ^~~~~~~~
../../ntpdc/ntpdc.c:900:24: note: while referencing 'qpkt'
900 | struct req_pkt qpkt;
| ^~~~
ntpq/Makefile.am@1.78 +15 -16
Ensure bk revision is up-to-date in version
Use silent rules for Autogen invocations.
ntpsnmpd/Makefile.am@1.44 +4 -4
Use silent rules for Autogen invocations.
ports/winnt/include/msvc_ssl_autolib.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/ntp_iocplmem.h@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/ntp_iocpltypes.h@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/ntservice.h@1.6 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/stdint.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/timepps.h@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/libntp/arc4wrap.c@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ntpd/nt_ppsimpl.c@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ntpd/ntp_iocplmem.c@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ntpd/ntp_iocpltypes.c@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.txt@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/src/sys/time.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/ppsapi/loopback/src/timepps.h@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/common.vsprops@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/debug-x64.vsprops@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/debug.vsprops@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/release-x64.vsprops@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2008/release.vsprops@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2013/common.props@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2013/debug-x64.props@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2013/debug.props@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2013/release-x64.props@1.5 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2013/release.props@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/common.props@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/debug-x64.props@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/debug.props@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/libntp/libntp.vcxproj@1.8 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.8 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntp.sln@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.7.1.1 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.7 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/ntpq/ntpq.vcxproj.filters@1.2 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/release-x64.props@1.4 +0 -0
Change mode to -rw-rw-r--
ports/winnt/vs2015/release.props@1.4 +0 -0
Change mode to -rw-rw-r--
scripts/Makefile.am@1.42 +8 -8
Use silent rules for Autogen invocations.
scripts/calc_tickadj/Makefile.am@1.13 +4 -4
Use silent rules for Autogen invocations.
scripts/ntp-wait/Makefile.am@1.11 +4 -4
Use silent rules for Autogen invocations.
scripts/ntpsweep/Makefile.am@1.12 +4 -4
Use silent rules for Autogen invocations.
scripts/ntptrace/Makefile.am@1.12 +4 -4
Use silent rules for Autogen invocations.
scripts/update-leap/Makefile.am@1.6 +4 -4
Use silent rules for Autogen invocations.
sntp/Makefile.am@1.94 +23 -26
Ensure bk revision is up-to-date in version
Use silent rules for Autogen invocations.
sntp/check-libntp.mf@1.5 +0 -0
Change mode to -rw-rw-r--
sntp/check-libopts.mf@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/check-libsntp.mf@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/check-libunity.mf@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/configure.ac@1.89 +0 -3
Remove remnant of the no-longer-used Google Test framework.
sntp/include/Makefile.am@1.6 +0 -0
Change mode to -rw-rw-r--
sntp/include/debug-opt.def@1.9 +0 -0
Change mode to -rw-rw-r--
sntp/includes.mf@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/libevent/m4/libevent_openssl.m4@1.4 +0 -0
Change mode to -rw-rw-r--
sntp/libevent/m4/ntp_pkg_config.m4@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/m4/LICENSE-OPENLDAP@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_cacheversion.m4@1.16 +2 -7
Update now that Autoconf should support AS_UNSET instead of hand-rolled.
sntp/m4/ntp_cacheversion.m4@1.15 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_compiler.m4@1.7 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_crosscompile.m4@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_debug.m4@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_ipv6.m4@1.9 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_lib_m.m4@1.4 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_libntp.m4@1.39 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_pkg_config.m4@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/m4/ntp_sntp.m4@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/m4/openldap-thread-check.m4@1.8 +0 -0
Change mode to -rw-rw-r--
sntp/m4/openldap.m4@1.3 +0 -0
Change mode to -rw-rw-r--
sntp/m4/snprintf.m4@1.4 +0 -0
Change mode to -rw-rw-r--
sntp/main.h@1.8 +0 -0
Change mode to -rw-rw-r--
sntp/sntp.c@1.6 +0 -0
Change mode to -rw-rw-r--
sntp/tests/Makefile.am@1.74 +30 -15
Ensure bk revision is up-to-date in version.
sntp/tests/packetProcessing.c@1.19 +0 -2
Use the real version string rather than a stub.
sntp/tests/packetProcessing.c@1.18 +0 -0
Change mode to -rw-rw-r--
sntp/tests/sntptest.c@1.2 +1 -3
Remove redundant includes, use COUNTOF()
sntp/tests/sntptest.h@1.7 +1 -0
ntp_types.h for COUNTOF()
sntp/tests/utilities.c@1.6 +0 -3
Use the real version string rather than a stub.
sntp/unity/auto/parseOutput.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/type_sanitizer.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/unity_test_summary.py@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/libpkgver-colcomp.c@1.2 +0 -0
Change mode to -rw-rw-r--
tests/libntp/caltontp.c@1.4 +0 -0
Change mode to -rw-rw-r--
tests/libntp/humandate.c@1.8 +0 -0
Change mode to -rw-rw-r--
tests/libntp/msyslog.c@1.8 +0 -0
Change mode to -rw-rw-r--
tests/libntp/prettydate.c@1.7 +0 -0
Change mode to -rw-rw-r--
tests/libntp/recvbuff.c@1.9 +0 -0
Change mode to -rw-rw-r--
tests/libntp/sfptostr.c@1.7 +0 -0
Change mode to -rw-rw-r--
tests/libntp/tstotv.c@1.5 +0 -0
Change mode to -rw-rw-r--
tests/libntp/tvtots.c@1.7 +0 -0
Change mode to -rw-rw-r--
tests/ntpd/ntp_prio_q.c@1.5 +0 -0
Change mode to -rw-rw-r--
tests/ntpd/ntp_restrict.c@1.8 +0 -0
Change mode to -rw-rw-r--
tests/ntpd/test-libntp.c@1.2 +0 -0
Change mode to -rw-rw-r--
tests/sandbox/smeartest.c@1.12 +0 -0
Change mode to -rw-rw-r--
util/Makefile.am@1.83 +7 -10
Ensure bk revision is up-to-date in version
ChangeSet@1.3969.1.1, 2023-03-25 01:48:40-04:00, davehart@tl.davehart.net
[Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
ChangeLog@1.2029.1.1 +2 -0
[Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
libntp/work_thread.c@1.26 +1 -1
Typo
ntpd/ntp_io.c@1.434.1.1 +28 -7
[Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
ChangeSet@1.3964.3.3, 2023-03-19 15:58:02-04:00, davehart@tl.davehart.net
[Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
ChangeLog@1.2025.3.1 +4 -0
[Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
html/copyright.html@1.73 +1 -0
Add Philippe De Muyter <phdm@macqel.be>
libparse/clk_wharton.c@1.12 +0 -7
[Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
ChangeSet@1.3964.3.2, 2023-03-19 15:15:02-04:00, davehart@z4.davehart.net
Fix mkver.bat invocation
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.5.2.1 +2 -2
'fix
ChangeSet@1.3964.3.1, 2023-03-19 13:54:01-04:00, davehart@tl.davehart.net
[Bug 2990] multicastclient incorrectly causes bind to broadcast address.
include/ntpd.h@1.208 +1 -0
Add sys_mclient for multicast to avoid overloading sys_bclient meaning.
ntpd/ntp_io.c@1.435 +1 -1
Add sys_mclient for multicast to avoid overloading sys_bclient meaning.
ntpd/ntp_proto.c@1.441 +6 -4
Separate sys_bclient into sys_mclient and sys_bclient. (from Brian Utterback)
ntpd/ntp_request.c@1.133 +1 -1
Backwards compat, signal broadcast client to ntpdc with either sys_bclient or sys_mclient lit.
ChangeSet@1.3964.2.2, 2023-03-19 01:05:11-04:00, davehart@tl.davehart.net
Don't cast size_t to int, update contract for followlink().
Make ssize_t size match size_t, provide SSIZE_MAX on Windows.
ports/winnt/include/config.h@1.118 +8 -2
Make ssize_t size match size_t, provide SSIZE_MAX
util/ntp-keygen.c@1.112 +4 -4
Don't cast size_t to int, update contract for followlink().
ChangeSet@1.3963.2.4, 2023-03-18 16:10:54+00:00, hart@ntp-devbuild.chi1.ntfo.org
[Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
ChangeLog@1.2024.2.2 +2 -0
[Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
configure.ac@1.625.1.1 +3 -1
[Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
ChangeSet@1.3963.2.3, 2023-03-18 11:37:40+00:00, hart@ntp-devbuild.chi1.ntfo.org
Autogen'd files
ntpd/invoke-ntp.conf.texi@1.223 +22 -10
Autogen output
ntpd/invoke-ntp.keys.texi@1.208 +1 -1
Autogen output
ntpd/invoke-ntpd.texi@1.522 +3 -3
Autogen output
ntpd/ntp.conf.5man@1.257 +25 -13
Autogen output
ntpd/ntp.conf.5mdoc@1.257 +26 -14
Autogen output
ntpd/ntp.conf.html@1.205 +21 -9
Autogen output
ntpd/ntp.conf.man.in@1.257 +25 -13
Autogen output
ntpd/ntp.conf.mdoc.in@1.257 +26 -14
Autogen output
ntpd/ntp.keys.5man@1.242 +4 -4
Autogen output
ntpd/ntp.keys.5mdoc@1.242 +4 -4
Autogen output
ntpd/ntp.keys.man.in@1.242 +4 -4
Autogen output
ntpd/ntp.keys.mdoc.in@1.242 +4 -4
Autogen output
ntpd/ntpd-opts.c@1.547 +7 -7
Autogen output
ntpd/ntpd-opts.h@1.546 +1 -1
Autogen output
ntpd/ntpd.1ntpdman@1.351 +4 -4
Autogen output
ntpd/ntpd.1ntpdmdoc@1.351 +4 -4
Autogen output
ntpd/ntpd.html@1.196 +2 -2
Autogen output
ntpd/ntpd.man.in@1.351 +4 -4
Autogen output
ntpd/ntpd.mdoc.in@1.351 +4 -4
Autogen output
ntpdc/invoke-ntpdc.texi@1.521 +3 -3
Autogen output
ntpdc/ntpdc-opts.c@1.542 +7 -7
Autogen output
ntpdc/ntpdc-opts.h@1.541 +1 -1
Autogen output
ntpdc/ntpdc.1ntpdcman@1.352 +701 -9
Autogen output
ntpdc/ntpdc.1ntpdcmdoc@1.352 +668 -9
Autogen output
ntpdc/ntpdc.html@1.366 +2 -2
Autogen output
ntpdc/ntpdc.man.in@1.352 +701 -9
Autogen output
ntpdc/ntpdc.mdoc.in@1.352 +668 -9
Autogen output
ntpq/invoke-ntpq.texi@1.531 +5 -4
Autogen output
ntpq/ntpq-opts.c@1.551 +7 -7
Autogen output
ntpq/ntpq-opts.h@1.549 +1 -1
Autogen output
ntpq/ntpq.1ntpqman@1.359 +1393 -5
Autogen output
ntpq/ntpq.1ntpqmdoc@1.359 +891 -5
Autogen output
ntpq/ntpq.html@1.196 +28 -9
Autogen output
ntpq/ntpq.man.in@1.359 +1393 -5
Autogen output
ntpq/ntpq.mdoc.in@1.359 +891 -5
Autogen output
ntpsnmpd/invoke-ntpsnmpd.texi@1.521 +4 -4
Autogen output
ntpsnmpd/ntpsnmpd-opts.c@1.542 +7 -7
Autogen output
ntpsnmpd/ntpsnmpd-opts.h@1.541 +1 -1
Autogen output
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.350 +4 -4
Autogen output
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.350 +4 -4
Autogen output
ntpsnmpd/ntpsnmpd.man.in@1.350 +4 -4
Autogen output
ntpsnmpd/ntpsnmpd.mdoc.in@1.350 +4 -4
Autogen output
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.113 +2 -2
Autogen output
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.113 +2 -2
Autogen output
scripts/ntp-wait/invoke-ntp-wait.texi@1.344 +1 -1
Autogen output
scripts/ntp-wait/ntp-wait-opts@1.80 +1 -1
Autogen output
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.341 +2 -2
Autogen output
scripts/ntp-wait/ntp-wait.mdoc.in@1.341 +2 -2
Autogen output
scripts/ntpsweep/ntpsweep-opts@1.83 +1 -1
Autogen output
scripts/ntptrace/invoke-ntptrace.texi@1.133 +1 -1
Autogen output
scripts/ntptrace/ntptrace-opts@1.83 +1 -1
Autogen output
scripts/ntptrace/ntptrace.1ntptracemdoc@1.120 +2 -2
Autogen output
scripts/ntptrace/ntptrace.mdoc.in@1.121 +2 -2
Autogen output
scripts/plot_summary-opts@1.84 +1 -1
Autogen output
scripts/summary-opts@1.83 +1 -1
Autogen output
scripts/update-leap/update-leap.1update-leapmdoc@1.32 +2 -2
Autogen output
scripts/update-leap/update-leap.mdoc.in@1.32 +2 -2
Autogen output
sntp/invoke-sntp.texi@1.521 +3 -3
Autogen output
sntp/sntp-opts.c@1.543 +7 -7
Autogen output
sntp/sntp-opts.h@1.541 +1 -1
Autogen output
sntp/sntp.1sntpman@1.356 +5 -5
Autogen output
sntp/sntp.1sntpmdoc@1.356 +5 -5
Autogen output
sntp/sntp.html@1.537 +2 -2
Autogen output
sntp/sntp.man.in@1.356 +5 -5
Autogen output
sntp/sntp.mdoc.in@1.356 +5 -5
Autogen output
util/invoke-ntp-keygen.texi@1.524 +4 -4
Autogen output
util/ntp-keygen-opts.c@1.545 +8 -8
Autogen output
util/ntp-keygen-opts.h@1.543 +1 -1
Autogen output
util/ntp-keygen.1ntp-keygenman@1.352 +5 -5
Autogen output
util/ntp-keygen.1ntp-keygenmdoc@1.352 +5 -5
Autogen output
util/ntp-keygen.html@1.197 +4 -4
Autogen output
util/ntp-keygen.man.in@1.352 +5 -5
Autogen output
util/ntp-keygen.mdoc.in@1.352 +5 -5
Autogen output
ChangeSet@1.3963.2.2, 2023-03-18 07:05:37-04:00, davehart@tl.davehart.net
Clean up generated .html dependences.
ntpdc/Makefile.am@1.77.1.1 +1 -1
Clean up generated .html dependences.
ntpq/Makefile.am@1.75.1.1 +1 -1
Clean up generated .html dependences.
ntpsnmpd/Makefile.am@1.43 +1 -1
Clean up generated .html dependences.
scripts/Makefile.am@1.41 +1 -1
Clean up generated .html dependences.
scripts/calc_tickadj/Makefile.am@1.12 +1 -1
Clean up generated .html dependences.
scripts/ntp-wait/Makefile.am@1.10 +1 -1
Clean up generated .html dependences.
scripts/ntpsweep/Makefile.am@1.11 +1 -1
Clean up generated .html dependences.
scripts/ntptrace/Makefile.am@1.11 +1 -1
Clean up generated .html dependences.
scripts/update-leap/Makefile.am@1.5 +1 -1
Clean up generated .html dependences.
sntp/Makefile.am@1.91.1.1 +1 -1
Clean up generated .html dependences.
util/Makefile.am@1.80.1.1 +1 -1
Clean up generated .html dependences.
ChangeSet@1.3963.2.1, 2023-03-18 06:23:34-04:00, davehart@tl.davehart.net
[Bug 3802] ntp-keygen -I default identity modulus bits too small for OpenSSL 3.
ntp-keygen.c:
Use different buffers for in/out args to readlink() to respect "restrict" modifiers and avoid undefined behavior.
smeartest.c:
clean up warning re: main() vs main(void)
ChangeLog@1.2024.2.1 +3 -0
[Bug 3802] ntp-keygen -I default identity modulus bits too small for OpenSSL 3.
[Bug 3103] libopts zsave_warn format string too few arguments.
sntp/include/copyright.def@1.31 +1 -1
http://bugs.ntp.org/ -> https
tests/sandbox/smeartest.c@1.11 +1 -1
clean up warning re: main() vs main(void)
util/ntp-keygen-opts.def@1.33 +1 -1
Increase IFF default modulus bits to 512 for OpenSSL 3 compatibility.
util/ntp-keygen.c@1.111 +8 -4
Increase IFF default modulus bits to 512 for OpenSSL 3 compatibility.
Use different buffers for in/out args to readlink() to respect "restrict" modifiers and avoid undefined behavior.
ChangeSet@1.3968, 2023-03-16 08:06:24+00:00, hart@hart.chi1.ntfo.org
unity_internals.h:
FreeBSD11 stdnoreturn.h #define noreturn _Noreturn breaks hint
sntp/unity/unity_internals.h@1.7 +1 -1
Fix problem with FreeBSD #define noreturn _Noreturn expanding to invalid __attribute((_Noreturn)), upstreamed to Unity github.
ChangeSet@1.3967, 2023-03-13 11:17:46+00:00, hart@ntp-devbuild.chi1.ntfo.org
ntp_config.c:
avoid problems with #define noreturn _Noreturn
ntpd/ntp_config.c@1.379 +1 -1
avoid problems with #define noreturn _Noreturn
ChangeSet@1.3963.1.2, 2023-03-13 08:50:22+00:00, hart@ntp-devbuild.chi1.ntfo.org
Use silent rules for version.c files.
Correct configure.ac test and bump cache version to flush bad results.
Silence gcc format-truncation warning in refclock_leitch.c.
configure.ac@1.626 +2 -2
Correct ntp_cv_struct_nlist_u_un test
ntpd/Makefile.am@1.145 +0 -3
use Automake silent rules for version.c
ntpd/refclock_leitch.c@1.16 +1 -1
silence gcc warning for printf %d potential truncation
ntpdate/Makefile.am@1.40 +0 -3
use Automake silent rules for version.c
ntpdc/Makefile.am@1.78 +0 -3
use Automake silent rules for version.c
ntpq/Makefile.am@1.76 +0 -3
use Automake silent rules for version.c
sntp/Makefile.am@1.92 +0 -3
use Automake silent rules for version.c
util/Makefile.am@1.81 +0 -3
use Automake silent rules for version.c
ChangeSet@1.3963.1.1, 2023-03-12 16:43:24-04:00, davehart@tl.davehart.net
[Bug 3801] gpsdjson refclock gps_open() device name mishandled.
ChangeLog@1.2024.1.1 +3 -1
[Bug 3801] gpsdjson refclock gps_open() device name mishandled.
ntpd/refclock_gpsdjson.c@1.34 +3 -2
Pass correct device name to ntp_realpath.
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.5.1.1 +2 -1
Add reference to refclock_gpsdjson.c
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.4.1.1 +4 -1
Add reference to refclock_gpsdjson.c
ChangeSet@1.3965, 2023-03-11 03:23:55-05:00, davehart@tl.davehart.net
[Bug 3799] Enable libopts noreturn compiler advice for MSC.
Add ChangeLog to ntpd project for easy editing within VS.
ChangeLog@1.2026 +1 -0
[Bug 3799] Enable libopts noreturn compiler advice for MSC.
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.6 +2 -1
Add ChangeLog to ntpd project for easy editing within VS.
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.5 +2 -1
Add ChangeLog to ntpd project for easy editing within VS.
sntp/libopts/autoopts.h@1.23 +6 -6
Use lo_noreturn instead of noreturn for MSC compatibility.
sntp/libopts/autoopts/project.h@1.10 +6 -0
Preserve noreturn hint for Microsoft C compiler.
sntp/libopts/makeshell.c@1.23 +3 -3
Use lo_noreturn instead of noreturn for MSC compatibility.
sntp/libopts/proto.h@1.33 +3 -3
Use lo_noreturn instead of noreturn for MSC compatibility.
sntp/libopts/usage.c@1.23 +1 -1
Use lo_noreturn instead of noreturn for MSC compatibility.
ChangeSet@1.3964, 2023-03-10 23:31:42-05:00, davehart@tl.davehart.net
[Bug 3800] libopts-42.1.17 does not compile with Microsoft C.
Clean up [Bug 2525] changes by moving libisc source and header files into
separate groups in the Visual Studio IDE.
ChangeLog@1.2025 +1 -0
[Bug 3800] libopts-42.1.17 does not compile with Microsoft C.
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.7 +152 -149
Clean up [Bug 2525] changes by moving libisc source and header files into
separate groups in the Visual Studio IDE.
sntp/libopts/save.c@1.21 +24 -0
Implement truncate() for Microsoft C
sntp/libopts/text_mmap.c@1.19 +1 -1
Use _O_BINARY not O_BINARY to fix MSC compile
ChangeSet@1.3960.2.1, 2023-03-06 01:47:00-06:00, stenn@ntp-devbuild.chi1.ntfo.org
pollskewlist bug is 3795, not 3595
ChangeLog@1.2021.2.1 +2 -2
pollskewlist bug is 3795, not 3595
ChangeSet@1.3960.1.1, 2023-03-06 01:45:12-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Use https URLs for AC_INIT
ChangeLog@1.2021.1.1 +1 -0
Use https URLs for AC_INIT
ChangeSet@1.3960, 2023-03-06 00:15:49-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Use https in AC_INIT URLs
configure.ac@1.625 +2 -2
Use https in AC_INIT URLs
sntp/configure.ac@1.88 +2 -2
Use https in AC_INIT URLs
ChangeSet@1.3958, 2023-03-05 22:03:49-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Cleanup ChangeLog
ChangeLog@1.2020 +10 -10
Cleanup ChangeLog
ChangeSet@1.3940.3.5, 2023-03-05 21:44:20-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Check in missing libopts/ files
sntp/libopts/save-flags.c@1.1 +248 -0
BitKeeper file sntp/libopts/save-flags.c
sntp/libopts/save-flags.c@1.0 +0 -0
sntp/libopts/save-flags.h@1.1 +68 -0
BitKeeper file sntp/libopts/save-flags.h
sntp/libopts/save-flags.h@1.0 +0 -0
ChangeSet@1.3955, 2023-03-05 15:28:23-05:00, davehart@tl.davehart.net
Correct const usage of strtouv64 endp argument.
include/vint64ops.h@1.3 +1 -1
Correct const usage of strtouv64 endp argument.
libntp/vint64ops.c@1.3 +3 -3
Correct const usage of strtouv64 endp argument.
ntpd/ntp_leapsec.c@1.25 +8 -7
Correct const usage of strtouv64 endp argument.
Use INT16_MAX, INT16_MIN for int16_t.
tests/libntp/vi64ops.c@1.7 +3 -3
Correct const usage of strtouv64 endp argument.
ChangeSet@1.3940.3.4, 2023-03-05 02:26:19-06:00, stenn@ntp-devbuild.chi1.ntfo.org
autogen upgrade
ntpd/ntpd-opts.c@1.546 +1 -1
autogen upgrade
ntpd/ntpd-opts.h@1.545 +1 -1
autogen upgrade
ntpd/ntpdsim-opts.c@1.31 +1 -1
autogen upgrade
ntpd/ntpdsim-opts.h@1.31 +1 -1
autogen upgrade
ntpdc/ntpdc-opts.c@1.541 +1 -1
autogen upgrade
ntpdc/ntpdc-opts.h@1.540 +1 -1
autogen upgrade
ntpq/ntpq-opts.c@1.550 +1 -1
autogen upgrade
ntpq/ntpq-opts.h@1.548 +1 -1
autogen upgrade
ntpsnmpd/ntpsnmpd-opts.c@1.541 +1 -1
autogen upgrade
ntpsnmpd/ntpsnmpd-opts.h@1.540 +1 -1
autogen upgrade
scripts/calc_tickadj/calc_tickadj-opts@1.12 +1 -1
autogen upgrade
scripts/ntpsweep/ntpsweep-opts@1.82 +1 -1
autogen upgrade
scripts/ntptrace/ntptrace-opts@1.82 +1 -1
autogen upgrade
scripts/plot_summary-opts@1.83 +1 -1
autogen upgrade
scripts/summary-opts@1.82 +1 -1
autogen upgrade
scripts/update-leap/update-leap-opts@1.33 +1 -1
autogen upgrade
sntp/sntp-opts.c@1.542 +1 -1
autogen upgrade
sntp/sntp-opts.h@1.540 +1 -1
autogen upgrade
util/ntp-keygen-opts.c@1.544 +1 -1
autogen upgrade
util/ntp-keygen-opts.h@1.542 +1 -1
autogen upgrade
ChangeSet@1.3940.3.3, 2023-03-05 00:23:04-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Updated to autogen-5.16.18 and libopts-42.1.17
html/copyright.html@1.69.1.1 +3 -3
Updated to autogen-5.16.18 and libopts-42.1.17
ntpd/ntpd-opts.c@1.545 +115 -114
Updated to autogen-5.16.18 and libopts-42.1.17
ntpd/ntpd-opts.h@1.544 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
ntpd/ntpdsim-opts.c@1.30 +121 -120
Updated to autogen-5.16.18 and libopts-42.1.17
ntpd/ntpdsim-opts.h@1.30 +15 -6
Updated to autogen-5.16.18 and libopts-42.1.17
ntpdc/ntpdc-opts.c@1.540 +115 -114
Updated to autogen-5.16.18 and libopts-42.1.17
ntpdc/ntpdc-opts.h@1.539 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
ntpq/ntpq-opts.c@1.549 +115 -114
Updated to autogen-5.16.18 and libopts-42.1.17
ntpq/ntpq-opts.h@1.547 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
ntpsnmpd/ntpsnmpd-opts.c@1.540 +115 -114
Updated to autogen-5.16.18 and libopts-42.1.17
ntpsnmpd/ntpsnmpd-opts.h@1.539 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj-opts@1.11 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.111 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.112 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj.html@1.112 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj.man.in@1.110 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.112 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.115 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/invoke-plot_summary.texi@1.133 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/invoke-summary.texi@1.132 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/invoke-ntp-wait.texi@1.343 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/ntp-wait-opts@1.79 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.339 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.340 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/ntp-wait.man.in@1.339 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntp-wait/ntp-wait.mdoc.in@1.340 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/invoke-ntpsweep.texi@1.130 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/ntpsweep-opts@1.81 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.118 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.118 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/ntpsweep.man.in@1.118 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntpsweep/ntpsweep.mdoc.in@1.119 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/invoke-ntptrace.texi@1.132 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/ntptrace-opts@1.81 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/ntptrace.1ntptraceman@1.118 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/ntptrace.1ntptracemdoc@1.119 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/ntptrace.man.in@1.118 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/ntptrace/ntptrace.mdoc.in@1.120 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/plot_summary-opts@1.82 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/plot_summary.1plot_summaryman@1.131 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/plot_summary.1plot_summarymdoc@1.131 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/plot_summary.man.in@1.131 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/plot_summary.mdoc.in@1.131 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/summary-opts@1.81 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/summary.1summaryman@1.130 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/summary.1summarymdoc@1.130 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/summary.man.in@1.130 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/summary.mdoc.in@1.130 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/invoke-update-leap.texi@1.31 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/update-leap-opts@1.32 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/update-leap.1update-leapman@1.31 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/update-leap.1update-leapmdoc@1.31 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/update-leap.man.in@1.31 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
scripts/update-leap/update-leap.mdoc.in@1.31 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/include/autogen-version.def@1.23 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/include/copyright.def@1.28.1.1 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/COPYING.gplv3@1.9 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/COPYING.lgplv3@1.9 +3 -3
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/COPYING.mbsd@1.4 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/Makefile.am@1.29 +18 -21
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/README@1.11 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/ag-char-map.h@1.32 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/alias.c@1.9 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/ao-strs.c@1.18 +143 -138
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/ao-strs.h@1.17 +152 -144
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/autoopts.c@1.21 +8 -14
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/autoopts.h@1.22 +11 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/autoopts/options.h@1.33 +9 -7
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/autoopts/project.h@1.9 +5 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/autoopts/usage-txt.h@1.30 +249 -255
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/boolean.c@1.16 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/check.c@1.9 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/compat/compat.h@1.17 +4 -4
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/compat/pathfind.c@1.14 +1 -12
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/compat/windows-config.h@1.15 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/configfile.c@1.25 +61 -105
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/cook.c@1.16 +24 -29
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/enum.c@1.15 +10 -34
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/env.c@1.10 +3 -9
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/file.c@1.17 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/find.c@1.14 +24 -39
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/genshell.c@1.32 +114 -113
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/genshell.h@1.33 +18 -3
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/gettext.h@1.5 +13 -7
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/init.c@1.10 +7 -11
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/intprops.h@1.3 +200 -67
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/libopts.c@1.10 +4 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/load.c@1.23 +29 -39
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/m4/libopts.m4@1.36 +10 -16
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/m4/liboptschk.m4@1.14 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/m4/stdnoreturn.m4@1.3 +38 -28
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/makeshell.c@1.22 +16 -54
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/nested.c@1.18 +24 -57
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/numeric.c@1.16 +9 -8
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/option-value-type.c@1.19 +5 -5
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/option-xat-attribute.c@1.19 +5 -5
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/parse-duration.c@1.16 +4 -10
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/parse-duration.h@1.11 +3 -3
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/pgusage.c@1.19 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/proto.h@1.32 +491 -17
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/putshell.c@1.16 +13 -29
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/reset.c@1.19 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/restore.c@1.15 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/save.c@1.20 +319 -212
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/sort.c@1.15 +2 -16
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/stack.c@1.17 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/stdnoreturn.in.h@1.3 +21 -11
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/streqvcmp.c@1.17 +2 -2
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/text_mmap.c@1.18 +9 -6
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/time.c@1.16 +5 -3
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/tokenize.c@1.15 +2 -19
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/usage.c@1.22 +16 -67
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/libopts/version.c@1.20 +7 -4
Updated to autogen-5.16.18 and libopts-42.1.17
util/ntp-keygen-opts.c@1.543 +115 -115
Updated to autogen-5.16.18 and libopts-42.1.17
util/ntp-keygen-opts.h@1.541 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
ChangeSet@1.3940.3.2, 2023-03-04 23:57:28-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Updated to autogen-5.16.18 and libopts-42.1.17
configure.ac@1.622.1.1 +1 -1
Updated to autogen-5.16.18 and libopts-42.1.17
ChangeSet@1.3940.3.1, 2023-03-04 23:56:19-06:00, stenn@ntp-devbuild.chi1.ntfo.org
Updated to autogen-5.16.18 and libopts-42.1.17
ChangeLog@1.2009.3.1 +4 -0
auto* and libopts upgrade
ntpd/Makefile.am@1.141.1.1 +1 -0
sntp/libopts/_Noreturn.h@1.2 +0 -0
Rename: sntp/libopts/compat/_Noreturn.h -> sntp/libopts/_Noreturn.h
sntp/sntp-opts.c@1.541 +115 -115
Updated to autogen-5.16.18 and libopts-42.1.17
sntp/sntp-opts.h@1.539 +13 -4
Updated to autogen-5.16.18 and libopts-42.1.17
ChangeSet@1.3954, 2023-02-27 03:04:43-05:00, davehart@tl.davehart.net
[Bug 3781] log "Unable to listen for broadcasts" for IPv4
ChangeLog@1.2018 +1 -0
[Bug 3781] log "Unable to listen for broadcasts" for IPv4
ntpd/ntp_io.c@1.432.1.2 +6 -8
Log "Unable to listen for broadcasts" on dual-stack systems with at least one IPv4 interface in use by ntpd.
ChangeSet@1.3953, 2023-02-23 04:55:50-05:00, davehart@tl.davehart.net
Bugs 3774 and 3793
[Bug 3595] pollskewlist documentation uses | when it shouldn't.
[Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when disconnected
[Bug 3774] mode 6 packets corrupted in rawstats file
[Bug 3793] Wrong variable type passed to record_raw_stats().
Remove inappropriate copyright notice in Windows messages.mc and messages.h
ChangeLog@1.2017 +8 -1
Bugs 3774, 3793, 3595, 3597
html/copyright.html@1.71 +2 -2
Update copyright year.
html/miscopt.html@1.94 +3 -6
[Bug 3595] pollskewlist documentation uses | when it shouldn't.
include/vint64ops.h@1.2 +1 -1
Remove unneccessary noconst union hack.
libntp/socktoa.c@1.19 +1 -1
Correct comment to match code for sock_hash()
libntp/vint64ops.c@1.2 +4 -23
Remove unneccessary noconst union hack.
ntpd/ntp.conf.def@1.36 +6 -4
[Bug 3595] pollskewlist documentation uses | when it shouldn't.
ntpd/ntp_io.c@1.432.1.1 +3 -2
[Bug 3793] Wrong variable type passed to record_raw_stats(). <hart@ntp.org>
- Report and patch by Yuezhen LUAN <wei6410@sina.com>.
Cast time_t to use with with format %ld.
ntpd/ntp_util.c@1.123 +7 -0
[Bug 3774] mode 6 packets corrupted in rawstats file <hart@ntp.org>
- Reported by Edward McGuire, fix identified by <wei6410@sina.com>.
ntpdc/ntpdc.c@1.115 +21 -2
[Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when disconnected
ntpq/ntpq-subs.c@1.134 +24 -21
Remove unnecessary work for *peers when querying a single host, avoiding
a spurious message before the succhessful output on disconnected Windows:
***Can't find host localhost
ntpq/ntpq.c@1.196 +25 -6
[Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when disconnected
ports/winnt/libntp/messages.h@1.4 +8 -133
Remove inapplicable Microsoft boilerplate copyright from developer support sample code.
ports/winnt/libntp/messages.mc@1.4 +5 -133
Remove inapplicable Microsoft boilerplate copyright from developer support sample code.
sntp/include/copyright.def@1.29 +1 -1
Update copyright year.
tests/libntp/decodenetnum.c@1.14 +40 -40
Quiet warnings suggesting braces on FreeBSD where in6_addr has a union.
tests/libntp/socktoa.c@1.14 +14 -14
Quiet warnings suggesting braces on FreeBSD where in6_addr has a union.
ChangeSet@1.3952, 2023-02-22 01:00:47-05:00, davehart@tl.davehart.net
Fix missing format specifier to msyslog in Windows port.
Comment clarification in ntp_proto.c
ntpd/ntp_proto.c@1.438.1.3 +1 -1
Comment clarification
ports/winnt/ntpd/ntp_iocompletionport.c@1.85 +1 -1
Fix missing format specifier to msyslog in Windows port.
ChangeSet@1.3951, 2023-02-20 14:12:24-05:00, davehart@tl.davehart.net
Finish the change for [Bug 3786]
ports/winnt/ntpd/ntp_iocompletionport.c@1.84 +2 -2
Finish the change for [Bug 3786]
ChangeSet@1.3912.21.1, 2023-02-20 13:53:27-05:00, davehart@tl.davehart.net
[Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
- fixed bug identified by Edward McGuire <perlinger@ntp.org>
ChangeLog@1.1986.21.1 +3 -0
[Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
- fixed bug identified by Edward McGuire <perlinger@ntp.org>
ntpd/ntp.conf.def@1.35 +16 -6
Documentation by Dave Hart
ntpd/ntp_monitor.c@1.44.1.1 +5 -3
Bugfix identified by Edward McGuire
ChangeSet@1.3949, 2023-02-20 13:00:45-05:00, davehart@tl.davehart.net
minor cleanup, correct winsock error number range
libntp/lib/isc/win32/strerror.c@1.16 +1 -1
Correct range check for winsock error numbers
ports/winnt/ntpd/nt_ppsimpl.c@1.4 +29 -45
Use emalloc(), estrdup() and remove unneeded checks for NULL return.
Remove unneeded op[-1] \0 check.
ChangeSet@1.3948, 2023-02-20 12:11:06-05:00, davehart@tl.davehart.net
[Bug 3660] Revert 4.2.8p15 change to manycast.
ChangeLog@1.2015 +1 -1
[Bug 3660] Revert 4.2.8p15 change to manycast.
ntpd/ntp_proto.c@1.438.1.2 +1 -1
[Bug 3660] Revert 4.2.8p15 change to manycast.
This was due to a misundersstanding of orphan mode, documentation could be better.
ChangeSet@1.3947, 2023-02-20 12:05:44-05:00, davehart@tl.davehart.net
[Bug 3786] Timer starvation on high-load Windows ntpd.
ChangeLog@1.2014 +2 -1
[Bug 3786] Timer starvation on high-load Windows ntpd.
ports/winnt/ntpd/ntp_iocompletionport.c@1.83 +5 -5
[Bug 3786] Timer starvation on high-load Windows ntpd.
ChangeSet@1.3946, 2023-02-20 12:03:02-05:00, davehart@tl.davehart.net
[Bug 2410] syslog an error message on panic exceeded.
Update email address.
ChangeLog@1.2013 +1 -0
[Bug 2410] syslog an error message on panic exceeded.
html/copyright.html@1.70 +1 -1
Update my email address.
ntpd/ntp_proto.c@1.438.1.1 +4 -0
[Bug 2410] syslog an error message on panic exceeded.
ChangeSet@1.3944, 2023-01-26 03:09:16-05:00, davehart@tl.davehart.net
Enable Automake's subdir-objects option quieting warnings and
building .o files in corresponding build subdirs to the source
subdirs. [Bug 2525]
Centralize more logic to build prereq. libraries in included .mf files.
Fix building without OpenSSL where arc4random() is available.
Fix building without refclock support.
Fix make maintainer-clean and thereby distcheck re deps-ver files.
ChangeLog@1.2011 +5 -5
Add [Bug 2525] and fix a few previous typos.
Makefile.am@1.137 +0 -1
Move lib/isc/ under libntp/ and be more selective about which files are distributed.
adjtimed/Makefile.am@1.17 +2 -1
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Use top-level check-libntp.mf
check-libntp.mf@1.1 +14 -0
Split check-libntp.mf into main and sntp versions and remove duplicated logic in many Makefile.am files.
check-libntp.mf@1.0 +0 -0
check-libntpd.mf@1.1 +19 -0
Centralize makefile fragment to ensure libntpd.a is built.
check-libntpd.mf@1.0 +0 -0
check-libunity.mf@1.1 +13 -0
Centralize makefile logic to build libunity.a before dependents.
check-libunity.mf@1.0 +0 -0
clockstuff/Makefile.am@1.23 +2 -1
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Use top-level check-libntp.mf
configure.ac@1.623 +2 -6
Turn on Automake subdir-objects option to build subdir *.o files in corresponding
build subdirs instead of all in the Makefile directory.
Remove conditionalization of AM_PROG_AR needed for pre-1.12 automake.
deps-ver@1.7 +1 -1
Bump deps-ver to clean .deps directories as files have moved.
depsver.mf@1.5 +3 -2
Add deps-ver to DISTCLEANFILES to fix make distcheck.
Do not give group write permission when making deps-ver writable.
includes.mf@1.2 +3 -3
Account for new path to lib/isc/
libntp/Makefile.am@1.86 +158 -36
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Move lib/isc/ under libntp/ and be more selective about which files are distributed.
Build libevent if needed before libntp.
libntp/lib/isc/Atffile@1.3 +0 -0
Rename: libntp/lib/isc/Atffile -> libntp/lib/isc/Atffile
libntp/lib/isc/Atffile@1.2 +0 -0
Rename: lib/isc/Atffile -> libntp/lib/isc/Atffile
libntp/lib/isc/alpha/include/isc/atomic.h@1.4 +0 -0
Rename: libntp/lib/isc/alpha/include/isc/atomic.h -> libntp/lib/isc/alpha/include/isc/atomic.h
libntp/lib/isc/alpha/include/isc/atomic.h@1.3 +0 -0
Rename: lib/isc/alpha/include/isc/atomic.h -> libntp/lib/isc/alpha/include/isc/atomic.h
libntp/lib/isc/api@1.4 +0 -0
Rename: libntp/lib/isc/api -> libntp/lib/isc/api
libntp/lib/isc/api@1.3 +0 -0
Rename: lib/isc/api -> libntp/lib/isc/api
libntp/lib/isc/app_api.c@1.3 +0 -0
Rename: libntp/lib/isc/app_api.c -> libntp/lib/isc/app_api.c
libntp/lib/isc/app_api.c@1.2 +0 -0
Rename: lib/isc/app_api.c -> libntp/lib/isc/app_api.c
libntp/lib/isc/assertions.c@1.9 +0 -0
Rename: libntp/lib/isc/assertions.c -> libntp/lib/isc/assertions.c
libntp/lib/isc/assertions.c@1.8 +0 -0
Rename: lib/isc/assertions.c -> libntp/lib/isc/assertions.c
libntp/lib/isc/backtrace-emptytbl.c@1.3 +0 -0
Rename: libntp/lib/isc/backtrace-emptytbl.c -> libntp/lib/isc/backtrace-emptytbl.c
libntp/lib/isc/backtrace-emptytbl.c@1.2 +0 -0
Rename: lib/isc/backtrace-emptytbl.c -> libntp/lib/isc/backtrace-emptytbl.c
libntp/lib/isc/backtrace.c@1.5 +0 -0
Rename: libntp/lib/isc/backtrace.c -> libntp/lib/isc/backtrace.c
libntp/lib/isc/backtrace.c@1.4 +0 -0
Rename: lib/isc/backtrace.c -> libntp/lib/isc/backtrace.c
libntp/lib/isc/base32.c@1.4 +0 -0
Rename: libntp/lib/isc/base32.c -> libntp/lib/isc/base32.c
libntp/lib/isc/base32.c@1.3 +0 -0
Rename: lib/isc/base32.c -> libntp/lib/isc/base32.c
libntp/lib/isc/base64.c@1.4 +0 -0
Rename: libntp/lib/isc/base64.c -> libntp/lib/isc/base64.c
libntp/lib/isc/base64.c@1.3 +0 -0
Rename: lib/isc/base64.c -> libntp/lib/isc/base64.c
libntp/lib/isc/bitstring.c@1.3 +0 -0
Rename: libntp/lib/isc/bitstring.c -> libntp/lib/isc/bitstring.c
libntp/lib/isc/bitstring.c@1.2 +0 -0
Rename: lib/isc/bitstring.c -> libntp/lib/isc/bitstring.c
libntp/lib/isc/buffer.c@1.4 +0 -0
Rename: libntp/lib/isc/buffer.c -> libntp/lib/isc/buffer.c
libntp/lib/isc/buffer.c@1.3 +0 -0
Rename: lib/isc/buffer.c -> libntp/lib/isc/buffer.c
libntp/lib/isc/bufferlist.c@1.3 +0 -0
Rename: libntp/lib/isc/bufferlist.c -> libntp/lib/isc/bufferlist.c
libntp/lib/isc/bufferlist.c@1.2 +0 -0
Rename: lib/isc/bufferlist.c -> libntp/lib/isc/bufferlist.c
libntp/lib/isc/commandline.c@1.3 +0 -0
Rename: libntp/lib/isc/commandline.c -> libntp/lib/isc/commandline.c
libntp/lib/isc/commandline.c@1.2 +0 -0
Rename: lib/isc/commandline.c -> libntp/lib/isc/commandline.c
libntp/lib/isc/entropy.c@1.4 +0 -0
Rename: libntp/lib/isc/entropy.c -> libntp/lib/isc/entropy.c
libntp/lib/isc/entropy.c@1.3 +0 -0
Rename: lib/isc/entropy.c -> libntp/lib/isc/entropy.c
libntp/lib/isc/error.c@1.6 +0 -0
Rename: libntp/lib/isc/error.c -> libntp/lib/isc/error.c
libntp/lib/isc/error.c@1.5 +0 -0
Rename: lib/isc/error.c -> libntp/lib/isc/error.c
libntp/lib/isc/event.c@1.4 +0 -0
Rename: libntp/lib/isc/event.c -> libntp/lib/isc/event.c
libntp/lib/isc/event.c@1.3 +0 -0
Rename: lib/isc/event.c -> libntp/lib/isc/event.c
libntp/lib/isc/fsaccess.c@1.3 +0 -0
Rename: libntp/lib/isc/fsaccess.c -> libntp/lib/isc/fsaccess.c
libntp/lib/isc/fsaccess.c@1.2 +0 -0
Rename: lib/isc/fsaccess.c -> libntp/lib/isc/fsaccess.c
libntp/lib/isc/hash.c@1.4 +0 -0
Rename: libntp/lib/isc/hash.c -> libntp/lib/isc/hash.c
libntp/lib/isc/hash.c@1.3 +0 -0
Rename: lib/isc/hash.c -> libntp/lib/isc/hash.c
libntp/lib/isc/heap.c@1.4 +0 -0
Rename: libntp/lib/isc/heap.c -> libntp/lib/isc/heap.c
libntp/lib/isc/heap.c@1.3 +0 -0
Rename: lib/isc/heap.c -> libntp/lib/isc/heap.c
libntp/lib/isc/hex.c@1.3 +0 -0
Rename: libntp/lib/isc/hex.c -> libntp/lib/isc/hex.c
libntp/lib/isc/hex.c@1.2 +0 -0
Rename: lib/isc/hex.c -> libntp/lib/isc/hex.c
libntp/lib/isc/hmacmd5.c@1.5 +0 -0
Rename: libntp/lib/isc/hmacmd5.c -> libntp/lib/isc/hmacmd5.c
libntp/lib/isc/hmacmd5.c@1.4 +0 -0
Rename: lib/isc/hmacmd5.c -> libntp/lib/isc/hmacmd5.c
libntp/lib/isc/hmacsha.c@1.5 +0 -0
Rename: libntp/lib/isc/hmacsha.c -> libntp/lib/isc/hmacsha.c
libntp/lib/isc/hmacsha.c@1.4 +0 -0
Rename: lib/isc/hmacsha.c -> libntp/lib/isc/hmacsha.c
libntp/lib/isc/httpd.c@1.4 +0 -0
Rename: libntp/lib/isc/httpd.c -> libntp/lib/isc/httpd.c
libntp/lib/isc/httpd.c@1.3 +0 -0
Rename: lib/isc/httpd.c -> libntp/lib/isc/httpd.c
libntp/lib/isc/ia64/include/isc/atomic.h@1.4 +0 -0
Rename: libntp/lib/isc/ia64/include/isc/atomic.h -> libntp/lib/isc/ia64/include/isc/atomic.h
libntp/lib/isc/ia64/include/isc/atomic.h@1.3 +0 -0
Rename: lib/isc/ia64/include/isc/atomic.h -> libntp/lib/isc/ia64/include/isc/atomic.h
libntp/lib/isc/include/isc/app.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/app.h -> libntp/lib/isc/include/isc/app.h
libntp/lib/isc/include/isc/app.h@1.6 +0 -0
Rename: lib/isc/include/isc/app.h -> libntp/lib/isc/include/isc/app.h
libntp/lib/isc/include/isc/assertions.h@1.9 +0 -0
Rename: libntp/lib/isc/include/isc/assertions.h -> libntp/lib/isc/include/isc/assertions.h
libntp/lib/isc/include/isc/assertions.h@1.8 +0 -0
Rename: lib/isc/include/isc/assertions.h -> libntp/lib/isc/include/isc/assertions.h
libntp/lib/isc/include/isc/backtrace.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/backtrace.h -> libntp/lib/isc/include/isc/backtrace.h
libntp/lib/isc/include/isc/backtrace.h@1.3 +0 -0
Rename: lib/isc/include/isc/backtrace.h -> libntp/lib/isc/include/isc/backtrace.h
libntp/lib/isc/include/isc/base32.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/base32.h -> libntp/lib/isc/include/isc/base32.h
libntp/lib/isc/include/isc/base32.h@1.2 +0 -0
Rename: lib/isc/include/isc/base32.h -> libntp/lib/isc/include/isc/base32.h
libntp/lib/isc/include/isc/base64.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/base64.h -> libntp/lib/isc/include/isc/base64.h
libntp/lib/isc/include/isc/base64.h@1.2 +0 -0
Rename: lib/isc/include/isc/base64.h -> libntp/lib/isc/include/isc/base64.h
libntp/lib/isc/include/isc/bind9.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/bind9.h -> libntp/lib/isc/include/isc/bind9.h
libntp/lib/isc/include/isc/bind9.h@1.2 +0 -0
Rename: lib/isc/include/isc/bind9.h -> libntp/lib/isc/include/isc/bind9.h
libntp/lib/isc/include/isc/bitstring.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/bitstring.h -> libntp/lib/isc/include/isc/bitstring.h
libntp/lib/isc/include/isc/bitstring.h@1.2 +0 -0
Rename: lib/isc/include/isc/bitstring.h -> libntp/lib/isc/include/isc/bitstring.h
libntp/lib/isc/include/isc/boolean.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/boolean.h -> libntp/lib/isc/include/isc/boolean.h
libntp/lib/isc/include/isc/boolean.h@1.5 +0 -0
Rename: lib/isc/include/isc/boolean.h -> libntp/lib/isc/include/isc/boolean.h
libntp/lib/isc/include/isc/buffer.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/buffer.h -> libntp/lib/isc/include/isc/buffer.h
libntp/lib/isc/include/isc/buffer.h@1.6 +0 -0
Rename: lib/isc/include/isc/buffer.h -> libntp/lib/isc/include/isc/buffer.h
libntp/lib/isc/include/isc/bufferlist.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/bufferlist.h -> libntp/lib/isc/include/isc/bufferlist.h
libntp/lib/isc/include/isc/bufferlist.h@1.2 +0 -0
Rename: lib/isc/include/isc/bufferlist.h -> libntp/lib/isc/include/isc/bufferlist.h
libntp/lib/isc/include/isc/commandline.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/commandline.h -> libntp/lib/isc/include/isc/commandline.h
libntp/lib/isc/include/isc/commandline.h@1.2 +0 -0
Rename: lib/isc/include/isc/commandline.h -> libntp/lib/isc/include/isc/commandline.h
libntp/lib/isc/include/isc/entropy.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/entropy.h -> libntp/lib/isc/include/isc/entropy.h
libntp/lib/isc/include/isc/entropy.h@1.3 +0 -0
Rename: lib/isc/include/isc/entropy.h -> libntp/lib/isc/include/isc/entropy.h
libntp/lib/isc/include/isc/error.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/error.h -> libntp/lib/isc/include/isc/error.h
libntp/lib/isc/include/isc/error.h@1.6 +0 -0
Rename: lib/isc/include/isc/error.h -> libntp/lib/isc/include/isc/error.h
libntp/lib/isc/include/isc/event.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/event.h -> libntp/lib/isc/include/isc/event.h
libntp/lib/isc/include/isc/event.h@1.2 +0 -0
Rename: lib/isc/include/isc/event.h -> libntp/lib/isc/include/isc/event.h
libntp/lib/isc/include/isc/eventclass.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/eventclass.h -> libntp/lib/isc/include/isc/eventclass.h
libntp/lib/isc/include/isc/eventclass.h@1.2 +0 -0
Rename: lib/isc/include/isc/eventclass.h -> libntp/lib/isc/include/isc/eventclass.h
libntp/lib/isc/include/isc/file.h@1.8 +0 -0
Rename: libntp/lib/isc/include/isc/file.h -> libntp/lib/isc/include/isc/file.h
libntp/lib/isc/include/isc/file.h@1.7 +0 -0
Rename: lib/isc/include/isc/file.h -> libntp/lib/isc/include/isc/file.h
libntp/lib/isc/include/isc/formatcheck.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/formatcheck.h -> libntp/lib/isc/include/isc/formatcheck.h
libntp/lib/isc/include/isc/formatcheck.h@1.5 +0 -0
Rename: lib/isc/include/isc/formatcheck.h -> libntp/lib/isc/include/isc/formatcheck.h
libntp/lib/isc/include/isc/fsaccess.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/fsaccess.h -> libntp/lib/isc/include/isc/fsaccess.h
libntp/lib/isc/include/isc/fsaccess.h@1.3 +0 -0
Rename: lib/isc/include/isc/fsaccess.h -> libntp/lib/isc/include/isc/fsaccess.h
libntp/lib/isc/include/isc/hash.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/hash.h -> libntp/lib/isc/include/isc/hash.h
libntp/lib/isc/include/isc/hash.h@1.3 +0 -0
Rename: lib/isc/include/isc/hash.h -> libntp/lib/isc/include/isc/hash.h
libntp/lib/isc/include/isc/heap.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/heap.h -> libntp/lib/isc/include/isc/heap.h
libntp/lib/isc/include/isc/heap.h@1.3 +0 -0
Rename: lib/isc/include/isc/heap.h -> libntp/lib/isc/include/isc/heap.h
libntp/lib/isc/include/isc/hex.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/hex.h -> libntp/lib/isc/include/isc/hex.h
libntp/lib/isc/include/isc/hex.h@1.2 +0 -0
Rename: lib/isc/include/isc/hex.h -> libntp/lib/isc/include/isc/hex.h
libntp/lib/isc/include/isc/hmacmd5.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/hmacmd5.h -> libntp/lib/isc/include/isc/hmacmd5.h
libntp/lib/isc/include/isc/hmacmd5.h@1.3 +0 -0
Rename: lib/isc/include/isc/hmacmd5.h -> libntp/lib/isc/include/isc/hmacmd5.h
libntp/lib/isc/include/isc/hmacsha.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/hmacsha.h -> libntp/lib/isc/include/isc/hmacsha.h
libntp/lib/isc/include/isc/hmacsha.h@1.3 +0 -0
Rename: lib/isc/include/isc/hmacsha.h -> libntp/lib/isc/include/isc/hmacsha.h
libntp/lib/isc/include/isc/httpd.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/httpd.h -> libntp/lib/isc/include/isc/httpd.h
libntp/lib/isc/include/isc/httpd.h@1.2 +0 -0
Rename: lib/isc/include/isc/httpd.h -> libntp/lib/isc/include/isc/httpd.h
libntp/lib/isc/include/isc/interfaceiter.h@1.10 +0 -0
Rename: libntp/lib/isc/include/isc/interfaceiter.h -> libntp/lib/isc/include/isc/interfaceiter.h
libntp/lib/isc/include/isc/interfaceiter.h@1.9 +0 -0
Rename: lib/isc/include/isc/interfaceiter.h -> libntp/lib/isc/include/isc/interfaceiter.h
libntp/lib/isc/include/isc/ipv6.h@1.11 +0 -0
Rename: libntp/lib/isc/include/isc/ipv6.h -> libntp/lib/isc/include/isc/ipv6.h
libntp/lib/isc/include/isc/ipv6.h@1.10 +0 -0
Rename: lib/isc/include/isc/ipv6.h -> libntp/lib/isc/include/isc/ipv6.h
libntp/lib/isc/include/isc/iterated_hash.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/iterated_hash.h -> libntp/lib/isc/include/isc/iterated_hash.h
libntp/lib/isc/include/isc/iterated_hash.h@1.2 +0 -0
Rename: lib/isc/include/isc/iterated_hash.h -> libntp/lib/isc/include/isc/iterated_hash.h
libntp/lib/isc/include/isc/lang.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/lang.h -> libntp/lib/isc/include/isc/lang.h
libntp/lib/isc/include/isc/lang.h@1.5 +0 -0
Rename: lib/isc/include/isc/lang.h -> libntp/lib/isc/include/isc/lang.h
libntp/lib/isc/include/isc/lex.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/lex.h -> libntp/lib/isc/include/isc/lex.h
libntp/lib/isc/include/isc/lex.h@1.2 +0 -0
Rename: lib/isc/include/isc/lex.h -> libntp/lib/isc/include/isc/lex.h
libntp/lib/isc/include/isc/lfsr.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/lfsr.h -> libntp/lib/isc/include/isc/lfsr.h
libntp/lib/isc/include/isc/lfsr.h@1.2 +0 -0
Rename: lib/isc/include/isc/lfsr.h -> libntp/lib/isc/include/isc/lfsr.h
libntp/lib/isc/include/isc/lib.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/lib.h -> libntp/lib/isc/include/isc/lib.h
libntp/lib/isc/include/isc/lib.h@1.6 +0 -0
Rename: lib/isc/include/isc/lib.h -> libntp/lib/isc/include/isc/lib.h
libntp/lib/isc/include/isc/list.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/list.h -> libntp/lib/isc/include/isc/list.h
libntp/lib/isc/include/isc/list.h@1.6 +0 -0
Rename: lib/isc/include/isc/list.h -> libntp/lib/isc/include/isc/list.h
libntp/lib/isc/include/isc/log.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/log.h -> libntp/lib/isc/include/isc/log.h
libntp/lib/isc/include/isc/log.h@1.5 +0 -0
Rename: lib/isc/include/isc/log.h -> libntp/lib/isc/include/isc/log.h
libntp/lib/isc/include/isc/magic.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/magic.h -> libntp/lib/isc/include/isc/magic.h
libntp/lib/isc/include/isc/magic.h@1.5 +0 -0
Rename: lib/isc/include/isc/magic.h -> libntp/lib/isc/include/isc/magic.h
libntp/lib/isc/include/isc/md5.h@1.5 +0 -0
Rename: libntp/lib/isc/include/isc/md5.h -> libntp/lib/isc/include/isc/md5.h
libntp/lib/isc/include/isc/md5.h@1.4 +0 -0
Rename: lib/isc/include/isc/md5.h -> libntp/lib/isc/include/isc/md5.h
libntp/lib/isc/include/isc/mem.h@1.8 +0 -0
Rename: libntp/lib/isc/include/isc/mem.h -> libntp/lib/isc/include/isc/mem.h
libntp/lib/isc/include/isc/mem.h@1.7 +0 -0
Rename: lib/isc/include/isc/mem.h -> libntp/lib/isc/include/isc/mem.h
libntp/lib/isc/include/isc/msgcat.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/msgcat.h -> libntp/lib/isc/include/isc/msgcat.h
libntp/lib/isc/include/isc/msgcat.h@1.5 +0 -0
Rename: lib/isc/include/isc/msgcat.h -> libntp/lib/isc/include/isc/msgcat.h
libntp/lib/isc/include/isc/msgs.h@1.9 +0 -0
Rename: libntp/lib/isc/include/isc/msgs.h -> libntp/lib/isc/include/isc/msgs.h
libntp/lib/isc/include/isc/msgs.h@1.8 +0 -0
Rename: lib/isc/include/isc/msgs.h -> libntp/lib/isc/include/isc/msgs.h
libntp/lib/isc/include/isc/mutexblock.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/mutexblock.h -> libntp/lib/isc/include/isc/mutexblock.h
libntp/lib/isc/include/isc/mutexblock.h@1.2 +0 -0
Rename: lib/isc/include/isc/mutexblock.h -> libntp/lib/isc/include/isc/mutexblock.h
libntp/lib/isc/include/isc/namespace.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/namespace.h -> libntp/lib/isc/include/isc/namespace.h
libntp/lib/isc/include/isc/namespace.h@1.2 +0 -0
Rename: lib/isc/include/isc/namespace.h -> libntp/lib/isc/include/isc/namespace.h
libntp/lib/isc/include/isc/netaddr.h@1.9 +0 -0
Rename: libntp/lib/isc/include/isc/netaddr.h -> libntp/lib/isc/include/isc/netaddr.h
libntp/lib/isc/include/isc/netaddr.h@1.8 +0 -0
Rename: lib/isc/include/isc/netaddr.h -> libntp/lib/isc/include/isc/netaddr.h
libntp/lib/isc/include/isc/netscope.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/netscope.h -> libntp/lib/isc/include/isc/netscope.h
libntp/lib/isc/include/isc/netscope.h@1.5 +0 -0
Rename: lib/isc/include/isc/netscope.h -> libntp/lib/isc/include/isc/netscope.h
libntp/lib/isc/include/isc/ondestroy.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/ondestroy.h -> libntp/lib/isc/include/isc/ondestroy.h
libntp/lib/isc/include/isc/ondestroy.h@1.2 +0 -0
Rename: lib/isc/include/isc/ondestroy.h -> libntp/lib/isc/include/isc/ondestroy.h
libntp/lib/isc/include/isc/os.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/os.h -> libntp/lib/isc/include/isc/os.h
libntp/lib/isc/include/isc/os.h@1.2 +0 -0
Rename: lib/isc/include/isc/os.h -> libntp/lib/isc/include/isc/os.h
libntp/lib/isc/include/isc/parseint.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/parseint.h -> libntp/lib/isc/include/isc/parseint.h
libntp/lib/isc/include/isc/parseint.h@1.2 +0 -0
Rename: lib/isc/include/isc/parseint.h -> libntp/lib/isc/include/isc/parseint.h
libntp/lib/isc/include/isc/platform.h@1.5 +0 -0
Rename: libntp/lib/isc/include/isc/platform.h -> libntp/lib/isc/include/isc/platform.h
libntp/lib/isc/include/isc/platform.h@1.4 +0 -0
Rename: lib/isc/include/isc/platform.h -> libntp/lib/isc/include/isc/platform.h
libntp/lib/isc/include/isc/platform.h.in@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/platform.h.in -> libntp/lib/isc/include/isc/platform.h.in
libntp/lib/isc/include/isc/platform.h.in@1.3 +0 -0
Rename: lib/isc/include/isc/platform.h.in -> libntp/lib/isc/include/isc/platform.h.in
libntp/lib/isc/include/isc/portset.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/portset.h -> libntp/lib/isc/include/isc/portset.h
libntp/lib/isc/include/isc/portset.h@1.3 +0 -0
Rename: lib/isc/include/isc/portset.h -> libntp/lib/isc/include/isc/portset.h
libntp/lib/isc/include/isc/print.h@1.6 +0 -0
Rename: libntp/lib/isc/include/isc/print.h -> libntp/lib/isc/include/isc/print.h
libntp/lib/isc/include/isc/print.h@1.5 +0 -0
Rename: lib/isc/include/isc/print.h -> libntp/lib/isc/include/isc/print.h
libntp/lib/isc/include/isc/queue.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/queue.h -> libntp/lib/isc/include/isc/queue.h
libntp/lib/isc/include/isc/queue.h@1.2 +0 -0
Rename: lib/isc/include/isc/queue.h -> libntp/lib/isc/include/isc/queue.h
libntp/lib/isc/include/isc/quota.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/quota.h -> libntp/lib/isc/include/isc/quota.h
libntp/lib/isc/include/isc/quota.h@1.2 +0 -0
Rename: lib/isc/include/isc/quota.h -> libntp/lib/isc/include/isc/quota.h
libntp/lib/isc/include/isc/radix.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/radix.h -> libntp/lib/isc/include/isc/radix.h
libntp/lib/isc/include/isc/radix.h@1.3 +0 -0
Rename: lib/isc/include/isc/radix.h -> libntp/lib/isc/include/isc/radix.h
libntp/lib/isc/include/isc/random.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/random.h -> libntp/lib/isc/include/isc/random.h
libntp/lib/isc/include/isc/random.h@1.3 +0 -0
Rename: lib/isc/include/isc/random.h -> libntp/lib/isc/include/isc/random.h
libntp/lib/isc/include/isc/ratelimiter.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/ratelimiter.h -> libntp/lib/isc/include/isc/ratelimiter.h
libntp/lib/isc/include/isc/ratelimiter.h@1.3 +0 -0
Rename: lib/isc/include/isc/ratelimiter.h -> libntp/lib/isc/include/isc/ratelimiter.h
libntp/lib/isc/include/isc/refcount.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/refcount.h -> libntp/lib/isc/include/isc/refcount.h
libntp/lib/isc/include/isc/refcount.h@1.3 +0 -0
Rename: lib/isc/include/isc/refcount.h -> libntp/lib/isc/include/isc/refcount.h
libntp/lib/isc/include/isc/region.h@1.5 +0 -0
Rename: libntp/lib/isc/include/isc/region.h -> libntp/lib/isc/include/isc/region.h
libntp/lib/isc/include/isc/region.h@1.4 +0 -0
Rename: lib/isc/include/isc/region.h -> libntp/lib/isc/include/isc/region.h
libntp/lib/isc/include/isc/resource.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/resource.h -> libntp/lib/isc/include/isc/resource.h
libntp/lib/isc/include/isc/resource.h@1.2 +0 -0
Rename: lib/isc/include/isc/resource.h -> libntp/lib/isc/include/isc/resource.h
libntp/lib/isc/include/isc/result.h@1.8 +0 -0
Rename: libntp/lib/isc/include/isc/result.h -> libntp/lib/isc/include/isc/result.h
libntp/lib/isc/include/isc/result.h@1.7 +0 -0
Rename: lib/isc/include/isc/result.h -> libntp/lib/isc/include/isc/result.h
libntp/lib/isc/include/isc/resultclass.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/resultclass.h -> libntp/lib/isc/include/isc/resultclass.h
libntp/lib/isc/include/isc/resultclass.h@1.3 +0 -0
Rename: lib/isc/include/isc/resultclass.h -> libntp/lib/isc/include/isc/resultclass.h
libntp/lib/isc/include/isc/rwlock.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/rwlock.h -> libntp/lib/isc/include/isc/rwlock.h
libntp/lib/isc/include/isc/rwlock.h@1.2 +0 -0
Rename: lib/isc/include/isc/rwlock.h -> libntp/lib/isc/include/isc/rwlock.h
libntp/lib/isc/include/isc/serial.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/serial.h -> libntp/lib/isc/include/isc/serial.h
libntp/lib/isc/include/isc/serial.h@1.3 +0 -0
Rename: lib/isc/include/isc/serial.h -> libntp/lib/isc/include/isc/serial.h
libntp/lib/isc/include/isc/sha1.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/sha1.h -> libntp/lib/isc/include/isc/sha1.h
libntp/lib/isc/include/isc/sha1.h@1.3 +0 -0
Rename: lib/isc/include/isc/sha1.h -> libntp/lib/isc/include/isc/sha1.h
libntp/lib/isc/include/isc/sha2.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/sha2.h -> libntp/lib/isc/include/isc/sha2.h
libntp/lib/isc/include/isc/sha2.h@1.3 +0 -0
Rename: lib/isc/include/isc/sha2.h -> libntp/lib/isc/include/isc/sha2.h
libntp/lib/isc/include/isc/sockaddr.h@1.8 +0 -0
Rename: libntp/lib/isc/include/isc/sockaddr.h -> libntp/lib/isc/include/isc/sockaddr.h
libntp/lib/isc/include/isc/sockaddr.h@1.7 +0 -0
Rename: lib/isc/include/isc/sockaddr.h -> libntp/lib/isc/include/isc/sockaddr.h
libntp/lib/isc/include/isc/socket.h@1.5 +0 -0
Rename: libntp/lib/isc/include/isc/socket.h -> libntp/lib/isc/include/isc/socket.h
libntp/lib/isc/include/isc/socket.h@1.4 +0 -0
Rename: lib/isc/include/isc/socket.h -> libntp/lib/isc/include/isc/socket.h
libntp/lib/isc/include/isc/stats.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/stats.h -> libntp/lib/isc/include/isc/stats.h
libntp/lib/isc/include/isc/stats.h@1.3 +0 -0
Rename: lib/isc/include/isc/stats.h -> libntp/lib/isc/include/isc/stats.h
libntp/lib/isc/include/isc/stdio.h@1.5 +0 -0
Rename: libntp/lib/isc/include/isc/stdio.h -> libntp/lib/isc/include/isc/stdio.h
libntp/lib/isc/include/isc/stdio.h@1.4 +0 -0
Rename: lib/isc/include/isc/stdio.h -> libntp/lib/isc/include/isc/stdio.h
libntp/lib/isc/include/isc/stdlib.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/stdlib.h -> libntp/lib/isc/include/isc/stdlib.h
libntp/lib/isc/include/isc/stdlib.h@1.2 +0 -0
Rename: lib/isc/include/isc/stdlib.h -> libntp/lib/isc/include/isc/stdlib.h
libntp/lib/isc/include/isc/string.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/string.h -> libntp/lib/isc/include/isc/string.h
libntp/lib/isc/include/isc/string.h@1.6 +0 -0
Rename: lib/isc/include/isc/string.h -> libntp/lib/isc/include/isc/string.h
libntp/lib/isc/include/isc/symtab.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/symtab.h -> libntp/lib/isc/include/isc/symtab.h
libntp/lib/isc/include/isc/symtab.h@1.3 +0 -0
Rename: lib/isc/include/isc/symtab.h -> libntp/lib/isc/include/isc/symtab.h
libntp/lib/isc/include/isc/task.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/task.h -> libntp/lib/isc/include/isc/task.h
libntp/lib/isc/include/isc/task.h@1.3 +0 -0
Rename: lib/isc/include/isc/task.h -> libntp/lib/isc/include/isc/task.h
libntp/lib/isc/include/isc/taskpool.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/taskpool.h -> libntp/lib/isc/include/isc/taskpool.h
libntp/lib/isc/include/isc/taskpool.h@1.3 +0 -0
Rename: lib/isc/include/isc/taskpool.h -> libntp/lib/isc/include/isc/taskpool.h
libntp/lib/isc/include/isc/timer.h@1.4 +0 -0
Rename: libntp/lib/isc/include/isc/timer.h -> libntp/lib/isc/include/isc/timer.h
libntp/lib/isc/include/isc/timer.h@1.3 +0 -0
Rename: lib/isc/include/isc/timer.h -> libntp/lib/isc/include/isc/timer.h
libntp/lib/isc/include/isc/types.h@1.7 +0 -0
Rename: libntp/lib/isc/include/isc/types.h -> libntp/lib/isc/include/isc/types.h
libntp/lib/isc/include/isc/types.h@1.6 +0 -0
Rename: lib/isc/include/isc/types.h -> libntp/lib/isc/include/isc/types.h
libntp/lib/isc/include/isc/util.h@1.9 +0 -0
Rename: libntp/lib/isc/include/isc/util.h -> libntp/lib/isc/include/isc/util.h
libntp/lib/isc/include/isc/util.h@1.8 +0 -0
Rename: lib/isc/include/isc/util.h -> libntp/lib/isc/include/isc/util.h
libntp/lib/isc/include/isc/version.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/version.h -> libntp/lib/isc/include/isc/version.h
libntp/lib/isc/include/isc/version.h@1.2 +0 -0
Rename: lib/isc/include/isc/version.h -> libntp/lib/isc/include/isc/version.h
libntp/lib/isc/include/isc/xml.h@1.3 +0 -0
Rename: libntp/lib/isc/include/isc/xml.h -> libntp/lib/isc/include/isc/xml.h
libntp/lib/isc/include/isc/xml.h@1.2 +0 -0
Rename: lib/isc/include/isc/xml.h -> libntp/lib/isc/include/isc/xml.h
libntp/lib/isc/inet_aton.c@1.8 +0 -0
Rename: libntp/lib/isc/inet_aton.c -> libntp/lib/isc/inet_aton.c
libntp/lib/isc/inet_aton.c@1.7 +0 -0
Rename: lib/isc/inet_aton.c -> libntp/lib/isc/inet_aton.c
libntp/lib/isc/inet_ntop.c@1.16 +0 -0
Rename: libntp/lib/isc/inet_ntop.c -> libntp/lib/isc/inet_ntop.c
libntp/lib/isc/inet_ntop.c@1.15 +0 -0
Rename: lib/isc/inet_ntop.c -> libntp/lib/isc/inet_ntop.c
libntp/lib/isc/inet_pton.c@1.10 +0 -0
Rename: libntp/lib/isc/inet_pton.c -> libntp/lib/isc/inet_pton.c
libntp/lib/isc/inet_pton.c@1.9 +0 -0
Rename: lib/isc/inet_pton.c -> libntp/lib/isc/inet_pton.c
libntp/lib/isc/iterated_hash.c@1.4 +0 -0
Rename: libntp/lib/isc/iterated_hash.c -> libntp/lib/isc/iterated_hash.c
libntp/lib/isc/iterated_hash.c@1.3 +0 -0
Rename: lib/isc/iterated_hash.c -> libntp/lib/isc/iterated_hash.c
libntp/lib/isc/lex.c@1.3 +0 -0
Rename: libntp/lib/isc/lex.c -> libntp/lib/isc/lex.c
libntp/lib/isc/lex.c@1.2 +0 -0
Rename: lib/isc/lex.c -> libntp/lib/isc/lex.c
libntp/lib/isc/lfsr.c@1.3 +0 -0
Rename: libntp/lib/isc/lfsr.c -> libntp/lib/isc/lfsr.c
libntp/lib/isc/lfsr.c@1.2 +0 -0
Rename: lib/isc/lfsr.c -> libntp/lib/isc/lfsr.c
libntp/lib/isc/lib.c@1.7 +0 -0
Rename: libntp/lib/isc/lib.c -> libntp/lib/isc/lib.c
libntp/lib/isc/lib.c@1.6 +0 -0
Rename: lib/isc/lib.c -> libntp/lib/isc/lib.c
libntp/lib/isc/log.c@1.11 +0 -0
Rename: libntp/lib/isc/log.c -> libntp/lib/isc/log.c
libntp/lib/isc/log.c@1.10 +0 -0
Rename: lib/isc/log.c -> libntp/lib/isc/log.c
libntp/lib/isc/md5.c@1.5 +0 -0
Rename: libntp/lib/isc/md5.c -> libntp/lib/isc/md5.c
libntp/lib/isc/md5.c@1.4 +0 -0
Rename: lib/isc/md5.c -> libntp/lib/isc/md5.c
libntp/lib/isc/mem.c@1.8 +0 -0
Rename: libntp/lib/isc/mem.c -> libntp/lib/isc/mem.c
libntp/lib/isc/mem.c@1.7 +0 -0
Rename: lib/isc/mem.c -> libntp/lib/isc/mem.c
libntp/lib/isc/mem_api.c@1.3 +0 -0
Rename: libntp/lib/isc/mem_api.c -> libntp/lib/isc/mem_api.c
libntp/lib/isc/mem_api.c@1.2 +0 -0
Rename: lib/isc/mem_api.c -> libntp/lib/isc/mem_api.c
libntp/lib/isc/mips/include/isc/atomic.h@1.3 +0 -0
Rename: libntp/lib/isc/mips/include/isc/atomic.h -> libntp/lib/isc/mips/include/isc/atomic.h
libntp/lib/isc/mips/include/isc/atomic.h@1.2 +0 -0
Rename: lib/isc/mips/include/isc/atomic.h -> libntp/lib/isc/mips/include/isc/atomic.h
libntp/lib/isc/mutexblock.c@1.4 +0 -0
Rename: libntp/lib/isc/mutexblock.c -> libntp/lib/isc/mutexblock.c
libntp/lib/isc/mutexblock.c@1.3 +0 -0
Rename: lib/isc/mutexblock.c -> libntp/lib/isc/mutexblock.c
libntp/lib/isc/netaddr.c@1.17 +0 -0
Rename: libntp/lib/isc/netaddr.c -> libntp/lib/isc/netaddr.c
libntp/lib/isc/netaddr.c@1.16 +0 -0
Rename: lib/isc/netaddr.c -> libntp/lib/isc/netaddr.c
libntp/lib/isc/netscope.c@1.5 +0 -0
Rename: libntp/lib/isc/netscope.c -> libntp/lib/isc/netscope.c
libntp/lib/isc/netscope.c@1.4 +0 -0
Rename: lib/isc/netscope.c -> libntp/lib/isc/netscope.c
libntp/lib/isc/nls/msgcat.c@1.8 +0 -0
Rename: libntp/lib/isc/nls/msgcat.c -> libntp/lib/isc/nls/msgcat.c
libntp/lib/isc/nls/msgcat.c@1.7 +0 -0
Rename: lib/isc/nls/msgcat.c -> libntp/lib/isc/nls/msgcat.c
libntp/lib/isc/noatomic/include/isc/atomic.h@1.3 +0 -0
Rename: libntp/lib/isc/noatomic/include/isc/atomic.h -> libntp/lib/isc/noatomic/include/isc/atomic.h
libntp/lib/isc/noatomic/include/isc/atomic.h@1.2 +0 -0
Rename: lib/isc/noatomic/include/isc/atomic.h -> libntp/lib/isc/noatomic/include/isc/atomic.h
libntp/lib/isc/nothreads/condition.c@1.3 +0 -0
Rename: libntp/lib/isc/nothreads/condition.c -> libntp/lib/isc/nothreads/condition.c
libntp/lib/isc/nothreads/condition.c@1.2 +0 -0
Rename: lib/isc/nothreads/condition.c -> libntp/lib/isc/nothreads/condition.c
libntp/lib/isc/nothreads/include/isc/condition.h@1.3 +0 -0
Rename: libntp/lib/isc/nothreads/include/isc/condition.h -> libntp/lib/isc/nothreads/include/isc/condition.h
libntp/lib/isc/nothreads/include/isc/condition.h@1.2 +0 -0
Rename: lib/isc/nothreads/include/isc/condition.h -> libntp/lib/isc/nothreads/include/isc/condition.h
libntp/lib/isc/nothreads/include/isc/mutex.h@1.8 +0 -0
Rename: libntp/lib/isc/nothreads/include/isc/mutex.h -> libntp/lib/isc/nothreads/include/isc/mutex.h
libntp/lib/isc/nothreads/include/isc/mutex.h@1.7 +0 -0
Rename: lib/isc/nothreads/include/isc/mutex.h -> libntp/lib/isc/nothreads/include/isc/mutex.h
libntp/lib/isc/nothreads/include/isc/once.h@1.8 +0 -0
Rename: libntp/lib/isc/nothreads/include/isc/once.h -> libntp/lib/isc/nothreads/include/isc/once.h
libntp/lib/isc/nothreads/include/isc/once.h@1.7 +0 -0
Rename: lib/isc/nothreads/include/isc/once.h -> libntp/lib/isc/nothreads/include/isc/once.h
libntp/lib/isc/nothreads/include/isc/thread.h@1.3 +0 -0
Rename: libntp/lib/isc/nothreads/include/isc/thread.h -> libntp/lib/isc/nothreads/include/isc/thread.h
libntp/lib/isc/nothreads/include/isc/thread.h@1.2 +0 -0
Rename: lib/isc/nothreads/include/isc/thread.h -> libntp/lib/isc/nothreads/include/isc/thread.h
libntp/lib/isc/nothreads/mutex.c@1.3 +0 -0
Rename: libntp/lib/isc/nothreads/mutex.c -> libntp/lib/isc/nothreads/mutex.c
libntp/lib/isc/nothreads/mutex.c@1.2 +0 -0
Rename: lib/isc/nothreads/mutex.c -> libntp/lib/isc/nothreads/mutex.c
libntp/lib/isc/nothreads/thread.c@1.3 +0 -0
Rename: libntp/lib/isc/nothreads/thread.c -> libntp/lib/isc/nothreads/thread.c
libntp/lib/isc/nothreads/thread.c@1.2 +0 -0
Rename: lib/isc/nothreads/thread.c -> libntp/lib/isc/nothreads/thread.c
libntp/lib/isc/ondestroy.c@1.3 +0 -0
Rename: libntp/lib/isc/ondestroy.c -> libntp/lib/isc/ondestroy.c
libntp/lib/isc/ondestroy.c@1.2 +0 -0
Rename: lib/isc/ondestroy.c -> libntp/lib/isc/ondestroy.c
libntp/lib/isc/parseint.c@1.3 +0 -0
Rename: libntp/lib/isc/parseint.c -> libntp/lib/isc/parseint.c
libntp/lib/isc/parseint.c@1.2 +0 -0
Rename: lib/isc/parseint.c -> libntp/lib/isc/parseint.c
libntp/lib/isc/portset.c@1.3 +0 -0
Rename: libntp/lib/isc/portset.c -> libntp/lib/isc/portset.c
libntp/lib/isc/portset.c@1.2 +0 -0
Rename: lib/isc/portset.c -> libntp/lib/isc/portset.c
libntp/lib/isc/powerpc/include/isc/atomic.h@1.4 +0 -0
Rename: libntp/lib/isc/powerpc/include/isc/atomic.h -> libntp/lib/isc/powerpc/include/isc/atomic.h
libntp/lib/isc/powerpc/include/isc/atomic.h@1.3 +0 -0
Rename: lib/isc/powerpc/include/isc/atomic.h -> libntp/lib/isc/powerpc/include/isc/atomic.h
libntp/lib/isc/print.c@1.4 +0 -0
Rename: libntp/lib/isc/print.c -> libntp/lib/isc/print.c
libntp/lib/isc/print.c@1.3 +0 -0
Rename: lib/isc/print.c -> libntp/lib/isc/print.c
libntp/lib/isc/pthreads/condition.c@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/condition.c -> libntp/lib/isc/pthreads/condition.c
libntp/lib/isc/pthreads/condition.c@1.2 +0 -0
Rename: lib/isc/pthreads/condition.c -> libntp/lib/isc/pthreads/condition.c
libntp/lib/isc/pthreads/include/isc/condition.h@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/include/isc/condition.h -> libntp/lib/isc/pthreads/include/isc/condition.h
libntp/lib/isc/pthreads/include/isc/condition.h@1.2 +0 -0
Rename: lib/isc/pthreads/include/isc/condition.h -> libntp/lib/isc/pthreads/include/isc/condition.h
libntp/lib/isc/pthreads/include/isc/mutex.h@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/include/isc/mutex.h -> libntp/lib/isc/pthreads/include/isc/mutex.h
libntp/lib/isc/pthreads/include/isc/mutex.h@1.2 +0 -0
Rename: lib/isc/pthreads/include/isc/mutex.h -> libntp/lib/isc/pthreads/include/isc/mutex.h
libntp/lib/isc/pthreads/include/isc/once.h@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/include/isc/once.h -> libntp/lib/isc/pthreads/include/isc/once.h
libntp/lib/isc/pthreads/include/isc/once.h@1.2 +0 -0
Rename: lib/isc/pthreads/include/isc/once.h -> libntp/lib/isc/pthreads/include/isc/once.h
libntp/lib/isc/pthreads/include/isc/thread.h@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/include/isc/thread.h -> libntp/lib/isc/pthreads/include/isc/thread.h
libntp/lib/isc/pthreads/include/isc/thread.h@1.2 +0 -0
Rename: lib/isc/pthreads/include/isc/thread.h -> libntp/lib/isc/pthreads/include/isc/thread.h
libntp/lib/isc/pthreads/mutex.c@1.5 +0 -0
Rename: libntp/lib/isc/pthreads/mutex.c -> libntp/lib/isc/pthreads/mutex.c
libntp/lib/isc/pthreads/mutex.c@1.4 +0 -0
Rename: lib/isc/pthreads/mutex.c -> libntp/lib/isc/pthreads/mutex.c
libntp/lib/isc/pthreads/thread.c@1.3 +0 -0
Rename: libntp/lib/isc/pthreads/thread.c -> libntp/lib/isc/pthreads/thread.c
libntp/lib/isc/pthreads/thread.c@1.2 +0 -0
Rename: lib/isc/pthreads/thread.c -> libntp/lib/isc/pthreads/thread.c
libntp/lib/isc/quota.c@1.3 +0 -0
Rename: libntp/lib/isc/quota.c -> libntp/lib/isc/quota.c
libntp/lib/isc/quota.c@1.2 +0 -0
Rename: lib/isc/quota.c -> libntp/lib/isc/quota.c
libntp/lib/isc/radix.c@1.4 +0 -0
Rename: libntp/lib/isc/radix.c -> libntp/lib/isc/radix.c
libntp/lib/isc/radix.c@1.3 +0 -0
Rename: lib/isc/radix.c -> libntp/lib/isc/radix.c
libntp/lib/isc/random.c@1.4 +0 -0
Rename: libntp/lib/isc/random.c -> libntp/lib/isc/random.c
libntp/lib/isc/random.c@1.3 +0 -0
Rename: lib/isc/random.c -> libntp/lib/isc/random.c
libntp/lib/isc/ratelimiter.c@1.3 +0 -0
Rename: libntp/lib/isc/ratelimiter.c -> libntp/lib/isc/ratelimiter.c
libntp/lib/isc/ratelimiter.c@1.2 +0 -0
Rename: lib/isc/ratelimiter.c -> libntp/lib/isc/ratelimiter.c
libntp/lib/isc/refcount.c@1.3 +0 -0
Rename: libntp/lib/isc/refcount.c -> libntp/lib/isc/refcount.c
libntp/lib/isc/refcount.c@1.2 +0 -0
Rename: lib/isc/refcount.c -> libntp/lib/isc/refcount.c
libntp/lib/isc/region.c@1.3 +0 -0
Rename: libntp/lib/isc/region.c -> libntp/lib/isc/region.c
libntp/lib/isc/region.c@1.2 +0 -0
Rename: lib/isc/region.c -> libntp/lib/isc/region.c
libntp/lib/isc/result.c@1.6 +0 -0
Rename: libntp/lib/isc/result.c -> libntp/lib/isc/result.c
libntp/lib/isc/result.c@1.5 +0 -0
Rename: lib/isc/result.c -> libntp/lib/isc/result.c
libntp/lib/isc/rwlock.c@1.4 +0 -0
Rename: libntp/lib/isc/rwlock.c -> libntp/lib/isc/rwlock.c
libntp/lib/isc/rwlock.c@1.3 +0 -0
Rename: lib/isc/rwlock.c -> libntp/lib/isc/rwlock.c
libntp/lib/isc/serial.c@1.3 +0 -0
Rename: libntp/lib/isc/serial.c -> libntp/lib/isc/serial.c
libntp/lib/isc/serial.c@1.2 +0 -0
Rename: lib/isc/serial.c -> libntp/lib/isc/serial.c
libntp/lib/isc/sha1.c@1.4 +0 -0
Rename: libntp/lib/isc/sha1.c -> libntp/lib/isc/sha1.c
libntp/lib/isc/sha1.c@1.3 +0 -0
Rename: lib/isc/sha1.c -> libntp/lib/isc/sha1.c
libntp/lib/isc/sha2.c@1.4 +0 -0
Rename: libntp/lib/isc/sha2.c -> libntp/lib/isc/sha2.c
libntp/lib/isc/sha2.c@1.3 +0 -0
Rename: lib/isc/sha2.c -> libntp/lib/isc/sha2.c
libntp/lib/isc/sockaddr.c@1.16 +0 -0
Rename: libntp/lib/isc/sockaddr.c -> libntp/lib/isc/sockaddr.c
libntp/lib/isc/sockaddr.c@1.15 +0 -0
Rename: lib/isc/sockaddr.c -> libntp/lib/isc/sockaddr.c
libntp/lib/isc/socket_api.c@1.3 +0 -0
Rename: libntp/lib/isc/socket_api.c -> libntp/lib/isc/socket_api.c
libntp/lib/isc/socket_api.c@1.2 +0 -0
Rename: lib/isc/socket_api.c -> libntp/lib/isc/socket_api.c
libntp/lib/isc/sparc64/include/isc/atomic.h@1.3 +0 -0
Rename: libntp/lib/isc/sparc64/include/isc/atomic.h -> libntp/lib/isc/sparc64/include/isc/atomic.h
libntp/lib/isc/sparc64/include/isc/atomic.h@1.2 +0 -0
Rename: lib/isc/sparc64/include/isc/atomic.h -> libntp/lib/isc/sparc64/include/isc/atomic.h
libntp/lib/isc/stats.c@1.4 +0 -0
Rename: libntp/lib/isc/stats.c -> libntp/lib/isc/stats.c
libntp/lib/isc/stats.c@1.3 +0 -0
Rename: lib/isc/stats.c -> libntp/lib/isc/stats.c
libntp/lib/isc/string.c@1.4 +0 -0
Rename: libntp/lib/isc/string.c -> libntp/lib/isc/string.c
libntp/lib/isc/string.c@1.3 +0 -0
Rename: lib/isc/string.c -> libntp/lib/isc/string.c
libntp/lib/isc/strtoul.c@1.3 +0 -0
Rename: libntp/lib/isc/strtoul.c -> libntp/lib/isc/strtoul.c
libntp/lib/isc/strtoul.c@1.2 +0 -0
Rename: lib/isc/strtoul.c -> libntp/lib/isc/strtoul.c
libntp/lib/isc/symtab.c@1.4 +0 -0
Rename: libntp/lib/isc/symtab.c -> libntp/lib/isc/symtab.c
libntp/lib/isc/symtab.c@1.3 +0 -0
Rename: lib/isc/symtab.c -> libntp/lib/isc/symtab.c
libntp/lib/isc/task.c@1.10 +0 -0
Rename: libntp/lib/isc/task.c -> libntp/lib/isc/task.c
libntp/lib/isc/task.c@1.9 +0 -0
Rename: lib/isc/task.c -> libntp/lib/isc/task.c
libntp/lib/isc/task_api.c@1.3 +0 -0
Rename: libntp/lib/isc/task_api.c -> libntp/lib/isc/task_api.c
libntp/lib/isc/task_api.c@1.2 +0 -0
Rename: lib/isc/task_api.c -> libntp/lib/isc/task_api.c
libntp/lib/isc/task_p.h@1.4 +0 -0
Rename: libntp/lib/isc/task_p.h -> libntp/lib/isc/task_p.h
libntp/lib/isc/task_p.h@1.3 +0 -0
Rename: lib/isc/task_p.h -> libntp/lib/isc/task_p.h
libntp/lib/isc/taskpool.c@1.4 +0 -0
Rename: libntp/lib/isc/taskpool.c -> libntp/lib/isc/taskpool.c
libntp/lib/isc/taskpool.c@1.3 +0 -0
Rename: lib/isc/taskpool.c -> libntp/lib/isc/taskpool.c
libntp/lib/isc/tests/Atffile@1.3 +0 -0
Rename: libntp/lib/isc/tests/Atffile -> libntp/lib/isc/tests/Atffile
libntp/lib/isc/tests/Atffile@1.2 +0 -0
Rename: lib/isc/tests/Atffile -> libntp/lib/isc/tests/Atffile
libntp/lib/isc/tests/hash_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/hash_test.c -> libntp/lib/isc/tests/hash_test.c
libntp/lib/isc/tests/hash_test.c@1.2 +0 -0
Rename: lib/isc/tests/hash_test.c -> libntp/lib/isc/tests/hash_test.c
libntp/lib/isc/tests/isctest.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/isctest.c -> libntp/lib/isc/tests/isctest.c
libntp/lib/isc/tests/isctest.c@1.2 +0 -0
Rename: lib/isc/tests/isctest.c -> libntp/lib/isc/tests/isctest.c
libntp/lib/isc/tests/isctest.h@1.3 +0 -0
Rename: libntp/lib/isc/tests/isctest.h -> libntp/lib/isc/tests/isctest.h
libntp/lib/isc/tests/isctest.h@1.2 +0 -0
Rename: lib/isc/tests/isctest.h -> libntp/lib/isc/tests/isctest.h
libntp/lib/isc/tests/queue_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/queue_test.c -> libntp/lib/isc/tests/queue_test.c
libntp/lib/isc/tests/queue_test.c@1.2 +0 -0
Rename: lib/isc/tests/queue_test.c -> libntp/lib/isc/tests/queue_test.c
libntp/lib/isc/tests/socket_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/socket_test.c -> libntp/lib/isc/tests/socket_test.c
libntp/lib/isc/tests/socket_test.c@1.2 +0 -0
Rename: lib/isc/tests/socket_test.c -> libntp/lib/isc/tests/socket_test.c
libntp/lib/isc/tests/symtab_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/symtab_test.c -> libntp/lib/isc/tests/symtab_test.c
libntp/lib/isc/tests/symtab_test.c@1.2 +0 -0
Rename: lib/isc/tests/symtab_test.c -> libntp/lib/isc/tests/symtab_test.c
libntp/lib/isc/tests/task_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/task_test.c -> libntp/lib/isc/tests/task_test.c
libntp/lib/isc/tests/task_test.c@1.2 +0 -0
Rename: lib/isc/tests/task_test.c -> libntp/lib/isc/tests/task_test.c
libntp/lib/isc/tests/taskpool_test.c@1.3 +0 -0
Rename: libntp/lib/isc/tests/taskpool_test.c -> libntp/lib/isc/tests/taskpool_test.c
libntp/lib/isc/tests/taskpool_test.c@1.2 +0 -0
Rename: lib/isc/tests/taskpool_test.c -> libntp/lib/isc/tests/taskpool_test.c
libntp/lib/isc/timer.c@1.4 +0 -0
Rename: libntp/lib/isc/timer.c -> libntp/lib/isc/timer.c
libntp/lib/isc/timer.c@1.3 +0 -0
Rename: lib/isc/timer.c -> libntp/lib/isc/timer.c
libntp/lib/isc/timer_api.c@1.3 +0 -0
Rename: libntp/lib/isc/timer_api.c -> libntp/lib/isc/timer_api.c
libntp/lib/isc/timer_api.c@1.2 +0 -0
Rename: lib/isc/timer_api.c -> libntp/lib/isc/timer_api.c
libntp/lib/isc/timer_p.h@1.4 +0 -0
Rename: libntp/lib/isc/timer_p.h -> libntp/lib/isc/timer_p.h
libntp/lib/isc/timer_p.h@1.3 +0 -0
Rename: lib/isc/timer_p.h -> libntp/lib/isc/timer_p.h
libntp/lib/isc/tsmemcmp.c@1.3 +0 -0
Rename: libntp/lib/isc/tsmemcmp.c -> libntp/lib/isc/tsmemcmp.c
libntp/lib/isc/tsmemcmp.c@1.2 +0 -0
Rename: lib/isc/tsmemcmp.c -> libntp/lib/isc/tsmemcmp.c
libntp/lib/isc/unix/app.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/app.c -> libntp/lib/isc/unix/app.c
libntp/lib/isc/unix/app.c@1.3 +0 -0
Rename: lib/isc/unix/app.c -> libntp/lib/isc/unix/app.c
libntp/lib/isc/unix/dir.c@1.6 +0 -0
Rename: libntp/lib/isc/unix/dir.c -> libntp/lib/isc/unix/dir.c
libntp/lib/isc/unix/dir.c@1.5 +0 -0
Rename: lib/isc/unix/dir.c -> libntp/lib/isc/unix/dir.c
libntp/lib/isc/unix/entropy.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/entropy.c -> libntp/lib/isc/unix/entropy.c
libntp/lib/isc/unix/entropy.c@1.3 +0 -0
Rename: lib/isc/unix/entropy.c -> libntp/lib/isc/unix/entropy.c
libntp/lib/isc/unix/errno2result.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/errno2result.c -> libntp/lib/isc/unix/errno2result.c
libntp/lib/isc/unix/errno2result.c@1.3 +0 -0
Rename: lib/isc/unix/errno2result.c -> libntp/lib/isc/unix/errno2result.c
libntp/lib/isc/unix/errno2result.h@1.4 +0 -0
Rename: libntp/lib/isc/unix/errno2result.h -> libntp/lib/isc/unix/errno2result.h
libntp/lib/isc/unix/errno2result.h@1.3 +0 -0
Rename: lib/isc/unix/errno2result.h -> libntp/lib/isc/unix/errno2result.h
libntp/lib/isc/unix/file.c@1.9 +0 -0
Rename: libntp/lib/isc/unix/file.c -> libntp/lib/isc/unix/file.c
libntp/lib/isc/unix/file.c@1.8 +0 -0
Rename: lib/isc/unix/file.c -> libntp/lib/isc/unix/file.c
libntp/lib/isc/unix/fsaccess.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/fsaccess.c -> libntp/lib/isc/unix/fsaccess.c
libntp/lib/isc/unix/fsaccess.c@1.2 +0 -0
Rename: lib/isc/unix/fsaccess.c -> libntp/lib/isc/unix/fsaccess.c
libntp/lib/isc/unix/ifiter_getifaddrs.c@1.18 +0 -0
Rename: libntp/lib/isc/unix/ifiter_getifaddrs.c -> libntp/lib/isc/unix/ifiter_getifaddrs.c
libntp/lib/isc/unix/ifiter_getifaddrs.c@1.17 +0 -0
Rename: lib/isc/unix/ifiter_getifaddrs.c -> libntp/lib/isc/unix/ifiter_getifaddrs.c
libntp/lib/isc/unix/ifiter_ioctl.c@1.36 +0 -0
Rename: libntp/lib/isc/unix/ifiter_ioctl.c -> libntp/lib/isc/unix/ifiter_ioctl.c
libntp/lib/isc/unix/ifiter_ioctl.c@1.35 +0 -0
Rename: lib/isc/unix/ifiter_ioctl.c -> libntp/lib/isc/unix/ifiter_ioctl.c
libntp/lib/isc/unix/ifiter_sysctl.c@1.20 +0 -0
Rename: libntp/lib/isc/unix/ifiter_sysctl.c -> libntp/lib/isc/unix/ifiter_sysctl.c
libntp/lib/isc/unix/ifiter_sysctl.c@1.19 +0 -0
Rename: lib/isc/unix/ifiter_sysctl.c -> libntp/lib/isc/unix/ifiter_sysctl.c
libntp/lib/isc/unix/include/isc/dir.h@1.5 +0 -0
Rename: libntp/lib/isc/unix/include/isc/dir.h -> libntp/lib/isc/unix/include/isc/dir.h
libntp/lib/isc/unix/include/isc/dir.h@1.4 +0 -0
Rename: lib/isc/unix/include/isc/dir.h -> libntp/lib/isc/unix/include/isc/dir.h
libntp/lib/isc/unix/include/isc/int.h@1.6 +0 -0
Rename: libntp/lib/isc/unix/include/isc/int.h -> libntp/lib/isc/unix/include/isc/int.h
libntp/lib/isc/unix/include/isc/int.h@1.5 +0 -0
Rename: lib/isc/unix/include/isc/int.h -> libntp/lib/isc/unix/include/isc/int.h
libntp/lib/isc/unix/include/isc/keyboard.h@1.3 +0 -0
Rename: libntp/lib/isc/unix/include/isc/keyboard.h -> libntp/lib/isc/unix/include/isc/keyboard.h
libntp/lib/isc/unix/include/isc/keyboard.h@1.2 +0 -0
Rename: lib/isc/unix/include/isc/keyboard.h -> libntp/lib/isc/unix/include/isc/keyboard.h
libntp/lib/isc/unix/include/isc/net.h@1.14 +0 -0
Rename: libntp/lib/isc/unix/include/isc/net.h -> libntp/lib/isc/unix/include/isc/net.h
libntp/lib/isc/unix/include/isc/net.h@1.13 +0 -0
Rename: lib/isc/unix/include/isc/net.h -> libntp/lib/isc/unix/include/isc/net.h
libntp/lib/isc/unix/include/isc/netdb.h@1.3 +0 -0
Rename: libntp/lib/isc/unix/include/isc/netdb.h -> libntp/lib/isc/unix/include/isc/netdb.h
libntp/lib/isc/unix/include/isc/netdb.h@1.2 +0 -0
Rename: lib/isc/unix/include/isc/netdb.h -> libntp/lib/isc/unix/include/isc/netdb.h
libntp/lib/isc/unix/include/isc/offset.h@1.7 +0 -0
Rename: libntp/lib/isc/unix/include/isc/offset.h -> libntp/lib/isc/unix/include/isc/offset.h
libntp/lib/isc/unix/include/isc/offset.h@1.6 +0 -0
Rename: lib/isc/unix/include/isc/offset.h -> libntp/lib/isc/unix/include/isc/offset.h
libntp/lib/isc/unix/include/isc/stat.h@1.5 +0 -0
Rename: libntp/lib/isc/unix/include/isc/stat.h -> libntp/lib/isc/unix/include/isc/stat.h
libntp/lib/isc/unix/include/isc/stat.h@1.4 +0 -0
Rename: lib/isc/unix/include/isc/stat.h -> libntp/lib/isc/unix/include/isc/stat.h
libntp/lib/isc/unix/include/isc/stdtime.h@1.4 +0 -0
Rename: libntp/lib/isc/unix/include/isc/stdtime.h -> libntp/lib/isc/unix/include/isc/stdtime.h
libntp/lib/isc/unix/include/isc/stdtime.h@1.3 +0 -0
Rename: lib/isc/unix/include/isc/stdtime.h -> libntp/lib/isc/unix/include/isc/stdtime.h
libntp/lib/isc/unix/include/isc/strerror.h@1.7 +0 -0
Rename: libntp/lib/isc/unix/include/isc/strerror.h -> libntp/lib/isc/unix/include/isc/strerror.h
libntp/lib/isc/unix/include/isc/strerror.h@1.6 +0 -0
Rename: lib/isc/unix/include/isc/strerror.h -> libntp/lib/isc/unix/include/isc/strerror.h
libntp/lib/isc/unix/include/isc/syslog.h@1.3 +0 -0
Rename: libntp/lib/isc/unix/include/isc/syslog.h -> libntp/lib/isc/unix/include/isc/syslog.h
libntp/lib/isc/unix/include/isc/syslog.h@1.2 +0 -0
Rename: lib/isc/unix/include/isc/syslog.h -> libntp/lib/isc/unix/include/isc/syslog.h
libntp/lib/isc/unix/include/isc/time.h@1.6 +0 -0
Rename: libntp/lib/isc/unix/include/isc/time.h -> libntp/lib/isc/unix/include/isc/time.h
libntp/lib/isc/unix/include/isc/time.h@1.5 +0 -0
Rename: lib/isc/unix/include/isc/time.h -> libntp/lib/isc/unix/include/isc/time.h
libntp/lib/isc/unix/interfaceiter.c@1.27 +0 -0
Rename: libntp/lib/isc/unix/interfaceiter.c -> libntp/lib/isc/unix/interfaceiter.c
libntp/lib/isc/unix/interfaceiter.c@1.26 +0 -0
Rename: lib/isc/unix/interfaceiter.c -> libntp/lib/isc/unix/interfaceiter.c
libntp/lib/isc/unix/ipv6.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/ipv6.c -> libntp/lib/isc/unix/ipv6.c
libntp/lib/isc/unix/ipv6.c@1.2 +0 -0
Rename: lib/isc/unix/ipv6.c -> libntp/lib/isc/unix/ipv6.c
libntp/lib/isc/unix/keyboard.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/keyboard.c -> libntp/lib/isc/unix/keyboard.c
libntp/lib/isc/unix/keyboard.c@1.2 +0 -0
Rename: lib/isc/unix/keyboard.c -> libntp/lib/isc/unix/keyboard.c
libntp/lib/isc/unix/net.c@1.21 +0 -0
Rename: libntp/lib/isc/unix/net.c -> libntp/lib/isc/unix/net.c
libntp/lib/isc/unix/net.c@1.20 +0 -0
Rename: lib/isc/unix/net.c -> libntp/lib/isc/unix/net.c
libntp/lib/isc/unix/os.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/os.c -> libntp/lib/isc/unix/os.c
libntp/lib/isc/unix/os.c@1.2 +0 -0
Rename: lib/isc/unix/os.c -> libntp/lib/isc/unix/os.c
libntp/lib/isc/unix/resource.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/resource.c -> libntp/lib/isc/unix/resource.c
libntp/lib/isc/unix/resource.c@1.3 +0 -0
Rename: lib/isc/unix/resource.c -> libntp/lib/isc/unix/resource.c
libntp/lib/isc/unix/socket.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/socket.c -> libntp/lib/isc/unix/socket.c
libntp/lib/isc/unix/socket.c@1.3 +0 -0
Rename: lib/isc/unix/socket.c -> libntp/lib/isc/unix/socket.c
libntp/lib/isc/unix/socket_p.h@1.4 +0 -0
Rename: libntp/lib/isc/unix/socket_p.h -> libntp/lib/isc/unix/socket_p.h
libntp/lib/isc/unix/socket_p.h@1.3 +0 -0
Rename: lib/isc/unix/socket_p.h -> libntp/lib/isc/unix/socket_p.h
libntp/lib/isc/unix/stdio.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/stdio.c -> libntp/lib/isc/unix/stdio.c
libntp/lib/isc/unix/stdio.c@1.3 +0 -0
Rename: lib/isc/unix/stdio.c -> libntp/lib/isc/unix/stdio.c
libntp/lib/isc/unix/stdtime.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/stdtime.c -> libntp/lib/isc/unix/stdtime.c
libntp/lib/isc/unix/stdtime.c@1.2 +0 -0
Rename: lib/isc/unix/stdtime.c -> libntp/lib/isc/unix/stdtime.c
libntp/lib/isc/unix/strerror.c@1.9 +0 -0
Rename: libntp/lib/isc/unix/strerror.c -> libntp/lib/isc/unix/strerror.c
libntp/lib/isc/unix/strerror.c@1.8 +0 -0
Rename: lib/isc/unix/strerror.c -> libntp/lib/isc/unix/strerror.c
libntp/lib/isc/unix/syslog.c@1.3 +0 -0
Rename: libntp/lib/isc/unix/syslog.c -> libntp/lib/isc/unix/syslog.c
libntp/lib/isc/unix/syslog.c@1.2 +0 -0
Rename: lib/isc/unix/syslog.c -> libntp/lib/isc/unix/syslog.c
libntp/lib/isc/unix/time.c@1.4 +0 -0
Rename: libntp/lib/isc/unix/time.c -> libntp/lib/isc/unix/time.c
libntp/lib/isc/unix/time.c@1.3 +0 -0
Rename: lib/isc/unix/time.c -> libntp/lib/isc/unix/time.c
libntp/lib/isc/version.c@1.3 +0 -0
Rename: libntp/lib/isc/version.c -> libntp/lib/isc/version.c
libntp/lib/isc/version.c@1.2 +0 -0
Rename: lib/isc/version.c -> libntp/lib/isc/version.c
libntp/lib/isc/win32/DLLMain.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/DLLMain.c -> libntp/lib/isc/win32/DLLMain.c
libntp/lib/isc/win32/DLLMain.c@1.2 +0 -0
Rename: lib/isc/win32/DLLMain.c -> libntp/lib/isc/win32/DLLMain.c
libntp/lib/isc/win32/app.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/app.c -> libntp/lib/isc/win32/app.c
libntp/lib/isc/win32/app.c@1.3 +0 -0
Rename: lib/isc/win32/app.c -> libntp/lib/isc/win32/app.c
libntp/lib/isc/win32/condition.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/condition.c -> libntp/lib/isc/win32/condition.c
libntp/lib/isc/win32/condition.c@1.2 +0 -0
Rename: lib/isc/win32/condition.c -> libntp/lib/isc/win32/condition.c
libntp/lib/isc/win32/dir.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/dir.c -> libntp/lib/isc/win32/dir.c
libntp/lib/isc/win32/dir.c@1.3 +0 -0
Rename: lib/isc/win32/dir.c -> libntp/lib/isc/win32/dir.c
libntp/lib/isc/win32/entropy.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/entropy.c -> libntp/lib/isc/win32/entropy.c
libntp/lib/isc/win32/entropy.c@1.3 +0 -0
Rename: lib/isc/win32/entropy.c -> libntp/lib/isc/win32/entropy.c
libntp/lib/isc/win32/errno2result.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/errno2result.c -> libntp/lib/isc/win32/errno2result.c
libntp/lib/isc/win32/errno2result.c@1.2 +0 -0
Rename: lib/isc/win32/errno2result.c -> libntp/lib/isc/win32/errno2result.c
libntp/lib/isc/win32/errno2result.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/errno2result.h -> libntp/lib/isc/win32/errno2result.h
libntp/lib/isc/win32/errno2result.h@1.2 +0 -0
Rename: lib/isc/win32/errno2result.h -> libntp/lib/isc/win32/errno2result.h
libntp/lib/isc/win32/file.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/file.c -> libntp/lib/isc/win32/file.c
libntp/lib/isc/win32/file.c@1.3 +0 -0
Rename: lib/isc/win32/file.c -> libntp/lib/isc/win32/file.c
libntp/lib/isc/win32/fsaccess.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/fsaccess.c -> libntp/lib/isc/win32/fsaccess.c
libntp/lib/isc/win32/fsaccess.c@1.2 +0 -0
Rename: lib/isc/win32/fsaccess.c -> libntp/lib/isc/win32/fsaccess.c
libntp/lib/isc/win32/include/isc/bind_registry.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/bind_registry.h -> libntp/lib/isc/win32/include/isc/bind_registry.h
libntp/lib/isc/win32/include/isc/bind_registry.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/bind_registry.h -> libntp/lib/isc/win32/include/isc/bind_registry.h
libntp/lib/isc/win32/include/isc/bindevt.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/bindevt.h -> libntp/lib/isc/win32/include/isc/bindevt.h
libntp/lib/isc/win32/include/isc/bindevt.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/bindevt.h -> libntp/lib/isc/win32/include/isc/bindevt.h
libntp/lib/isc/win32/include/isc/condition.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/condition.h -> libntp/lib/isc/win32/include/isc/condition.h
libntp/lib/isc/win32/include/isc/condition.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/condition.h -> libntp/lib/isc/win32/include/isc/condition.h
libntp/lib/isc/win32/include/isc/dir.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/dir.h -> libntp/lib/isc/win32/include/isc/dir.h
libntp/lib/isc/win32/include/isc/dir.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/dir.h -> libntp/lib/isc/win32/include/isc/dir.h
libntp/lib/isc/win32/include/isc/int.h@1.7 +0 -0
Rename: libntp/lib/isc/win32/include/isc/int.h -> libntp/lib/isc/win32/include/isc/int.h
libntp/lib/isc/win32/include/isc/int.h@1.6 +0 -0
Rename: lib/isc/win32/include/isc/int.h -> libntp/lib/isc/win32/include/isc/int.h
libntp/lib/isc/win32/include/isc/ipv6.h@1.13 +0 -0
Rename: libntp/lib/isc/win32/include/isc/ipv6.h -> libntp/lib/isc/win32/include/isc/ipv6.h
libntp/lib/isc/win32/include/isc/ipv6.h@1.12 +0 -0
Rename: lib/isc/win32/include/isc/ipv6.h -> libntp/lib/isc/win32/include/isc/ipv6.h
libntp/lib/isc/win32/include/isc/keyboard.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/keyboard.h -> libntp/lib/isc/win32/include/isc/keyboard.h
libntp/lib/isc/win32/include/isc/keyboard.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/keyboard.h -> libntp/lib/isc/win32/include/isc/keyboard.h
libntp/lib/isc/win32/include/isc/mutex.h@1.7 +0 -0
Rename: libntp/lib/isc/win32/include/isc/mutex.h -> libntp/lib/isc/win32/include/isc/mutex.h
libntp/lib/isc/win32/include/isc/mutex.h@1.6 +0 -0
Rename: lib/isc/win32/include/isc/mutex.h -> libntp/lib/isc/win32/include/isc/mutex.h
libntp/lib/isc/win32/include/isc/net.h@1.13 +0 -0
Rename: libntp/lib/isc/win32/include/isc/net.h -> libntp/lib/isc/win32/include/isc/net.h
libntp/lib/isc/win32/include/isc/net.h@1.12 +0 -0
Rename: lib/isc/win32/include/isc/net.h -> libntp/lib/isc/win32/include/isc/net.h
libntp/lib/isc/win32/include/isc/netdb.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/netdb.h -> libntp/lib/isc/win32/include/isc/netdb.h
libntp/lib/isc/win32/include/isc/netdb.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/netdb.h -> libntp/lib/isc/win32/include/isc/netdb.h
libntp/lib/isc/win32/include/isc/ntgroups.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/ntgroups.h -> libntp/lib/isc/win32/include/isc/ntgroups.h
libntp/lib/isc/win32/include/isc/ntgroups.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/ntgroups.h -> libntp/lib/isc/win32/include/isc/ntgroups.h
libntp/lib/isc/win32/include/isc/ntpaths.h@1.4 +0 -0
Rename: libntp/lib/isc/win32/include/isc/ntpaths.h -> libntp/lib/isc/win32/include/isc/ntpaths.h
libntp/lib/isc/win32/include/isc/ntpaths.h@1.3 +0 -0
Rename: lib/isc/win32/include/isc/ntpaths.h -> libntp/lib/isc/win32/include/isc/ntpaths.h
libntp/lib/isc/win32/include/isc/offset.h@1.6 +0 -0
Rename: libntp/lib/isc/win32/include/isc/offset.h -> libntp/lib/isc/win32/include/isc/offset.h
libntp/lib/isc/win32/include/isc/offset.h@1.5 +0 -0
Rename: lib/isc/win32/include/isc/offset.h -> libntp/lib/isc/win32/include/isc/offset.h
libntp/lib/isc/win32/include/isc/once.h@1.7 +0 -0
Rename: libntp/lib/isc/win32/include/isc/once.h -> libntp/lib/isc/win32/include/isc/once.h
libntp/lib/isc/win32/include/isc/once.h@1.6 +0 -0
Rename: lib/isc/win32/include/isc/once.h -> libntp/lib/isc/win32/include/isc/once.h
libntp/lib/isc/win32/include/isc/platform.h@1.11 +0 -0
Rename: libntp/lib/isc/win32/include/isc/platform.h -> libntp/lib/isc/win32/include/isc/platform.h
libntp/lib/isc/win32/include/isc/platform.h@1.10 +0 -0
Rename: lib/isc/win32/include/isc/platform.h -> libntp/lib/isc/win32/include/isc/platform.h
libntp/lib/isc/win32/include/isc/stat.h@1.7 +0 -0
Rename: libntp/lib/isc/win32/include/isc/stat.h -> libntp/lib/isc/win32/include/isc/stat.h
libntp/lib/isc/win32/include/isc/stat.h@1.6 +0 -0
Rename: lib/isc/win32/include/isc/stat.h -> libntp/lib/isc/win32/include/isc/stat.h
libntp/lib/isc/win32/include/isc/stdtime.h@1.4 +0 -0
Rename: libntp/lib/isc/win32/include/isc/stdtime.h -> libntp/lib/isc/win32/include/isc/stdtime.h
libntp/lib/isc/win32/include/isc/stdtime.h@1.3 +0 -0
Rename: lib/isc/win32/include/isc/stdtime.h -> libntp/lib/isc/win32/include/isc/stdtime.h
libntp/lib/isc/win32/include/isc/strerror.h@1.6 +0 -0
Rename: libntp/lib/isc/win32/include/isc/strerror.h -> libntp/lib/isc/win32/include/isc/strerror.h
libntp/lib/isc/win32/include/isc/strerror.h@1.5 +0 -0
Rename: lib/isc/win32/include/isc/strerror.h -> libntp/lib/isc/win32/include/isc/strerror.h
libntp/lib/isc/win32/include/isc/syslog.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/include/isc/syslog.h -> libntp/lib/isc/win32/include/isc/syslog.h
libntp/lib/isc/win32/include/isc/syslog.h@1.2 +0 -0
Rename: lib/isc/win32/include/isc/syslog.h -> libntp/lib/isc/win32/include/isc/syslog.h
libntp/lib/isc/win32/include/isc/thread.h@1.5 +0 -0
Rename: libntp/lib/isc/win32/include/isc/thread.h -> libntp/lib/isc/win32/include/isc/thread.h
libntp/lib/isc/win32/include/isc/thread.h@1.4 +0 -0
Rename: lib/isc/win32/include/isc/thread.h -> libntp/lib/isc/win32/include/isc/thread.h
libntp/lib/isc/win32/include/isc/time.h@1.4 +0 -0
Rename: libntp/lib/isc/win32/include/isc/time.h -> libntp/lib/isc/win32/include/isc/time.h
libntp/lib/isc/win32/include/isc/time.h@1.3 +0 -0
Rename: lib/isc/win32/include/isc/time.h -> libntp/lib/isc/win32/include/isc/time.h
libntp/lib/isc/win32/include/isc/win32os.h@1.7 +0 -0
Rename: libntp/lib/isc/win32/include/isc/win32os.h -> libntp/lib/isc/win32/include/isc/win32os.h
libntp/lib/isc/win32/include/isc/win32os.h@1.6 +0 -0
Rename: lib/isc/win32/include/isc/win32os.h -> libntp/lib/isc/win32/include/isc/win32os.h
libntp/lib/isc/win32/interfaceiter.c@1.25 +0 -0
Rename: libntp/lib/isc/win32/interfaceiter.c -> libntp/lib/isc/win32/interfaceiter.c
libntp/lib/isc/win32/interfaceiter.c@1.24 +0 -0
Rename: lib/isc/win32/interfaceiter.c -> libntp/lib/isc/win32/interfaceiter.c
libntp/lib/isc/win32/ipv6.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/ipv6.c -> libntp/lib/isc/win32/ipv6.c
libntp/lib/isc/win32/ipv6.c@1.2 +0 -0
Rename: lib/isc/win32/ipv6.c -> libntp/lib/isc/win32/ipv6.c
libntp/lib/isc/win32/keyboard.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/keyboard.c -> libntp/lib/isc/win32/keyboard.c
libntp/lib/isc/win32/keyboard.c@1.2 +0 -0
Rename: lib/isc/win32/keyboard.c -> libntp/lib/isc/win32/keyboard.c
libntp/lib/isc/win32/libgen.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/libgen.h -> libntp/lib/isc/win32/libgen.h
libntp/lib/isc/win32/libgen.h@1.2 +0 -0
Rename: lib/isc/win32/libgen.h -> libntp/lib/isc/win32/libgen.h
libntp/lib/isc/win32/libisc.def@1.4 +0 -0
Rename: libntp/lib/isc/win32/libisc.def -> libntp/lib/isc/win32/libisc.def
libntp/lib/isc/win32/libisc.def@1.3 +0 -0
Rename: lib/isc/win32/libisc.def -> libntp/lib/isc/win32/libisc.def
libntp/lib/isc/win32/libisc.dsp@1.4 +0 -0
Rename: libntp/lib/isc/win32/libisc.dsp -> libntp/lib/isc/win32/libisc.dsp
libntp/lib/isc/win32/libisc.dsp@1.3 +0 -0
Rename: lib/isc/win32/libisc.dsp -> libntp/lib/isc/win32/libisc.dsp
libntp/lib/isc/win32/libisc.dsw@1.3 +0 -0
Rename: libntp/lib/isc/win32/libisc.dsw -> libntp/lib/isc/win32/libisc.dsw
libntp/lib/isc/win32/libisc.dsw@1.2 +0 -0
Rename: lib/isc/win32/libisc.dsw -> libntp/lib/isc/win32/libisc.dsw
libntp/lib/isc/win32/libisc.mak@1.4 +0 -0
Rename: libntp/lib/isc/win32/libisc.mak -> libntp/lib/isc/win32/libisc.mak
libntp/lib/isc/win32/libisc.mak@1.3 +0 -0
Rename: lib/isc/win32/libisc.mak -> libntp/lib/isc/win32/libisc.mak
libntp/lib/isc/win32/net.c@1.19 +0 -0
Rename: libntp/lib/isc/win32/net.c -> libntp/lib/isc/win32/net.c
libntp/lib/isc/win32/net.c@1.18 +0 -0
Rename: lib/isc/win32/net.c -> libntp/lib/isc/win32/net.c
libntp/lib/isc/win32/netdb.h@1.4 +0 -0
Rename: libntp/lib/isc/win32/netdb.h -> libntp/lib/isc/win32/netdb.h
libntp/lib/isc/win32/netdb.h@1.3 +0 -0
Rename: lib/isc/win32/netdb.h -> libntp/lib/isc/win32/netdb.h
libntp/lib/isc/win32/ntgroups.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/ntgroups.c -> libntp/lib/isc/win32/ntgroups.c
libntp/lib/isc/win32/ntgroups.c@1.3 +0 -0
Rename: lib/isc/win32/ntgroups.c -> libntp/lib/isc/win32/ntgroups.c
libntp/lib/isc/win32/ntpaths.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/ntpaths.c -> libntp/lib/isc/win32/ntpaths.c
libntp/lib/isc/win32/ntpaths.c@1.3 +0 -0
Rename: lib/isc/win32/ntpaths.c -> libntp/lib/isc/win32/ntpaths.c
libntp/lib/isc/win32/once.c@1.6 +0 -0
Rename: libntp/lib/isc/win32/once.c -> libntp/lib/isc/win32/once.c
libntp/lib/isc/win32/once.c@1.5 +0 -0
Rename: lib/isc/win32/once.c -> libntp/lib/isc/win32/once.c
libntp/lib/isc/win32/os.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/os.c -> libntp/lib/isc/win32/os.c
libntp/lib/isc/win32/os.c@1.2 +0 -0
Rename: lib/isc/win32/os.c -> libntp/lib/isc/win32/os.c
libntp/lib/isc/win32/resource.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/resource.c -> libntp/lib/isc/win32/resource.c
libntp/lib/isc/win32/resource.c@1.2 +0 -0
Rename: lib/isc/win32/resource.c -> libntp/lib/isc/win32/resource.c
libntp/lib/isc/win32/socket.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/socket.c -> libntp/lib/isc/win32/socket.c
libntp/lib/isc/win32/socket.c@1.3 +0 -0
Rename: lib/isc/win32/socket.c -> libntp/lib/isc/win32/socket.c
libntp/lib/isc/win32/stdio.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/stdio.c -> libntp/lib/isc/win32/stdio.c
libntp/lib/isc/win32/stdio.c@1.2 +0 -0
Rename: lib/isc/win32/stdio.c -> libntp/lib/isc/win32/stdio.c
libntp/lib/isc/win32/stdtime.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/stdtime.c -> libntp/lib/isc/win32/stdtime.c
libntp/lib/isc/win32/stdtime.c@1.3 +0 -0
Rename: lib/isc/win32/stdtime.c -> libntp/lib/isc/win32/stdtime.c
libntp/lib/isc/win32/strerror.c@1.15 +0 -0
Rename: libntp/lib/isc/win32/strerror.c -> libntp/lib/isc/win32/strerror.c
libntp/lib/isc/win32/strerror.c@1.14 +0 -0
Rename: lib/isc/win32/strerror.c -> libntp/lib/isc/win32/strerror.c
libntp/lib/isc/win32/syslog.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/syslog.c -> libntp/lib/isc/win32/syslog.c
libntp/lib/isc/win32/syslog.c@1.2 +0 -0
Rename: lib/isc/win32/syslog.c -> libntp/lib/isc/win32/syslog.c
libntp/lib/isc/win32/syslog.h@1.3 +0 -0
Rename: libntp/lib/isc/win32/syslog.h -> libntp/lib/isc/win32/syslog.h
libntp/lib/isc/win32/syslog.h@1.2 +0 -0
Rename: lib/isc/win32/syslog.h -> libntp/lib/isc/win32/syslog.h
libntp/lib/isc/win32/thread.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/thread.c -> libntp/lib/isc/win32/thread.c
libntp/lib/isc/win32/thread.c@1.3 +0 -0
Rename: lib/isc/win32/thread.c -> libntp/lib/isc/win32/thread.c
libntp/lib/isc/win32/time.c@1.4 +0 -0
Rename: libntp/lib/isc/win32/time.c -> libntp/lib/isc/win32/time.c
libntp/lib/isc/win32/time.c@1.3 +0 -0
Rename: lib/isc/win32/time.c -> libntp/lib/isc/win32/time.c
libntp/lib/isc/win32/unistd.h@1.4 +0 -0
Rename: libntp/lib/isc/win32/unistd.h -> libntp/lib/isc/win32/unistd.h
libntp/lib/isc/win32/unistd.h@1.3 +0 -0
Rename: lib/isc/win32/unistd.h -> libntp/lib/isc/win32/unistd.h
libntp/lib/isc/win32/version.c@1.3 +0 -0
Rename: libntp/lib/isc/win32/version.c -> libntp/lib/isc/win32/version.c
libntp/lib/isc/win32/version.c@1.2 +0 -0
Rename: lib/isc/win32/version.c -> libntp/lib/isc/win32/version.c
libntp/lib/isc/win32/win32os.c@1.6 +0 -0
Rename: libntp/lib/isc/win32/win32os.c -> libntp/lib/isc/win32/win32os.c
libntp/lib/isc/win32/win32os.c@1.5 +0 -0
Rename: lib/isc/win32/win32os.c -> libntp/lib/isc/win32/win32os.c
libntp/lib/isc/x86_32/include/isc/atomic.h@1.3 +0 -0
Rename: libntp/lib/isc/x86_32/include/isc/atomic.h -> libntp/lib/isc/x86_32/include/isc/atomic.h
libntp/lib/isc/x86_32/include/isc/atomic.h@1.2 +0 -0
Rename: lib/isc/x86_32/include/isc/atomic.h -> libntp/lib/isc/x86_32/include/isc/atomic.h
libntp/lib/isc/x86_64/include/isc/atomic.h@1.3 +0 -0
Rename: libntp/lib/isc/x86_64/include/isc/atomic.h -> libntp/lib/isc/x86_64/include/isc/atomic.h
libntp/lib/isc/x86_64/include/isc/atomic.h@1.2 +0 -0
Rename: lib/isc/x86_64/include/isc/atomic.h -> libntp/lib/isc/x86_64/include/isc/atomic.h
libntp/ntp_crypto_rnd.c@1.7 +30 -42
Enable building without OpenSSL when arc4random_buf() is available.
libparse/Makefile.am@1.34 +2 -1
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Use top-level check-libntp.mf
ntpd/Makefile.am@1.143 +1 -1
Use top-level check-libntp.mf
ntpd/ntp_ppsdev.c@1.5 +6 -0
Fix building without refclock support.
ntpdate/Makefile.am@1.39 +1 -1
Use top-level check-libntp.mf
ntpdc/Makefile.am@1.77 +1 -1
Use top-level check-libntp.mf
ntpq/Makefile.am@1.75 +1 -1
Use top-level check-libntp.mf
ntpsnmpd/Makefile.am@1.42 +1 -1
Use top-level check-libntp.mf
ports/winnt/vs2005/libntp.vcproj@1.30 +45 -49
Move lib/isc/ under libntp/
ports/winnt/vs2005/ntpd.vcproj@1.25 +8 -8
Move lib/isc/ under libntp/
ports/winnt/vs2005/ntpdate.vcproj@1.6 +2 -2
Move lib/isc/ under libntp/
ports/winnt/vs2005/ntpdc.vcproj@1.8 +2 -2
Move lib/isc/ under libntp/
ports/winnt/vs2005/ntpkeygen.vcproj@1.8 +2 -2
Move lib/isc/ under libntp/
ports/winnt/vs2005/ntpq.vcproj@1.8 +2 -2
Move lib/isc/ under libntp/
ports/winnt/vs2008/common.vsprops@1.3 +1 -1
Move lib/isc/ under libntp/
ports/winnt/vs2008/libntp/libntp.vcproj@1.61 +50 -54
Move lib/isc/ under libntp/
ports/winnt/vs2013/common.props@1.4 +1 -1
Move lib/isc/ under libntp/
ports/winnt/vs2013/libntp/libntp.vcxproj@1.17 +49 -50
Move lib/isc/ under libntp/
ports/winnt/vs2015/common.props@1.2 +1 -1
Move lib/isc/ under libntp/
ports/winnt/vs2015/libntp/libntp.vcxproj@1.7 +49 -50
Move lib/isc/ under libntp/
sntp/check-libntp.mf@1.4 +7 -6
Split check-libntp.mf into main and sntp versions and remove duplicated logic in many Makefile.am files.
sntp/check-libsntp.mf@1.1 +13 -0
Centralize makefile logic to build libsntp.a before dependents
sntp/check-libsntp.mf@1.0 +0 -0
sntp/check-libunity.mf@1.1 +15 -0
Centralize makefile logic to build libunity.a before dependents.
sntp/check-libunity.mf@1.0 +0 -0
sntp/configure.ac@1.87 +2 -6
Turn on Automake subdir-objects option to build subdir *.o files in corresponding
build subdirs instead of all in the Makefile directory.
Remove conditionalization of AM_PROG_AR needed for pre-1.12 automake.
sntp/deps-ver@1.4 +1 -1
Bump deps-ver to clean .deps directories as files have moved.
sntp/includes.mf@1.2 +3 -3
Account for new path to lib/isc/
sntp/m4/ntp_crypto_rand.m4@1.3 +3 -2
Fix building without OpenSSL.
sntp/tests/Makefile.am@1.73 +19 -39
Build our own version.c rather than reusing a parent directory's.
Centralize logic to build prerequisite libraries in included .mf files.
sntp/unity/Makefile.am@1.12 +2 -2
Initialize DISTCLEANFILES so that depsver.mf can append to it.
subdir-objects needs sources in this dir or subdirs.
sntp/unity/libpkgver-colcomp.c@1.1 +1 -0
subdir-objects breaks with sources from parent or sibling dir.
sntp/unity/libpkgver-colcomp.c@1.0 +0 -0
tests/bug-2803/Makefile.am@1.20 +3 -19
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
tests/libntp/Makefile.am@1.102 +3 -18
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
tests/ntpd/Makefile.am@1.37 +12 -35
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
subdir-objects sources in parent or sibling dir break.
tests/ntpd/test-libntp.c@1.1 +2 -0
subdir-objects doesn't work with sources from parent or sibling dir
tests/ntpd/test-libntp.c@1.0 +0 -0
tests/ntpq/Makefile.am@1.15 +3 -28
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
tests/sandbox/Makefile.am@1.14 +3 -20
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
tests/sec-2853/Makefile.am@1.10 +5 -25
Link against libntpd.a instead of ntpd/rc_cmdlength.o
Initialize DISTCLEANFILES so that depsver.mf can append to it.
Centralize logic to build prerequisite libraries in included .mf files.
util/Makefile.am@1.80 +1 -1
Use top-level check-libntp.mf
ChangeSet@1.3943, 2023-01-20 00:42:52-05:00, davehart@tl.davehart.net
Fix 'make distcheck' failure from missing ntpd/ntp_clockdev.h in tarball.
ntpd/Makefile.am@1.142 +2 -0
Add ntp_clockdev.h to ntpd/Makefile.am noinst_HEADERS to fix 'make distcheck'
ChangeSet@1.3912.20.1, 2022-12-31 02:00:09-05:00, davehart@z4.davehart.net
[Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded
ChangeLog@1.1986.20.1 +2 -0
[Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded
ntpd/ntp_keyword.h@1.38.1.1 +1 -1
[Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded
ports/winnt/ntpd/ntp_iocompletionport.c@1.82 +12 -4
high-load ntpd on Windows deaf after enough ICMP TTL exceeded
ChangeSet@1.3940.2.2, 2022-11-13 09:47:08+01:00, perlinger@ntp.org
[Bug 3640] sidekick: fixed "discard monitor" implementation
ChangeLog@1.2009.2.1 +2 -0
[Bug 3640] sidekick: fixed "discard monitor" implementation
include/ntp_random.h@1.4 +1 -0
[Bug 3640] sidekick: fixed "discard monitor" implementation
libntp/ntp_random.c@1.12 +15 -0
[Bug 3640] sidekick: fixed "discard monitor" implementation
libntp/systime.c@1.76 +1 -1
[Bug 3640] sidekick: fixed "discard monitor" implementation
ntpd/ntp_io.c@1.433 +1 -1
[Bug 3640] sidekick: fixed "discard monitor" implementation
ntpd/ntp_monitor.c@1.45 +1 -1
[Bug 3640] sidekick: fixed "discard monitor" implementation
ntpd/ntp_proto.c@1.439 +1 -1
[Bug 3640] sidekick: fixed "discard monitor" implementation
ChangeSet@1.3940.2.1, 2022-09-06 19:15:41+02:00, perlinger@ntp.org
[4.2.8p16 rc] c99-ism breaks VS2008 build
libntp/ntp_crypto_rnd.c@1.6 +2 -6
[4.2.8p16 rc] c99-ism breaks VS2008 build
ChangeSet@1.3940.1.2, 2022-09-01 02:57:43-05:00, stenn@stenn.chi1.ntfo.org
Merge stenn.chi1.ntfo.org:/home/nfs1.chi1/stenn/ntp-stable-libevent
into stenn.chi1.ntfo.org:/home/nfs1.chi1/stenn/ntp-stable
BitKeeper/deleted/78/test-driver~3d169fff1185c4af@1.2 +0 -0
Merge rename: sntp/libevent/build-aux/test-driver -> /home/nfs1.chi1/stenn/ntp-stable/RESYNC/BitKeeper/deleted/78/test-driver~3d169fff1185c4af
ChangeSet@1.3940.1.1, 2022-09-01 02:56:37-05:00, stenn@stenn.chi1.ntfo.org
libevent-2.1.12-stable
ChangeLog@1.2009.1.1 +1 -0
libevent-2.1.12-stable
sntp/libevent/CMakeLists.txt@1.1 +1575 -0
BitKeeper file sntp/libevent/CMakeLists.txt
sntp/libevent/CMakeLists.txt@1.0 +0 -0
sntp/libevent/ChangeLog@1.10 +760 -0
libevent-2.1.12-stable
sntp/libevent/ChangeLog-1.4@1.2 +1 -1
libevent-2.1.12-stable
sntp/libevent/ChangeLog-2.0@1.3 +1 -1
libevent-2.1.12-stable
sntp/libevent/Doxyfile@1.4 +23 -23
libevent-2.1.12-stable
sntp/libevent/Makefile.am@1.16 +59 -20
libevent-2.1.12-stable
sntp/libevent/README.md@1.2 +197 -28
libevent-2.1.12-stable
sntp/libevent/WIN32-Code/getopt_long.c@1.2 +4 -3
libevent-2.1.12-stable
sntp/libevent/WIN32-Code/nmake/event2/event-config.h@1.3 +8 -18
libevent-2.1.12-stable
sntp/libevent/arc4random.c@1.7 +15 -25
libevent-2.1.12-stable
sntp/libevent/autogen.sh@1.2 +7 -0
libevent-2.1.12-stable
sntp/libevent/buffer.c@1.11 +59 -31
libevent-2.1.12-stable
sntp/libevent/buffer_iocp.c@1.6 +1 -0
libevent-2.1.12-stable
sntp/libevent/bufferevent-internal.h@1.8 +72 -4
libevent-2.1.12-stable
sntp/libevent/bufferevent.c@1.9 +98 -51
libevent-2.1.12-stable
sntp/libevent/bufferevent_async.c@1.8 +43 -23
libevent-2.1.12-stable
sntp/libevent/bufferevent_filter.c@1.8 +91 -11
libevent-2.1.12-stable
sntp/libevent/bufferevent_openssl.c@1.10 +179 -159
libevent-2.1.12-stable
sntp/libevent/bufferevent_pair.c@1.9 +13 -6
libevent-2.1.12-stable
sntp/libevent/bufferevent_ratelim.c@1.6 +3 -6
libevent-2.1.12-stable
sntp/libevent/bufferevent_sock.c@1.8 +87 -89
libevent-2.1.12-stable
sntp/libevent/build-aux/test-driver@1.1 +148 -0
BitKeeper file sntp/libevent/build-aux/test-driver
sntp/libevent/build-aux/test-driver@1.0 +0 -0
sntp/libevent/checkpatch.sh@1.1 +299 -0
BitKeeper file sntp/libevent/checkpatch.sh
sntp/libevent/checkpatch.sh@1.0 +0 -0
sntp/libevent/cmake/AddCompilerFlags.cmake@1.1 +13 -0
BitKeeper file sntp/libevent/cmake/AddCompilerFlags.cmake
sntp/libevent/cmake/AddCompilerFlags.cmake@1.0 +0 -0
sntp/libevent/cmake/AddEventLibrary.cmake@1.1 +193 -0
BitKeeper file sntp/libevent/cmake/AddEventLibrary.cmake
sntp/libevent/cmake/AddEventLibrary.cmake@1.0 +0 -0
sntp/libevent/cmake/COPYING-CMAKE-SCRIPTS@1.1 +22 -0
BitKeeper file sntp/libevent/cmake/COPYING-CMAKE-SCRIPTS
sntp/libevent/cmake/COPYING-CMAKE-SCRIPTS@1.0 +0 -0
sntp/libevent/cmake/CheckConstExists.cmake@1.1 +25 -0
BitKeeper file sntp/libevent/cmake/CheckConstExists.cmake
sntp/libevent/cmake/CheckConstExists.cmake@1.0 +0 -0
sntp/libevent/cmake/CheckFileOffsetBits.c@1.1 +14 -0
BitKeeper file sntp/libevent/cmake/CheckFileOffsetBits.c
sntp/libevent/cmake/CheckFileOffsetBits.c@1.0 +0 -0
sntp/libevent/cmake/CheckFileOffsetBits.cmake@1.1 +43 -0
BitKeeper file sntp/libevent/cmake/CheckFileOffsetBits.cmake
sntp/libevent/cmake/CheckFileOffsetBits.cmake@1.0 +0 -0
sntp/libevent/cmake/CheckFunctionKeywords.cmake@1.1 +14 -0
BitKeeper file sntp/libevent/cmake/CheckFunctionKeywords.cmake
sntp/libevent/cmake/CheckFunctionKeywords.cmake@1.0 +0 -0
sntp/libevent/cmake/CheckPrototypeDefinition.c.in@1.1 +29 -0
BitKeeper file sntp/libevent/cmake/CheckPrototypeDefinition.c.in
sntp/libevent/cmake/CheckPrototypeDefinition.c.in@1.0 +0 -0
sntp/libevent/cmake/CheckPrototypeDefinition.cmake@1.1 +82 -0
BitKeeper file sntp/libevent/cmake/CheckPrototypeDefinition.cmake
sntp/libevent/cmake/CheckPrototypeDefinition.cmake@1.0 +0 -0
sntp/libevent/cmake/CheckWorkingKqueue.cmake@1.1 +52 -0
BitKeeper file sntp/libevent/cmake/CheckWorkingKqueue.cmake
sntp/libevent/cmake/CheckWorkingKqueue.cmake@1.0 +0 -0
sntp/libevent/cmake/CodeCoverage.cmake@1.1 +165 -0
BitKeeper file sntp/libevent/cmake/CodeCoverage.cmake
sntp/libevent/cmake/CodeCoverage.cmake@1.0 +0 -0
sntp/libevent/cmake/Copyright.txt@1.1 +57 -0
BitKeeper file sntp/libevent/cmake/Copyright.txt
sntp/libevent/cmake/Copyright.txt@1.0 +0 -0
sntp/libevent/cmake/LibeventConfig.cmake.in@1.1 +183 -0
BitKeeper file sntp/libevent/cmake/LibeventConfig.cmake.in
sntp/libevent/cmake/LibeventConfig.cmake.in@1.0 +0 -0
sntp/libevent/cmake/LibeventConfigVersion.cmake.in@1.1 +11 -0
BitKeeper file sntp/libevent/cmake/LibeventConfigVersion.cmake.in
sntp/libevent/cmake/LibeventConfigVersion.cmake.in@1.0 +0 -0
sntp/libevent/cmake/Macros.cmake@1.1 +36 -0
BitKeeper file sntp/libevent/cmake/Macros.cmake
sntp/libevent/cmake/Macros.cmake@1.0 +0 -0
sntp/libevent/cmake/Uninstall.cmake.in@1.1 +23 -0
BitKeeper file sntp/libevent/cmake/Uninstall.cmake.in
sntp/libevent/cmake/Uninstall.cmake.in@1.0 +0 -0
sntp/libevent/cmake/UseDoxygen.cmake@1.1 +111 -0
BitKeeper file sntp/libevent/cmake/UseDoxygen.cmake
sntp/libevent/cmake/UseDoxygen.cmake@1.0 +0 -0
sntp/libevent/cmake/VersionViaGit.cmake@1.1 +66 -0
BitKeeper file sntp/libevent/cmake/VersionViaGit.cmake
sntp/libevent/cmake/VersionViaGit.cmake@1.0 +0 -0
sntp/libevent/compile@1.1 +347 -0
BitKeeper file sntp/libevent/compile
sntp/libevent/compile@1.0 +0 -0
sntp/libevent/config.guess@1.1 +1433 -0
BitKeeper file sntp/libevent/config.guess
sntp/libevent/config.guess@1.0 +0 -0
sntp/libevent/config.sub@1.1 +1804 -0
BitKeeper file sntp/libevent/config.sub
sntp/libevent/config.sub@1.0 +0 -0
sntp/libevent/configure.ac@1.19 +210 -123
libevent-2.1.12-stable
sntp/libevent/defer-internal.h@1.6 +4 -1
libevent-2.1.12-stable
sntp/libevent/depcomp@1.1 +791 -0
BitKeeper file sntp/libevent/depcomp
sntp/libevent/depcomp@1.0 +0 -0
sntp/libevent/doxygen.am@1.1 +55 -0
BitKeeper file sntp/libevent/doxygen.am
sntp/libevent/doxygen.am@1.0 +0 -0
sntp/libevent/epoll.c@1.7 +29 -25
libevent-2.1.12-stable
sntp/libevent/epolltable-internal.h@1.2 +1 -1
libevent-2.1.12-stable
sntp/libevent/evbuffer-internal.h@1.9 +1 -1
libevent-2.1.12-stable
sntp/libevent/evconfig-private.h.cmake@1.1 +40 -0
BitKeeper file sntp/libevent/evconfig-private.h.cmake
sntp/libevent/evconfig-private.h.cmake@1.0 +0 -0
sntp/libevent/evconfig-private.h.in@1.3 +7 -0
libevent-2.1.12-stable
sntp/libevent/evdns.c@1.12 +165 -75
libevent-2.1.12-stable
sntp/libevent/event-config.h.cmake@1.1 +513 -0
BitKeeper file sntp/libevent/event-config.h.cmake
sntp/libevent/event-config.h.cmake@1.0 +0 -0
sntp/libevent/event-internal.h@1.10 +19 -5
libevent-2.1.12-stable
sntp/libevent/event.c@1.14 +309 -179
libevent-2.1.12-stable
sntp/libevent/event_iocp.c@1.7 +1 -1
libevent-2.1.12-stable
sntp/libevent/event_rpcgen.py@1.4 +1112 -915
libevent-2.1.12-stable
sntp/libevent/event_tagging.c@1.6 +7 -2
libevent-2.1.12-stable
sntp/libevent/evmap.c@1.8 +25 -18
libevent-2.1.12-stable
sntp/libevent/evrpc.c@1.7 +3 -3
libevent-2.1.12-stable
sntp/libevent/evthread-internal.h@1.9 +15 -1
libevent-2.1.12-stable
sntp/libevent/evthread.c@1.9 +41 -7
libevent-2.1.12-stable
sntp/libevent/evutil.c@1.11 +158 -56
libevent-2.1.12-stable
sntp/libevent/evutil_rand.c@1.8 +3 -3
libevent-2.1.12-stable
sntp/libevent/evutil_time.c@1.6 +88 -5
libevent-2.1.12-stable
sntp/libevent/http-internal.h@1.7 +17 -17
libevent-2.1.12-stable
sntp/libevent/http.c@1.11 +438 -167
libevent-2.1.12-stable
sntp/libevent/include/event.h@1.6 +0 -2
libevent-2.1.12-stable
sntp/libevent/include/event2/buffer.h@1.8 +2 -1
libevent-2.1.12-stable
sntp/libevent/include/event2/buffer_compat.h@1.5 +3 -2
libevent-2.1.12-stable
sntp/libevent/include/event2/bufferevent.h@1.7 +33 -4
libevent-2.1.12-stable
sntp/libevent/include/event2/bufferevent_compat.h@1.4 +4 -0
libevent-2.1.12-stable
sntp/libevent/include/event2/dns.h@1.8 +40 -6
libevent-2.1.12-stable
sntp/libevent/include/event2/dns_compat.h@1.5 +23 -1
libevent-2.1.12-stable
sntp/libevent/include/event2/event.h@1.12 +37 -44
libevent-2.1.12-stable
sntp/libevent/include/event2/http.h@1.8 +46 -8
libevent-2.1.12-stable
sntp/libevent/include/event2/http_compat.h@1.4 +7 -3
libevent-2.1.12-stable
sntp/libevent/include/event2/listener.h@1.5 +12 -0
libevent-2.1.12-stable
sntp/libevent/include/event2/rpc.h@1.4 +39 -9
libevent-2.1.12-stable
sntp/libevent/include/event2/rpc_struct.h@1.4 +14 -0
libevent-2.1.12-stable
sntp/libevent/include/event2/util.h@1.8 +57 -6
libevent-2.1.12-stable
sntp/libevent/include/event2/visibility.h@1.2 +29 -17
libevent-2.1.12-stable
sntp/libevent/include/include.am@1.3 +5 -2
libevent-2.1.12-stable
sntp/libevent/iocp-internal.h@1.4 +14 -0
libevent-2.1.12-stable
sntp/libevent/kqueue.c@1.8 +19 -5
libevent-2.1.12-stable
sntp/libevent/libevent_core.pc.in@1.1 +16 -0
BitKeeper file sntp/libevent/libevent_core.pc.in
sntp/libevent/libevent_core.pc.in@1.0 +0 -0
sntp/libevent/libevent_extra.pc.in@1.1 +16 -0
BitKeeper file sntp/libevent/libevent_extra.pc.in
sntp/libevent/libevent_extra.pc.in@1.0 +0 -0
sntp/libevent/listener.c@1.9 +20 -10
libevent-2.1.12-stable
sntp/libevent/log-internal.h@1.4 +18 -7
libevent-2.1.12-stable
sntp/libevent/log.c@1.7 +1 -10
libevent-2.1.12-stable
sntp/libevent/ltmain.sh@1.1 +11147 -0
BitKeeper file sntp/libevent/ltmain.sh
sntp/libevent/ltmain.sh@1.0 +0 -0
sntp/libevent/m4/ax_check_funcs_ex.m4@1.1 +22 -0
BitKeeper file sntp/libevent/m4/ax_check_funcs_ex.m4
sntp/libevent/m4/ax_check_funcs_ex.m4@1.0 +0 -0
sntp/libevent/m4/ax_prog_doxygen.m4@1.1 +600 -0
BitKeeper file sntp/libevent/m4/ax_prog_doxygen.m4
sntp/libevent/m4/ax_prog_doxygen.m4@1.0 +0 -0
sntp/libevent/m4/libevent_openssl.m4@1.3 +20 -6
libevent-2.1.12-stable
sntp/libevent/make-event-config.sed@1.2 +7 -3
libevent-2.1.12-stable
sntp/libevent/minheap-internal.h@1.7 +5 -1
libevent-2.1.12-stable
sntp/libevent/missing@1.1 +215 -0
BitKeeper file sntp/libevent/missing
sntp/libevent/missing@1.0 +0 -0
sntp/libevent/mm-internal.h@1.3 +5 -0
libevent-2.1.12-stable
sntp/libevent/openssl-compat.h@1.1 +47 -0
BitKeeper file sntp/libevent/openssl-compat.h
sntp/libevent/openssl-compat.h@1.0 +0 -0
sntp/libevent/poll.c@1.4 +22 -5
libevent-2.1.12-stable
sntp/libevent/sample/dns-example.c@1.8 +59 -43
libevent-2.1.12-stable
sntp/libevent/sample/event-read-fifo.c@1.6 +2 -2
libevent-2.1.12-stable
sntp/libevent/sample/hello-world.c@1.5 +2 -3
libevent-2.1.12-stable
sntp/libevent/sample/http-connect.c@1.1 +131 -0
BitKeeper file sntp/libevent/sample/http-connect.c
sntp/libevent/sample/http-connect.c@1.0 +0 -0
sntp/libevent/sample/http-server.c@1.13 +229 -69
libevent-2.1.12-stable
sntp/libevent/sample/https-client.c@1.3 +147 -42
libevent-2.1.12-stable
sntp/libevent/sample/include.am@1.4 +10 -7
libevent-2.1.12-stable
sntp/libevent/sample/le-proxy.c@1.4 +18 -1
libevent-2.1.12-stable
sntp/libevent/sample/openssl_hostname_validation.c@1.2 +9 -3
libevent-2.1.12-stable
sntp/libevent/sample/signal-test.c@1.5 +19 -11
libevent-2.1.12-stable
sntp/libevent/sample/time-test.c@1.5 +5 -2
libevent-2.1.12-stable
sntp/libevent/select.c@1.7 +1 -1
libevent-2.1.12-stable
sntp/libevent/signal.c@1.8 +2 -0
libevent-2.1.12-stable
sntp/libevent/strlcpy-internal.h@1.4 +2 -0
libevent-2.1.12-stable
sntp/libevent/test-driver@1.1 +148 -0
BitKeeper file sntp/libevent/test-driver
sntp/libevent/test-driver@1.0 +0 -0
sntp/libevent/test/bench.c@1.6 +44 -16
libevent-2.1.12-stable
sntp/libevent/test/bench_cascade.c@1.6 +4 -4
libevent-2.1.12-stable
sntp/libevent/test/bench_http.c@1.6 +6 -1
libevent-2.1.12-stable
sntp/libevent/test/bench_httpclient.c@1.9 +13 -7
libevent-2.1.12-stable
sntp/libevent/test/check-dumpevents.py@1.4 +5 -5
libevent-2.1.12-stable
sntp/libevent/test/include.am@1.5 +37 -7
libevent-2.1.12-stable
sntp/libevent/test/print-winsock-errors.c@1.2 +2 -0
libevent-2.1.12-stable
sntp/libevent/test/regress.c@1.9 +393 -112
libevent-2.1.12-stable
sntp/libevent/test/regress.h@1.6 +13 -0
libevent-2.1.12-stable
sntp/libevent/test/regress_buffer.c@1.9 +633 -44
libevent-2.1.12-stable
sntp/libevent/test/regress_bufferevent.c@1.7 +416 -111
libevent-2.1.12-stable
sntp/libevent/test/regress_dns.c@1.11 +587 -119
libevent-2.1.12-stable
sntp/libevent/test/regress_et.c@1.6 +106 -44
libevent-2.1.12-stable
sntp/libevent/test/regress_finalize.c@1.3 +48 -0
libevent-2.1.12-stable
sntp/libevent/test/regress_http.c@1.11 +1096 -284
libevent-2.1.12-stable
sntp/libevent/test/regress_listener.c@1.7 +138 -4
libevent-2.1.12-stable
sntp/libevent/test/regress_main.c@1.8 +68 -6
libevent-2.1.12-stable
sntp/libevent/test/regress_minheap.c@1.6 +0 -1
libevent-2.1.12-stable
sntp/libevent/test/regress_rpc.c@1.7 +48 -1
libevent-2.1.12-stable
sntp/libevent/test/regress_ssl.c@1.9 +694 -108
libevent-2.1.12-stable
sntp/libevent/test/regress_testutils.c@1.7 +18 -4
libevent-2.1.12-stable
sntp/libevent/test/regress_testutils.h@1.3 +1 -0
libevent-2.1.12-stable
sntp/libevent/test/regress_thread.c@1.7 +10 -5
libevent-2.1.12-stable
sntp/libevent/test/regress_thread.h@1.2 +21 -13
libevent-2.1.12-stable
sntp/libevent/test/regress_util.c@1.8 +270 -2
libevent-2.1.12-stable
sntp/libevent/test/regress_zlib.c@1.6 +4 -4
libevent-2.1.12-stable
sntp/libevent/test/rpcgen_wrapper.sh@1.5 +1 -10
libevent-2.1.12-stable
sntp/libevent/test/test-changelist.c@1.6 +2 -2
libevent-2.1.12-stable
sntp/libevent/test/test-closed.c@1.2 +3 -9
libevent-2.1.12-stable
sntp/libevent/test/test-eof.c@1.7 +4 -11
libevent-2.1.12-stable
sntp/libevent/test/test-fdleak.c@1.3 +9 -6
libevent-2.1.12-stable
sntp/libevent/test/test-init.c@1.5 +1 -1
libevent-2.1.12-stable
sntp/libevent/test/test-ratelim.c@1.12 +88 -5
libevent-2.1.12-stable
sntp/libevent/test/test-time.c@1.8 +17 -11
libevent-2.1.12-stable
sntp/libevent/test/test-weof.c@1.5 +3 -6
libevent-2.1.12-stable
sntp/libevent/test/test.sh@1.11 +57 -13
libevent-2.1.12-stable
sntp/libevent/test/tinytest.c@1.7 +143 -26
libevent-2.1.12-stable
sntp/libevent/test/tinytest.h@1.5 +4 -1
libevent-2.1.12-stable
sntp/libevent/test/tinytest_demo.c@1.2 +3 -1
libevent-2.1.12-stable
sntp/libevent/test/tinytest_macros.h@1.4 +16 -2
libevent-2.1.12-stable
sntp/libevent/time-internal.h@1.3 +3 -0
libevent-2.1.12-stable
sntp/libevent/util-internal.h@1.11 +79 -7
libevent-2.1.12-stable
sntp/libevent/whatsnew-2.1.txt@1.5 +83 -5
libevent-2.1.12-stable
sntp/libevent/win32select.c@1.6 +3 -2
libevent-2.1.12-stable
ChangeSet@1.3936.1.1, 2022-08-27 05:04:31-05:00, stenn@stenn.chi1.ntfo.org
ChangeLog:
[Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
ChangeLog@1.2008 +1 -0
[Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
ChangeSet@1.3938, 2022-08-27 04:27:52-05:00, stenn@stenn.chi1.ntfo.org
sntp.c, main.c:
Bug 3688 (-fno-common) fixes
sntp/main.c@1.108 +1 -1
Bug 3688 (-fno-common) fixes
sntp/sntp.c@1.5 +2 -0
Bug 3688 (-fno-common) fixes
ChangeSet@1.3937, 2022-08-27 03:36:11-05:00, stenn@stenn.chi1.ntfo.org
main.c:
One more fix for Bug 3695
sntp/main.c@1.107 +1 -1
One more fix for Bug 3695
ChangeSet@1.3935, 2022-08-27 03:03:40-05:00, stenn@stenn.chi1.ntfo.org
test-libntp.h:
Bug 3688 - one more fix
tests/libntp/test-libntp.h@1.8 +5 -1
Bug 3688 - one more fix
ChangeSet@1.3912.19.9, 2022-06-27 00:02:54-05:00, stenn@stenn.chi1.ntfo.org
Add -u option for ntpq/ntpdc
ntpdc/invoke-ntpdc.texi@1.520 +10 -1
Add -u option for ntpq/ntpdc
ntpdc/ntpdc-opts.c@1.539 +73 -43
Add -u option for ntpq/ntpdc
ntpdc/ntpdc-opts.def@1.24 +10 -0
Add -u option for ntpq/ntpdc
ntpdc/ntpdc-opts.h@1.538 +14 -7
Add -u option for ntpq/ntpdc
ntpdc/ntpdc.1ntpdcman@1.351 +8 -2
Add -u option for ntpq/ntpdc
ntpdc/ntpdc.1ntpdcmdoc@1.351 +7 -2
Add -u option for ntpq/ntpdc
ntpdc/ntpdc.html@1.365 +24 -8
Add -u option for ntpq/ntpdc
ntpdc/ntpdc.man.in@1.351 +8 -2
Add -u option for ntpq/ntpdc
ntpdc/ntpdc.mdoc.in@1.351 +7 -2
Add -u option for ntpq/ntpdc
ntpq/invoke-ntpq.texi@1.530 +10 -1
Add -u option for ntpq/ntpdc
ntpq/ntpq-opts.c@1.548 +81 -51
Add -u option for ntpq/ntpdc
ntpq/ntpq-opts.def@1.33 +10 -0
Add -u option for ntpq/ntpdc
ntpq/ntpq-opts.h@1.546 +15 -8
Add -u option for ntpq/ntpdc
ntpq/ntpq.1ntpqman@1.358 +8 -2
Add -u option for ntpq/ntpdc
ntpq/ntpq.1ntpqmdoc@1.358 +7 -2
Add -u option for ntpq/ntpdc
ntpq/ntpq.man.in@1.358 +8 -2
Add -u option for ntpq/ntpdc
ntpq/ntpq.mdoc.in@1.358 +7 -2
Add -u option for ntpq/ntpdc
ChangeSet@1.3912.19.8, 2022-06-26 05:46:50-05:00, stenn@stenn.chi1.ntfo.org
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/invoke-ntpdc.texi@1.519 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc-opts.c@1.538 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc-opts.h@1.537 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc.1ntpdcman@1.350 +7 -699
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc.1ntpdcmdoc@1.350 +7 -666
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc.man.in@1.350 +7 -699
Check in autogen files for the -u flag to ntpdc/ntpq
ntpdc/ntpdc.mdoc.in@1.350 +7 -666
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/invoke-ntpq.texi@1.529 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq-opts.c@1.547 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq-opts.h@1.545 +1 -1
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq.1ntpqman@1.357 +3 -1391
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq.1ntpqmdoc@1.357 +3 -889
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq.man.in@1.357 +3 -1391
Check in autogen files for the -u flag to ntpdc/ntpq
ntpq/ntpq.mdoc.in@1.357 +3 -889
Check in autogen files for the -u flag to ntpdc/ntpq
ChangeSet@1.3912.19.7, 2022-04-14 08:07:58+02:00, perlinger@ntp.org
[Bug 3758] Provide a 'device' config statement for refclocks
- update docs on refclock-gpsdjson
html/drivers/driver46.html@1.8 +19 -12
[Bug 3758] Provide a 'device' config statement for refclocks
- update docs on refclock-gpsdjson
ChangeSet@1.3912.19.6, 2022-04-13 21:57:26+02:00, perlinger@ntp.org
[Bug 3758] Provide a 'device' config statement for refclocks
hook up refclock_gpsdjson to device redirection
ntpd/ntp_clockdev.c@1.2 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- comment typo
ntpd/refclock_gpsdjson.c@1.28.3.1 +14 -9
[Bug 3758] Provide a 'device' config statement for refclocks
- hook up to device redirection (this driver is special)
- increase receive/assembly buffer: Multi GNSS reports are HUGE
- fix regression in buffer handling (overflow)
ChangeSet@1.3912.19.5, 2022-03-28 09:18:23+02:00, perlinger@ntp.org
[Bug 3758] Provide a 'device' config statement for refclocks
ChangeLog@1.1986.19.3 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
---
merge with 3757 (magic PPS) as there are overlpped changes otherwise
html/clockopt.html@1.29 +39 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- document 'device' syntax
html/scripts/clockopt.txt@1.4 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- document 'device' syntax
include/ntp_config.h@1.91 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'device' list to config
include/ntp_refclock.h@1.38.1.6 +3 -2
[Bug 3758] Provide a 'device' config statement for refclocks
- have 'ppsdev_reopen()' lookup alternative device names, too
include/ntp_stdlib.h@1.86.4.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- make 'refnumtoa()' take a const pointer
libntp/refnumtoa.c@1.10.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- make 'refnumtoa()' take a const pointer
ntpd/Makefile.am@1.138.1.2 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to source list
ntpd/keyword-gen-utd@1.36 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- auto-update
ntpd/keyword-gen.c@1.43 +4 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'device', 'ppsdata', 'timedata' keywords
ntpd/ntp_clockdev.c@1.1 +187 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- implement device table + info-logging the redirections
- add callback for windows port
ntpd/ntp_clockdev.c@1.0 +0 -0
ntpd/ntp_clockdev.h@1.1 +25 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- API dt set&query clock-specific device redirections
ntpd/ntp_clockdev.h@1.0 +0 -0
ntpd/ntp_config.c@1.376.1.1 +110 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- handle the device redirections in the config tree
ntpd/ntp_keyword.h@1.39 +1034 -1017
[[Bug 3758] Provide a 'device' config statement for refclocks
- regenerated
ntpd/ntp_parser.c@1.118 +2261 -2016
[Bug 3758] Provide a 'device' config statement for refclocks
- regenerated
ntpd/ntp_parser.h@1.80 +421 -402
[Bug 3758] Provide a 'device' config statement for refclocks
- regenerated
ntpd/ntp_parser.y@1.106 +44 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add grammar supoort for 'device' statement
ntpd/ntp_ppsdev.c@1.4 +16 -3
[Bug 3758] Provide a 'device' config statement for refclocks
- have 'ppsdev_reopen()' lookup alternative device names, too
- unclutter include
ntpd/ntp_refclock.c@1.126.3.1 +56 -2
[Bug 3758] Provide a 'device' config statement for refclocks
- add conversion between symbolic and numeric baud rates
- log open of refclock devices
ntpd/refclock_acts.c@1.54.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_arbiter.c@1.20.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_arc.c@1.34 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_as2201.c@1.16.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_chronolog.c@1.13 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_chu.c@1.59 +2 -2
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_dumbclock.c@1.18.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_fg.c@1.16 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_heath.c@1.19.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_hopfser.c@1.17.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_hpgps.c@1.16.1.1 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_jjy.c@1.38 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_jupiter.c@1.35 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_mx4200.c@1.32 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_neoclock4x.c@1.24 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_nmea.c@1.79.2.3 +3 -15
[Bug 3758] Provide a 'device' config statement for refclocks
- let refclock_open() do the logging
- 'refclock_open()' API change
ntpd/refclock_oncore.c@1.104.1.3 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_palisade.c@1.46.1.4 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_parse.c@1.89.1.1 +16 -2
[Bug 3758] Provide a 'device' config statement for refclocks
- use new refclock_open() API
ntpd/refclock_pst.c@1.14 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_ripencc.c@1.19 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_true.c@1.25.1.2 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_ulink.c@1.20 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_wwvb.c@1.36 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ntpd/refclock_zyfer.c@1.12 +1 -1
[Bug 3758] Provide a 'device' config statement for refclocks
- 'refclock_open()' API change
ports/winnt/libntp/termios.c@1.35 +16 -2
[Bug 3758] Provide a 'device' config statement for refclocks
- new refclock_open() signature
- add device name lookup callback
- support '\\.\COMxxx' windows device name space
ports/winnt/vs2005/ntpd.vcproj@1.24 +22 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.54 +4 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.12 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.9 +3 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.2.1.2 +1 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.4 +3 -0
[Bug 3758] Provide a 'device' config statement for refclocks
- add 'ntp_clockdev.c' to project
ChangeSet@1.3912.19.4, 2022-03-27 10:21:50+02:00, perlinger@ntp.org
[bug 3757] final cleanup
ntpd/ntp_ppsdev.c@1.3 +79 -49
[bug 3757] final cleanup
ChangeSet@1.3912.19.3, 2022-03-13 08:38:51+01:00, perlinger@ntp.org
[Bug 3757] Improve handling of Linux-PPS in NTPD
cleanup
include/ntp_refclock.h@1.38.1.5 +4 -6
[Bug 3757] Improve handling of Linux-PPS in NTPD
ntpd/ntp_ppsdev.c@1.2 +33 -7
[Bug 3757] Improve handling of Linux-PPS in NTPD
ntpd/refclock_nmea.c@1.79.2.2 +9 -26
[Bug 3757] Improve handling of Linux-PPS in NTPD
ntpd/refclock_oncore.c@1.104.1.2 +2 -2
indent cleanup
ports/winnt/vs2005/ntpd.vcproj@1.23 +22 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.53 +4 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.11 +2 -1
[Bug 3757] Improve handling of Linux-PPS in NTPD
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.8 +4 -1
[Bug 3757] Improve handling of Linux-PPS in NTPD
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.2.1.1 +2 -1
[Bug 3757] Improve handling of Linux-PPS in NTPD
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.3 +4 -1
[Bug 3757] Improve handling of Linux-PPS in NTPD
ChangeSet@1.3912.19.2, 2022-03-07 07:54:01+01:00, perlinger@ntp.org
[Bug 3757] Improve handling of Linux-PPS in NTPD
ChangeLog@1.1986.19.2 +1 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
configure.ac@1.619.2.1 +20 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
- add '--enable-magicpps' with default=yes to config options
- check for the necessary functions to implement it
include/ntp_refclock.h@1.38.1.4 +6 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
- add prototype for 'ppsdev_open()' function
ntpd/Makefile.am@1.138.1.1 +1 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
ntpd/ntp_ppsdev.c@1.1 +384 -0
[Bug 3757] Improve handling of Linux-PPS in NTPD
- implement 'ppsdev_open()' function
- implement tty<-->pps mapping for Linux
- implement 'magic' pps instantiation for Linux
ntpd/ntp_ppsdev.c@1.0 +0 -0
ntpd/refclock_nmea.c@1.79.2.1 +33 -16
[Bug 3757] Improve handling of Linux-PPS in NTPD
ChangeSet@1.3912.19.1, 2022-01-16 11:35:06+01:00, perlinger@ntp.org
[Bug 3741] 4.2.8p15 can't build with glibc 2.34
PTHREAD stack sizes can be runtime variant, so make all size adjustments
runtime checks (as opposed to the compile time checks they were before)
ChangeLog@1.1986.19.1 +3 -0
[Bug 3741] 4.2.8p15 can't build with glibc 2.34
libntp/work_thread.c@1.23.1.1 +18 -15
[Bug 3741] 4.2.8p15 can't build with glibc 2.34
PTHREAD stack sizes can be runtime variant, so make all size adjustments
runtime checks (as opposed to the compile time checks they were before)
ChangeSet@1.3912.18.1, 2021-03-14 09:31:22+01:00, perlinger@ntp.org
[Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows
ChangeLog@1.1986.18.1 +4 -0
[Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows
include/ssl_applink.c@1.7 +1 -1
[Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows
- omit openssl/applink.c only for openSSL-1.1.0 (was giving linker trouble there)
ChangeSet@1.3931, 2020-12-10 02:41:35-08:00, harlan@max-e0.pfcs.com
Lose a gmake construct in ntpd/Makefile.am
ChangeLog@1.2004 +1 -0
Lose a gmake construct in ntpd/Makefile.am
ntpd/Makefile.am@1.139 +9 -9
Lose a gmake construct in ntpd/Makefile.am
ChangeSet@1.3912.17.2, 2020-11-29 16:31:39+01:00, perlinger@ntp.org
[Bug 3699] Problems handling drift file and restoring previous drifts
- a bit of cleanup on command line option locking
ChangeLog@1.1986.17.1 +6 -0
[Bug 3699] Problems handling drift file and restoring previous drifts
ntpd/ntp_util.c@1.122 +39 -40
[Bug 3699] Problems handling drift file and restoring previous drifts
- a bit of cleanup on command line option locking
ChangeSet@1.3912.17.1, 2020-11-29 10:41:07+01:00, perlinger@ntp.org
[Bug 3699] Problems handling drift file and restoring previous drifts <perlinger@ntp.org>
- command line options override config statements where applicable
- make initial frequency settings idempotent and reversible
- make sure kernel PLL gets a revovered drift componsation
include/ntp.h@1.234 +1 -0
[Bug 3699] Problems handling drift file and restoring previous drifts
- support removing an initial drift spec from loop filter
ntpd/cmd_args.c@1.64 +3 -3
[Bug 3699] Problems handling drift file and restoring previous drifts
- tag calls to 'stats_config()' as coming from command line
ntpd/ntp_config.c@1.377 +2 -4
[Bug 3699] Problems handling drift file and restoring previous drifts
- avoid memory leaks with driftfile specs, and let cleanup/override be done in 'stats_config()'
ntpd/ntp_loopfilter.c@1.196 +11 -1
[Bug 3699] Problems handling drift file and restoring previous drifts
- support removing an initial drift spec from loop filter
- make sure kernel PLL starts with proper initial drift if given
ntpd/ntp_util.c@1.121 +53 -9
[Bug 3699] Problems handling drift file and restoring previous drifts
- make sure command line options have precedence over corresponding config options
ChangeSet@1.3912.15.2, 2020-10-26 08:30:46+01:00, perlinger@ntp.org
[Bug 3677] additional peer events not decoded in associations listing
- add numeric formatting to default branch
ChangeLog@1.1986.15.2 +1 -1
[Bug 3677] additional peer events not decoded in associations listing
- add numeric formatting to default branch
ntpq/ntpq-subs.c@1.133 +3 -1
[Bug 3677] additional peer events not decoded in associations listing
- add numeric formatting to default branch
ChangeSet@1.3912.16.1, 2020-10-26 07:58:13+01:00, perlinger@ntp.org
[Bug 3674] ntpq command 'execute only' using '~' prefix
ChangeLog@1.1986.16.1 +4 -0
[Bug 3674] ntpq command 'execute only' using '~' prefix
ntpq/ntpq.c@1.192.2.1 +19 -0
[Bug 3674] ntpq command 'execute only' using '~' prefix
ChangeSet@1.3912.15.1, 2020-10-26 07:38:57+01:00, perlinger@ntp.org
[Bug 3677] additional peer events not decoded in associations listing
ChangeLog@1.1986.15.1 +4 -0
[Bug 3677] additional peer events not decoded in associations listing
ntpq/ntpq-subs.c@1.132 +16 -0
[Bug 3677] additional peer events not decoded in associations listing
ChangeSet@1.3927, 2020-10-25 12:25:51+01:00, perlinger@ntp.org
[mysterious problem] disable realpath() resolving of /dev/std* links
tests/libntp/realpath.c@1.3 +9 -0
[mysterious problem] disable realpath() resolving of /dev/std* links
ChangeSet@1.3912.14.2, 2020-10-25 08:43:17+01:00, perlinger@ntp.org
[bug 3432] backport to 4.2.8-p15
- check 'write' for daemon wait pipe
ntpd/ntp_proto.c@1.438 +2 -1
[bug 3432] backport to 4.2.8-p15
- check 'write' for daemon wait pipe
ntpd/ntpd.c@1.185.1.1 +4 -2
[bug 3432] backport to 4.2.8-p15
- check 'write' for daemon wait pipe
ChangeSet@1.3912.13.1, 2020-10-24 08:52:24+02:00, perlinger@ntp.org
[Bug 3682] Fixes for warnings when compiled without OpenSSL
ChangeLog@1.1986.13.1 +4 -0
[Bug 3682] Fixes for warnings when compiled without OpenSSL
libntp/a_md5encrypt.c@1.52.1.1 +14 -12
[Bug 3682] Fixes for warnings when compiled without OpenSSL
ntpd/ntp_control.c@1.239 +8 -2
[Bug 3682] Fixes for warnings when compiled without OpenSSL
ntpd/ntpd.c@1.186 +1 -2
[Bug 3682] Fixes for warnings when compiled without OpenSSL
ntpq/ntpq.c@1.192.1.1 +5 -3
[Bug 3682] Fixes for warnings when compiled without OpenSSL
sntp/crypto.c@1.41 +15 -11
[Bug 3682] Fixes for warnings when compiled without OpenSSL
ChangeSet@1.3912.12.1, 2020-10-24 07:49:18+02:00, perlinger@ntp.org
[Bug 3687] ntp_crypto_rand RNG status not known
ChangeLog@1.1986.12.1 +4 -0
[Bug 3687] ntp_crypto_rand RNG status not known
libntp/ntp_crypto_rnd.c@1.5 +23 -6
[Bug 3687] ntp_crypto_rand RNG status not known
ChangeSet@1.3923, 2020-10-21 02:36:52-04:00, stenn@psp-deb2.ntp.org
ChangeLog tweak
ChangeLog@1.1997 +1 -0
ChangeLog tweak
ChangeSet@1.3914, 2020-10-20 07:35:29+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1988 +1 -0
cleanup
ChangeSet@1.3912.5.4, 2020-10-20 07:12:32+00:00, stenn@psp-deb1.ntp.org
typo
sntp/m4/realpath.m4@1.2 +1 -1
typo
ChangeSet@1.3912.11.1, 2020-10-20 06:48:48+02:00, perlinger@ntp.org
[Bug 3693] Improvement of error handling key lengths
ChangeLog@1.1986.11.1 +4 -0
[Bug 3693] Improvement of error handling key lengths
include/ntp_stdlib.h@1.86.3.1 +1 -1
[Bug 3693] Improvement of error handling key lengths
libntp/a_md5encrypt.c@1.53 +4 -2
[Bug 3693] Improvement of error handling key lengths
libntp/authkeys.c@1.41.1.1 +1 -1
[Bug 3693] Improvement of error handling key lengths
tests/libntp/a_md5encrypt.c@1.17 +4 -3
[Bug 3693] Improvement of error handling key lengths
tests/libntp/run-a_md5encrypt.c@1.18 +5 -5
[Bug 3693] Improvement of error handling key lengths
- auto-regenerated
ChangeSet@1.3912.10.2, 2020-10-19 20:27:38+02:00, perlinger@ntp.org
[Bug 3689] Extension for MD5, SHA-1 and other keys
- enum for password encoding, symdef for secret size
- update docs
html/authentic.html@1.19 +8 -7
[Bug 3689] Extension for MD5, SHA-1 and other keys
- update docs
html/ntpdc.html@1.40 +2 -1
[Bug 3689] Extension for MD5, SHA-1 and other keys
- update docs
html/ntpq.html@1.53 +2 -1
[Bug 3689] Extension for MD5, SHA-1 and other keys
- update docs
include/ntp_stdlib.h@1.86.2.2 +8 -4
[Bug 3689] Extension for MD5, SHA-1 and other keys
- enum for password encoding, symdef for secret size
libntp/authkeys.c@1.43 +14 -14
[Bug 3689] Extension for MD5, SHA-1 and other keys
- enum for password encoding, symdef for secret size
libntp/authreadkeys.c@1.35 +1 -1
[Bug 3689] Extension for MD5, SHA-1 and other keys
- enum for password encoding, symdef for secret size
libntp/authusekey.c@1.13 +3 -3
[Bug 3689] Extension for MD5, SHA-1 and other keys
- enum for password encoding, symdef for secret size
ChangeSet@1.3912.10.1, 2020-10-19 08:15:03+02:00, perlinger@ntp.org
[Bug 3689] Extension for MD5, SHA-1 and other keys
- refactor decoding a passwd string / secret
- have ntp{q,dc} use the same password decoding ntpd uses
ChangeLog@1.1986.10.1 +6 -0
[Bug 3689] Extension for MD5, SHA-1 and other keys
include/ntp_stdlib.h@1.86.2.1 +5 -0
[Bug 3689] Extension for MD5, SHA-1 and other keys
- refactor decoding a passwd string / secret
libntp/authkeys.c@1.42 +92 -0
[Bug 3689] Extension for MD5, SHA-1 and other keys
libntp/authreadkeys.c@1.34 +33 -46
[Bug 3689] Extension for MD5, SHA-1 and other keys
- refactor decoding a passwd string / secret
libntp/authusekey.c@1.12 +10 -10
[Bug 3689] Extension for MD5, SHA-1 and other keys
- have ntp{q,dc} use the same password decoding ntpd uses
ChangeSet@1.3912.9.1, 2020-10-18 07:23:45+02:00, perlinger@ntp.org
[Bug 3690] newline in ntp clock variable
ChangeLog@1.1986.9.1 +4 -0
[Bug 3690] newline in ntp clock variable
ntpd/refclock_parse.c@1.90 +1 -1
[Bug 3690] newline in ntp clock variable
ChangeSet@1.3912.8.1, 2020-10-17 16:06:54+02:00, perlinger@ntp.org
[Bug 3694] NMEA refclock appears to unnecessarily require location in messages
- add/describe 'ignore receiver status' bit
ChangeLog@1.1986.8.1 +5 -0
[Bug 3694] NMEA refclock appears to unnecessarily require location in messages
html/drivers/driver20.html@1.35 +10 -1
[Bug 3694] NMEA refclock appears to unnecessarily require location in messages
- add/describe 'ignore receiver status' bit
ntpd/refclock_nmea.c@1.79.1.7 +6 -0
[Bug 3694] NMEA refclock appears to unnecessarily require location in messages
- add/describe 'ignore receiver status' bit
ChangeSet@1.3912.6.3, 2020-10-17 10:39:53+02:00, perlinger@ntp.org
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
- increase path buffer for unit tests
libntp/ntp_realpath.c@1.2 +42 -36
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
libntp/xsbprintf.c@1.3 +3 -3
[Bug 3692] /dev/gpsN requirement prevents KPPS
- sidekick: bad indentations
ports/winnt/vs2005/libntp.vcproj@1.29 +4 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
ports/winnt/vs2008/libntp/libntp.vcproj@1.60 +11 -7
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
ports/winnt/vs2013/libntp/libntp.vcxproj@1.16 +3 -2
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.14 +5 -2
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
ports/winnt/vs2015/libntp/libntp.vcxproj@1.6 +3 -2
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.6 +5 -2
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement 'ntp_realpath()' for windows, too
tests/libntp/realpath.c@1.2 +2 -2
Bug 3692 - /dev/gpsN requirement prevents KPPS
increase path buffer for unit tests
ChangeSet@1.3912.6.2, 2020-10-16 08:11:40+02:00, perlinger@ntp.org
[Bug 3692] /dev/gpsN requirement prevents KPPS
- first unit tests (not applicable for windows so far)
tests/libntp/Makefile.am@1.101 +12 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- first unit tests (not applicable for windows so far)
tests/libntp/realpath.c@1.1 +85 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- first unit tests (not applicable for windows so far)
tests/libntp/realpath.c@1.0 +0 -0
tests/libntp/run-realpath.c@1.1 +70 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- first unit tests (not applicable for windows so far)
tests/libntp/run-realpath.c@1.0 +0 -0
ChangeSet@1.3912.7.2, 2020-10-15 20:29:32+02:00, perlinger@ntp.org
[Bug 3688] GCC 10 build errors in testsuite
- fix the real issue -- 'progname' defined in wrong file
sntp/log.c@1.26 +1 -3
[Bug 3688] GCC 10 build errors in testsuite
- fix the real issue -- 'progname' defined in wrong file
sntp/main.c@1.106 +1 -0
[Bug 3688] GCC 10 build errors in testsuite
- fix the real issue -- 'progname' defined in wrong file
sntp/tests/t-log.c@1.9 +0 -1
[Bug 3688] GCC 10 build errors in testsuite
- fix the real issue -- 'progname' defined in wrong file
ChangeSet@1.3912.7.1, 2020-10-15 08:39:12+02:00, perlinger@ntp.org
[Bug 3688] GCC 10 build errors in testsuite
ChangeLog@1.1986.7.1 +3 -0
[Bug 3688] GCC 10 build errors in testsuite
sntp/log.c@1.25 +2 -0
[Bug 3688] GCC 10 build errors in testsuite
- skip local definition of 'progname' in sntp/log.c when running unit tests
sntp/tests/t-log.c@1.8 +1 -1
[Bug 3688] GCC 10 build errors in testsuite
- skip local definition of 'progname' in sntp/log.c when running unit tests
ChangeSet@1.3912.6.1, 2020-10-14 18:40:09+02:00, perlinger@ntp.org
[Bug 3692] /dev/gpsN requirement prevents KPPS
- resolve symlinks in device names for GPSD_JSON driver
ChangeLog@1.1986.6.1 +5 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- resolve symlinks in device names for GPSD_JSON driver
configure.ac@1.619.1.1 +1 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- Implement NTP_FUNC_REALPATH
include/ntp_stdlib.h@1.86.1.3 +2 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement wrapper for 'realpath()'
libntp/Makefile.am@1.85 +1 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
- add 'realpath()' wrapper
libntp/ntp_realpath.c@1.1 +273 -0
-[Bug 3692] /dev/gpsN requirement prevents KPPS
- implement wrapper around 'realpath()' or a replacement plugged from FreeBSD
libntp/ntp_realpath.c@1.0 +0 -0
ntpd/refclock_gpsdjson.c@1.28.2.1 +20 -5
[Bug 3692] /dev/gpsN requirement prevents KPPS
- use 'ntp_realpath()' to resolve symlinks
ntpsnmpd/ntpsnmpd.c@1.11 +1 -1
[Bug 3692] /dev/gpsN requirement prevents KPPS
- sidekick: remove indentation warning
sntp/m4/realpath.m4@1.1 +49 -0
[Bug 3692] /dev/gpsN requirement prevents KPPS
autoconf: test for POSIX-2008 compliant 'realpath()'
sntp/m4/realpath.m4@1.0 +0 -0
ChangeSet@1.3912.5.2, 2020-10-14 06:15:18+00:00, stenn@psp-deb1.ntp.org
fix typos
sntp/m4/realpath.m4@1.2 +4 -5
fix typos
ChangeSet@1.3912.5.1, 2020-10-14 05:52:43+00:00, stenn@psp-deb1.ntp.org
Implement NTP_FUNC_REALPATH
ChangeLog@1.1986.5.1 +4 -0
Implement NTP_FUNC_REALPATH
configure.ac@1.620 +1 -0
Implement NTP_FUNC_REALPATH
sntp/m4/realpath.m4@1.1 +50 -0
BitKeeper file sntp/m4/realpath.m4
sntp/m4/realpath.m4@1.0 +0 -0
ChangeSet@1.3912.4.1, 2020-10-12 08:01:45+02:00, perlinger@ntp.org
[Bug 3691] Buffer Overflow reading GPSD output
ChangeLog@1.1986.4.1 +5 -0
[Bug 3691] Buffer Overflow reading GPSD output
ntpd/refclock_gpsdjson.c@1.28.1.3 +2 -2
[Bug 3691] Buffer Overflow reading GPSD output
- fixed bad buffer end calculation
- increased max PDU size
ChangeSet@1.3912.3.1, 2020-07-20 07:35:48+02:00, perlinger@ntp.org
[Bug 3666] avoid unlimited receive buffer allocation
- follow-up: fix inverted sense in check, reset shortfall counter
ChangeLog@1.1986.3.1 +4 -0
[Bug 3666] avoid unlimited receive buffer allocation
- follow-up: fix inverted sense in check, reset shortfall counter
libntp/recvbuff.c@1.45 +5 -4
[Bug 3666] avoid unlimited receive buffer allocation
- follow-up: fix inverted sense in check, reset shortfall counter
ChangeSet@1.3912.2.1, 2020-07-18 08:33:48+02:00, perlinger@ntp.org
[Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
[Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
ChangeLog@1.1986.2.1 +5 -0
[Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
[Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
ntpq/ntpq.c@1.193 +80 -67
[Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
[Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
sntp/libevent/evdns.c@1.11 +1 -0
[Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
[Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
ChangeSet@1.3912.1.1, 2020-06-28 08:39:28+02:00, perlinger@ntp.org
[Bug 3672] fix biased selection in median cut
ChangeLog@1.1986.1.1 +3 -0
[Bug 3672] fix biased selection in median cut
ntpd/ntp_refclock.c@1.126.1.7 +7 -4
[Bug 3672] fix biased selection in median cut
ChangeSet@1.3913, 2020-06-24 19:39:47+02:00, perlinger@ntp.org
[Bug 3626] (SNTP) UTC offset calculation needs dst flag
ChangeLog@1.1987 +4 -0
[Bug 3626] (SNTP) UTC offset calculation needs dst flag
sntp/utilities.c@1.21 +15 -10
[Bug 3626] (SNTP) UTC offset calculation needs dst flag
ChangeSet@1.3912, 2020-06-23 02:27:53-07:00, ntpreleng@ntp-build.tal1.ntfo.org
typo
ChangeLog@1.1986 +0 -1
typo
ChangeSet@1.3911, 2020-06-23 02:22:19-07:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P15
TAG: NTP_4_2_8P15
ChangeLog@1.1985 +1 -0
NTP_4_2_8P15
ntpd/invoke-ntp.conf.texi@1.222 +1 -1
NTP_4_2_8P15
ntpd/invoke-ntp.keys.texi@1.207 +1 -1
NTP_4_2_8P15
ntpd/invoke-ntpd.texi@1.521 +2 -2
NTP_4_2_8P15
ntpd/ntp.conf.5man@1.256 +2 -2
NTP_4_2_8P15
ntpd/ntp.conf.5mdoc@1.256 +2 -2
NTP_4_2_8P15
ntpd/ntp.conf.html@1.204 +1 -1
NTP_4_2_8P15
ntpd/ntp.conf.man.in@1.256 +2 -2
NTP_4_2_8P15
ntpd/ntp.conf.mdoc.in@1.256 +2 -2
NTP_4_2_8P15
ntpd/ntp.keys.5man@1.241 +2 -2
NTP_4_2_8P15
ntpd/ntp.keys.5mdoc@1.241 +2 -2
NTP_4_2_8P15
ntpd/ntp.keys.html@1.202 +1 -1
NTP_4_2_8P15
ntpd/ntp.keys.man.in@1.241 +2 -2
NTP_4_2_8P15
ntpd/ntp.keys.mdoc.in@1.241 +2 -2
NTP_4_2_8P15
ntpd/ntpd-opts.c@1.544 +7 -7
NTP_4_2_8P15
ntpd/ntpd-opts.h@1.543 +3 -3
NTP_4_2_8P15
ntpd/ntpd.1ntpdman@1.350 +2 -2
NTP_4_2_8P15
ntpd/ntpd.1ntpdmdoc@1.350 +2 -2
NTP_4_2_8P15
ntpd/ntpd.html@1.195 +2 -2
NTP_4_2_8P15
ntpd/ntpd.man.in@1.350 +2 -2
NTP_4_2_8P15
ntpd/ntpd.mdoc.in@1.350 +2 -2
NTP_4_2_8P15
ntpdc/invoke-ntpdc.texi@1.518 +2 -2
NTP_4_2_8P15
ntpdc/ntpdc-opts.c@1.537 +7 -7
NTP_4_2_8P15
ntpdc/ntpdc-opts.h@1.536 +3 -3
NTP_4_2_8P15
ntpdc/ntpdc.1ntpdcman@1.349 +2 -2
NTP_4_2_8P15
ntpdc/ntpdc.1ntpdcmdoc@1.349 +2 -2
NTP_4_2_8P15
ntpdc/ntpdc.html@1.364 +2 -2
NTP_4_2_8P15
ntpdc/ntpdc.man.in@1.349 +2 -2
NTP_4_2_8P15
ntpdc/ntpdc.mdoc.in@1.349 +2 -2
NTP_4_2_8P15
ntpq/invoke-ntpq.texi@1.528 +2 -2
NTP_4_2_8P15
ntpq/ntpq-opts.c@1.546 +7 -7
NTP_4_2_8P15
ntpq/ntpq-opts.h@1.544 +3 -3
NTP_4_2_8P15
ntpq/ntpq.1ntpqman@1.356 +2 -2
NTP_4_2_8P15
ntpq/ntpq.1ntpqmdoc@1.356 +2 -2
NTP_4_2_8P15
ntpq/ntpq.html@1.195 +2 -2
NTP_4_2_8P15
ntpq/ntpq.man.in@1.356 +2 -2
NTP_4_2_8P15
ntpq/ntpq.mdoc.in@1.356 +2 -2
NTP_4_2_8P15
ntpsnmpd/invoke-ntpsnmpd.texi@1.520 +1 -1
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd-opts.c@1.539 +7 -7
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd-opts.h@1.538 +3 -3
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.349 +2 -2
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.349 +2 -2
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd.html@1.188 +1 -1
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd.man.in@1.349 +2 -2
NTP_4_2_8P15
ntpsnmpd/ntpsnmpd.mdoc.in@1.349 +2 -2
NTP_4_2_8P15
packageinfo.sh@1.546 +2 -2
NTP_4_2_8P15
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.110 +2 -2
NTP_4_2_8P15
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.111 +2 -2
NTP_4_2_8P15
scripts/calc_tickadj/calc_tickadj.html@1.111 +1 -1
NTP_4_2_8P15
scripts/calc_tickadj/calc_tickadj.man.in@1.109 +2 -2
NTP_4_2_8P15
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.111 +2 -2
NTP_4_2_8P15
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.114 +1 -1
NTP_4_2_8P15
scripts/invoke-plot_summary.texi@1.132 +2 -2
NTP_4_2_8P15
scripts/invoke-summary.texi@1.131 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/invoke-ntp-wait.texi@1.342 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait-opts@1.78 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.338 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.339 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait.html@1.360 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait.man.in@1.338 +2 -2
NTP_4_2_8P15
scripts/ntp-wait/ntp-wait.mdoc.in@1.339 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/invoke-ntpsweep.texi@1.129 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep-opts@1.80 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.117 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.117 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep.html@1.132 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep.man.in@1.117 +2 -2
NTP_4_2_8P15
scripts/ntpsweep/ntpsweep.mdoc.in@1.118 +2 -2
NTP_4_2_8P15
scripts/ntptrace/invoke-ntptrace.texi@1.131 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace-opts@1.80 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace.1ntptraceman@1.117 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace.1ntptracemdoc@1.118 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace.html@1.133 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace.man.in@1.117 +2 -2
NTP_4_2_8P15
scripts/ntptrace/ntptrace.mdoc.in@1.119 +2 -2
NTP_4_2_8P15
scripts/plot_summary-opts@1.81 +2 -2
NTP_4_2_8P15
scripts/plot_summary.1plot_summaryman@1.130 +2 -2
NTP_4_2_8P15
scripts/plot_summary.1plot_summarymdoc@1.130 +2 -2
NTP_4_2_8P15
scripts/plot_summary.html@1.135 +2 -2
NTP_4_2_8P15
scripts/plot_summary.man.in@1.130 +2 -2
NTP_4_2_8P15
scripts/plot_summary.mdoc.in@1.130 +2 -2
NTP_4_2_8P15
scripts/summary-opts@1.80 +2 -2
NTP_4_2_8P15
scripts/summary.1summaryman@1.129 +2 -2
NTP_4_2_8P15
scripts/summary.1summarymdoc@1.129 +2 -2
NTP_4_2_8P15
scripts/summary.html@1.134 +2 -2
NTP_4_2_8P15
scripts/summary.man.in@1.129 +2 -2
NTP_4_2_8P15
scripts/summary.mdoc.in@1.129 +2 -2
NTP_4_2_8P15
scripts/update-leap/invoke-update-leap.texi@1.30 +1 -1
NTP_4_2_8P15
scripts/update-leap/update-leap-opts@1.31 +2 -2
NTP_4_2_8P15
scripts/update-leap/update-leap.1update-leapman@1.30 +2 -2
NTP_4_2_8P15
scripts/update-leap/update-leap.1update-leapmdoc@1.30 +2 -2
NTP_4_2_8P15
scripts/update-leap/update-leap.html@1.31 +1 -1
NTP_4_2_8P15
scripts/update-leap/update-leap.man.in@1.30 +2 -2
NTP_4_2_8P15
scripts/update-leap/update-leap.mdoc.in@1.30 +2 -2
NTP_4_2_8P15
sntp/invoke-sntp.texi@1.520 +2 -2
NTP_4_2_8P15
sntp/sntp-opts.c@1.540 +7 -7
NTP_4_2_8P15
sntp/sntp-opts.h@1.538 +3 -3
NTP_4_2_8P15
sntp/sntp.1sntpman@1.355 +2 -2
NTP_4_2_8P15
sntp/sntp.1sntpmdoc@1.355 +2 -2
NTP_4_2_8P15
sntp/sntp.html@1.536 +2 -2
NTP_4_2_8P15
sntp/sntp.man.in@1.355 +2 -2
NTP_4_2_8P15
sntp/sntp.mdoc.in@1.355 +2 -2
NTP_4_2_8P15
util/invoke-ntp-keygen.texi@1.523 +2 -2
NTP_4_2_8P15
util/ntp-keygen-opts.c@1.542 +7 -7
NTP_4_2_8P15
util/ntp-keygen-opts.h@1.540 +3 -3
NTP_4_2_8P15
util/ntp-keygen.1ntp-keygenman@1.351 +2 -2
NTP_4_2_8P15
util/ntp-keygen.1ntp-keygenmdoc@1.351 +2 -2
NTP_4_2_8P15
util/ntp-keygen.html@1.196 +2 -2
NTP_4_2_8P15
util/ntp-keygen.man.in@1.351 +2 -2
NTP_4_2_8P15
util/ntp-keygen.mdoc.in@1.351 +2 -2
NTP_4_2_8P15
ChangeSet@1.3910, 2020-06-23 02:05:32-07:00, ntpreleng@ntp-build.tal1.ntfo.org
ntp-4.2.8p15
packageinfo.sh@1.545 +1 -1
ntp-4.2.8p15
ChangeSet@1.3908, 2020-06-09 07:12:27-04:00, stenn@psp-deb2.ntp.org
p15 updates
ChangeLog@1.1983 +1 -1
p15 updates
NEWS@1.214 +1 -1
p15 updates
ChangeSet@1.3896.1.22, 2020-06-09 07:09:18-04:00, stenn@psp-deb2.ntp.org
3670
ChangeLog@1.1974.1.14 +1 -1
3670
NEWS@1.205.1.7 +3 -1
3670
ChangeSet@1.3896.1.21, 2020-06-09 08:39:26+02:00, perlinger@ntp.org
[Bug 3670] Deleted statements come back
ChangeLog@1.1974.1.13 +3 -0
[Bug 3670] Deleted statements come back
ntpd/ntp_proto.c@1.437 +4 -19
[Bug 3670] Deleted statements come back
ChangeSet@1.3906, 2020-05-31 09:52:14+00:00, stenn@psp-deb1.ntp.org
update the expected releease date
NEWS@1.213 +1 -1
update the expected releease date
ChangeSet@1.3896.9.3, 2020-05-31 09:49:39+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS files for 3644
ChangeLog@1.1974.1.12 +1 -3
Update ChangeLog and NEWS files for 3644
NEWS@1.205.1.6 +2 -1
Update ChangeLog and NEWS files for 3644
ChangeSet@1.3896.9.2, 2020-05-31 09:47:05+00:00, stenn@psp-deb1.ntp.org
[Bug 3644]: Do we want to log an event in this case?
ntpd/ntp_timer.c@1.99 +2 -0
[Bug 3644]: Do we want to log an event in this case?
ChangeSet@1.3896.9.1, 2020-05-31 11:13:45+02:00, perlinger@ntp.org
[Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
ChangeLog@1.1974.1.11 +3 -0
[Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
include/ntp.h@1.233 +1 -1
[Bug 3644] Unsynchronized server [...] selected as candidate
- comment typo
ntpd/ntp_proto.c@1.436 +2 -3
[Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
ntpd/ntp_timer.c@1.98 +24 -9
[Bug 3644] Unsynchronized server (minsane not satisfied) selected as candidate
- according to DLM, we should go S16/UNSYNCED if we have no proper orphan config
ChangeSet@1.3896.1.19, 2020-05-25 12:42:46+02:00, nb241700@md2g3rcc.ad001.siemens.net
[Bug 3667] decodenetnum fails with numeric port
- windows compilation issues
libntp/decodenetnum.c@1.21 +1 -1
[Bug 3667] decodenetnum fails with numeric port
- windows compilation issues ('sa_family_t' is POSIX, now ANSI/MSVC)
libntp/strdup.c@1.11 +3 -3
[Bug 3667] decodenetnum fails with numeric port
- windows compilation issues (typo+cast in memchr replacement)
ports/winnt/include/config.h@1.117 +2 -0
[Bug 3667] decodenetnum fails with numeric port
- windows compilation issues (have memchr() and strnlen() in MSVC)
ChangeSet@1.3896.1.18, 2020-05-22 06:07:28+00:00, stenn@psp-deb1.ntp.org
Update NEWS file with 3667
NEWS@1.205.1.5 +3 -1
Update NEWS file with 3667
ChangeSet@1.3896.1.17, 2020-05-22 06:05:45+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1974.1.10 +2 -4
cleanup
ChangeSet@1.3896.1.16, 2020-05-22 06:04:57+00:00, stenn@psp-deb1.ntp.org
indentation tweaks
tests/libntp/sockaddrtest.c@1.5 +7 -7
indentation tweaks
ChangeSet@1.3896.1.15, 2020-05-20 09:44:15+02:00, perlinger@ntp.org
[Bug 3667] decodenetnum fails with numeric port
ChangeLog@1.1974.1.9 +4 -0
[Bug 3667] decodenetnum fails with numeric port
configure.ac@1.619 +1 -1
[Bug 3667] decodenetnum fails with numeric port
sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
include/l_stdlib.h@1.21 +9 -0
[Bug 3667] decodenetnum fails with numeric port
sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
libntp/decodenetnum.c@1.20 +123 -77
[Bug 3667] decodenetnum fails with numeric port
- rewrite in terms of inet_pton() and strtoul(), no getaddrinfo() any more
libntp/strdup.c@1.10 +29 -3
[Bug 3667] decodenetnum fails with numeric port
sidekick: implement strnlen() and memchr() for ancient hosts (pogo.udel.edu...)
tests/libntp/decodenetnum.c@1.13 +94 -6
[Bug 3667] decodenetnum fails with numeric port
- additional tests
tests/libntp/netof.c@1.10 +2 -0
Bug 3667 - decodenetnum fails with numeric port
- clear address buffers before use
tests/libntp/run-decodenetnum.c@1.14 +8 -2
[Bug 3667] decodenetnum fails with numeric port
- regenerated
tests/libntp/sockaddrtest.c@1.4 +2 -1
[Bug 3667] decodenetnum fails with numeric port
- include scope id in IPv6 compare
ChangeSet@1.3896.1.14, 2020-05-14 03:45:40-07:00, harlan@psp-at0.tal1.ntfo.org
Added 3660 to the NEWS file
NEWS@1.205.1.4 +3 -1
Added 3660 to the NEWS file
ChangeSet@1.3896.8.1, 2020-05-14 03:14:44-07:00, harlan@psp-at0.tal1.ntfo.org
[Bug 3660] Manycast orphan mode startup discovery problem
ChangeLog@1.1974.8.1 +5 -0
[Bug 3660] Manycast orphan mode startup discovery problem
ntpd/ntp_proto.c@1.432.2.1 +2 -1
[Bug 3660] Manycast orphan mode startup discovery problem
ChangeSet@1.3896.1.12, 2020-05-10 11:26:21+00:00, stenn@psp-deb1.ntp.org
Update NEWS
NEWS@1.205.1.3 +3 -1
Update NEWS
ChangeSet@1.3896.1.11, 2020-05-10 09:44:50+00:00, stenn@psp-deb1.ntp.org
Merge cleanup
ChangeLog@1.1974.1.7 +2 -4
Merge cleanup
ChangeSet@1.3896.1.10, 2020-05-09 08:20:44+02:00, perlinger@ntp.org
[Bug 3666] avoid unlimited receive buffer allocation
BitKeeper/etc/ignore@1.95 +1 -0
[Bug 3666] avoid unlimited receive buffer allocation
- (sidekick) ignore the '.vs' directory of VS2017 & above
ChangeLog@1.1974.1.6 +4 -0
[Bug 3666] avoid unlimited receive buffer allocation
include/recvbuff.h@1.28 +23 -7
[Bug 3666] avoid unlimited receive buffer allocation
- buffer count limit is 4096 now, always enforced
- API change for urgent buffers
lib/isc/win32/include/isc/int.h@1.5 +3 -1
[Bug 3666] avoid unlimited receive buffer allocation
- (sidekick) define standard reserved macros only if not yet defined!
libntp/recvbuff.c@1.44 +131 -73
[Bug 3666] avoid unlimited receive buffer allocation
- don't exceed RECV_TOOMANY allocated buffers
- keep emergency reserve for clocks
libntp/timexsup.c@1.3 +3 -4
[bug 3666] avoid unlimited receive buffer allocation
- (sidekick) fix some warnings of clang on lp64 targets
ntpd/ntp_io.c@1.432 +23 -13
[Bug 3666] avoid unlimited receive buffer allocation
- support urgent buffer reserve for refclocks
ntpd/refclock_parse.c@1.89 +1 -1
[Bug 3666] avoid unlimited receive buffer allocation
- support urgent buffer reserve for refclocks
ntpdate/ntpdate.c@1.106 +1 -1
[Bug 3666] avoid unlimited receive buffer allocation
- get_free_recv_buffer() API change
ports/winnt/libntp/messages.h@1.3 +1 -1
[Bug 3666] avoid unlimited receive buffer allocation
- (sidekick) regenerated
ports/winnt/ntpd/ntp_iocompletionport.c@1.81 +63 -38
[Bug 3666] avoid unlimited receive buffer allocation
- reuse last buffer ASAP if no new buffer available
- typos and some internal renaming
tests/libntp/recvbuff.c@1.8 +2 -2
[Bug 3666] avoid unlimited receive buffer allocation
- internal API changes
ChangeSet@1.3896.1.9, 2020-05-05 03:53:50+00:00, stenn@psp-deb1.ntp.org
Update NEWS with 3639
NEWS@1.205.1.2 +3 -1
Update NEWS with 3639
ChangeSet@1.3896.1.7, 2020-04-20 08:14:39+00:00, stenn@psp-deb1.ntp.org
NEWS and bug 3664
NEWS@1.205.1.1 +2 -1
NEWS and bug 3664
ChangeSet@1.3896.7.1, 2020-04-16 17:50:44+02:00, burnicki@psp-deb1.ntp.org
Enable openSSL CMAC support on Windows.
ChangeLog@1.1974.7.1 +2 -0
Enable openSSL CMAC support on Windows.
ports/winnt/include/config.h@1.116 +2 -0
Enable openSSL CMAC support on Windows.
ChangeSet@1.3899, 2020-04-11 09:59:23+00:00, stenn@psp-deb1.ntp.org
update
NEWS@1.206 +1 -0
update
ChangeSet@1.3896.1.5, 2020-04-11 09:35:19+00:00, stenn@psp-deb1.ntp.org
update
NEWS@1.205 +2 -2
update
ChangeSet@1.3896.1.3, 2020-04-11 08:10:59+00:00, stenn@psp-deb1.ntp.org
update
NEWS@1.204 +3 -1
update
ChangeSet@1.3896.2.3, 2020-04-11 07:21:36+00:00, stenn@psp-deb1.ntp.org
update
NEWS@1.203 +1 -0
update
ChangeSet@1.3896.3.3, 2020-04-11 07:12:47+00:00, stenn@psp-deb1.ntp.org
update
NEWS@1.202 +22 -0
update
ChangeSet@1.3896.6.4, 2020-04-07 17:51:25+02:00, burnicki@psp-deb1.ntp.org
[Bug 3662] Fix build errors on Windows with VS2008.
ChangeLog@1.1974.6.1 +2 -0
[Bug 3662] Fix build errors on Windows with VS2008.
ChangeSet@1.3896.6.3, 2020-04-07 17:49:08+02:00, burnicki@psp-deb1.ntp.org
Fix unused variable warning in ntpdate.c.
ntpdate/ntpdate.c@1.105 +2 -1
Fix unused variable warning.
ChangeSet@1.3896.6.2, 2020-04-07 17:48:25+02:00, burnicki@psp-deb1.ntp.org
Fix compiling refclock_palisade.c
Don't have variable declarations after code.
ntpd/refclock_palisade.c@1.46.1.3 +25 -23
Don't have variable declarations after code.
ChangeSet@1.3896.6.1, 2020-04-07 17:47:02+02:00, burnicki@psp-deb1.ntp.org
Fix prototype in ntpd/refclock_nmea.c
ntpd/refclock_nmea.c@1.79.1.6 +1 -1
Fix prototype in ntpd/refclock_nmea.c
ChangeSet@1.3896.5.1, 2020-04-05 10:10:12+02:00, perlinger@ntp.org
[Bug 3646] Avoid sync with unsync orphan
ChangeLog@1.1974.5.1 +4 -0
[Bug 3646] Avoid sync with unsync orphan
ntpd/ntp_proto.c@1.432.1.1 +21 -0
[Bug 3646] Avoid sync with unsync orphan
ChangeSet@1.3896.4.1, 2020-04-05 09:53:25+02:00, perlinger@ntp.org
[Bug 3653] Refclock jitter RMS calculation
ChangeLog@1.1974.4.1 +4 -0
[Bug 3653] Refclock jitter RMS calculation
ntpd/ntp_refclock.c@1.126.1.6 +36 -36
[Bug 3653] Refclock jitter RMS calculation
ChangeSet@1.3896.3.1, 2020-04-04 08:57:51+02:00, perlinger@ntp.org
[Bug 3655] ntpdc memstats hash counts
ChangeLog@1.1974.3.1 +4 -0
[Bug 3655] ntpdc memstats hash counts
ntpd/ntp_request.c@1.132 +1 -1
[Bug 3655] ntpdc memstats hash counts
ChangeSet@1.3896.2.1, 2020-04-04 08:48:51+02:00, perlinger@ntp.org
[Bug 3657] Wrong "Autokey group mismatch" debug message
ChangeLog@1.1974.2.1 +3 -0
[Bug 3657] Wrong "Autokey group mismatch" debug message
ntpd/ntp_proto.c@1.433 +3 -2
[Bug 3657] Wrong "Autokey group mismatch" debug message
ChangeSet@1.3896.1.1, 2020-04-04 08:38:06+02:00, perlinger@ntp.org
[Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
ChangeLog@1.1974.1.1 +3 -0
[Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
include/ntp_config.h@1.90 +0 -10
[Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
- move global declaration of 'psl' from header to static declaration in code
ntpd/ntp_config.c@1.376 +10 -0
[Bug 3659] ntp-4.2.8p14 fails to build <perlinger@ntp.org>
- move global declaration of 'psl' from header to static declaration in code
ChangeSet@1.3897, 2020-04-01 16:49:43+02:00, perlinger@ntp.org
[Bug 3661] memory leak with AES128CMAC keys
ChangeLog@1.1975 +3 -0
[Bug 3661] memory leak with AES128CMAC keys
libntp/a_md5encrypt.c@1.52 +1 -1
[Bug 3661] memory leak with AES128CMAC keys
- free context, not just cleaning up internally
sntp/crypto.c@1.40 +2 -1
[Bug 3661] memory leak with AES128CMAC keys
- free context, not just cleaning up internally
ChangeSet@1.3896, 2020-03-03 17:42:43-08:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P14
TAG: NTP_4_2_8P14
ChangeLog@1.1974 +1 -1
NTP_4_2_8P14
ntpd/invoke-ntp.conf.texi@1.221 +1 -1
NTP_4_2_8P14
ntpd/invoke-ntp.keys.texi@1.206 +1 -1
NTP_4_2_8P14
ntpd/invoke-ntpd.texi@1.520 +2 -2
NTP_4_2_8P14
ntpd/ntp.conf.5man@1.255 +2 -2
NTP_4_2_8P14
ntpd/ntp.conf.5mdoc@1.255 +1 -1
NTP_4_2_8P14
ntpd/ntp.conf.html@1.203 +1 -1
NTP_4_2_8P14
ntpd/ntp.conf.man.in@1.255 +2 -2
NTP_4_2_8P14
ntpd/ntp.conf.mdoc.in@1.255 +1 -1
NTP_4_2_8P14
ntpd/ntp.keys.5man@1.240 +2 -2
NTP_4_2_8P14
ntpd/ntp.keys.5mdoc@1.240 +1 -1
NTP_4_2_8P14
ntpd/ntp.keys.html@1.201 +1 -1
NTP_4_2_8P14
ntpd/ntp.keys.man.in@1.240 +2 -2
NTP_4_2_8P14
ntpd/ntp.keys.mdoc.in@1.240 +1 -1
NTP_4_2_8P14
ntpd/ntpd-opts.c@1.543 +7 -7
NTP_4_2_8P14
ntpd/ntpd-opts.h@1.542 +3 -3
NTP_4_2_8P14
ntpd/ntpd.1ntpdman@1.349 +2 -2
NTP_4_2_8P14
ntpd/ntpd.1ntpdmdoc@1.349 +1 -1
NTP_4_2_8P14
ntpd/ntpd.html@1.194 +2 -2
NTP_4_2_8P14
ntpd/ntpd.man.in@1.349 +2 -2
NTP_4_2_8P14
ntpd/ntpd.mdoc.in@1.349 +1 -1
NTP_4_2_8P14
ntpdc/invoke-ntpdc.texi@1.517 +2 -2
NTP_4_2_8P14
ntpdc/ntpdc-opts.c@1.536 +7 -7
NTP_4_2_8P14
ntpdc/ntpdc-opts.h@1.535 +3 -3
NTP_4_2_8P14
ntpdc/ntpdc.1ntpdcman@1.348 +2 -2
NTP_4_2_8P14
ntpdc/ntpdc.1ntpdcmdoc@1.348 +1 -1
NTP_4_2_8P14
ntpdc/ntpdc.html@1.363 +2 -2
NTP_4_2_8P14
ntpdc/ntpdc.man.in@1.348 +2 -2
NTP_4_2_8P14
ntpdc/ntpdc.mdoc.in@1.348 +1 -1
NTP_4_2_8P14
ntpq/invoke-ntpq.texi@1.527 +2 -2
NTP_4_2_8P14
ntpq/ntpq-opts.c@1.545 +7 -7
NTP_4_2_8P14
ntpq/ntpq-opts.h@1.543 +3 -3
NTP_4_2_8P14
ntpq/ntpq.1ntpqman@1.355 +2 -2
NTP_4_2_8P14
ntpq/ntpq.1ntpqmdoc@1.355 +1 -1
NTP_4_2_8P14
ntpq/ntpq.html@1.194 +2 -2
NTP_4_2_8P14
ntpq/ntpq.man.in@1.355 +2 -2
NTP_4_2_8P14
ntpq/ntpq.mdoc.in@1.355 +1 -1
NTP_4_2_8P14
ntpsnmpd/invoke-ntpsnmpd.texi@1.519 +1 -1
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd-opts.c@1.538 +7 -7
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd-opts.h@1.537 +3 -3
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.348 +2 -2
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.348 +1 -1
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd.html@1.187 +1 -1
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd.man.in@1.348 +2 -2
NTP_4_2_8P14
ntpsnmpd/ntpsnmpd.mdoc.in@1.348 +1 -1
NTP_4_2_8P14
packageinfo.sh@1.544 +1 -1
NTP_4_2_8P14
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.109 +2 -2
NTP_4_2_8P14
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.110 +1 -1
NTP_4_2_8P14
scripts/calc_tickadj/calc_tickadj.html@1.110 +1 -1
NTP_4_2_8P14
scripts/calc_tickadj/calc_tickadj.man.in@1.108 +2 -2
NTP_4_2_8P14
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.110 +1 -1
NTP_4_2_8P14
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.113 +1 -1
NTP_4_2_8P14
scripts/invoke-plot_summary.texi@1.131 +2 -2
NTP_4_2_8P14
scripts/invoke-summary.texi@1.130 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/invoke-ntp-wait.texi@1.341 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait-opts@1.77 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.337 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.338 +1 -1
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait.html@1.359 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait.man.in@1.337 +2 -2
NTP_4_2_8P14
scripts/ntp-wait/ntp-wait.mdoc.in@1.338 +1 -1
NTP_4_2_8P14
scripts/ntpsweep/invoke-ntpsweep.texi@1.128 +2 -2
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep-opts@1.79 +2 -2
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.116 +2 -2
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.116 +1 -1
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep.html@1.131 +2 -2
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep.man.in@1.116 +2 -2
NTP_4_2_8P14
scripts/ntpsweep/ntpsweep.mdoc.in@1.117 +1 -1
NTP_4_2_8P14
scripts/ntptrace/invoke-ntptrace.texi@1.130 +2 -2
NTP_4_2_8P14
scripts/ntptrace/ntptrace-opts@1.79 +2 -2
NTP_4_2_8P14
scripts/ntptrace/ntptrace.1ntptraceman@1.116 +2 -2
NTP_4_2_8P14
scripts/ntptrace/ntptrace.1ntptracemdoc@1.117 +1 -1
NTP_4_2_8P14
scripts/ntptrace/ntptrace.html@1.132 +2 -2
NTP_4_2_8P14
scripts/ntptrace/ntptrace.man.in@1.116 +2 -2
NTP_4_2_8P14
scripts/ntptrace/ntptrace.mdoc.in@1.118 +1 -1
NTP_4_2_8P14
scripts/plot_summary-opts@1.80 +2 -2
NTP_4_2_8P14
scripts/plot_summary.1plot_summaryman@1.129 +2 -2
NTP_4_2_8P14
scripts/plot_summary.1plot_summarymdoc@1.129 +1 -1
NTP_4_2_8P14
scripts/plot_summary.html@1.134 +2 -2
NTP_4_2_8P14
scripts/plot_summary.man.in@1.129 +2 -2
NTP_4_2_8P14
scripts/plot_summary.mdoc.in@1.129 +1 -1
NTP_4_2_8P14
scripts/summary-opts@1.79 +2 -2
NTP_4_2_8P14
scripts/summary.1summaryman@1.128 +2 -2
NTP_4_2_8P14
scripts/summary.1summarymdoc@1.128 +1 -1
NTP_4_2_8P14
scripts/summary.html@1.133 +2 -2
NTP_4_2_8P14
scripts/summary.man.in@1.128 +2 -2
NTP_4_2_8P14
scripts/summary.mdoc.in@1.128 +1 -1
NTP_4_2_8P14
scripts/update-leap/invoke-update-leap.texi@1.29 +1 -1
NTP_4_2_8P14
scripts/update-leap/update-leap-opts@1.30 +2 -2
NTP_4_2_8P14
scripts/update-leap/update-leap.1update-leapman@1.29 +2 -2
NTP_4_2_8P14
scripts/update-leap/update-leap.1update-leapmdoc@1.29 +1 -1
NTP_4_2_8P14
scripts/update-leap/update-leap.html@1.30 +1 -1
NTP_4_2_8P14
scripts/update-leap/update-leap.man.in@1.29 +2 -2
NTP_4_2_8P14
scripts/update-leap/update-leap.mdoc.in@1.29 +1 -1
NTP_4_2_8P14
sntp/invoke-sntp.texi@1.519 +2 -2
NTP_4_2_8P14
sntp/sntp-opts.c@1.539 +7 -7
NTP_4_2_8P14
sntp/sntp-opts.h@1.537 +3 -3
NTP_4_2_8P14
sntp/sntp.1sntpman@1.354 +2 -2
NTP_4_2_8P14
sntp/sntp.1sntpmdoc@1.354 +1 -1
NTP_4_2_8P14
sntp/sntp.html@1.535 +2 -2
NTP_4_2_8P14
sntp/sntp.man.in@1.354 +2 -2
NTP_4_2_8P14
sntp/sntp.mdoc.in@1.354 +1 -1
NTP_4_2_8P14
util/invoke-ntp-keygen.texi@1.522 +2 -2
NTP_4_2_8P14
util/ntp-keygen-opts.c@1.541 +7 -7
NTP_4_2_8P14
util/ntp-keygen-opts.h@1.539 +3 -3
NTP_4_2_8P14
util/ntp-keygen.1ntp-keygenman@1.350 +2 -2
NTP_4_2_8P14
util/ntp-keygen.1ntp-keygenmdoc@1.350 +1 -1
NTP_4_2_8P14
util/ntp-keygen.html@1.195 +2 -2
NTP_4_2_8P14
util/ntp-keygen.man.in@1.350 +2 -2
NTP_4_2_8P14
util/ntp-keygen.mdoc.in@1.350 +1 -1
NTP_4_2_8P14
ChangeSet@1.3895, 2020-03-03 17:09:57-08:00, ntpreleng@ntp-build.tal1.ntfo.org
quiet some debug messages
ntpd/ntp_config.c@1.375 +0 -2
quiet some debug messages
ntpd/ntp_peer.c@1.166 +2 -0
quiet some debug messages
ChangeSet@1.3894, 2020-03-03 16:49:54-08:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P13
TAG: NTP_4_2_8P13
ChangeLog@1.1973 +1 -0
NTP_4_2_8P13
ntpd/invoke-ntp.conf.texi@1.220 +31 -7
NTP_4_2_8P13
ntpd/invoke-ntp.keys.texi@1.205 +1 -1
NTP_4_2_8P13
ntpd/invoke-ntpd.texi@1.519 +3 -3
NTP_4_2_8P13
ntpd/ntp.conf.5man@1.254 +34 -9
NTP_4_2_8P13
ntpd/ntp.conf.5mdoc@1.254 +41 -6
NTP_4_2_8P13
ntpd/ntp.conf.html@1.202 +33 -7
NTP_4_2_8P13
ntpd/ntp.conf.man.in@1.254 +34 -9
NTP_4_2_8P13
ntpd/ntp.conf.mdoc.in@1.254 +41 -6
NTP_4_2_8P13
ntpd/ntp.keys.5man@1.239 +2 -2
NTP_4_2_8P13
ntpd/ntp.keys.5mdoc@1.239 +3 -3
NTP_4_2_8P13
ntpd/ntp.keys.man.in@1.239 +2 -2
NTP_4_2_8P13
ntpd/ntp.keys.mdoc.in@1.239 +3 -3
NTP_4_2_8P13
ntpd/ntpd-opts.c@1.542 +2 -2
NTP_4_2_8P13
ntpd/ntpd-opts.h@1.541 +3 -3
NTP_4_2_8P13
ntpd/ntpd.1ntpdman@1.348 +2 -2
NTP_4_2_8P13
ntpd/ntpd.1ntpdmdoc@1.348 +2 -2
NTP_4_2_8P13
ntpd/ntpd.man.in@1.348 +2 -2
NTP_4_2_8P13
ntpd/ntpd.mdoc.in@1.348 +2 -2
NTP_4_2_8P13
ntpdc/invoke-ntpdc.texi@1.516 +1 -1
NTP_4_2_8P13
ntpdc/ntpdc-opts.c@1.535 +2 -2
NTP_4_2_8P13
ntpdc/ntpdc-opts.h@1.534 +3 -3
NTP_4_2_8P13
ntpdc/ntpdc.1ntpdcman@1.347 +2 -2
NTP_4_2_8P13
ntpdc/ntpdc.1ntpdcmdoc@1.347 +2 -2
NTP_4_2_8P13
ntpdc/ntpdc.html@1.362 +408 -353
NTP_4_2_8P13
ntpdc/ntpdc.man.in@1.347 +2 -2
NTP_4_2_8P13
ntpdc/ntpdc.mdoc.in@1.347 +2 -2
NTP_4_2_8P13
ntpq/invoke-ntpq.texi@1.526 +1 -1
NTP_4_2_8P13
ntpq/ntpq-opts.c@1.544 +2 -2
NTP_4_2_8P13
ntpq/ntpq-opts.h@1.542 +3 -3
NTP_4_2_8P13
ntpq/ntpq.1ntpqman@1.354 +2 -2
NTP_4_2_8P13
ntpq/ntpq.1ntpqmdoc@1.354 +2 -2
NTP_4_2_8P13
ntpq/ntpq.html@1.193 +1 -1
NTP_4_2_8P13
ntpq/ntpq.man.in@1.354 +2 -2
NTP_4_2_8P13
ntpq/ntpq.mdoc.in@1.354 +2 -2
NTP_4_2_8P13
ntpsnmpd/invoke-ntpsnmpd.texi@1.518 +1 -1
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd-opts.c@1.537 +2 -2
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd-opts.h@1.536 +3 -3
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.347 +2 -2
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.347 +2 -2
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd.man.in@1.347 +2 -2
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd.mdoc.in@1.347 +2 -2
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.108 +2 -2
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.109 +2 -2
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj.html@1.109 +172 -128
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj.man.in@1.107 +2 -2
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.109 +2 -2
NTP_4_2_8P13
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.112 +2 -2
NTP_4_2_8P13
scripts/invoke-plot_summary.texi@1.130 +2 -2
NTP_4_2_8P13
scripts/invoke-summary.texi@1.129 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/invoke-ntp-wait.texi@1.340 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait-opts@1.76 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.336 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.337 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait.html@1.358 +181 -152
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait.man.in@1.336 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait.mdoc.in@1.337 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/invoke-ntpsweep.texi@1.127 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep-opts@1.78 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.115 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.115 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep.html@1.130 +188 -152
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep.man.in@1.115 +2 -2
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep.mdoc.in@1.116 +2 -2
NTP_4_2_8P13
scripts/ntptrace/invoke-ntptrace.texi@1.129 +2 -2
NTP_4_2_8P13
scripts/ntptrace/ntptrace-opts@1.78 +2 -2
NTP_4_2_8P13
scripts/ntptrace/ntptrace.1ntptraceman@1.115 +2 -2
NTP_4_2_8P13
scripts/ntptrace/ntptrace.1ntptracemdoc@1.116 +2 -2
NTP_4_2_8P13
scripts/ntptrace/ntptrace.html@1.131 +179 -129
NTP_4_2_8P13
scripts/ntptrace/ntptrace.man.in@1.115 +2 -2
NTP_4_2_8P13
scripts/ntptrace/ntptrace.mdoc.in@1.117 +2 -2
NTP_4_2_8P13
scripts/plot_summary-opts@1.79 +2 -2
NTP_4_2_8P13
scripts/plot_summary.1plot_summaryman@1.128 +2 -2
NTP_4_2_8P13
scripts/plot_summary.1plot_summarymdoc@1.128 +2 -2
NTP_4_2_8P13
scripts/plot_summary.html@1.133 +203 -161
NTP_4_2_8P13
scripts/plot_summary.man.in@1.128 +2 -2
NTP_4_2_8P13
scripts/plot_summary.mdoc.in@1.128 +2 -2
NTP_4_2_8P13
scripts/summary-opts@1.78 +2 -2
NTP_4_2_8P13
scripts/summary.1summaryman@1.127 +2 -2
NTP_4_2_8P13
scripts/summary.1summarymdoc@1.127 +2 -2
NTP_4_2_8P13
scripts/summary.html@1.132 +184 -136
NTP_4_2_8P13
scripts/summary.man.in@1.127 +2 -2
NTP_4_2_8P13
scripts/summary.mdoc.in@1.127 +2 -2
NTP_4_2_8P13
scripts/update-leap/invoke-update-leap.texi@1.28 +1 -1
NTP_4_2_8P13
scripts/update-leap/update-leap-opts@1.29 +2 -2
NTP_4_2_8P13
scripts/update-leap/update-leap.1update-leapman@1.28 +2 -2
NTP_4_2_8P13
scripts/update-leap/update-leap.1update-leapmdoc@1.28 +2 -2
NTP_4_2_8P13
scripts/update-leap/update-leap.html@1.29 +1 -1
NTP_4_2_8P13
scripts/update-leap/update-leap.man.in@1.28 +2 -2
NTP_4_2_8P13
scripts/update-leap/update-leap.mdoc.in@1.28 +2 -2
NTP_4_2_8P13
sntp/invoke-sntp.texi@1.518 +1 -1
NTP_4_2_8P13
sntp/sntp-opts.c@1.538 +2 -2
NTP_4_2_8P13
sntp/sntp-opts.h@1.536 +3 -3
NTP_4_2_8P13
sntp/sntp.1sntpman@1.353 +2 -2
NTP_4_2_8P13
sntp/sntp.1sntpmdoc@1.353 +2 -2
NTP_4_2_8P13
sntp/sntp.html@1.534 +472 -418
NTP_4_2_8P13
sntp/sntp.man.in@1.353 +2 -2
NTP_4_2_8P13
sntp/sntp.mdoc.in@1.353 +2 -2
NTP_4_2_8P13
util/invoke-ntp-keygen.texi@1.521 +1 -1
NTP_4_2_8P13
util/ntp-keygen-opts.c@1.540 +2 -2
NTP_4_2_8P13
util/ntp-keygen-opts.h@1.538 +3 -3
NTP_4_2_8P13
util/ntp-keygen.1ntp-keygenman@1.349 +2 -2
NTP_4_2_8P13
util/ntp-keygen.1ntp-keygenmdoc@1.349 +2 -2
NTP_4_2_8P13
util/ntp-keygen.html@1.194 +1 -1
NTP_4_2_8P13
util/ntp-keygen.man.in@1.349 +2 -2
NTP_4_2_8P13
util/ntp-keygen.mdoc.in@1.349 +2 -2
NTP_4_2_8P13
ChangeSet@1.3893, 2020-03-03 16:25:14-08:00, ntpreleng@ntp-build.tal1.ntfo.org
Replace line with head -1
scripts/build/addChangeLogTag@1.6 +1 -1
Replace line with head -1
ChangeSet@1.3892, 2020-03-03 16:05:38-08:00, ntpreleng@ntp-build.tal1.ntfo.org
provide get_pollskew() for simulator
ntpd/ntp_config.c@1.374 +2 -2
provide get_pollskew() for simulator
ChangeSet@1.3844.25.1, 2020-03-03 03:30:13-08:00, ntpreleng@ntp-build.tal1.ntfo.org
NTP_4_2_8P13
TAG: NTP_4_2_8P13 (currently on 1.3894)
BitKeeper/triggers/2mirrors@1.11 +6 -2
NTP_4_2_8P13
ntpd/ntpd-opts.c@1.539.1.1 +1 -1
NTP_4_2_8P13
ntpd/ntpd-opts.h@1.538.1.1 +1 -1
NTP_4_2_8P13
ntpd/ntpd.html@1.193 +3 -3
NTP_4_2_8P13
ntpd/ntpdsim-opts.c@1.29 +372 -340
NTP_4_2_8P13
ntpd/ntpdsim-opts.h@1.29 +44 -37
NTP_4_2_8P13
ntpdc/ntpdc-opts.c@1.532.1.1 +1 -1
NTP_4_2_8P13
ntpdc/ntpdc-opts.h@1.531.1.1 +1 -1
NTP_4_2_8P13
ntpq/ntpq-opts.c@1.541.1.1 +1 -1
NTP_4_2_8P13
ntpq/ntpq-opts.h@1.539.1.1 +1 -1
NTP_4_2_8P13
ntpq/ntpq.html@1.192 +1 -1
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd-opts.c@1.534.1.1 +1 -1
NTP_4_2_8P13
ntpsnmpd/ntpsnmpd-opts.h@1.533.1.1 +1 -1
NTP_4_2_8P13
scripts/calc_tickadj/calc_tickadj-opts@1.10 +2 -2
NTP_4_2_8P13
scripts/ntp-wait/invoke-ntp-wait.texi@1.337.1.1 +1 -1
NTP_4_2_8P13
scripts/ntp-wait/ntp-wait-opts@1.73.1.1 +1 -1
NTP_4_2_8P13
scripts/ntpsweep/ntpsweep-opts@1.75.1.1 +1 -1
NTP_4_2_8P13
scripts/ntptrace/invoke-ntptrace.texi@1.126.1.1 +1 -1
NTP_4_2_8P13
scripts/ntptrace/ntptrace-opts@1.75.1.1 +1 -1
NTP_4_2_8P13
scripts/plot_summary-opts@1.76.1.1 +1 -1
NTP_4_2_8P13
scripts/summary-opts@1.75.1.1 +1 -1
NTP_4_2_8P13
scripts/update-leap/update-leap-opts@1.26.1.1 +1 -1
NTP_4_2_8P13
sntp/sntp-opts.c@1.535.1.1 +1 -1
NTP_4_2_8P13
sntp/sntp-opts.h@1.533.1.1 +1 -1
NTP_4_2_8P13
util/ntp-keygen-opts.c@1.537.1.1 +1 -1
NTP_4_2_8P13
util/ntp-keygen-opts.h@1.535.1.1 +1 -1
NTP_4_2_8P13
util/ntp-keygen.html@1.193 +1 -1
NTP_4_2_8P13
ChangeSet@1.3888, 2020-03-03 07:26:56+00:00, stenn@psp-deb1.ntp.org
cleanup
NEWS@1.197.1.3 +3 -2
cleanup
ChangeSet@1.3887, 2020-02-18 05:11:26+00:00, stenn@psp-deb1.ntp.org
Cleanup distcheck psl* files
ntpd/Makefile.am@1.138 +11 -0
Cleanup distcheck psl* files
ChangeSet@1.3886, 2020-02-18 05:10:35+00:00, stenn@psp-deb1.ntp.org
Distribute ntp_calgps.h
include/Makefile.am@1.58 +1 -0
Distribute ntp_calgps.h
ChangeSet@1.3885, 2020-02-18 03:32:51+00:00, stenn@psp-deb1.ntp.org
Update the NEWS file for p14
NEWS@1.197.1.2 +107 -0
Update the NEWS file for p14
ChangeSet@1.3884, 2020-02-17 11:05:46+00:00, stenn@psp-deb1.ntp.org
merge cleanup
ntpd/ntp_proto.c@1.432 +1 -1
merge cleanup
ChangeSet@1.3881, 2020-02-17 08:50:00+00:00, stenn@psp-deb1.ntp.org
update
ntpd/ntp_keyword.h@1.38 +545 -539
update
ChangeSet@1.3880, 2020-02-17 08:48:45+00:00, stenn@psp-deb1.ntp.org
Startp logging improvements.
Bug3596.
html/accopt.html@1.48 +7 -2
cleanup.
bug3596: document 'serverresponse fuzz'
html/confopt.html@1.64.1.1 +22 -9
Cleanup.
Bug 3596: document xmtnonce
html/miscopt.html@1.93 +19 -1
Cleanup.
bug3596: document pollskewlist
include/Makefile.am@1.57 +1 -0
pollskew upodates
include/ntp.h@1.232 +8 -2
bug3596 chagnes:
- srvfuzrft patches
- pollskew updates
- xmtnonce
include/ntp_config.h@1.89 +27 -20
bug3596 updates:
- pollskewlist
- srvfuzrft patches
include/ntp_psl.h@1.1 +17 -0
BitKeeper file include/ntp_psl.h
---
bug3596
include/ntp_psl.h@1.0 +0 -0
include/ntp_request.h@1.54 +2 -1
srvfuzrft patches
include/ntp_stdlib.h@1.86.1.2 +1 -1
randomizepoll/server response fuzz reftime fixes
include/ntpd.h@1.207 +1 -1
bug3596 cleanup
libntp/statestr.c@1.31 +12 -5
bug3596 srvrspfuz fixes
ntpd/Makefile.am@1.137 +37 -7
bug3596 pollskewlist changes
ntpd/complete.conf.in@1.37 +4 -2
bug3596: randompoll, pollskew xmtnonce
ntpd/keyword-gen-utd@1.35 +1 -1
Keyword table updates
ntpd/keyword-gen.c@1.42 +3 -3
bug3596: serverresponse fuzz, pollskewlist, xmtnonce
ntpd/ntp.conf.def@1.34 +40 -4
Cleanup.
bug3596: xmtnonce, serverresponse fuzz, pollskewlist,
ntpd/ntp_config.c@1.373 +250 -26
bug3596: serverresponse fuzz, pollskewlist, xmtnonce
ntpd/ntp_loopfilter.c@1.195 +1 -1
pollskew upodates
ntpd/ntp_parser.c@1.117 +1298 -1283
bug3596
ntpd/ntp_parser.h@1.79 +331 -334
bug3596
ntpd/ntp_parser.y@1.105 +49 -55
bug3596: serverresponse fuzz, pollskewlist, xmtnonce
ntpd/ntp_proto.c@1.427.1.2 +183 -36
bug3596: pollskewlist, server response fuzz, xmtnonce
ntpd/ntp_refclock.c@1.126.1.5 +1 -1
pollskew upodates
ntpd/ntp_request.c@1.131 +2 -2
randomizepoll/server response fuzz reftime fixes
---
srvfuzrft patches
---
bug3596 cleanup
ntpd/ntp_restrict.c@1.48 +5 -4
bug3596: pollskewlist, server response fuzz
ntpd/ntp_scanner.c@1.52 +16 -7
bug3596: serverresponse fuzz
ntpd/ntpd.c@1.185 +8 -1
startup logging improvements
ntpd/psl0.conf@1.1 +1 -0
BitKeeper file ntpd/psl0.conf
---
pollskewlist changes
ntpd/psl0.conf@1.0 +0 -0
ntpd/psl1.conf@1.1 +1 -0
BitKeeper file ntpd/psl1.conf
---
pollskewlist changes
ntpd/psl1.conf@1.0 +0 -0
ntpd/psl2.conf@1.1 +1 -0
BitKeeper file ntpd/psl2.conf
---
pollskewlist changes
ntpd/psl2.conf@1.0 +0 -0
ntpdc/layout.std@1.16 +8 -7
srvfuzrft patches
sntp/crypto.c@1.39 +2 -0
cleanup
tests/ntpd/t-ntp_scanner.c@1.9 +1 -1
Provide more detail on unrecognized config file parser tokens
ChangeSet@1.3879, 2020-02-17 08:11:42+00:00, stenn@psp-deb1.ntp.org
updates
ChangeLog@1.1968.35.1 +2 -0
ChangeSet@1.3877.1.2, 2020-02-08 23:00:11+00:00, stenn@psp-deb1.ntp.org
html/confopt.html cleanup
ChangeLog@1.1968.1.28 +1 -0
html/confopt.html cleanup
html/confopt.html@1.65 +83 -9
html/confopt.html cleanup
ChangeSet@1.3877.1.1, 2020-02-04 23:58:57+00:00, stenn@psp-deb1.ntp.org
Update the copyright year
ChangeLog@1.1968.1.27 +1 -0
Update the copyright year
html/copyright.html@1.69 +2 -3
Update the copyright year
ntpd/invoke-ntp.conf.texi@1.219 +1 -1
Update the copyright year
ntpd/invoke-ntp.keys.texi@1.204 +1 -1
Update the copyright year
ntpd/invoke-ntpd.texi@1.518 +3 -3
Update the copyright year
ntpd/ntp.conf.5man@1.253 +3 -3
Update the copyright year
ntpd/ntp.conf.5mdoc@1.253 +3 -3
Update the copyright year
ntpd/ntp.conf.man.in@1.253 +3 -3
Update the copyright year
ntpd/ntp.conf.mdoc.in@1.253 +3 -3
Update the copyright year
ntpd/ntp.keys.5man@1.238 +3 -3
Update the copyright year
ntpd/ntp.keys.5mdoc@1.238 +4 -4
Update the copyright year
ntpd/ntp.keys.man.in@1.238 +3 -3
Update the copyright year
ntpd/ntp.keys.mdoc.in@1.238 +4 -4
Update the copyright year
ntpd/ntpd-opts.c@1.540 +5 -5
Update the copyright year
ntpd/ntpd-opts.h@1.539 +4 -4
Update the copyright year
ntpd/ntpd.1ntpdman@1.347 +3 -3
Update the copyright year
ntpd/ntpd.1ntpdmdoc@1.347 +3 -3
Update the copyright year
ntpd/ntpd.man.in@1.347 +3 -3
Update the copyright year
ntpd/ntpd.mdoc.in@1.347 +3 -3
Update the copyright year
ntpdc/invoke-ntpdc.texi@1.515 +1 -1
Update the copyright year
ntpdc/ntpdc-opts.c@1.533 +5 -5
Update the copyright year
ntpdc/ntpdc-opts.h@1.532 +4 -4
Update the copyright year
ntpdc/ntpdc.1ntpdcman@1.346 +3 -3
Update the copyright year
ntpdc/ntpdc.1ntpdcmdoc@1.346 +3 -3
Update the copyright year
ntpdc/ntpdc.html@1.361 +353 -408
Update the copyright year
ntpdc/ntpdc.man.in@1.346 +3 -3
Update the copyright year
ntpdc/ntpdc.mdoc.in@1.346 +3 -3
Update the copyright year
ntpq/invoke-ntpq.texi@1.525 +1 -1
Update the copyright year
ntpq/ntpq-opts.c@1.542 +5 -5
Update the copyright year
ntpq/ntpq-opts.h@1.540 +4 -4
Update the copyright year
ntpq/ntpq.1ntpqman@1.353 +3 -3
Update the copyright year
ntpq/ntpq.1ntpqmdoc@1.353 +3 -3
Update the copyright year
ntpq/ntpq.man.in@1.353 +3 -3
Update the copyright year
ntpq/ntpq.mdoc.in@1.353 +3 -3
Update the copyright year
ntpsnmpd/invoke-ntpsnmpd.texi@1.517 +1 -1
Update the copyright year
ntpsnmpd/ntpsnmpd-opts.c@1.535 +5 -5
Update the copyright year
ntpsnmpd/ntpsnmpd-opts.h@1.534 +4 -4
Update the copyright year
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.346 +3 -3
Update the copyright year
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.346 +3 -3
Update the copyright year
ntpsnmpd/ntpsnmpd.man.in@1.346 +3 -3
Update the copyright year
ntpsnmpd/ntpsnmpd.mdoc.in@1.346 +3 -3
Update the copyright year
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.107 +2 -2
Update the copyright year
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.108 +2 -2
Update the copyright year
scripts/calc_tickadj/calc_tickadj.html@1.108 +127 -171
Update the copyright year
scripts/calc_tickadj/calc_tickadj.man.in@1.106 +2 -2
Update the copyright year
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.108 +2 -2
Update the copyright year
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.111 +1 -1
Update the copyright year
scripts/invoke-plot_summary.texi@1.129 +1 -1
Update the copyright year
scripts/invoke-summary.texi@1.128 +1 -1
Update the copyright year
scripts/ntp-wait/invoke-ntp-wait.texi@1.338 +1 -1
Update the copyright year
scripts/ntp-wait/ntp-wait-opts@1.74 +1 -1
Update the copyright year
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.335 +2 -2
Update the copyright year
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.336 +2 -2
Update the copyright year
scripts/ntp-wait/ntp-wait.html@1.357 +151 -180
Update the copyright year
scripts/ntp-wait/ntp-wait.man.in@1.335 +2 -2
Update the copyright year
scripts/ntp-wait/ntp-wait.mdoc.in@1.336 +2 -2
Update the copyright year
scripts/ntpsweep/invoke-ntpsweep.texi@1.126 +1 -1
Update the copyright year
scripts/ntpsweep/ntpsweep-opts@1.76 +1 -1
Update the copyright year
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.114 +2 -2
Update the copyright year
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.114 +2 -2
Update the copyright year
scripts/ntpsweep/ntpsweep.html@1.129 +151 -187
Update the copyright year
scripts/ntpsweep/ntpsweep.man.in@1.114 +2 -2
Update the copyright year
scripts/ntpsweep/ntpsweep.mdoc.in@1.115 +2 -2
Update the copyright year
scripts/ntptrace/invoke-ntptrace.texi@1.127 +1 -1
Update the copyright year
scripts/ntptrace/ntptrace-opts@1.76 +1 -1
Update the copyright year
scripts/ntptrace/ntptrace.1ntptraceman@1.114 +2 -2
Update the copyright year
scripts/ntptrace/ntptrace.1ntptracemdoc@1.115 +2 -2
Update the copyright year
scripts/ntptrace/ntptrace.html@1.130 +127 -177
Update the copyright year
scripts/ntptrace/ntptrace.man.in@1.114 +2 -2
Update the copyright year
scripts/ntptrace/ntptrace.mdoc.in@1.116 +2 -2
Update the copyright year
scripts/plot_summary-opts@1.77 +1 -1
Update the copyright year
scripts/plot_summary.1plot_summaryman@1.127 +2 -2
Update the copyright year
scripts/plot_summary.1plot_summarymdoc@1.127 +2 -2
Update the copyright year
scripts/plot_summary.html@1.132 +159 -201
Update the copyright year
scripts/plot_summary.man.in@1.127 +2 -2
Update the copyright year
scripts/plot_summary.mdoc.in@1.127 +2 -2
Update the copyright year
scripts/summary-opts@1.76 +1 -1
Update the copyright year
scripts/summary.1summaryman@1.126 +2 -2
Update the copyright year
scripts/summary.1summarymdoc@1.126 +2 -2
Update the copyright year
scripts/summary.html@1.131 +134 -182
Update the copyright year
scripts/summary.man.in@1.126 +2 -2
Update the copyright year
scripts/summary.mdoc.in@1.126 +2 -2
Update the copyright year
scripts/update-leap/invoke-update-leap.texi@1.27 +1 -1
Update the copyright year
scripts/update-leap/update-leap-opts@1.27 +1 -1
Update the copyright year
scripts/update-leap/update-leap.1update-leapman@1.27 +2 -2
Update the copyright year
scripts/update-leap/update-leap.1update-leapmdoc@1.27 +2 -2
Update the copyright year
scripts/update-leap/update-leap.man.in@1.27 +2 -2
Update the copyright year
scripts/update-leap/update-leap.mdoc.in@1.27 +2 -2
Update the copyright year
sntp/include/copyright.def@1.28 +1 -1
Update the copyright year
sntp/invoke-sntp.texi@1.517 +1 -1
Update the copyright year
sntp/sntp-opts.c@1.536 +5 -5
Update the copyright year
sntp/sntp-opts.h@1.534 +4 -4
Update the copyright year
sntp/sntp.1sntpman@1.352 +3 -3
Update the copyright year
sntp/sntp.1sntpmdoc@1.352 +3 -3
Update the copyright year
sntp/sntp.html@1.533 +418 -472
Update the copyright year
sntp/sntp.man.in@1.352 +3 -3
Update the copyright year
sntp/sntp.mdoc.in@1.352 +3 -3
Update the copyright year
util/invoke-ntp-keygen.texi@1.520 +1 -1
Update the copyright year
util/ntp-keygen-opts.c@1.538 +5 -5
Update the copyright year
util/ntp-keygen-opts.h@1.536 +4 -4
Update the copyright year
util/ntp-keygen.1ntp-keygenman@1.348 +3 -3
Update the copyright year
util/ntp-keygen.1ntp-keygenmdoc@1.348 +3 -3
Update the copyright year
util/ntp-keygen.man.in@1.348 +3 -3
Update the copyright year
util/ntp-keygen.mdoc.in@1.348 +3 -3
Update the copyright year
ChangeSet@1.3878, 2020-01-29 06:03:13+00:00, stenn@psp-deb1.ntp.org
Initial pass at fixes for bug 3596
include/ntp_config.h@1.88 +15 -2
Initial pass at fixes for bug 3596
ntpd/keyword-gen-utd@1.34 +1 -1
Initial pass at fixes for bug 3596
ntpd/keyword-gen.c@1.41 +5 -0
Initial pass at fixes for bug 3596
ntpd/ntp_config.c@1.372 +13 -11
Initial pass at fixes for bug 3596
ntpd/ntp_keyword.h@1.37 +940 -913
Initial pass at fixes for bug 3596
ntpd/ntp_parser.c@1.116 +1362 -1285
Initial pass at fixes for bug 3596
ntpd/ntp_parser.h@1.78 +356 -344
Initial pass at fixes for bug 3596
ntpd/ntp_parser.y@1.104 +70 -2
Initial pass at fixes for bug 3596
ntpd/ntp_proto.c@1.427.1.1 +8 -0
Initial pass at fixes for bug 3596
ChangeSet@1.3844.24.1, 2020-01-21 12:49:14+00:00, abe@psp-deb1.ntp.org
driver40.html, refclock_jjy.c, driver40-ja.html, ChangeLog:
refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
ChangeLog@1.1968.34.1 +3 -0
refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
html/drivers/driver40-ja.html@1.8 +10 -2
refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
html/drivers/driver40.html@1.23 +9 -2
refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
ntpd/refclock_jjy.c@1.37 +76 -32
refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply.
ChangeSet@1.3873.4.2, 2020-01-18 04:46:30-05:00, stenn@psp-deb2.ntp.org
[Bug 3637] Emit the version of ntpd in saveconfig
ntpd/Makefile.am@1.136 +2 -1
[Bug 3637] Emit the version of ntpd in saveconfig
ntpd/ntp_config.c@1.369.1.2 +3 -2
[Bug 3637] Emit the version of ntpd in saveconfig
ChangeSet@1.3873.4.1, 2020-01-18 04:05:48-05:00, stenn@psp-deb2.ntp.org
[Bug 3637] Emit the version of ntpd in saveconfig
ChangeLog@1.1968.33.1 +1 -0
[Bug 3637] Emit the version of ntpd in saveconfig
ntpd/ntp_config.c@1.369.1.1 +7 -0
[Bug 3637] Emit the version of ntpd in saveconfig
ChangeSet@1.3873.2.2, 2020-01-17 06:59:50+01:00, perlinger@ntp.org
[Bug 3636] NMEA: combine time/date from multiple sentences
ChangeLog@1.1968.30.2 +1 -0
[Bug 3636] NMEA: combine time/date from multiple sentences
html/drivers/driver20.html@1.34 +17 -9
[Bug 3636] NMEA: combine time/date from multiple sentences
include/ntp_calgps.h@1.4 +19 -4
[Bug 3636] NMEA: combine time/date from multiple sentences
libntp/ntp_calgps.c@1.4 +31 -20
[Bug 3636] NMEA: combine time/date from multiple sentences
ntpd/refclock_nmea.c@1.79.1.5 +158 -97
[Bug 3636] NMEA: combine time/date from multiple sentences
ChangeSet@1.3873.3.2, 2020-01-12 07:10:55+01:00, perlinger@ntp.org
[Bug 3635] Make leapsecond file hash check optional
ChangeLog@1.1968.32.2 +1 -0
[Bug 3635] Make leapsecond file hash check optional
html/miscopt.html@1.92 +3 -2
[Bug 3635] Make leapsecond file hash check optional
include/ntp_config.h@1.87 +1 -0
[Bug 3635] Make leapsecond file hash check optional
include/ntpd.h@1.206 +1 -1
[Bug 3635] Make leapsecond file hash check optional
ntpd/cmd_args.c@1.63 +3 -3
[Bug 3635] Make leapsecond file hash check optional
ntpd/complete.conf.in@1.36 +2 -1
[Bug 3635] Make leapsecond file hash check optional
ntpd/keyword-gen-utd@1.33 +1 -1
[Bug 3635] Make leapsecond file hash check optional
ntpd/keyword-gen.c@1.40 +2 -0
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_config.c@1.370 +9 -4
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_keyword.h@1.36 +1043 -1029
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_leapsec.c@1.24 +36 -33
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_leapsec.h@1.15 +3 -2
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_parser.c@1.115 +1286 -1226
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_parser.h@1.77 +378 -371
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_parser.y@1.103 +20 -1
[Bug 3635] Make leapsecond file hash check optional
ntpd/ntp_util.c@1.120 +20 -16
[Bug 3635] Make leapsecond file hash check optional
ChangeSet@1.3873.1.5, 2020-01-04 04:36:43-05:00, stenn@psp-deb2.ntp.org
cleanup
ChangeLog@1.1968.31.3 +2 -2
cleanup
ChangeSet@1.3873.3.1, 2020-01-03 02:23:27-05:00, stenn@psp-deb2.ntp.org
[Bug 3634] Typo in discipline.html, reported by Jason Harrison.
ChangeLog@1.1968.32.1 +1 -0
[Bug 3634] Typo in discipline.html, reported by Jason Harrison.
html/discipline.html@1.11 +19 -18
[Bug 3634] Typo in discipline.html, reported by Jason Harrison.
ChangeSet@1.3873.1.3, 2019-12-16 08:30:00+01:00, perlinger@ntp.org
[Sec 3592] DoS attack on client ntpd
ChangeLog@1.1968.31.1 +2 -0
[Sec 3592] DoS attack on client ntpd
ntpd/ntp_proto.c@1.430 +17 -1
[Sec 3592] DoS attack on client ntpd
ChangeSet@1.3873.2.1, 2019-12-09 07:43:31+01:00, perlinger@ntp.org
[bug 3628] Zeller's congruence in calendar
ChangeLog@1.1968.30.1 +2 -0
[bug 3628] Zeller's congruence in calendar
include/ntp_calendar.h@1.23 +8 -0
[bug 3628] Zeller's congruence in calendar
- reconstruct century from y/m/d + day-of-week, 2digit year
include/ntp_calgps.h@1.3 +2 -2
[bug 3628] Zeller's congruence in calendar
- comment typos
libntp/ntp_calendar.c@1.26 +161 -43
[bug 3628] Zeller's congruence in calendar
- reconstruct century from y/m/d + day-of-week, 2digit year
- fast (mod 7) operations
- implement reverse Zeller congruence
libparse/clk_rawdcf.c@1.24 +55 -0
[bug 3628] Zeller's congruence in calendar
- in-situ implementation of Zeller's congruence
tests/libntp/calendar.c@1.18 +235 -0
[bug 3628] Zeller's congruence in calendar
- added unit tests for mod7 and century reconstruction
- test algorithm of in-situ implementation of Zeller's congruence in libparse
tests/libntp/run-calendar.c@1.19 +18 -0
[bug 3628] Zeller's congruence in calendar
- regenerated test driver
ChangeSet@1.3873.1.2, 2019-12-07 08:19:05+01:00, perlinger@ntp.org
[bug 3592]
first try to move poll_update
ntpd/ntp_proto.c@1.429 +10 -9
[bug 3592]
first try to move poll_update
ChangeSet@1.3873.1.1, 2019-12-05 05:58:36+00:00, stenn@psp-deb1.ntp.org
Note places to look for things related to bug 3592
ntpd/ntp_proto.c@1.428 +5 -0
Note places to look for things related to bug 3592
ChangeSet@1.3874, 2019-11-18 06:04:58+00:00, perlinger@psp-deb1.ntp.org
[Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap
ChangeLog@1.1968.1.23 +2 -0
[Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap
ntpd/ntpd.c@1.184 +23 -0
[Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap
ChangeSet@1.3871.4.2, 2019-10-10 15:26:29+02:00, perlinger@ntp.org
[Bug 3620] memory leak in ntpq sysinfo
ChangeLog@1.1968.29.2 +2 -0
[Bug 3620] memory leak in ntpq sysinfo
ntpq/ntpq-subs.c@1.131 +4 -0
[Bug 3620] memory leak in ntpq sysinfo
ChangeSet@1.3871.4.1, 2019-10-10 15:13:25+02:00, perlinger@ntp.org
[Bug 3619] Honour drefid setting in cooked mode and sysinfo
ChangeLog@1.1968.29.1 +2 -0
[Bug 3619] Honour drefid setting in cooked mode and sysinfo
ntpq/ntpq-subs.c@1.130 +18 -1
[Bug 3619] Honour drefid setting in cooked mode and sysinfo
ntpq/ntpq.c@1.192 +12 -5
[Bug 3619] Honour drefid setting in cooked mode and sysinfo
ntpq/ntpq.h@1.33 +1 -0
[Bug 3619] Honour drefid setting in cooked mode and sysinfo
ChangeSet@1.3871.3.1, 2019-10-10 07:19:05+02:00, perlinger@ntp.org
[Bug 3612] Use-of-uninitialized-value in receive function
ChangeLog@1.1968.28.1 +2 -0
[Bug 3612] Use-of-uninitialized-value in receive function
ntpd/ntp_proto.c@1.427 +28 -15
[Bug 3612] Use-of-uninitialized-value in receive function
ChangeSet@1.3871.2.1, 2019-10-04 07:29:17+02:00, perlinger@ntp.org
[Bug 3593] ntpd discards silently nmea messages after the 5th string
ChangeLog@1.1968.27.1 +1 -0
[Bug 3593] ntpd discards silently nmea messages after the 5th string
libntp/recvbuff.c@1.43 +0 -2
[Bug 3593] ntpd discards silently nmea messages after the 5th string
- replenish buffers *always* in 'get_full_recv_buffer', not just for signalled IO
ChangeSet@1.3871.1.5, 2019-10-03 10:04:23+02:00, perlinger@ntp.org
[Bug 3594] ntpd discards messages coming through nmead
ChangeLog@1.1968.25.3 +1 -0
[Bug 3594] ntpd discards messages coming through nmead
ntpd/refclock_nmea.c@1.79.1.4 +110 -28
[Bug 3594] ntpd discards messages coming through nmead
- make socket I/O for NMEAD nonblocking
- do local line split / record assembly as TCP does not preserve boundaries
ChangeSet@1.3871.1.3, 2019-09-26 06:46:14+00:00, stenn@psp-deb1.ntp.org
typo
html/clockopt.html@1.28 +2 -2
typo
ChangeSet@1.3871.1.1, 2019-09-23 07:18:39+02:00, perlinger@ntp.org
[Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no
ChangeLog@1.1968.26.1 +1 -0
[Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no
sntp/m4/ntp_problemtests.m4@1.6 +12 -0
[Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no
- disable the 'problematic' tests in all cases where ntp_cv_gc_sections_runs=no
ChangeSet@1.3870.1.1, 2019-09-21 07:31:44+02:00, perlinger@ntp.org
[Bug 3615] accelerate refclock startup
ChangeLog@1.1968.25.1 +1 -0
[Bug 3615] accelerate refclock startup
include/ntp_refclock.h@1.38.2.1 +1 -0
[Bug 3615] accelerate refclock startup
- add 'inpoll' flag
ntpd/ntp_loopfilter.c@1.194 +30 -9
[Bug 3615] accelerate refclock startup
- time boxed stepping of sys_poll (avoid quick sys_poll overshoot)
ntpd/ntp_refclock.c@1.126.2.1 +77 -6
[Bug 3615] accelerate refclock startup
- check if clock status could benefit from early poll
- 'unsolicited' calls to refclock_receive add bits to the reach mask
ntpd/refclock_nmea.c@1.79.1.3 +14 -10
[Bug 3615] accelerate refclock startup
- minor sidekick: different order of data integrity checks reduces number of clock events
during signal dropout
ChangeSet@1.3867.1.2, 2019-09-13 18:10:32+02:00, perlinger@ntp.org
[bug 3609] addendum: extended documention
html/clockopt.html@1.27 +4 -0
[bug 3609] addendum: extended documention
ChangeSet@1.3872, 2019-09-13 08:18:14+02:00, perlinger@ntp.org
[Bug 3617] Add support for ACE III and Copernicus II receivers
ChangeLog@1.1968.1.21 +2 -0
[Bug 3617] Add support for ACE III and Copernicus II receivers
html/drivers/driver29.html@1.18 +68 -10
[Bug 3617] Add support for ACE III and Copernicus II receivers
ntpd/refclock_palisade.c@1.46.1.2 +197 -11
[Bug 3617] Add support for ACE III and Copernicus II receivers
ntpd/refclock_palisade.h@1.16 +5 -2
[Bug 3617] Add support for ACE III and Copernicus II receivers
ChangeSet@1.3871, 2019-09-06 17:06:02+02:00, perlinger@ntp.org
[Bug 3613] 'pool' directive doesn't honor 'noselect' flag
ntpd/ntp_proto.c@1.426 +7 -5
[Bug 3613] 'pool' directive doesn't honor 'noselect' flag
- minor cleanup: define mask for all bits going from pool to peer
ChangeSet@1.3870, 2019-09-06 01:32:24-07:00, harlan@max.pfcs.com
merge cleanup
ChangeLog@1.1968.1.20 +2 -1
merge cleanup
ChangeSet@1.3844.23.1, 2019-09-05 23:41:13-07:00, harlan@max.pfcs.com
[Bug 3613] Propagate noselect to mobilized pool servers
ChangeLog@1.1968.24.1 +1 -0
[Bug 3613] Propagate noselect to mobilized pool servers
ntpd/ntp_proto.c@1.423.1.1 +4 -1
[Bug 3613] Propagate noselect to mobilized pool servers
ChangeSet@1.3867.1.1, 2019-09-05 22:24:53+02:00, perlinger@ntp.org
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ChangeLog@1.1968.23.1 +2 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
html/clockopt.html@1.26 +12 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
include/ntp_refclock.h@1.38.1.2 +4 -1
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/complete.conf.in@1.35 +1 -1
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/keyword-gen.c@1.39 +1 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_config.c@1.369 +15 -4
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_control.c@1.237 +15 -2
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_keyword.h@1.35 +701 -694
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_parser.c@1.114 +805 -805
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_parser.h@1.76 +201 -199
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_parser.y@1.102 +2 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/ntp_refclock.c@1.126.1.3 +19 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ntpd/refclock_parse.c@1.88 +3 -0
[Bug 3609] Fixing wrong falseticker in case of non-statistic jitter
- implementing 'fudge minjitter'
ChangeSet@1.3868, 2019-09-04 21:40:55+02:00, perlinger@ntp.org
[Bug 3611] NMEA time interpreted incorrectly
ChangeLog@1.1968.1.18 +3 -0
[Bug 3611] NMEA time interpreted incorrectly
html/drivers/driver20.html@1.33 +34 -2
[Bug 3611] NMEA time interpreted incorrectly
- add documentation for mode bit 18 ("date trust" feature)
include/ntp_calgps.h@1.2 +12 -2
[Bug 3611] NMEA time interpreted incorrectly
- make GPS era folding a runtime decision ("date trust" support)
libntp/ntp_calgps.c@1.3 +26 -13
[Bug 3611] NMEA time interpreted incorrectly
- make GPS era folding a runtime decision ("date trust" support)
ntpd/refclock_nmea.c@1.79.1.2 +5 -4
[Bug 3611] NMEA time interpreted incorrectly
- restore hitherto undocumented "date trust" feature (was lost in [bug 3577])
- move "date trust" to mode bit 18
ChangeSet@1.3867, 2019-09-01 10:33:34+02:00, perlinger@ntp.org
[Bug 3576] New GPS date function API
- copy/paste bug in division code (32-bit non-ARM targets only)
libntp/ntp_calendar.c@1.25 +1 -1
[Bug 3576] New GPS date function API
- copy/paste bug in division code (32-bit non-ARM targets only)
ChangeSet@1.3866, 2019-09-01 06:55:03+00:00, stenn@psp-deb1.ntp.org
Make 3610 a SEC bug
ChangeLog@1.1968.1.17 +1 -1
Make 3610 a SEC bug
ChangeSet@1.3865, 2019-08-31 23:59:24+00:00, stenn@psp-deb1.ntp.org
Clean up sntp/networking.c:sendpkt() error message.
ChangeLog@1.1968.1.16 +1 -0
Clean up sntp/networking.c:sendpkt() error message.
sntp/networking.c@1.71 +1 -1
Clean up sntp/networking.c:sendpkt() error message.
ChangeSet@1.3864, 2019-08-31 23:56:58+00:00, stenn@psp-deb1.ntp.org
[Bug 3610] process_control() should bail earlier on short packets. stenn@
ChangeLog@1.1968.1.15 +2 -0
ntpd/ntp_control.c@1.236 +13 -6
ChangeSet@1.3863, 2019-08-20 08:36:42+02:00, perlinger@ntp.org
[Bug3608] libparse fails to compile on S11.4SRU13 and later
ChangeLog@1.1968.1.14 +2 -0
[Bug3608] libparse fails to compile on S11.4SRU13 and later
libparse/Makefile.am@1.33 +3 -1
[Bug3608] libparse fails to compile on S11.4SRU13 and later
ChangeSet@1.3862, 2019-08-16 04:07:25-04:00, stenn@psp-deb2.ntp.org
ChangeLog:
merge cleanup
ChangeLog@1.1968.1.13 +3 -4
merge cleanup
ChangeSet@1.3844.3.13, 2019-08-12 07:09:14+02:00, perlinger@ntp.org
[bug 3576] documentation typo
html/drivers/driver20.html@1.29.1.2 +1 -1
[bug 3576] documentation typo
ChangeSet@1.3844.21.2, 2019-08-10 18:35:06+02:00, perlinger@ntp.org
comment change
include/ntp_request.h@1.53 +1 -1
comment change
ChangeSet@1.3844.22.1, 2019-08-10 09:03:06+02:00, perlinger@ntp.org
[Bug 3604] Wrong param byte order passing into record_raw_stats() in ntp_io.c
ChangeLog@1.1968.21.1 +4 -0
[Bug 3604] Wrong param byte order passing into record_raw_stats() in ntp_io.c
ntpd/ntp_io.c@1.429.1.1 +8 -4
[Bug 3604] Wrong param byte order passing into record_raw_stats() in ntp_io.c
ChangeSet@1.3844.21.1, 2019-08-10 08:31:59+02:00, perlinger@ntp.org
[Bug 3599] Build fails on linux-m68k due to alignment issues
ChangeLog@1.1968.20.1 +4 -0
[Bug 3599] Build fails on linux-m68k due to alignment issues
include/ntp_request.h@1.52 +1 -0
[Bug 3599] Build fails on linux-m68k due to alignment issues
ntpdc/layout.std@1.15 +1 -0
[Bug 3599] Build fails on linux-m68k due to alignment issues
ChangeSet@1.3852, 2019-07-04 06:29:23-04:00, stenn@psp-deb2.ntp.org
typo
html/drivers/driver20.html@1.31 +1 -1
typo
ChangeSet@1.3850, 2019-07-04 06:20:52-04:00, stenn@psp-deb2.ntp.org
Distribute include/timexsup.h
include/Makefile.am@1.56 +1 -0
Distribute include/timexsup.h
ChangeSet@1.3844.3.12, 2019-06-20 06:23:08+02:00, perlinger@ntp.org
[Bug 3576] New GPS date function API
- sidekick: use different division tricks in calendar
libntp/ntp_calendar.c@1.24 +91 -95
[Bug 3576] New GPS date function API
- sidekick: use different division tricks in calendar, use linear fractionals for month length
tests/libntp/calendar.c@1.17 +28 -0
[Bug 3576] New GPS date function API
- sidekick: more calendar unit tests
tests/libntp/run-calendar.c@1.17 +22 -18
[Bug 3576] New GPS date function API
- sidekick: update unit test runner
ChangeSet@1.3844.20.1, 2019-06-15 09:17:38+02:00, perlinger@ntp.org
[Bug 3473] RefID of refclocks should always be text format
ChangeLog@1.1968.19.1 +4 -0
[Bug 3473] RefID of refclocks should always be text format
ntpd/ntp_control.c@1.232.2.2 +4 -9
[Bug 3473] RefID of refclocks should always be text format
ntpdc/ntpdc_ops.c@1.86.1.1 +65 -63
[Bug 3473] RefID of refclocks should always be text format
ntpq/ntpq.c@1.189.1.1 +14 -1
[Bug 3473] RefID of refclocks should always be text format
ChangeSet@1.3844.19.1, 2019-06-04 07:59:30+02:00, perlinger@ntp.org
[Bug 3490] Patch to support Trimble Resolution Receivers
ChangeLog@1.1968.18.1 +4 -0
[Bug 3490] Patch to support Trimble Resolution Receivers
ntpd/refclock_palisade.c@1.46.1.1 +45 -1
[Bug 3490] Patch to support Trimble Resolution Receivers
- original patch by Richard Steedman
- fixed bitwise AND vs boolean AND operation (not a real bug, but confusing)
ChangeSet@1.3844.18.1, 2019-06-04 06:41:14+02:00, perlinger@ntp.org
[Bug 3491] Signed values of LFP datatypes should always display a sign
ChangeLog@1.1968.17.1 +4 -0
[Bug 3491] Signed values of LFP datatypes should always display a sign
include/ntp_fp.h@1.35 +2 -2
[Bug 3491] Signed values of LFP datatypes should always display a sign
libntp/dofptoa.c@1.10 +5 -5
[Bug 3491] Signed values of LFP datatypes should always display a sign
libntp/dolfptoa.c@1.13 +5 -5
[Bug 3491] Signed values of LFP datatypes should always display a sign
libntp/mstolfp.c@1.6 +3 -4
[Bug 3491] Signed values of LFP datatypes should always display a sign
ntpq/ntpq-subs.c@1.127.1.1 +3 -3
[Bug 3491] Signed values of LFP datatypes should always display a sign
ntpq/ntpq.c@1.190 +27 -10
[Bug 3491] Signed values of LFP datatypes should always display a sign
tests/libntp/lfptostr.c@1.9 +18 -18
[Bug 3491] Signed values of LFP datatypes should always display a sign
tests/libntp/refidsmear.c@1.8 +16 -16
[Bug 3491] Signed values of LFP datatypes should always display a sign
ChangeSet@1.3844.17.1, 2019-06-02 14:02:24+02:00, perlinger@ntp.org
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- monitor daemon child startup & propagate exit codes
ChangeLog@1.1968.16.1 +5 -0
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- monitor daemon child startup & propagate exit codes
configure.ac@1.616.1.1 +1 -0
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- check for 'waitpid()'
include/ntpd.h@1.205 +1 -1
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- unclutter daemon startup pipe handling
ntpd/ntp_proto.c@1.424 +4 -3
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- unclutter daemon startup pipe handling
- send 'S' (--> synced) message to parent process
ntpd/ntpd.c@1.180.2.1 +150 -60
[Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user is specified with -u
- monitor daemon child startup & propagate exit codes
- send 'R' (--> running) message to parent process when getting operational
- unclutter daemon startup pipe handling
ChangeSet@1.3844.16.1, 2019-06-01 17:53:11+02:00, perlinger@ntp.org
[Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
ChangeLog@1.1968.15.1 +4 -0
[Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
include/ntp_io.h@1.24 +1 -1
[Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
ntpd/ntp_io.c@1.430 +38 -28
[Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
- disable the warning on an IPv6-only network. No harm done in that case, and the
semantic of 'sys_bclient' is too intricate for simple changes
ChangeSet@1.3844.15.1, 2019-05-30 10:53:25+02:00, perlinger@ntp.org
[Bug 3533] ntpdc peer_info ipv6 issues
ChangeLog@1.1968.14.1 +4 -0
[Bug 3533] ntpdc peer_info ipv6 issues
ntpd/ntp_request.c@1.130 +1 -1
[Bug 3533] ntpdc peer_info ipv6 issues
- wrong address used in AF-specific branch decision
ntpdc/ntpdc.c@1.112.1.1 +8 -7
[Bug 3533] ntpdc peer_info ipv6 issues
ntpdc/ntpdc_ops.c@1.87 +10 -3
[Bug 3533] ntpdc peer_info ipv6 issues
ChangeSet@1.3844.3.11, 2019-05-28 08:11:59+02:00, perlinger@ntp.org
[some cleanup of calendar calculations]
include/ntp_calendar.h@1.22 +43 -1
[some cleanup of calendar calculations]
- alternative implementation of the leapyear test
libntp/ntp_calendar.c@1.23 +19 -12
[some cleanup of calendar calculations]
- fix an embarrassing error in the 32bit-only code for day/week join
tests/libntp/calendar.c@1.16 +16 -0
[some cleanup of calendar calculations]
- add direkt unit test for leap year rule
tests/libntp/run-calendar.c@1.16 +16 -14
[some cleanup of calendar calculations]
- update regenerated file
ChangeSet@1.3844.14.5, 2019-05-16 21:09:12+02:00, perlinger@ntp.org
[Bug 3515] Refactor ntpdmain() dispatcher loop and group common code
ChangeLog@1.1968.13.5 +2 -0
[Bug 3515] Refactor ntpdmain() dispatcher loop and group common code
ntpd/ntpd.c@1.180.1.2 +7 -12
[Bug 3515] Refactor ntpdmain() dispatcher loop and group common code
ChangeSet@1.3844.14.4, 2019-05-16 20:51:13+02:00, perlinger@ntp.org
[Bug 3510] Flatten out the #ifdef nesting in ntpdmain()
ChangeLog@1.1968.13.4 +2 -0
[Bug 3510] Flatten out the #ifdef nesting in ntpdmain()
ntpd/ntpd.c@1.180.1.1 +2 -6
[Bug 3510] Flatten out the #ifdef nesting in ntpdmain()
ChangeSet@1.3844.14.3, 2019-05-16 20:19:10+02:00, perlinger@ntp.org
[Bug 3517] Reducing build noise
ChangeLog@1.1968.13.3 +1 -0
[Bug 3517] Reducing build noise
ntpq/Makefile.am@1.74 +15 -13
[Bug 3517] Reducing build noise
- linker flags useless for static library
- lines containing tabs only are bad in makefiles
ChangeSet@1.3844.14.2, 2019-05-16 19:42:17+02:00, perlinger@ntp.org
[Bug 3516] Require tooling from this decade
ChangeLog@1.1968.13.2 +2 -0
[Bug 3516] Require tooling from this decade
configure.ac@1.617 +4 -7
[Bug 3516] Require tooling from this decade
sntp/configure.ac@1.86 +5 -7
[Bug 3516] Require tooling from this decade
ChangeSet@1.3844.14.1, 2019-05-16 19:03:12+02:00, perlinger@ntp.org
[Bug 3511] Get rid of AC_LANG_SOURCE() warnings
ChangeLog@1.1968.13.1 +4 -0
[Bug 3511] Get rid of AC_LANG_SOURCE() warnings
sntp/libopts/m4/libopts.m4@1.35 +12 -12
[Bug 3511] Get rid of AC_LANG_SOURCE() warnings
ChangeSet@1.3844.3.10, 2019-05-13 07:44:52+02:00, perlinger@ntp.org
[Bug 3590] Update refclock_oncore.c to the new GPS date API
ChangeLog@1.1968.3.3 +1 -0
[Bug 3590] Update refclock_oncore.c to the new GPS date API
libntp/ntp_calgps.c@1.2 +29 -5
[Bug 3590] Update refclock_oncore.c to the new GPS date API
ntpd/refclock_oncore.c@1.104.1.1 +54 -2
[Bug 3590] Update refclock_oncore.c to the new GPS date API
- use GPS era remapping
tests/libntp/calendar.c@1.15 +67 -28
[Bug 3590] Update refclock_oncore.c to the new GPS date API
- additional tests for era remapping
tests/libntp/run-calendar.c@1.15 +5 -3
[Bug 3590] Update refclock_oncore.c to the new GPS date API
ChangeSet@1.3844.13.1, 2019-05-04 10:13:19+02:00, perlinger@ntp.org
[Bug 3531] make check: test-decodenetnum fails
ChangeLog@1.1968.12.1 +5 -0
[Bug 3531] make check: test-decodenetnum fails
include/ntp_control.h@1.60 +4 -0
[Bug 3531] make check: test-decodenetnum fails
- side kick: add preprocessor guards
libntp/decodenetnum.c@1.19 +57 -25
[Bug 3531] make check: test-decodenetnum fails
- harden against missing/incomplete /etc/services (getaddrinfo() croaks on service)
tests/libntp/decodenetnum.c@1.12 +6 -6
[Bug 3531] make check: test-decodenetnum fails
- fix cond-compile target/config guards
tests/libntp/sockaddrtest.c@1.3 +7 -1
[Bug 3531] make check: test-decodenetnum fails
- get strings to local buffers instead of overruning lib buffers
tests/libntp/socktoa.c@1.13 +8 -8
[Bug 3531] make check: test-decodenetnum fails
- fix cond-compile target/config guards
ChangeSet@1.3844.8.2, 2019-05-02 10:26:12+02:00, perlinger@ntp.org
[Bug 3573] nptdate: missleading error message
ntpdate/ntpdate.c@1.102.1.2 +1 -3
[Bug 3573] nptdate: missleading error message
- sidekick: make failing to set IPV6_V6ONLY non-fatal
ChangeSet@1.3844.12.1, 2019-05-02 08:35:23+02:00, perlinger@ntp.org
[Bug 1433] runtime check whether the kernel really supports capabilities
ChangeLog@1.1968.11.1 +4 -0
[Bug 1433] runtime check whether the kernel really supports capabilities
ntpd/ntpd.c@1.181 +27 -3
[Bug 1433] runtime check whether the kernel really supports capabilities
ChangeSet@1.3844.11.1, 2019-05-02 07:27:17+02:00, perlinger@ntp.org
[Bug 3132] Building 4.2.8p8 with disabled local libopts fails
ChangeLog@1.1968.10.1 +4 -0
[Bug 3132] Building 4.2.8p8 with disabled local libopts fails
sntp/main.c@1.105 +4 -0
[Bug 3132] Building 4.2.8p8 with disabled local libopts fails
- include <sysexits.h> if we have it
ChangeSet@1.3844.10.1, 2019-05-02 06:32:04+02:00, perlinger@ntp.org
[Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH
ChangeLog@1.1968.9.1 +4 -0
[Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH
scripts/build/mkver.in@1.16 +6 -1
[Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH
ChangeSet@1.3844.9.1, 2019-05-01 10:25:57+02:00, perlinger@ntp.org
[Bug 3542] ntpdc monlist parameters cannot be set
ChangeLog@1.1968.8.1 +3 -0
[Bug 3542] ntpdc monlist parameters cannot be set
ntpdc/ntpdc.c@1.113 +15 -35
[Bug 3542] ntpdc monlist parameters cannot be set
- fixed 'getarg()' number parsing (still assumed union and was badly refactored)
ChangeSet@1.3844.8.1, 2019-05-01 07:24:20+02:00, perlinger@ntp.org
[Bug 3573] nptdate: missleading error message
ChangeLog@1.1968.7.1 +3 -0
[Bug 3573] nptdate: missleading error message
ntpdate/ntpdate.c@1.102.1.1 +5 -1
[Bug 3573] nptdate: missleading error message
- empty ARGV/ARGC acceptable only with NETINFO available
ChangeSet@1.3844.6.2, 2019-04-30 08:09:13+02:00, perlinger@ntp.org
[Bug 3583] synchronization error
- update docs on 'tos basedate'
html/miscopt.html@1.91 +6 -2
[Bug 3583] synchronization error
- update docs on 'tos basedate'
ChangeSet@1.3844.7.1, 2019-04-28 09:50:11+02:00, perlinger@ntp.org
[Bug 3585] Unity tests mix buffered and unbuffered output
ChangeLog@1.1968.6.1 +4 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
include/ntp_syslog.h@1.10 +3 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- add 'change_iobufs()' for unit test setup
libntp/msyslog.c@1.55 +38 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- add 'change_iobufs()' for unit test setup
sntp/tests/run-crypto.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-keyFile.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-kodDatabase.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-kodFile.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-networking.c@1.5 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-packetHandling.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-packetProcessing.c@1.14 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-t-log.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/run-utilities.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
sntp/tests/testconf.yml@1.2 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/bug-2803/run-bug-2803.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/bug-2803/testconf.yml@1.2 +2 -1
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/bug-3102/testconf.yml@1.2 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/libntp/run-a_md5encrypt.c@1.17 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-atoint.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-atouint.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-authkeys.c@1.15 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-buftvtots.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-calendar.c@1.13.1.1 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-caljulian.c@1.14.1.1 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-caltontp.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-calyearstart.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-clocktime.c@1.12 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-decodenetnum.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-hextoint.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-hextolfp.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-humandate.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-lfpfunc.c@1.21 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-lfptostr.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-modetoa.c@1.14 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-msyslog.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-netof.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-numtoa.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-numtohost.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-octtoint.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-prettydate.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-recvbuff.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-refidsmear.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-refnumtoa.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-sbprintf.c@1.3 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-sfptostr.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-socktoa.c@1.16 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-ssl_init.c@1.11 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-statestr.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-strtolfp.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-timespecops.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-timevalops.c@1.16 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-tsafememcmp.c@1.3 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-tstotv.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-tvtots.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-uglydate.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-vi64ops.c@1.10 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/run-ymd2yd.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/libntp/testconf.yml@1.2 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/ntpd/run-leapsec.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/run-ntp_prio_q.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/run-ntp_restrict.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/run-rc_cmdlength.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/run-t-ntp_scanner.c@1.8 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/run-t-ntp_signd.c@1.13 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpd/testconf.yml@1.2 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/ntpq/run-t-ntpq.c@1.5 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/ntpq/testconf.yml@1.2 +2 -1
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/sandbox/run-modetoa.c@1.5 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/sandbox/run-uglydate.c@1.9 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/sandbox/run-ut-2803.c@1.4 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/sandbox/testconf.yml@1.2 +2 -1
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
tests/sec-2853/run-sec-2853.c@1.7 +2 -0
[Bug 3585] Unity tests mix buffered and unbuffered output
- regenrated test runner
tests/sec-2853/testconf.yml@1.2 +2 -1
[Bug 3585] Unity tests mix buffered and unbuffered output
- set output streams to line buffered during test suite setup
ChangeSet@1.3844.6.1, 2019-04-27 18:55:23+02:00, perlinger@ntp.org
[Bug 3583] synchronization error
ChangeLog@1.1968.5.1 +4 -0
[Bug 3583] synchronization error
libntp/systime.c@1.75 +11 -15
[Bug 3583] synchronization error <perlinger@ntp.org>
- set clock to base date if system time is before that limit
(used to map inside the intended era, which is actually a bad idea)
ChangeSet@1.3844.5.5, 2019-04-23 08:17:58+02:00, perlinger@ntp.org
[Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled
ChangeLog@1.1968.4.1 +3 -0
[Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled
ntpd/refclock_gpsdjson.c@1.28.1.2 +1 -1
[Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled
ChangeSet@1.3844.3.9, 2019-04-22 11:57:53+02:00, perlinger@ntp.org
[Bug 3577] silence some nitpicking from MSVC
ntpd/refclock_jupiter.c@1.34 +12 -12
[Bug 3577] silence some nitpicking from MSVC
ChangeSet@1.3844.5.4, 2019-04-22 01:20:36-07:00, ntpreleng@ntp-build.tal1.ntfo.org
Author cleanup
BitKeeper/etc/Authors/ntpreleng.txt@1.1 +1 -0
BitKeeper file BitKeeper/etc/Authors/ntpreleng.txt
BitKeeper/etc/Authors/ntpreleng.txt@1.0 +0 -0
BitKeeper/etc/authors.txt@1.3 +1 -2
Author cleanup
ChangeSet@1.3844.5.3, 2019-04-21 03:33:53-07:00, ntpreleng@ntp-build.tal1.ntfo.org
author cleanup
BitKeeper/deleted/2e/Brian.txt~204f4d9a946d68c3@1.2 +0 -0
Delete: BitKeeper/etc/Authors/Brian.txt
ChangeSet@1.3844.5.2, 2019-04-21 03:26:18-07:00, ntpreleng@ntp-build.tal1.ntfo.org
author cleanup
BitKeeper/etc/Authors/amidamaru.txt@1.3 +0 -0
Rename: BitKeeper/etc/Authors/Amidamaru.txt -> BitKeeper/etc/Authors/amidamaru.txt
ChangeSet@1.3844.5.1, 2019-04-21 03:25:30-07:00, ntpreleng@ntp-build.tal1.ntfo.org
author cleanup
BitKeeper/deleted/b5/amidamaru.txt~83565bba563cd9e2@1.3 +0 -0
Delete: BitKeeper/etc/Authors/amidamaru.txt
BitKeeper/etc/Authors/Amidamaru.txt@1.2 +1 -0
author cleanup
BitKeeper/triggers/Old/post-incoming.license-warn@1.11 +0 -0
Rename: BitKeeper/triggers/post-incoming.license-warn -> BitKeeper/triggers/Old/post-incoming.license-warn
BitKeeper/triggers/Old/pre-resolve.license-chk@1.12 +0 -0
Rename: BitKeeper/triggers/pre-resolve.license-chk -> BitKeeper/triggers/Old/pre-resolve.license-chk
BitKeeper/triggers/Old/pre-resolve.licfix@1.6 +0 -0
Rename: BitKeeper/triggers/pre-resolve.licfix -> BitKeeper/triggers/Old/pre-resolve.licfix
ChangeSet@1.3844.3.7, 2019-04-20 08:38:11+02:00, perlinger@ntp.org
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
ChangeLog@1.1968.3.2 +2 -0
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
html/drivers/driver20.html@1.29.1.1 +22 -1
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
ntpd/refclock_jupiter.c@1.33 +312 -409
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
ntpd/refclock_nmea.c@1.79.1.1 +434 -703
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
- use new API to wrap/warp GPS time stamps
- implement silent PPS mode & data expiration
- major changes for string parsing, too
ntpd/refclock_zyfer.c@1.11 +21 -4
[Bug 3577] Update refclock_zyfer.c to the new GPS date API
ChangeSet@1.3844.3.6, 2019-04-20 08:18:00+02:00, perlinger@ntp.org
[Bug 3576] New GPS date function API
ChangeLog@1.1968.3.1 +3 -0
[Bug 3576] New GPS date function API
include/ntp_calendar.h@1.21 +20 -1
[Bug 3576] New GPS date function API
- typedefs & new functions
include/ntp_calgps.h@1.1 +126 -0
[Bug 3576] New GPS date function API
- new module to do proper GPS epoch wrapping
include/ntp_calgps.h@1.0 +0 -0
include/ntp_refclock.h@1.38.1.1 +20 -9
[Bug 3576] New GPS date function API
- filter stage count is power of two now
- new functions for buffer handling
include/timespecops.h@1.6 +8 -179
[Bug 3576] New GPS date function API
- moved functions from inline to body
libntp/Makefile.am@1.82.1.1 +2 -0
[Bug 3576] New GPS date function API
- added new modules
libntp/ntp_calendar.c@1.22 +398 -259
[Bug 3576] New GPS date function API
- typedefs & new functions
libntp/ntp_calgps.c@1.1 +586 -0
[Bug 3576] New GPS date function API
- new module to do proper GPS epoch wrapping
libntp/ntp_calgps.c@1.0 +0 -0
libntp/timespecops.c@1.1 +233 -0
[Bug 3576] New GPS date function API
- moved functions from inline to body
libntp/timespecops.c@1.0 +0 -0
ntpd/ntp_refclock.c@1.126.1.2 +309 -7
[Bug 3576] New GPS date function API
- filter stage count is power of two now
- new functions for buffer handling
ntpd/ntp_restrict.c@1.47 +0 -2
[Bug 3576] New GPS date function API
- side kick: remove unused variables
parseutil/dcfd.c@1.29.1.1 +10 -10
[Bug 3576] New GPS date function API
- side kick: fix compiler warnings (dprintf is a function and not the same as DPRINTF)
ports/winnt/vs2005/libntp.vcproj@1.28 +12 -0
[Bug 3576] New GPS date function API
- added new modules
ports/winnt/vs2008/libntp/libntp.vcproj@1.59 +12 -0
[Bug 3576] New GPS date function API
- added new modules
ports/winnt/vs2013/libntp/libntp.vcxproj@1.15 +3 -0
[Bug 3576] New GPS date function API
- added new modules
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.13 +9 -0
[Bug 3576] New GPS date function API
- added new modules
ports/winnt/vs2015/libntp/libntp.vcxproj@1.5 +3 -0
[Bug 3576] New GPS date function API
- added new modules
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.5 +9 -0
[Bug 3576] New GPS date function API
- added new modules
tests/libntp/calendar.c@1.14 +169 -4
[Bug 3576] New GPS date function API
- week split function tests
tests/libntp/run-calendar.c@1.14 +27 -17
[Bug 3576] New GPS date function API
- regenerated
ChangeSet@1.3844.4.1, 2019-04-08 21:54:16+02:00, perlinger@ntp.org
[Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc)
ChangeLog@1.1968.1.4 +4 -0
[Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc)
ntpq/ntpq-subs.c@1.128 +188 -147
[Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc)
- wrap FILE I/O in functions that substitute stderr for NULL
- kill trailing whitespace
ChangeSet@1.3844.3.5, 2019-03-10 17:10:50-07:00, ntpreleng@ntp-bk2git.tal1.ntfo.org
author updates
BitKeeper/etc/authors.txt@1.2 +4 -0
author updates
ChangeSet@1.3844.3.4, 2019-03-10 17:04:30-07:00, ntpreleng@ntp-bk2git.tal1.ntfo.org
author updates
BitKeeper/etc/Authors/Amidamaru.txt@1.1 +1 -0
BitKeeper file BitKeeper/etc/Authors/Amidamaru.txt
BitKeeper/etc/Authors/Amidamaru.txt@1.0 +0 -0
BitKeeper/etc/Authors/Brian.txt@1.1 +1 -0
BitKeeper file BitKeeper/etc/Authors/Brian.txt
BitKeeper/etc/Authors/Brian.txt@1.0 +0 -0
BitKeeper/etc/Authors/brian.txt@1.1 +1 -0
BitKeeper file BitKeeper/etc/Authors/brian.txt
BitKeeper/etc/Authors/brian.txt@1.0 +0 -0
BitKeeper/etc/Authors/bwi.txt@1.1 +1 -0
BitKeeper file BitKeeper/etc/Authors/bwi.txt
BitKeeper/etc/Authors/bwi.txt@1.0 +0 -0
ChangeSet@1.3844.3.3, 2019-03-10 17:03:40-07:00, ntpreleng@ntp-bk2git.tal1.ntfo.org
author updates
BitKeeper/etc/Authors/a115350.txt@1.2 +1 -1
BitKeeper/etc/Authors/abe.txt@1.2 +1 -1
BitKeeper/etc/Authors/amidamaru.txt@1.2 +1 -2
BitKeeper/etc/Authors/bkorb.txt@1.2 +1 -1
BitKeeper/etc/Authors/blk.txt@1.2 +1 -1
BitKeeper/etc/Authors/blu.txt@1.2 +1 -1
BitKeeper/etc/Authors/bruckman.txt@1.2 +1 -1
BitKeeper/etc/Authors/burnicki.txt@1.2 +1 -1
BitKeeper/etc/Authors/claas.txt@1.2 +1 -1
BitKeeper/etc/Authors/clemens.txt@1.2 +1 -1
BitKeeper/etc/Authors/cov-build.txt@1.2 +1 -1
BitKeeper/etc/Authors/cprice.txt@1.2 +1 -1
BitKeeper/etc/Authors/davehart.txt@1.2 +1 -1
BitKeeper/etc/Authors/dietrich.txt@1.2 +1 -1
BitKeeper/etc/Authors/dunlop.txt@1.2 +1 -1
BitKeeper/etc/Authors/fernandoph.txt@1.2 +1 -1
BitKeeper/etc/Authors/fredb.txt@1.2 +1 -1
BitKeeper/etc/Authors/gerstung.txt@1.2 +1 -1
BitKeeper/etc/Authors/ginsbach.txt@1.2 +1 -1
BitKeeper/etc/Authors/gnu.txt@1.2 +1 -1
BitKeeper/etc/Authors/gopal.txt@1.2 +1 -1
BitKeeper/etc/Authors/gunturu.txt@1.2 +1 -1
BitKeeper/etc/Authors/harlan.txt@1.2 +1 -1
BitKeeper/etc/Authors/harlanst.txt@1.2 +1 -1
BitKeeper/etc/Authors/hart.txt@1.2 +1 -1
BitKeeper/etc/Authors/hilbrecht.txt@1.2 +1 -1
BitKeeper/etc/Authors/hstenn.txt@1.2 +1 -1
BitKeeper/etc/Authors/jhay.txt@1.2 +1 -1
BitKeeper/etc/Authors/jnperlin.txt@1.2 +1 -1
BitKeeper/etc/Authors/kamboj.txt@1.2 +1 -1
BitKeeper/etc/Authors/kardel.txt@1.2 +1 -1
BitKeeper/etc/Authors/karlsson.txt@1.2 +1 -1
BitKeeper/etc/Authors/kuehn.txt@1.2 +1 -1
BitKeeper/etc/Authors/linus.txt@1.2 +1 -1
BitKeeper/etc/Authors/loki.txt@1.2 +1 -1
BitKeeper/etc/Authors/martin.txt@1.2 +1 -1
BitKeeper/etc/Authors/matthias.andree.txt@1.2 +1 -1
BitKeeper/etc/Authors/mayer.txt@1.2 +1 -1
BitKeeper/etc/Authors/mbrett.txt@1.2 +1 -1
BitKeeper/etc/Authors/murray.txt@1.2 +1 -1
BitKeeper/etc/Authors/neal.txt@1.2 +1 -1
BitKeeper/etc/Authors/paul.txt@1.2 +1 -1
BitKeeper/etc/Authors/peda.txt@1.2 +1 -1
BitKeeper/etc/Authors/perlinger.txt@1.2 +1 -1
BitKeeper/etc/Authors/phk.txt@1.2 +1 -1
BitKeeper/etc/Authors/rayvt.txt@1.2 +1 -1
BitKeeper/etc/Authors/rick.txt@1.2 +1 -1
BitKeeper/etc/Authors/ro.txt@1.2 +1 -1
BitKeeper/etc/Authors/root.txt@1.2 +1 -1
BitKeeper/etc/Authors/skamboj.txt@1.2 +1 -1
BitKeeper/etc/Authors/stenn.txt@1.2 +1 -1
BitKeeper/etc/Authors/tflendrich.txt@1.2 +1 -1
BitKeeper/etc/Authors/tomek.txt@1.2 +1 -1
BitKeeper/etc/Authors/utterback.txt@1.2 +1 -1
BitKeeper/etc/Authors/venu.txt@1.2 +1 -1
BitKeeper/etc/Authors/viperus.txt@1.2 +1 -1
BitKeeper/etc/Authors/wink.txt@1.2 +1 -1
ChangeSet@1.3827.17.1, 2019-03-08 22:53:29-08:00, ntpreleng@ntp-build.tal1.ntfo.org
Use hostname builddirs at NTF
build@1.49.2.1 +1 -1
Use hostname builddirs at NTF
ChangeSet@1.3844.3.1, 2019-03-07 11:59:40+00:00, stenn@psp-deb1.ntp.org
NTP_4_2_8P13
TAG: NTP_4_2_8P13 (currently on 1.3894)
ChangeLog@1.1968.1.3 +4 -1
ntp-4.2.8p13
NEWS@1.197.1.1 +54 -2
ntp-4.2.8p13
build@1.49.1.1 +1 -1
ntp-4.2.8p13
ntpd/invoke-ntp.conf.texi@1.218 +1 -1
ntp-4.2.8p13
ntpd/invoke-ntp.keys.texi@1.203 +1 -1
ntp-4.2.8p13
ntpd/invoke-ntpd.texi@1.517 +4 -4
ntp-4.2.8p13
ntpd/ntp.conf.5man@1.252 +3 -3
ntp-4.2.8p13
ntpd/ntp.conf.5mdoc@1.252 +2 -2
ntp-4.2.8p13
ntpd/ntp.conf.html@1.201 +1680 -1266
ntp-4.2.8p13
ntpd/ntp.conf.man.in@1.252 +3 -3
ntp-4.2.8p13
ntpd/ntp.conf.mdoc.in@1.252 +2 -2
ntp-4.2.8p13
ntpd/ntp.keys.5man@1.237 +2 -2
ntp-4.2.8p13
ntpd/ntp.keys.5mdoc@1.237 +3 -3
ntp-4.2.8p13
ntpd/ntp.keys.html@1.200 +167 -116
ntp-4.2.8p13
ntpd/ntp.keys.man.in@1.237 +2 -2
ntp-4.2.8p13
ntpd/ntp.keys.mdoc.in@1.237 +3 -3
ntp-4.2.8p13
ntpd/ntp_control.c@1.232.2.1 +17 -9
ntp-4.2.8p13
ntpd/ntpd-opts.c@1.539 +8 -8
ntp-4.2.8p13
ntpd/ntpd-opts.h@1.538 +5 -5
ntp-4.2.8p13
ntpd/ntpd.1ntpdman@1.346 +3 -3
ntp-4.2.8p13
ntpd/ntpd.1ntpdmdoc@1.346 +2 -2
ntp-4.2.8p13
ntpd/ntpd.html@1.192 +758 -677
ntp-4.2.8p13
ntpd/ntpd.man.in@1.346 +3 -3
ntp-4.2.8p13
ntpd/ntpd.mdoc.in@1.346 +2 -2
ntp-4.2.8p13
ntpdc/invoke-ntpdc.texi@1.514 +2 -2
ntp-4.2.8p13
ntpdc/ntpdc-opts.c@1.532 +8 -8
ntp-4.2.8p13
ntpdc/ntpdc-opts.h@1.531 +5 -5
ntp-4.2.8p13
ntpdc/ntpdc.1ntpdcman@1.345 +3 -3
ntp-4.2.8p13
ntpdc/ntpdc.1ntpdcmdoc@1.345 +2 -2
ntp-4.2.8p13
ntpdc/ntpdc.html@1.360 +425 -350
ntp-4.2.8p13
ntpdc/ntpdc.man.in@1.345 +3 -3
ntp-4.2.8p13
ntpdc/ntpdc.mdoc.in@1.345 +2 -2
ntp-4.2.8p13
ntpq/invoke-ntpq.texi@1.524 +2 -2
ntp-4.2.8p13
ntpq/ntpq-opts.c@1.541 +8 -8
ntp-4.2.8p13
ntpq/ntpq-opts.h@1.539 +5 -5
ntp-4.2.8p13
ntpq/ntpq.1ntpqman@1.352 +3 -3
ntp-4.2.8p13
ntpq/ntpq.1ntpqmdoc@1.352 +2 -2
ntp-4.2.8p13
ntpq/ntpq.html@1.191 +1543 -1324
ntp-4.2.8p13
ntpq/ntpq.man.in@1.352 +3 -3
ntp-4.2.8p13
ntpq/ntpq.mdoc.in@1.352 +2 -2
ntp-4.2.8p13
ntpsnmpd/invoke-ntpsnmpd.texi@1.516 +10 -11
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd-opts.c@1.534 +8 -8
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd-opts.h@1.533 +5 -5
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.345 +3 -3
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.345 +2 -2
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd.html@1.186 +95 -58
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd.man.in@1.345 +3 -3
ntp-4.2.8p13
ntpsnmpd/ntpsnmpd.mdoc.in@1.345 +2 -2
ntp-4.2.8p13
packageinfo.sh@1.543 +1 -1
ntp-4.2.8p13
scripts/build/check--help@1.3.1.1 +2 -2
ntp-4.2.8p13
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.106 +3 -3
ntp-4.2.8p13
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.107 +2 -2
ntp-4.2.8p13
scripts/calc_tickadj/calc_tickadj.html@1.107 +178 -122
ntp-4.2.8p13
scripts/calc_tickadj/calc_tickadj.man.in@1.105 +3 -3
ntp-4.2.8p13
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.107 +2 -2
ntp-4.2.8p13
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.110 +1 -1
ntp-4.2.8p13
scripts/invoke-plot_summary.texi@1.128 +2 -2
ntp-4.2.8p13
scripts/invoke-summary.texi@1.127 +2 -2
ntp-4.2.8p13
scripts/ntp-wait/invoke-ntp-wait.texi@1.337 +2 -2
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait-opts@1.73 +2 -2
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.334 +3 -3
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.335 +2 -2
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait.html@1.356 +189 -142
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait.man.in@1.334 +3 -3
ntp-4.2.8p13
scripts/ntp-wait/ntp-wait.mdoc.in@1.335 +2 -2
ntp-4.2.8p13
scripts/ntpsweep/invoke-ntpsweep.texi@1.125 +2 -2
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep-opts@1.75 +2 -2
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.113 +3 -3
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.113 +2 -2
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep.html@1.128 +196 -149
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep.man.in@1.113 +3 -3
ntp-4.2.8p13
scripts/ntpsweep/ntpsweep.mdoc.in@1.114 +2 -2
ntp-4.2.8p13
scripts/ntptrace/invoke-ntptrace.texi@1.126 +2 -2
ntp-4.2.8p13
scripts/ntptrace/ntptrace-opts@1.75 +2 -2
ntp-4.2.8p13
scripts/ntptrace/ntptrace.1ntptraceman@1.113 +3 -3
ntp-4.2.8p13
scripts/ntptrace/ntptrace.1ntptracemdoc@1.114 +2 -2
ntp-4.2.8p13
scripts/ntptrace/ntptrace.html@1.129 +186 -127
ntp-4.2.8p13
scripts/ntptrace/ntptrace.man.in@1.113 +3 -3
ntp-4.2.8p13
scripts/ntptrace/ntptrace.mdoc.in@1.115 +2 -2
ntp-4.2.8p13
scripts/plot_summary-opts@1.76 +2 -2
ntp-4.2.8p13
scripts/plot_summary.1plot_summaryman@1.126 +3 -3
ntp-4.2.8p13
scripts/plot_summary.1plot_summarymdoc@1.126 +2 -2
ntp-4.2.8p13
scripts/plot_summary.html@1.131 +211 -151
ntp-4.2.8p13
scripts/plot_summary.man.in@1.126 +3 -3
ntp-4.2.8p13
scripts/plot_summary.mdoc.in@1.126 +2 -2
ntp-4.2.8p13
scripts/summary-opts@1.75 +2 -2
ntp-4.2.8p13
scripts/summary.1summaryman@1.125 +3 -3
ntp-4.2.8p13
scripts/summary.1summarymdoc@1.125 +2 -2
ntp-4.2.8p13
scripts/summary.html@1.130 +192 -132
ntp-4.2.8p13
scripts/summary.man.in@1.125 +3 -3
ntp-4.2.8p13
scripts/summary.mdoc.in@1.125 +2 -2
ntp-4.2.8p13
scripts/update-leap/invoke-update-leap.texi@1.26 +1 -1
ntp-4.2.8p13
scripts/update-leap/update-leap-opts@1.26 +2 -2
ntp-4.2.8p13
scripts/update-leap/update-leap.1update-leapman@1.26 +3 -3
ntp-4.2.8p13
scripts/update-leap/update-leap.1update-leapmdoc@1.26 +2 -2
ntp-4.2.8p13
scripts/update-leap/update-leap.html@1.28 +245 -197
ntp-4.2.8p13
scripts/update-leap/update-leap.man.in@1.26 +3 -3
ntp-4.2.8p13
scripts/update-leap/update-leap.mdoc.in@1.26 +2 -2
ntp-4.2.8p13
sntp/invoke-sntp.texi@1.516 +2 -2
ntp-4.2.8p13
sntp/libopts/autoopts/options.h@1.30.1.1 +1 -1
ntp-4.2.8p13
sntp/libopts/genshell.h@1.30.1.1 +1 -1
ntp-4.2.8p13
sntp/sntp-opts.c@1.535 +8 -8
ntp-4.2.8p13
sntp/sntp-opts.h@1.533 +5 -5
ntp-4.2.8p13
sntp/sntp.1sntpman@1.351 +3 -3
ntp-4.2.8p13
sntp/sntp.1sntpmdoc@1.351 +2 -2
ntp-4.2.8p13
sntp/sntp.html@1.532 +493 -415
ntp-4.2.8p13
sntp/sntp.man.in@1.351 +3 -3
ntp-4.2.8p13
sntp/sntp.mdoc.in@1.351 +2 -2
ntp-4.2.8p13
util/invoke-ntp-keygen.texi@1.519 +2 -2
ntp-4.2.8p13
util/ntp-keygen-opts.c@1.537 +8 -8
ntp-4.2.8p13
util/ntp-keygen-opts.h@1.535 +5 -5
ntp-4.2.8p13
util/ntp-keygen.1ntp-keygenman@1.347 +3 -3
ntp-4.2.8p13
util/ntp-keygen.1ntp-keygenmdoc@1.347 +2 -2
ntp-4.2.8p13
util/ntp-keygen.html@1.192 +1184 -1025
ntp-4.2.8p13
util/ntp-keygen.man.in@1.347 +3 -3
ntp-4.2.8p13
util/ntp-keygen.mdoc.in@1.347 +2 -2
ntp-4.2.8p13
ChangeSet@1.3844.1.5, 2019-02-20 17:13:36-08:00, harlan@ntp-build.tal1.ntfo.org
Update NEWS file
NEWS@1.200 +3 -0
Update NEWS file
ChangeSet@1.3844.1.4, 2019-02-20 09:44:58-08:00, harlan@ntp-build.tal1.ntfo.org
build system cleanups
build@1.50 +1 -1
build system cleanups
scripts/build/check--help@1.4 +2 -2
build system cleanups
sntp/libopts/autoopts/options.h@1.31 +1 -1
build system cleanups
sntp/libopts/genshell.h@1.31 +1 -1
build system cleanups
ChangeSet@1.3844.1.3, 2019-02-18 22:26:26-08:00, harlan@ntp-build.tal1.ntfo.org
ChangeLog and NEWS description cleanups
ChangeLog@1.1971 +4 -4
ChangeLog and NEWS description cleanups
NEWS@1.199 +4 -2
ChangeLog and NEWS description cleanups
ChangeSet@1.3844.2.4, 2019-02-18 20:10:25-08:00, harlan@ntp-build.tal1.ntfo.org
NEWS file update
NEWS@1.198 +49 -2
NEWS file update
ChangeSet@1.3844.2.3, 2019-02-16 07:36:50+00:00, stenn@stenn.ntp.org
Improve messages around signalled IO handling in configure
sntp/m4/ntp_libntp.m4@1.38 +5 -0
Improve messages around signalled IO handling in configure
ChangeSet@1.3844.2.2, 2019-02-15 13:27:05+00:00, stenn@stenn.ntp.org
Implement --disable-signalled-io
ChangeLog@1.1968.1.2 +1 -0
Implement --disable-signalled-io
sntp/m4/ntp_libntp.m4@1.37 +22 -2
Implement --disable-signalled-io
ChangeSet@1.3827.16.1, 2019-02-04 07:51:23+01:00, perlinger@ntp.org
[Bug 3570] NMEA driver docs: talker ID not mentioned, typo
ChangeLog@1.1952.16.1 +3 -0
[Bug 3570] NMEA driver docs: talker ID not mentioned, typo
html/drivers/driver20.html@1.30 +94 -48
[Bug 3570] NMEA driver docs: talker ID not mentioned, typo
ChangeSet@1.3848, 2019-01-27 11:26:02+01:00, perlinger@ntp.org
[Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()'
Changelog + assigned bug number
ChangeLog@1.1968.2.1 +2 -0
[Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()'
ChangeSet@1.3847, 2019-01-27 10:19:08+01:00, perlinger@ntp.org
ntpdate: fix service resolution if 'ntp' is not in '/etc/services'
ntpdate/ntpdate.c@1.103 +10 -1
ntpdate: fix service resolution if 'ntp' is not in '/etc/services'
ChangeSet@1.3844.2.1, 2019-01-17 04:16:52+00:00, stenn@psp-deb1.ntp.org
Cleanup
ChangeLog@1.1968.1.1 +0 -1
Cleanup
ChangeSet@1.3844.1.1, 2019-01-16 21:42:59+01:00, perlinger@ntp.org
[Sec 3565] null pointer crash by remote attack
ChangeLog@1.1969 +3 -0
[Sec 3565] null pointer crash by remote attack
ntpd/ntp_control.c@1.232.1.1 +17 -9
[Sec 3565] null pointer crash by remote attack
ChangeSet@1.3846, 2019-01-06 10:58:40+01:00, perlinger@ntp.org
'struct timex' suppoert -- cleanup
libntp/timexsup.c@1.2 +1 -1
'struct timex' suppoert -- cleanup
ntpd/ntp_control.c@1.233 +9 -14
'struct timex' suppoert -- cleanup
util/ntptime.c@1.29 +39 -44
'struct timex' suppoert -- cleanup
ChangeSet@1.3845, 2019-01-03 23:58:11+01:00, perlinger@ntp.org
refactor 'struct timex' access (MOD_NANO/STA_NANO)
include/timexsup.h@1.1 +42 -0
refactor 'struct timex' access (MOD_NANO/STA_NANO)
include/timexsup.h@1.0 +0 -0
libntp/Makefile.am@1.83 +1 -0
refactor 'struct timex' access (MOD_NANO/STA_NANO)
libntp/timexsup.c@1.1 +83 -0
refactor 'struct timex' access (MOD_NANO/STA_NANO)
libntp/timexsup.c@1.0 +0 -0
ntpd/ntp_loopfilter.c@1.193 +10 -25
refactor 'struct timex' access (MOD_NANO/STA_NANO)
ChangeSet@1.3827.1.2, 2018-12-15 13:25:25+00:00, stenn@psp-deb1.ntp.org
bug3527 fixes
ChangeLog@1.1952.1.2 +3 -3
bug3527 fixes
configure.ac@1.614.1.1 +18 -0
bug3527 fixes
ntpd/ntp_request.c@1.129 +7 -4
bug3527 fixes
ntpdc/ntpdc_ops.c@1.85 +8 -3
bug3527 fixes
ChangeSet@1.3827.15.1, 2018-12-12 07:37:12+01:00, perlinger@ntp.org
[Bug 3560] Fix build when HAVE_DROPROOT is not defined
ChangeLog@1.1952.15.1 +4 -0
[Bug 3560] Fix build when HAVE_DROPROOT is not defined
libntp/work_fork.c@1.20.2.1 +2 -0
[Bug 3560] Fix build when HAVE_DROPROOT is not defined
ChangeSet@1.3827.14.1, 2018-12-11 07:42:01+01:00, perlinger@ntp.org
[Bug 3558] Crash and integer size bug
[Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- isolate & fix LP64/LLP64 problem with BANCOMM SDK
ChangeLog@1.1952.14.1 +6 -0
[Bug 3558] Crash and integer size bug
[Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- isolate & fix LP64/LLP64 problem with BANCOMM SDK
configure.ac@1.615 +1 -0
[Bug 3558] Crash and integer size bug
[Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- search for BANCOMM SDK lib
ntpd/refclock_bancomm.c@1.17 +96 -23
[Bug 3558] Crash and integer size bug
[Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- isolate & fix LP64/LLP64 problem with BANCOMM SDK
ChangeSet@1.3827.11.2, 2018-12-05 06:58:13+01:00, perlinger@ntp.org
Bug 3556 - ntp_loopfilter.c snprintf compilation warnings
- stricter buffer range checks
libntp/xsbprintf.c@1.2 +11 -13
Bug 3556 - ntp_loopfilter.c snprintf compilation warnings
- stricter buffer range checks
tests/libntp/run-sbprintf.c@1.2 +8 -4
Bug 3556 - ntp_loopfilter.c snprintf compilation warnings
- stricter buffer range checks
tests/libntp/sbprintf.c@1.2 +28 -0
Bug 3556 - ntp_loopfilter.c snprintf compilation warnings
- stricter buffer range checks
ChangeSet@1.3827.10.2, 2018-12-03 02:29:24-05:00, stenn@psp-fb1.ntp.org
Update Changelog for latest fix for 3471
ChangeLog@1.1952.10.2 +6 -1
Update Changelog for latest fix for 3471
ChangeSet@1.3827.13.1, 2018-12-02 09:05:37+01:00, perlinger@ntp.org
[Bug 3555] Tidy up print alignment of debug output from ntpdate
ChangeLog@1.1952.13.1 +4 -0
[Bug 3555] Tidy up print alignment of debug output from ntpdate
ntpdate/ntpdate.c@1.102 +12 -9
[Bug 3555] Tidy up print alignment of debug output from ntpdate
ChangeSet@1.3827.12.1, 2018-12-02 08:17:05+01:00, perlinger@ntp.org
[Bug 3554] config revoke stores incorrect value
- plus some additional cleanup
ChangeLog@1.1952.12.1 +4 -0
[Bug 3554] config revoke stores incorrect value
include/ntpd.h@1.204 +2 -2
[Bug 3554] config revoke stores incorrect value
- sys_{revoke,automax} hold positive log2 value -- unsigned char is enough.
ntpd/ntp_config.c@1.365.2.1 +12 -3
[Bug 3554] config revoke stores incorrect value
- sys_{revoke,automax} hold positive log2 value for shift; clamp values
ntpd/ntp_crypto.c@1.190.1.1 +2 -2
[Bug 3554] config revoke stores incorrect value
- avoid possible integer truncation
ntpd/ntp_timer.c@1.97 +4 -4
[Bug 3554] config revoke stores incorrect value
- sys_{revoke,automax} hold positive log2 value -- unsigned char is enough.
- avoid possible integer truncation
ChangeSet@1.3827.11.1, 2018-12-01 12:10:51+01:00, perlinger@ntp.org
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- provide better function for incremental string formatting
ChangeLog@1.1952.11.1 +4 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- provide better function for incremental string formatting
include/ntp_stdlib.h@1.86.1.1 +3 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- provide better API for incremental string formatting
libntp/Makefile.am@1.82 +1 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
libntp/xsbprintf.c@1.1 +77 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- implement new API for incremental string formatting
libntp/xsbprintf.c@1.0 +0 -0
ntpd/ntp_loopfilter.c@1.192 +18 -14
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- use new API for incremental string formatting
ports/winnt/vs2005/libntp.vcproj@1.27 +4 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
ports/winnt/vs2008/libntp/libntp.vcproj@1.58 +4 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
ports/winnt/vs2013/libntp/libntp.vcxproj@1.14 +3 -2
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.12 +5 -2
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
ports/winnt/vs2015/libntp/libntp.vcxproj@1.4 +3 -2
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.4 +5 -2
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add source of new API for incremental string formatting
tests/libntp/Makefile.am@1.100 +12 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add string buffer formatting tests
tests/libntp/run-sbprintf.c@1.1 +72 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add string buffer formatting tests
tests/libntp/run-sbprintf.c@1.0 +0 -0
tests/libntp/sbprintf.c@1.1 +67 -0
[Bug 3556] ntp_loopfilter.c snprintf compilation warnings
- add string buffer formatting tests
tests/libntp/sbprintf.c@1.0 +0 -0
ChangeSet@1.3827.10.1, 2018-11-30 06:34:35+01:00, perlinger@ntp.org
[Bug 3471] Check for openssl/[ch]mac.h
- added missing check in code
ChangeLog@1.1952.10.1 +1 -0
[Bug 3471] Check for openssl/[ch]mac.h
- added missing check in code
libntp/authreadkeys.c@1.33 +2 -0
[Bug 3471] Check for openssl/[ch]mac.h
- added missing check in code
ChangeSet@1.3827.9.1, 2018-11-11 12:03:14+01:00, perlinger@ntp.org
[Bug 3549] Spurious initgroups() error message
ChangeLog@1.1952.9.1 +4 -0
[Bug 3549] Spurious initgroups() error message
ntpd/ntpd.c@1.177.2.1 +33 -17
[Bug 3549] Spurious initgroups() error message
- make 'set_user_group_ids()' idempotent: If we're already there, don't complain.
ChangeSet@1.3827.8.1, 2018-11-11 11:07:23+01:00, perlinger@ntp.org
[Bug 3548] Signature not verified on windows system
ChangeLog@1.1952.8.1 +4 -0
[Bug 3548] Signature not verified on windows system
ntpd/ntp_crypto.c@1.191 +2 -1
[Bug 3548] Signature not verified on windows system
- ntohl() can be a macro
sntp/networking.c@1.70 +2 -1
[Bug 3548] Signature not verified on windows system
- ntohl() can be a macro
ChangeSet@1.3827.7.1, 2018-11-11 09:56:34+01:00, perlinger@ntp.org
[Bug 3541] patch to fix STA_NANO struct timex units
ChangeLog@1.1952.7.1 +4 -0
[Bug 3541] patch to fix STA_NANO struct timex units
ntpd/ntp_control.c@1.232 +9 -7
[Bug 3541] patch to fix STA_NANO struct timex units
ntpdc/ntpdc_ops.c@1.83.1.1 +7 -7
[Bug 3541] patch to fix STA_NANO struct timex units
util/ntptime.c@1.28 +0 -4
[Bug 3541] patch to fix STA_NANO struct timex units
ChangeSet@1.3827.6.1, 2018-10-27 11:00:56+02:00, perlinger@ntp.org
[Bug 3540] Cannot set minsane to 0 anymore
ChangeLog@1.1952.6.1 +4 -0
[Bug 3540] Cannot set minsane to 0 anymore
ntpd/ntp_config.c@1.365.1.1 +2 -2
[Bug 3540] Cannot set minsane to 0 anymore
ChangeSet@1.3827.5.1, 2018-10-27 10:33:55+02:00, perlinger@ntp.org
[Bug 3539] work_fork build fails when droproot is not supported
ChangeLog@1.1952.5.1 +4 -0
[Bug 3539] work_fork build fails when droproot is not supported
libntp/work_fork.c@1.20.1.1 +2 -0
[Bug 3539] work_fork build fails when droproot is not supported
ChangeSet@1.3827.4.1, 2018-10-27 10:23:05+02:00, perlinger@ntp.org
[Bug 3538] Build fails for no-MMU targets
ChangeLog@1.1952.4.1 +4 -0
[Bug 3538] Build fails for no-MMU targets
ntpd/ntpd.c@1.177.1.1 +2 -0
[Bug 3538] Build fails for no-MMU targets
ChangeSet@1.3827.3.1, 2018-10-13 08:03:48+02:00, perlinger@ntp.org
[Bug 3535] libparse won't handle GPS week rollover
ChangeLog@1.1952.3.1 +5 -0
[Bug 3535] libparse won't handle GPS week rollover
include/ntp_calendar.h@1.20 +21 -3
[Bug 3535] libparse won't handle GPS week rollover
- GPS week era support
include/parse.h@1.15 +0 -1
[Bug 3535] libparse won't handle GPS week rollover
- remove GPSWRAP definition to avoid lurking uses
libntp/calyearstart.c@1.7 +1 -1
[Bug 3535] libparse won't handle GPS week rollover
libntp/ntp_calendar.c@1.21 +38 -0
[Bug 3535] libparse won't handle GPS week rollover
- set GPS base week as first Sunday on or after base date
libparse/clk_trimtsip.c@1.15 +5 -9
[Bug 3535] libparse won't handle GPS week rollover
- use centralized week expansion code
libparse/gpstolfp.c@1.14 +0 -5
[Bug 3535] libparse won't handle GPS week rollover
- don't try to expand weeks in the conversion
ntpd/ntp_config.c@1.366 +4 -0
[Bug 3535] libparse won't handle GPS week rollover
- set basedate based on build stamp if not set explicitely
ntpd/refclock_jupiter.c@1.32 +1 -56
[Bug 3535] libparse won't handle GPS week rollover
- use centralized week expansion code instead of local copy
ntpd/refclock_parse.c@1.87 +1 -2
[Bug 3535] libparse won't handle GPS week rollover
- use centralized week expansion code
ChangeSet@1.3827.2.1, 2018-10-02 18:03:33+02:00, perlinger@ntp.org
[Bug 3529] Build failures on Mac OS X 10.13 (High Sierra)
ChangeLog@1.1952.2.1 +5 -0
[Bug 3529] Build failures on Mac OS X 10.13 (High Sierra)
libntp/work_fork.c@1.21 +6 -3
[Bug 3529] Build failures on Mac OS X 10.13 (High Sierra)
- make existence of 'set_user_group_ids()' depend on HAVE_DROPROOT
ChangeSet@1.3827.1.1, 2018-10-02 17:38:18+02:00, perlinger@ntp.org
[Bug 3527] fudgeval2 anomaly in mode7 clock info packet
ChangeLog@1.1952.1.1 +5 -0
[Bug 3527] fudgeval2 anomaly in mode7 clock info packet
ntpd/ntp_request.c@1.128 +5 -0
[Bug 3527] fudgeval2 anomaly in mode7 clock info packet
ntpdc/ntpdc_ops.c@1.84 +4 -0
[Bug 3527] fudgeval2 anomaly in mode7 clock info packet
ChangeSet@1.3828, 2018-09-12 22:52:00+02:00, perlinger@ntp.org
[Bug 3526] Incorrect poll interval in packet
ChangeLog@1.1953 +4 -0
[Bug 3526] Incorrect poll interval in packet
ntpd/ntp_proto.c@1.423 +4 -4
[Bug 3526] Incorrect poll interval in packet
ntpd/ntpd.c@1.178 +4 -4
[Bug 3526] Incorrect poll interval in packet
(side kick: fix function prototypes. C is not C++.)
sntp/main.c@1.104 +2 -3
[Bug 3526] Incorrect poll interval in packet
(side kick: fix function prototypes. C is not C++.)
ChangeSet@1.3827, 2018-08-14 08:31:08-04:00, stenn@deacon.udel.edu
NTP_4_2_8P12
TAG: NTP_4_2_8P12
ChangeLog@1.1952 +1 -0
NTP_4_2_8P12
ntpd/invoke-ntp.conf.texi@1.217 +1 -1
NTP_4_2_8P12
ntpd/invoke-ntp.keys.texi@1.202 +1 -1
NTP_4_2_8P12
ntpd/invoke-ntpd.texi@1.516 +2 -2
NTP_4_2_8P12
ntpd/ntp.conf.5man@1.251 +3 -3
NTP_4_2_8P12
ntpd/ntp.conf.5mdoc@1.251 +2 -2
NTP_4_2_8P12
ntpd/ntp.conf.html@1.200 +92 -105
NTP_4_2_8P12
ntpd/ntp.conf.man.in@1.251 +3 -3
NTP_4_2_8P12
ntpd/ntp.conf.mdoc.in@1.251 +2 -2
NTP_4_2_8P12
ntpd/ntp.keys.5man@1.236 +2 -2
NTP_4_2_8P12
ntpd/ntp.keys.5mdoc@1.236 +3 -3
NTP_4_2_8P12
ntpd/ntp.keys.html@1.199 +17 -29
NTP_4_2_8P12
ntpd/ntp.keys.man.in@1.236 +2 -2
NTP_4_2_8P12
ntpd/ntp.keys.mdoc.in@1.236 +3 -3
NTP_4_2_8P12
ntpd/ntpd-opts.c@1.538 +7 -7
NTP_4_2_8P12
ntpd/ntpd-opts.h@1.537 +3 -3
NTP_4_2_8P12
ntpd/ntpd.1ntpdman@1.345 +3 -3
NTP_4_2_8P12
ntpd/ntpd.1ntpdmdoc@1.345 +2 -2
NTP_4_2_8P12
ntpd/ntpd.html@1.191 +101 -145
NTP_4_2_8P12
ntpd/ntpd.man.in@1.345 +3 -3
NTP_4_2_8P12
ntpd/ntpd.mdoc.in@1.345 +2 -2
NTP_4_2_8P12
ntpdc/invoke-ntpdc.texi@1.513 +2 -2
NTP_4_2_8P12
ntpdc/ntpdc-opts.c@1.531 +7 -7
NTP_4_2_8P12
ntpdc/ntpdc-opts.h@1.530 +3 -3
NTP_4_2_8P12
ntpdc/ntpdc.1ntpdcman@1.344 +3 -3
NTP_4_2_8P12
ntpdc/ntpdc.1ntpdcmdoc@1.344 +2 -2
NTP_4_2_8P12
ntpdc/ntpdc.html@1.359 +57 -77
NTP_4_2_8P12
ntpdc/ntpdc.man.in@1.344 +3 -3
NTP_4_2_8P12
ntpdc/ntpdc.mdoc.in@1.344 +2 -2
NTP_4_2_8P12
ntpq/invoke-ntpq.texi@1.523 +2 -2
NTP_4_2_8P12
ntpq/ntpq-opts.c@1.540 +7 -7
NTP_4_2_8P12
ntpq/ntpq-opts.h@1.538 +3 -3
NTP_4_2_8P12
ntpq/ntpq.1ntpqman@1.351 +3 -3
NTP_4_2_8P12
ntpq/ntpq.1ntpqmdoc@1.351 +2 -2
NTP_4_2_8P12
ntpq/ntpq.html@1.190 +105 -129
NTP_4_2_8P12
ntpq/ntpq.man.in@1.351 +3 -3
NTP_4_2_8P12
ntpq/ntpq.mdoc.in@1.351 +2 -2
NTP_4_2_8P12
ntpsnmpd/invoke-ntpsnmpd.texi@1.515 +1 -1
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd-opts.c@1.533 +7 -7
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd-opts.h@1.532 +3 -3
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.344 +3 -3
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.344 +2 -2
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd.html@1.185 +10 -14
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd.man.in@1.344 +3 -3
NTP_4_2_8P12
ntpsnmpd/ntpsnmpd.mdoc.in@1.344 +2 -2
NTP_4_2_8P12
packageinfo.sh@1.542 +2 -2
NTP_4_2_8P12
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.105 +3 -3
NTP_4_2_8P12
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.106 +2 -2
NTP_4_2_8P12
scripts/calc_tickadj/calc_tickadj.html@1.106 +1 -1
NTP_4_2_8P12
scripts/calc_tickadj/calc_tickadj.man.in@1.104 +3 -3
NTP_4_2_8P12
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.106 +2 -2
NTP_4_2_8P12
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.109 +1 -1
NTP_4_2_8P12
scripts/invoke-plot_summary.texi@1.127 +2 -2
NTP_4_2_8P12
scripts/invoke-summary.texi@1.126 +2 -2
NTP_4_2_8P12
scripts/ntp-wait/invoke-ntp-wait.texi@1.336 +2 -2
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait-opts@1.72 +2 -2
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.333 +3 -3
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.334 +2 -2
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait.html@1.355 +31 -49
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait.man.in@1.333 +3 -3
NTP_4_2_8P12
scripts/ntp-wait/ntp-wait.mdoc.in@1.334 +2 -2
NTP_4_2_8P12
scripts/ntpsweep/invoke-ntpsweep.texi@1.124 +2 -2
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep-opts@1.74 +2 -2
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.112 +3 -3
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.112 +2 -2
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep.html@1.127 +33 -44
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep.man.in@1.112 +3 -3
NTP_4_2_8P12
scripts/ntpsweep/ntpsweep.mdoc.in@1.113 +2 -2
NTP_4_2_8P12
scripts/ntptrace/invoke-ntptrace.texi@1.125 +2 -2
NTP_4_2_8P12
scripts/ntptrace/ntptrace-opts@1.74 +2 -2
NTP_4_2_8P12
scripts/ntptrace/ntptrace.1ntptraceman@1.112 +3 -3
NTP_4_2_8P12
scripts/ntptrace/ntptrace.1ntptracemdoc@1.113 +2 -2
NTP_4_2_8P12
scripts/ntptrace/ntptrace.html@1.128 +27 -36
NTP_4_2_8P12
scripts/ntptrace/ntptrace.man.in@1.112 +3 -3
NTP_4_2_8P12
scripts/ntptrace/ntptrace.mdoc.in@1.114 +2 -2
NTP_4_2_8P12
scripts/plot_summary-opts@1.75 +2 -2
NTP_4_2_8P12
scripts/plot_summary.1plot_summaryman@1.125 +3 -3
NTP_4_2_8P12
scripts/plot_summary.1plot_summarymdoc@1.125 +2 -2
NTP_4_2_8P12
scripts/plot_summary.html@1.130 +29 -47
NTP_4_2_8P12
scripts/plot_summary.man.in@1.125 +3 -3
NTP_4_2_8P12
scripts/plot_summary.mdoc.in@1.125 +2 -2
NTP_4_2_8P12
scripts/summary-opts@1.74 +2 -2
NTP_4_2_8P12
scripts/summary.1summaryman@1.124 +3 -3
NTP_4_2_8P12
scripts/summary.1summarymdoc@1.124 +2 -2
NTP_4_2_8P12
scripts/summary.html@1.129 +27 -39
NTP_4_2_8P12
scripts/summary.man.in@1.124 +3 -3
NTP_4_2_8P12
scripts/summary.mdoc.in@1.124 +2 -2
NTP_4_2_8P12
scripts/update-leap/invoke-update-leap.texi@1.25 +1 -1
NTP_4_2_8P12
scripts/update-leap/update-leap-opts@1.25 +2 -2
NTP_4_2_8P12
scripts/update-leap/update-leap.1update-leapman@1.25 +3 -3
NTP_4_2_8P12
scripts/update-leap/update-leap.1update-leapmdoc@1.25 +2 -2
NTP_4_2_8P12
scripts/update-leap/update-leap.html@1.27 +35 -59
NTP_4_2_8P12
scripts/update-leap/update-leap.man.in@1.25 +3 -3
NTP_4_2_8P12
scripts/update-leap/update-leap.mdoc.in@1.25 +2 -2
NTP_4_2_8P12
sntp/invoke-sntp.texi@1.515 +23 -27
NTP_4_2_8P12
sntp/sntp-opts.c@1.534 +7 -7
NTP_4_2_8P12
sntp/sntp-opts.h@1.532 +3 -3
NTP_4_2_8P12
sntp/sntp.1sntpman@1.350 +3 -3
NTP_4_2_8P12
sntp/sntp.1sntpmdoc@1.350 +2 -2
NTP_4_2_8P12
sntp/sntp.html@1.531 +106 -134
NTP_4_2_8P12
sntp/sntp.man.in@1.350 +3 -3
NTP_4_2_8P12
sntp/sntp.mdoc.in@1.350 +2 -2
NTP_4_2_8P12
util/invoke-ntp-keygen.texi@1.518 +2 -2
NTP_4_2_8P12
util/ntp-keygen-opts.c@1.536 +7 -7
NTP_4_2_8P12
util/ntp-keygen-opts.h@1.534 +3 -3
NTP_4_2_8P12
util/ntp-keygen.1ntp-keygenman@1.346 +3 -3
NTP_4_2_8P12
util/ntp-keygen.1ntp-keygenmdoc@1.346 +2 -2
NTP_4_2_8P12
util/ntp-keygen.html@1.191 +148 -206
NTP_4_2_8P12
util/ntp-keygen.man.in@1.346 +3 -3
NTP_4_2_8P12
util/ntp-keygen.mdoc.in@1.346 +2 -2
NTP_4_2_8P12
ChangeSet@1.3826, 2018-08-14 07:16:23-04:00, stenn@deacon.udel.edu
Trigger the release of ntp-4.2.8p12
packageinfo.sh@1.541 +1 -1
Trigger the release of ntp-4.2.8p12
ChangeSet@1.3825, 2018-08-13 04:31:37+00:00, stenn@psp-deb1.ntp.org
NEWS update
NEWS@1.197 +1 -1
NEWS update
ChangeSet@1.3812.1.10, 2018-08-04 10:31:58+00:00, stenn@psp-deb1.ntp.org
[Bug 3521] Fix a logic bug in the INVALIDNAK checks
ChangeLog@1.1942.1.9 +1 -0
[Bug 3521] Fix a logic bug in the INVALIDNAK checks
NEWS@1.192.1.2 +1 -0
[Bug 3521] Fix a logic bug in the INVALIDNAK checks
ntpd/ntp_proto.c@1.422 +46 -35
[Bug 3521] Fix a logic bug in the INVALIDNAK checks
ChangeSet@1.3823, 2018-07-28 05:03:57+00:00, stenn@psp-deb1.ntp.org
3505 description updates
ChangeLog@1.1950 +2 -1
3505 description updates
NEWS@1.195 +2 -2
3505 description updates
ChangeSet@1.3812.1.9, 2018-07-25 09:56:39+00:00, stenn@psp-deb1.ntp.org
updates
ChangeLog@1.1942.1.8 +1 -0
updates
NEWS@1.192.1.1 +2 -2
updates
html/authentic.html@1.18 +219 -87
updates
ChangeSet@1.3821, 2018-07-25 07:41:01+00:00, stenn@psp-deb1.ntp.org
updates
ntpd/ntp.conf.html@1.199 +104 -91
updates
ntpd/ntp.keys.html@1.198 +28 -16
updates
ntpd/ntpd.html@1.190 +145 -101
updates
ntpdc/ntpdc.html@1.358 +75 -55
updates
ntpsnmpd/ntpsnmpd.html@1.184 +13 -9
updates
scripts/ntp-wait/ntp-wait.html@1.354 +47 -29
updates
scripts/ntpsweep/ntpsweep.html@1.126 +42 -31
updates
scripts/ntptrace/ntptrace.html@1.127 +34 -25
updates
scripts/plot_summary.html@1.129 +45 -27
updates
scripts/summary.html@1.128 +37 -25
updates
scripts/update-leap/update-leap.html@1.26 +132 -34
updates
sntp/sntp.html@1.530 +107 -83
updates
ChangeSet@1.3820, 2018-07-25 07:38:42+00:00, stenn@psp-deb1.ntp.org
Bug 3509 tweaks
NEWS@1.193 +6 -1
Bug 3509 tweaks
sntp/m4/ntp_libntp.m4@1.36 +1 -1
Bug 3509 tweaks
ChangeSet@1.3816.1.1, 2018-07-25 07:08:13+02:00, perlinger@ntp.org
[Bug 3509] Add support for running as non-root on FreeBSD, Darwin, other TrustedBSD platforms
ChangeLog@1.1946.1.1 +3 -0
[Bug 3509] Add support for running as non-root on FreeBSD, Darwin, other TrustedBSD platforms
ntpd/ntpd.c@1.177 +20 -2
[Bug 3509] Add support for running as non-root on FreeBSD, Darwin, other TrustedBSD platforms
sntp/m4/ntp_libntp.m4@1.35 +22 -1
[Bug 3509] Add support for running as non-root on FreeBSD, Darwin, other TrustedBSD platforms
ChangeSet@1.3812.1.8, 2018-07-24 09:16:25+00:00, stenn@psp-deb1.ntp.org
Symmetric key range is 1-65535. Update docs.
html/authentic.html@1.17 +3 -3
Symmetric key range is 1-65535. Update docs.
ntpd/invoke-ntp.conf.texi@1.216 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.5man@1.250 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.5mdoc@1.250 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.def@1.33 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.html@1.198 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.man.in@1.250 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.mdoc.in@1.250 +5 -5
Symmetric key range is 1-65535. Update docs.
ChangeSet@1.3812.1.7, 2018-07-24 07:38:08+00:00, stenn@psp-deb1.ntp.org
Symmetric key range is 1-65535. Update docs.
ChangeLog@1.1942.1.7 +1 -0
Symmetric key range is 1-65535. Update docs.
NEWS@1.192 +66 -1
Symmetric key range is 1-65535. Update docs.
html/authopt.html@1.76 +3 -3
Symmetric key range is 1-65535. Update docs.
html/confopt.html@1.64 +2 -2
Symmetric key range is 1-65535. Update docs.
html/keygen.html@1.37 +2 -2
Symmetric key range is 1-65535. Update docs.
ntpd/complete.conf.in@1.34 +1 -1
Symmetric key range is 1-65535. Update docs.
ntpd/invoke-ntp.conf.texi@1.215 +2 -2
Symmetric key range is 1-65535. Update docs.
ntpd/invoke-ntp.keys.texi@1.201 +3 -3
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.5man@1.249 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.5mdoc@1.249 +3 -3
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.def@1.32 +1 -1
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.html@1.197 +1 -1
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.man.in@1.249 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.conf.mdoc.in@1.249 +3 -3
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.5man@1.235 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.5mdoc@1.235 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.def@1.13 +2 -2
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.html@1.197 +2 -2
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.man.in@1.235 +4 -4
Symmetric key range is 1-65535. Update docs.
ntpd/ntp.keys.mdoc.in@1.235 +5 -5
Symmetric key range is 1-65535. Update docs.
ntpq/ntpq.html@1.189 +129 -105
Symmetric key range is 1-65535. Update docs.
util/invoke-ntp-keygen.texi@1.517 +21 -19
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen-opts.c@1.535 +1 -1
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen-opts.def@1.32 +1 -1
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen-opts.h@1.533 +1 -1
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.1ntp-keygenman@1.345 +4 -4
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.1ntp-keygenmdoc@1.345 +3 -3
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.html@1.190 +208 -150
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.man.in@1.345 +4 -4
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.mdoc.in@1.345 +3 -3
Symmetric key range is 1-65535. Update docs.
util/ntp-keygen.texi@1.3 +1 -1
Symmetric key range is 1-65535. Update docs.
ChangeSet@1.3812.1.6, 2018-07-21 07:59:28+00:00, stenn@psp-deb1.ntp.org
[Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph. <stenn@ntp.org>
ChangeLog@1.1942.1.6 +1 -0
[Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph. <stenn@ntp.org>
ntpq/ntpq.texi@1.6 +1 -1
[Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph. <stenn@ntp.org>
ChangeSet@1.3812.1.5, 2018-07-21 04:25:55+00:00, stenn@psp-deb1.ntp.org
[Bug 3426] ntpdate.html -t default is 2 seconds. Leonid Evdokimov.
ChangeLog@1.1942.1.5 +2 -1
[Bug 3426] ntpdate.html -t default is 2 seconds. Leonid Evdokimov.
html/ntpdate.html@1.29 +2 -2
[Bug 3426] ntpdate.html -t default is 2 seconds. Leonid Evdokimov.
ChangeSet@1.3812.1.3, 2018-07-20 08:57:05+00:00, stenn@psp-deb1.ntp.org
Tweak the description of bug 3506
ChangeLog@1.1942.1.3 +1 -1
Tweak the description of bug 3506
ChangeSet@1.3812.1.1, 2018-07-03 22:51:08+02:00, perlinger@ntp.org
[Bug 3506] NTPD/SCM interact not well
ChangeLog@1.1942.1.1 +2 -0
[Bug 3506] NTPD/SCM interact not well
ntpd/ntpd.c@1.176 +14 -1
[Bug 3506] NTPD/SCM interact not well
- changed interaction with SCM to signal pending startup
ports/winnt/include/ntservice.h@1.5 +1 -0
[Bug 3506] NTPD/SCM interact not well
- changed interaction with SCM to signal pending startup
ports/winnt/ntpd/nt_clockstuff.c@1.67 +0 -6
[Bug 3506] NTPD/SCM interact not well
- changed interaction with SCM to signal pending startup
ports/winnt/ntpd/ntservice.c@1.32 +52 -17
[Bug 3506] NTPD/SCM interact not well
- changed interaction with SCM to signal pending startup
ChangeSet@1.3813, 2018-07-03 18:46:27+02:00, perlinger@ntp.org
[Sec 3505] CVE-2018-12327 - Arbitrary Code Execution Vulnerability
ChangeLog@1.1943 +2 -0
[Sec 3505] CVE-2018-12327 - Arbitrary Code Execution Vulnerability
ntpdc/ntpdc.c@1.112 +11 -14
[Sec 3505] CVE-2018-12327 - Arbitrary Code Execution Vulnerability
ntpq/ntpq.c@1.188 +10 -13
[Sec 3505] CVE-2018-12327 - Arbitrary Code Execution Vulnerability
ChangeSet@1.3790.7.3, 2018-06-19 13:00:54+02:00, burnicki@pc-martin4.py.meinberg.de
Fixes for ntpdate as discussed in bug #3442.
ChangeLog@1.1920.7.2 +2 -0
Fixes for ntpdate as discussed in bug #3442.
ntpdate/ntpdate.c@1.101 +96 -73
Fixes for ntpdate as discussed in bug #3442.
ChangeSet@1.3790.7.2, 2018-06-19 12:30:58+02:00, burnicki@pc-martin4.py.meinberg.de
New macro REFID_IS_TEXT().
ChangeLog@1.1920.7.1 +3 -1
New macro REFID_IS_TEXT().
include/ntp.h@1.231 +12 -0
New macro REFID_IS_TEXT().
ntpd/ntp_control.c@1.226.1.2 +6 -7
Use new macro REFID_IS_TEXT().
ChangeSet@1.3790.7.1, 2018-06-19 11:40:42+02:00, burnicki@pc-martin4.py.meinberg.de
Removed trailing spaces in some files.
ntpd/ntp_config.c@1.360.2.1 +9 -9
Removed trailing spaces.
ntpd/ntp_control.c@1.226.1.1 +26 -26
Removed trailing spaces.
ntpdate/ntpdate.c@1.100 +10 -10
Removed trailing spaces.
ChangeSet@1.3812, 2018-06-16 02:42:06-07:00, harlan@max.pfcs.com
[Sec 3012] noepeer tweaks
ChangeLog@1.1942 +1 -0
[Sec 3012] noepeer tweaks
ntpd/ntp_proto.c@1.421 +45 -29
[Sec 3012] noepeer tweaks
ChangeSet@1.3808.3.2, 2018-06-13 04:41:27+00:00, stenn@psp-deb1.ntp.org
ntpd/ntpd.c: DROPROOT cleanup
ChangeLog@1.1938.3.2 +1 -0
ntpd/ntpd.c: DROPROOT cleanup
ntpd/ntpd.c@1.175 +2 -0
ntpd/ntpd.c: DROPROOT cleanup
ChangeSet@1.3808.3.1, 2018-06-13 04:38:41+00:00, stenn@psp-deb1.ntp.org
Cleanup html/authopt.html
ChangeLog@1.1938.3.1 +1 -0
Cleanup html/authopt.html
html/authopt.html@1.75 +23 -22
Cleanup html/authopt.html
ChangeSet@1.3808.2.1, 2018-05-05 09:07:30+02:00, perlinger@ntp.org
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
- rework of ntpq 'nextvar()' key/value parsing
ChangeLog@1.1938.2.1 +1 -0
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
- rework of ntpq 'nextvar()' key/value parsing
ntpq/ntpq-subs.c@1.127 +12 -14
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
- rework of ntpq 'nextvar()' key/value parsing
ntpq/ntpq.c@1.186.1.1 +246 -78
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
- rework of ntpq 'nextvar()' key/value parsing
ChangeSet@1.3808.1.1, 2018-04-21 11:48:47+02:00, perlinger@ntp.org
[Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags()
ChangeLog@1.1938.1.1 +2 -0
[Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags()
ntpq/ntpq.c@1.187 +39 -22
[Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags()
ChangeSet@1.3809, 2018-04-21 11:30:19+02:00, perlinger@ntp.org
[Bug 3445] Symmetric peer won't sync on startup
ChangeLog@1.1939 +2 -0
[Bug 3445] Symmetric peer won't sync on startup
ntpd/ntp_proto.c@1.420 +8 -2
[Bug 3445] Symmetric peer won't sync on startup
ChangeSet@1.3806.2.1, 2018-04-14 08:18:38+02:00, perlinger@ntp.org
[Bug 3121] Drop root privileges for the forked DNS worker
ChangeLog@1.1936.2.1 +2 -0
[Bug 3121] Drop root privileges for the forked DNS worker
libntp/work_fork.c@1.20 +4 -0
[Bug 3121] Drop root privileges for the forked DNS worker
ntpd/ntpd.c@1.174 +218 -145
[Bug 3121] Drop root privileges for the forked DNS worker
sntp/main.c@1.103 +7 -0
[Bug 3121] Drop root privileges for the forked DNS worker
ChangeSet@1.3806.1.1, 2018-04-13 22:57:11+02:00, perlinger@ntp.org
[Bug 3434] ntpd clears STA_UNSYNC on start
ChangeLog@1.1936.1.1 +2 -0
[Bug 3434] ntpd clears STA_UNSYNC on start
ntpd/ntp_loopfilter.c@1.191 +8 -4
[Bug 3434] ntpd clears STA_UNSYNC on start
ChangeSet@1.3807, 2018-04-13 22:38:02+02:00, perlinger@ntp.org
B[ug 3449] ntpq - display "loop" instead of refid for peers which are flagged as loops
ChangeLog@1.1937 +2 -0
B[ug 3449] ntpq - display "loop" instead of refid for peers which are flagged as loops
ntpq/ntpq-subs.c@1.126 +6 -1
B[ug 3449] ntpq - display "loop" instead of refid for peers which are flagged as loops
ChangeSet@1.3806, 2018-04-11 19:26:04+02:00, perlinger@ntp.org
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
ChangeLog@1.1936 +1 -0
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
ntpd/ntp_control.c@1.230 +6 -6
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null
ChangeSet@1.3805, 2018-04-11 18:38:12+02:00, perlinger@ntp.org
[Bug 3475] modify prettydate() to suppress output of zero time
ChangeLog@1.1935 +2 -0
[Bug 3475] modify prettydate() to suppress output of zero time
libntp/prettydate.c@1.21 +5 -0
[Bug 3475] modify prettydate() to suppress output of zero time
ChangeSet@1.3804, 2018-04-11 18:23:03+02:00, perlinger@ntp.org
[Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c)
ChangeLog@1.1934 +2 -0
[Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c)
ntpq/ntpq-subs.c@1.125 +15 -7
[Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c)
ChangeSet@1.3803, 2018-04-11 07:59:51+02:00, perlinger@ntp.org
[Bug 3485] Undefined sockaddr used in error messages in ntp_config.c
ChangeLog@1.1933 +2 -0
[Bug 3485] Undefined sockaddr used in error messages in ntp_config.c
ntpd/ntp_config.c@1.364 +3 -5
[Bug 3485] Undefined sockaddr used in error messages in ntp_config.c
ChangeSet@1.3802, 2018-04-11 07:39:36+02:00, perlinger@ntp.org
[Bug 3476] ctl_putstr() sends empty unquoted string if data is Null / zero length
ChangeLog@1.1932 +2 -0
[Bug 3476] ctl_putstr() sends empty unquoted string if data is Null / zero length
ntpd/ntp_control.c@1.229 +3 -1
[Bug 3476] ctl_putstr() sends empty unquoted string if data is Null / zero length
ChangeSet@1.3801, 2018-04-11 06:47:08+02:00, perlinger@ntp.org
[Bug 3469] Incomplete string compare [...] in is_refclk_addr
ChangeLog@1.1931 +2 -0
[Bug 3469] Incomplete string compare [...] in is_refclk_addr
ntpd/ntp_config.c@1.363 +1 -1
[Bug 3469] Incomplete string compare [...] in is_refclk_addr
ChangeSet@1.3800, 2018-04-10 08:19:44+02:00, perlinger@ntp.org
[Bug 3474] Missing pmode in mode7 peer info response
ChangeLog@1.1930 +2 -0
[Bug 3474] Missing pmode in mode7 peer info response
ntpd/ntp_request.c@1.127 +1 -0
[Bug 3474] Missing pmode in mode7 peer info response
ChangeSet@1.3799, 2018-04-10 08:10:56+02:00, perlinger@ntp.org
[Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq
ChangeLog@1.1929 +2 -0
[Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq
ntpd/ntp_control.c@1.228 +3 -1
[Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq
ChangeSet@1.3798, 2018-04-10 08:09:59+02:00, perlinger@ntp.org
[Bug 3480] Refclock sample filter not cleared on clock STEP
ChangeLog@1.1928 +2 -0
[Bug 3480] Refclock sample filter not cleared on clock STEP
ntpd/ntp_proto.c@1.419 +4 -0
[Bug 3480] Refclock sample filter not cleared on clock STEP
ChangeSet@1.3797, 2018-04-08 12:17:35+02:00, perlinger@ntp.org
[Bug 3461] refclock_shm.c: clear error status on clock recovery
ChangeLog@1.1927 +2 -0
[Bug 3461] refclock_shm.c: clear error status on clock recovery
ntpd/ntp_io.c@1.429 +1 -1
[Bug 3461] refclock_shm.c: clear error status on clock recovery
- fixed minor (non-functional) regression
ntpd/ntp_refclock.c@1.126.1.1 +1 -1
[Bug 3461] refclock_shm.c: clear error status on clock recovery
- dont't step 'lastevent' if NOMINAL
ntpd/refclock_shm.c@1.40 +1 -0
[Bug 3461] refclock_shm.c: clear error status on clock recovery
ChangeSet@1.3794.1.1, 2018-04-08 09:13:33+00:00, stenn@psp-deb1.ntp.org
cleanup ChangeLog
ChangeLog@1.1924.1.1 +2 -4
cleanup
ChangeSet@1.3795, 2018-04-08 11:07:13+02:00, perlinger@ntp.org
[Bug 3467] Potential memory fault in ntpq [...]
ChangeLog@1.1925 +4 -4
[Bug 3467] Potential memory fault in ntpq [...]
configure.ac@1.614 +4 -0
[Bug 3467] Potential memory fault in ntpq [...]
- check for presence of sigsetjmp/siglongjmp in setjmp.h
libntp/syssignal.c@1.16 +4 -3
[Bug 3467] Potential memory fault in ntpq [...]
- installing and removing CTRL-C handlers is sequence order sensitive
ntpd/ntp_parser.c@1.113 +339 -338
[Bug 3467] Potential memory fault in ntpq [...]
- sidekick: add missing header decl
ntpd/ntp_parser.h@1.75 +1 -1
[Bug 3467] Potential memory fault in ntpq [...]
- sidekick: add missing header decl
ntpd/ntp_parser.y@1.101 +1 -0
[Bug 3467] Potential memory fault in ntpq [...]
- sidekick: add missing header decl
ntpdc/ntpdc.c@1.111 +37 -16
[Bug 3467] Potential memory fault in ntpq [...]
- closed file handles become NULL, check bfore writing
- use 'sig{set,long}jmp()' instead of '{set,long}jmp()' when possible
- unclutter jumping out of signal handler
ntpq/ntpq-subs.c@1.124 +1 -1
[Bug 3467] Potential memory fault in ntpq [...]
- removed leading linefeed
ntpq/ntpq.c@1.186 +234 -211
[Bug 3467] Potential memory fault in ntpq [...]
- closed file handles become NULL, check bfore writing
- use 'sig{set,long}jmp()' instead of '{set,long}jmp()' when possible
- unclutter jumping out of signal handler
ChangeSet@1.3790.3.3, 2018-04-07 13:54:34+02:00, perlinger@ntp.org
[Bug 3432] - refclocks that 'write()' should check the result
- sidekick: unchecked write in async resover code
libntp/work_thread.c@1.22.1.1 +4 -2
[Bug 3432] - refclocks that 'write()' should check the result
- sidekick: unchecked write in async resover code
ChangeSet@1.3790.6.2, 2018-04-07 09:39:54+00:00, stenn@psp-deb1.ntp.org
tweak the Changelog
ChangeLog@1.1920.6.2 +1 -0
tweak
ChangeSet@1.3790.6.1, 2018-04-07 10:03:14+02:00, jnperlin@hydra.localnet
[Bug 2821] minor build issues
+ bug fixes
ChangeLog@1.1920.6.1 +4 -0
[Bug 2821] minor build issues
+ bug fixes
libntp/ntp_calendar.c@1.20 +1 -1
[Bug 2821] minor build issues
+ bug fixes
ntpd/ntp_config.c@1.360.1.1 +2 -2
[Bug 2821] minor build issues
+ bug fixes
ntpd/ntp_control.c@1.227 +6 -6
[Bug 2821] minor build issues
+ bug fixes
ntpd/ntp_io.c@1.428 +47 -6
[Bug 2821] minor build issues
+ bug fixes
ntpd/rc_cmdlength.c@1.3 +2 -0
[Bug 2821] minor build issues
+ bug fixes
ntpd/refclock_datum.c@1.24 +2 -1
[Bug 2821] minor build issues
+ bug fixes
ntpd/refclock_gpsdjson.c@1.28.1.1 +2 -2
[Bug 2821] minor build issues
+ bug fixes
ntpd/refclock_jupiter.c@1.31 +1 -2
[Bug 2821] minor build issues
+ bug fixes
ntpd/refclock_true.c@1.25.1.1 +1 -1
[Bug 2821] minor build issues
+ bug fixes
ntpdc/ntpdc.c@1.110 +1 -1
[Bug 2821] minor build issues
+ bug fixes
ntpq/ntpq-subs.c@1.123 +1 -1
[Bug 2821] minor build issues
+ bug fixes
ntpq/ntpq.c@1.183.1.1 +5 -5
[Bug 2821] minor build issues
+ bug fixes
ChangeSet@1.3790.5.1, 2018-03-16 06:37:19+01:00, perlinger@ntp.org
[Bug 3471] Check for openssl/[ch]mac.h
- cond-compile if CMAC not supported
- fix tests when CMAC not available
- add #define ENABLE_CMAC support in configure
ChangeLog@1.1920.5.1 +4 -0
[Bug 3471] Check for openssl/[ch]mac.h
---
Bug 3471: add --enable-cmac support in configure
---
Bug 3471: add #define ENABLE_CMAC support in configure
configure.ac@1.610.1.1 +11 -0
Bug 3471: add --enable-cmac support in configure
- add #define ENABLE_CMAC support in configure
include/ntp_md5.h@1.14 +6 -1
[Bug 3471] Check for openssl/[ch]mac.h
---
cleanup
libntp/a_md5encrypt.c@1.49.1.1 +6 -9
[Bug 3471] Check for openssl/[ch]mac.h
- cond-compile if CMAC not supported
---
cleanup
libntp/ssl_init.c@1.30 +17 -10
[Bug 3471] Check for openssl/[ch]mac.h
- cond-compile if CMAC not supported
ntpq/ntpq.c@1.184 +15 -12
[Bug 3471] Check for openssl/[ch]mac.h
- cond-compile if CMAC not supported
sntp/crypto.c@1.38 +1 -8
[Bug 3471] Check for openssl/[ch]mac.h
- cond-compile if CMAC not supported
sntp/m4/ntp_openssl.m4@1.29.1.1 +1 -0
[Bug 3471] Check for openssl/[ch]mac.h
- header lookup
sntp/tests/crypto.c@1.16 +2 -2
[Bug 3471] Check for openssl/[ch]mac.h
- fix tests when CMAC not available
sntp/tests/packetProcessing.c@1.17 +8 -0
[Bug 3471] Check for openssl/[ch]mac.h
- fix tests when CMAC not available
tests/libntp/ssl_init.c@1.11 +4 -4
[Bug 3471] Check for openssl/[ch]mac.h
- fix tests when CMAC not available
ChangeSet@1.3790.4.3, 2018-03-15 23:16:22+00:00, stenn@psp-deb1.ntp.org
Bug 3471: add #define ENABLE_CMAC support in configure
ChangeLog@1.1920.4.3 +1 -1
Bug 3471: add #define ENABLE_CMAC support in configure
configure.ac@1.612 +6 -13
Bug 3471: add #define ENABLE_CMAC support in configure
ChangeSet@1.3790.4.2, 2018-03-15 07:55:58+00:00, stenn@psp-deb1.ntp.org
Bug 3471: add --enable-cmac support in configure
ChangeLog@1.1920.4.2 +1 -0
Bug 3471: add --enable-cmac support in configure
configure.ac@1.611 +18 -0
Bug 3471: add --enable-cmac support in configure
ChangeSet@1.3790.4.1, 2018-03-15 06:55:28+00:00, stenn@psp-deb1.ntp.org
[Bug 3471] Check for openssl/[ch]mac.h
ChangeLog@1.1920.4.1 +3 -0
[Bug 3471] Check for openssl/[ch]mac.h
sntp/m4/ntp_openssl.m4@1.30 +1 -0
[Bug 3471] Check for openssl/[ch]mac.h
ChangeSet@1.3790.3.1, 2018-03-15 06:29:23+01:00, perlinger@ntp.org
[Bug 3432] refclocks that 'write()' should check the result
- also fixed some more compiler warnings
ChangeLog@1.1920.3.1 +4 -0
[Bug 3432] refclocks that 'write()' should check the result
include/ntp_refclock.h@1.39 +6 -0
[Bug 3432] refclocks that 'write()' should check the result
- add 'refclock_[fd]write()' functions
- define FDWRITE_ERROR
include/ntp_stdlib.h@1.87 +1 -1
[Bug 3432] refclocks that 'write()' should check the result
- 'refnumtoa()' arg can be 'const'
libntp/refnumtoa.c@1.11 +1 -1
[Bug 3432] refclocks that 'write()' should check the result
- 'refnumtoa()' arg can be 'const'
ntpd/ntp_refclock.c@1.127 +67 -0
[Bug 3432] refclocks that 'write()' should check the result
- add 'refclock_[fd]write()' functions
ntpd/refclock_acts.c@1.55 +9 -19
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_arbiter.c@1.21 +17 -19
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_as2201.c@1.17 +3 -2
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_dumbclock.c@1.19 +1 -7
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_gpsdjson.c@1.29 +1 -1
[Bug 3432] refclocks that 'write()' should check the result
- comment typo
ntpd/refclock_heath.c@1.20 +1 -1
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_hopfser.c@1.18 +0 -6
[Bug 3432] refclocks that 'write()' should check the result
- this clock does not write at all, remove unused defs
ntpd/refclock_hpgps.c@1.17 +8 -8
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_nmea.c@1.80 +1 -8
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_oncore.c@1.105 +12 -7
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_palisade.c@1.47 +6 -3
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
ntpd/refclock_true.c@1.26 +1 -7
[Bug 3432] refclocks that 'write()' should check the result
- use 'refclock_[fd]write()' functions, not 'write()'
parseutil/dcfd.c@1.30 +6 -2
[Bug 3432] refclocks that 'write()' should check the result
- sidekick: check result of 'fscanf()' and 'daemon()'
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.3 +1 -0
Bug 3432 - refclocks that 'write()' should check the result
- sidekick: refclock_arc warnings on integer const overflow
tests/libntp/caljulian.c@1.15 +17 -57
[Bug 3432] refclocks that 'write()' should check the result
- fix warnings and rather mechanic translation from C++ to C
tests/libntp/run-caljulian.c@1.15 +5 -4
[Bug 3432] refclocks that 'write()' should check the result
- regenerated file
ChangeSet@1.3790.2.1, 2018-03-12 16:36:51+01:00, perlinger@ntp.org
[Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
ChangeLog@1.1920.2.1 +4 -0
[Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
libntp/work_thread.c@1.23 +15 -2
[Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
(sidekick: Check return value of write-to-pipe)
ChangeSet@1.3790.1.1, 2018-03-12 08:28:18+01:00, perlinger@ntp.org
[Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL
ChangeLog@1.1920.1.1 +3 -0
[Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL
libntp/a_md5encrypt.c@1.50 +1 -1
[Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL
util/sht.c@1.6 +4 -4
[Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL
ChangeSet@1.3791, 2018-03-08 18:59:17+01:00, perlinger@ntp.org
[Bug 3465] Default TTL values cannot be used
ChangeLog@1.1921 +3 -0
[Bug 3465] Default TTL values cannot be used
ntpd/ntp_config.c@1.361 +6 -1
[Bug 3465] Default TTL values cannot be used
- config_ttl(): update 'sys_ttlmax' only when there was a table update, too!
ChangeSet@1.3790, 2018-02-27 18:21:17-05:00, stenn@deacon.udel.edu
NTP_4_2_8P11
TAG: NTP_4_2_8P11
ChangeLog@1.1920 +1 -0
NTP_4_2_8P11
ntpd/invoke-ntp.conf.texi@1.214 +1 -1
NTP_4_2_8P11
ntpd/invoke-ntp.keys.texi@1.200 +1 -1
NTP_4_2_8P11
ntpd/invoke-ntpd.texi@1.515 +2 -2
NTP_4_2_8P11
ntpd/ntp.conf.5man@1.248 +3 -3
NTP_4_2_8P11
ntpd/ntp.conf.5mdoc@1.248 +1 -1
NTP_4_2_8P11
ntpd/ntp.conf.html@1.196 +95 -108
NTP_4_2_8P11
ntpd/ntp.conf.man.in@1.248 +3 -3
NTP_4_2_8P11
ntpd/ntp.conf.mdoc.in@1.248 +1 -1
NTP_4_2_8P11
ntpd/ntp.keys.5man@1.234 +2 -2
NTP_4_2_8P11
ntpd/ntp.keys.5mdoc@1.234 +2 -2
NTP_4_2_8P11
ntpd/ntp.keys.html@1.196 +17 -29
NTP_4_2_8P11
ntpd/ntp.keys.man.in@1.234 +2 -2
NTP_4_2_8P11
ntpd/ntp.keys.mdoc.in@1.234 +2 -2
NTP_4_2_8P11
ntpd/ntpd-opts.c@1.537 +7 -7
NTP_4_2_8P11
ntpd/ntpd-opts.h@1.536 +3 -3
NTP_4_2_8P11
ntpd/ntpd.1ntpdman@1.344 +3 -3
NTP_4_2_8P11
ntpd/ntpd.1ntpdmdoc@1.344 +1 -1
NTP_4_2_8P11
ntpd/ntpd.html@1.189 +101 -145
NTP_4_2_8P11
ntpd/ntpd.man.in@1.344 +3 -3
NTP_4_2_8P11
ntpd/ntpd.mdoc.in@1.344 +1 -1
NTP_4_2_8P11
ntpdc/invoke-ntpdc.texi@1.512 +2 -2
NTP_4_2_8P11
ntpdc/ntpdc-opts.c@1.530 +7 -7
NTP_4_2_8P11
ntpdc/ntpdc-opts.h@1.529 +3 -3
NTP_4_2_8P11
ntpdc/ntpdc.1ntpdcman@1.343 +3 -3
NTP_4_2_8P11
ntpdc/ntpdc.1ntpdcmdoc@1.343 +1 -1
NTP_4_2_8P11
ntpdc/ntpdc.html@1.357 +57 -77
NTP_4_2_8P11
ntpdc/ntpdc.man.in@1.343 +3 -3
NTP_4_2_8P11
ntpdc/ntpdc.mdoc.in@1.343 +1 -1
NTP_4_2_8P11
ntpq/invoke-ntpq.texi@1.522 +2 -2
NTP_4_2_8P11
ntpq/ntpq-opts.c@1.539 +7 -7
NTP_4_2_8P11
ntpq/ntpq-opts.h@1.537 +3 -3
NTP_4_2_8P11
ntpq/ntpq.1ntpqman@1.350 +3 -3
NTP_4_2_8P11
ntpq/ntpq.1ntpqmdoc@1.350 +1 -1
NTP_4_2_8P11
ntpq/ntpq.html@1.188 +106 -130
NTP_4_2_8P11
ntpq/ntpq.man.in@1.350 +3 -3
NTP_4_2_8P11
ntpq/ntpq.mdoc.in@1.350 +1 -1
NTP_4_2_8P11
ntpsnmpd/invoke-ntpsnmpd.texi@1.514 +11 -10
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd-opts.c@1.532 +7 -7
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd-opts.h@1.531 +3 -3
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.343 +3 -3
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.343 +1 -1
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd.html@1.183 +10 -14
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd.man.in@1.343 +3 -3
NTP_4_2_8P11
ntpsnmpd/ntpsnmpd.mdoc.in@1.343 +1 -1
NTP_4_2_8P11
packageinfo.sh@1.540 +2 -2
NTP_4_2_8P11
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.104 +3 -3
NTP_4_2_8P11
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.105 +1 -1
NTP_4_2_8P11
scripts/calc_tickadj/calc_tickadj.html@1.105 +22 -34
NTP_4_2_8P11
scripts/calc_tickadj/calc_tickadj.man.in@1.103 +3 -3
NTP_4_2_8P11
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.105 +1 -1
NTP_4_2_8P11
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.108 +1 -1
NTP_4_2_8P11
scripts/invoke-plot_summary.texi@1.126 +2 -2
NTP_4_2_8P11
scripts/invoke-summary.texi@1.125 +2 -2
NTP_4_2_8P11
scripts/ntp-wait/invoke-ntp-wait.texi@1.335 +2 -2
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait-opts@1.71 +2 -2
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.332 +3 -3
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.333 +1 -1
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait.html@1.353 +31 -49
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait.man.in@1.332 +3 -3
NTP_4_2_8P11
scripts/ntp-wait/ntp-wait.mdoc.in@1.333 +1 -1
NTP_4_2_8P11
scripts/ntpsweep/invoke-ntpsweep.texi@1.123 +2 -2
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep-opts@1.73 +2 -2
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.111 +3 -3
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.111 +1 -1
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep.html@1.125 +33 -44
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep.man.in@1.111 +3 -3
NTP_4_2_8P11
scripts/ntpsweep/ntpsweep.mdoc.in@1.112 +1 -1
NTP_4_2_8P11
scripts/ntptrace/invoke-ntptrace.texi@1.124 +2 -2
NTP_4_2_8P11
scripts/ntptrace/ntptrace-opts@1.73 +2 -2
NTP_4_2_8P11
scripts/ntptrace/ntptrace.1ntptraceman@1.111 +3 -3
NTP_4_2_8P11
scripts/ntptrace/ntptrace.1ntptracemdoc@1.112 +1 -1
NTP_4_2_8P11
scripts/ntptrace/ntptrace.html@1.126 +27 -36
NTP_4_2_8P11
scripts/ntptrace/ntptrace.man.in@1.111 +3 -3
NTP_4_2_8P11
scripts/ntptrace/ntptrace.mdoc.in@1.113 +1 -1
NTP_4_2_8P11
scripts/plot_summary-opts@1.74 +2 -2
NTP_4_2_8P11
scripts/plot_summary.1plot_summaryman@1.124 +3 -3
NTP_4_2_8P11
scripts/plot_summary.1plot_summarymdoc@1.124 +1 -1
NTP_4_2_8P11
scripts/plot_summary.html@1.128 +29 -47
NTP_4_2_8P11
scripts/plot_summary.man.in@1.124 +3 -3
NTP_4_2_8P11
scripts/plot_summary.mdoc.in@1.124 +1 -1
NTP_4_2_8P11
scripts/summary-opts@1.73 +2 -2
NTP_4_2_8P11
scripts/summary.1summaryman@1.123 +3 -3
NTP_4_2_8P11
scripts/summary.1summarymdoc@1.123 +1 -1
NTP_4_2_8P11
scripts/summary.html@1.127 +27 -39
NTP_4_2_8P11
scripts/summary.man.in@1.123 +3 -3
NTP_4_2_8P11
scripts/summary.mdoc.in@1.123 +1 -1
NTP_4_2_8P11
scripts/update-leap/invoke-update-leap.texi@1.24 +75 -1
NTP_4_2_8P11
scripts/update-leap/update-leap-opts@1.24 +2 -2
NTP_4_2_8P11
scripts/update-leap/update-leap.1update-leapman@1.24 +3 -3
NTP_4_2_8P11
scripts/update-leap/update-leap.1update-leapmdoc@1.24 +1 -1
NTP_4_2_8P11
scripts/update-leap/update-leap.html@1.25 +35 -59
NTP_4_2_8P11
scripts/update-leap/update-leap.man.in@1.24 +3 -3
NTP_4_2_8P11
scripts/update-leap/update-leap.mdoc.in@1.24 +1 -1
NTP_4_2_8P11
sntp/invoke-sntp.texi@1.514 +27 -23
NTP_4_2_8P11
sntp/sntp-opts.c@1.533 +7 -7
NTP_4_2_8P11
sntp/sntp-opts.h@1.531 +3 -3
NTP_4_2_8P11
sntp/sntp.1sntpman@1.349 +3 -3
NTP_4_2_8P11
sntp/sntp.1sntpmdoc@1.349 +1 -1
NTP_4_2_8P11
sntp/sntp.html@1.529 +110 -130
NTP_4_2_8P11
sntp/sntp.man.in@1.349 +3 -3
NTP_4_2_8P11
sntp/sntp.mdoc.in@1.349 +1 -1
NTP_4_2_8P11
util/invoke-ntp-keygen.texi@1.516 +18 -20
NTP_4_2_8P11
util/ntp-keygen-opts.c@1.534 +7 -7
NTP_4_2_8P11
util/ntp-keygen-opts.h@1.532 +3 -3
NTP_4_2_8P11
util/ntp-keygen.1ntp-keygenman@1.344 +3 -3
NTP_4_2_8P11
util/ntp-keygen.1ntp-keygenmdoc@1.344 +1 -1
NTP_4_2_8P11
util/ntp-keygen.html@1.189 +149 -207
NTP_4_2_8P11
util/ntp-keygen.man.in@1.344 +3 -3
NTP_4_2_8P11
util/ntp-keygen.mdoc.in@1.344 +1 -1
NTP_4_2_8P11
ChangeSet@1.3789, 2018-02-27 16:55:23-05:00, stenn@deacon.udel.edu
update-leap: check for -h/--help early. HStenn
ChangeLog@1.1919 +1 -0
update-leap: check for -h/--help early. HStenn
scripts/update-leap/update-leap.in@1.6 +7 -7
update-leap: check for -h/--help early. HStenn
ChangeSet@1.3788, 2018-02-27 09:58:39-05:00, stenn@deacon.udel.edu
Some tests need LIBM on some OSes
ChangeLog@1.1918 +1 -0
Some tests need LIBM on some OSes
tests/bug-2803/Makefile.am@1.19 +1 -0
Some tests need LIBM on some OSes
tests/sandbox/Makefile.am@1.13 +1 -0
Some tests need LIBM on some OSes
tests/sec-2853/Makefile.am@1.9 +1 -0
Some tests need LIBM on some OSes
ChangeSet@1.3787, 2018-02-27 08:09:05-05:00, stenn@deacon.udel.edu
ntp-4.2.8p11 prep
NEWS@1.191 +1 -1
ntp-4.2.8p11 prep
packageinfo.sh@1.539 +1 -1
ntp-4.2.8p11 prep
ChangeSet@1.3720.59.1, 2018-02-27 05:59:07-05:00, stenn@deacon.udel.edu
Tweaks to UpdatePoint
scripts/build/UpdatePoint@1.8 +21 -1
Tweaks to UpdatePoint
ChangeSet@1.3785, 2018-02-27 07:54:59+00:00, stenn@psp-deb1.ntp.org
p11 prep
ntpd/invoke-ntp.conf.texi@1.213 +4 -4
p11 prep
ntpd/invoke-ntp.keys.texi@1.199 +1 -1
p11 prep
ntpd/invoke-ntpd.texi@1.514 +1 -1
p11 prep
ntpd/ntp.conf.5man@1.247 +5 -5
p11 prep
ntpd/ntp.conf.5mdoc@1.247 +5 -5
p11 prep
ntpd/ntp.conf.html@1.195 +193 -184
p11 prep
ntpd/ntp.conf.man.in@1.247 +5 -5
p11 prep
ntpd/ntp.conf.mdoc.in@1.247 +5 -5
p11 prep
ntpd/ntp.keys.5man@1.233 +2 -2
p11 prep
ntpd/ntp.keys.5mdoc@1.233 +2 -2
p11 prep
ntpd/ntp.keys.man.in@1.233 +2 -2
p11 prep
ntpd/ntp.keys.mdoc.in@1.233 +2 -2
p11 prep
ntpd/ntpd-opts.c@1.536 +1 -1
p11 prep
ntpd/ntpd-opts.h@1.535 +1 -1
p11 prep
ntpd/ntpd.1ntpdman@1.343 +2 -2
p11 prep
ntpd/ntpd.1ntpdmdoc@1.343 +2 -2
p11 prep
ntpd/ntpd.man.in@1.343 +2 -2
p11 prep
ntpd/ntpd.mdoc.in@1.343 +2 -2
p11 prep
ntpdc/invoke-ntpdc.texi@1.511 +1 -1
p11 prep
ntpdc/ntpdc-opts.c@1.529 +1 -1
p11 prep
ntpdc/ntpdc-opts.h@1.528 +1 -1
p11 prep
ntpdc/ntpdc.1ntpdcman@1.342 +2 -2
p11 prep
ntpdc/ntpdc.1ntpdcmdoc@1.342 +2 -2
p11 prep
ntpdc/ntpdc.man.in@1.342 +2 -2
p11 prep
ntpdc/ntpdc.mdoc.in@1.342 +2 -2
p11 prep
ntpq/invoke-ntpq.texi@1.521 +2 -2
p11 prep
ntpq/ntpq-opts.c@1.538 +7 -7
p11 prep
ntpq/ntpq-opts.h@1.536 +3 -3
p11 prep
ntpq/ntpq.1ntpqman@1.349 +2 -2
p11 prep
ntpq/ntpq.1ntpqmdoc@1.349 +2 -2
p11 prep
ntpq/ntpq.html@1.187 +4 -2
p11 prep
ntpq/ntpq.man.in@1.349 +2 -2
p11 prep
ntpq/ntpq.mdoc.in@1.349 +2 -2
p11 prep
ntpsnmpd/invoke-ntpsnmpd.texi@1.513 +2 -2
p11 prep
ntpsnmpd/ntpsnmpd-opts.c@1.531 +1 -1
p11 prep
ntpsnmpd/ntpsnmpd-opts.h@1.530 +1 -1
p11 prep
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.342 +2 -2
p11 prep
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.342 +2 -2
p11 prep
ntpsnmpd/ntpsnmpd.man.in@1.342 +2 -2
p11 prep
ntpsnmpd/ntpsnmpd.mdoc.in@1.342 +2 -2
p11 prep
packageinfo.sh@1.538 +1 -1
p11 prep
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.103 +2 -2
p11 prep
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.104 +2 -2
p11 prep
scripts/calc_tickadj/calc_tickadj.man.in@1.102 +2 -2
p11 prep
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.104 +2 -2
p11 prep
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.107 +1 -1
p11 prep
scripts/invoke-plot_summary.texi@1.125 +1 -1
p11 prep
scripts/invoke-summary.texi@1.124 +1 -1
p11 prep
scripts/ntp-wait/invoke-ntp-wait.texi@1.334 +1 -1
p11 prep
scripts/ntp-wait/ntp-wait-opts@1.70 +1 -1
p11 prep
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.331 +2 -2
p11 prep
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.332 +2 -2
p11 prep
scripts/ntp-wait/ntp-wait.man.in@1.331 +2 -2
p11 prep
scripts/ntp-wait/ntp-wait.mdoc.in@1.332 +2 -2
p11 prep
scripts/ntpsweep/invoke-ntpsweep.texi@1.122 +1 -1
p11 prep
scripts/ntpsweep/ntpsweep-opts@1.72 +1 -1
p11 prep
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.110 +2 -2
p11 prep
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.110 +2 -2
p11 prep
scripts/ntpsweep/ntpsweep.man.in@1.110 +2 -2
p11 prep
scripts/ntpsweep/ntpsweep.mdoc.in@1.111 +2 -2
p11 prep
scripts/ntptrace/invoke-ntptrace.texi@1.123 +1 -1
p11 prep
scripts/ntptrace/ntptrace-opts@1.72 +1 -1
p11 prep
scripts/ntptrace/ntptrace.1ntptraceman@1.110 +2 -2
p11 prep
scripts/ntptrace/ntptrace.1ntptracemdoc@1.111 +2 -2
p11 prep
scripts/ntptrace/ntptrace.man.in@1.110 +2 -2
p11 prep
scripts/ntptrace/ntptrace.mdoc.in@1.112 +2 -2
p11 prep
scripts/plot_summary-opts@1.73 +1 -1
p11 prep
scripts/plot_summary.1plot_summaryman@1.123 +2 -2
p11 prep
scripts/plot_summary.1plot_summarymdoc@1.123 +2 -2
p11 prep
scripts/plot_summary.man.in@1.123 +2 -2
p11 prep
scripts/plot_summary.mdoc.in@1.123 +2 -2
p11 prep
scripts/summary-opts@1.72 +1 -1
p11 prep
scripts/summary.1summaryman@1.122 +2 -2
p11 prep
scripts/summary.1summarymdoc@1.122 +2 -2
p11 prep
scripts/summary.man.in@1.122 +2 -2
p11 prep
scripts/summary.mdoc.in@1.122 +2 -2
p11 prep
scripts/update-leap/invoke-update-leap.texi@1.23 +1 -50
p11 prep
scripts/update-leap/update-leap-opts@1.23 +1 -1
p11 prep
scripts/update-leap/update-leap.1update-leapman@1.23 +2 -2
p11 prep
scripts/update-leap/update-leap.1update-leapmdoc@1.23 +2 -2
p11 prep
scripts/update-leap/update-leap.html@1.24 +1 -50
p11 prep
scripts/update-leap/update-leap.man.in@1.23 +2 -2
p11 prep
scripts/update-leap/update-leap.mdoc.in@1.23 +2 -2
p11 prep
sntp/invoke-sntp.texi@1.513 +1 -1
p11 prep
sntp/sntp-opts.c@1.532 +1 -1
p11 prep
sntp/sntp-opts.h@1.530 +1 -1
p11 prep
sntp/sntp.1sntpman@1.348 +2 -2
p11 prep
sntp/sntp.1sntpmdoc@1.348 +2 -2
p11 prep
sntp/sntp.man.in@1.348 +2 -2
p11 prep
sntp/sntp.mdoc.in@1.348 +2 -2
p11 prep
util/invoke-ntp-keygen.texi@1.515 +2 -2
p11 prep
util/ntp-keygen-opts.c@1.533 +174 -174
p11 prep
util/ntp-keygen-opts.h@1.531 +3 -3
p11 prep
util/ntp-keygen.1ntp-keygenman@1.343 +2 -2
p11 prep
util/ntp-keygen.1ntp-keygenmdoc@1.343 +2 -2
p11 prep
util/ntp-keygen.man.in@1.343 +2 -2
p11 prep
util/ntp-keygen.mdoc.in@1.343 +2 -2
p11 prep
ChangeSet@1.3784, 2018-02-24 06:46:21+00:00, stenn@psp-deb1.ntp.org
VU # update to NEWS file
NEWS@1.190 +5 -5
VU # update to NEWS file
ChangeSet@1.3783, 2018-02-21 00:51:56+00:00, stenn@psp-deb1.ntp.org
Add CVEs for security bugs in p11
NEWS@1.189 +6 -5
Add CVEs for security bugs in p11
ChangeSet@1.3782, 2018-02-16 02:47:21-08:00, harlan@mb6.tal1.ntfo.org
Update description of Bug 3454 in the NEWS file.
NEWS@1.188 +37 -1
Update description of Bug 3454 in the NEWS file.
ChangeSet@1.3781, 2018-02-16 02:45:50-08:00, harlan@mb6.tal1.ntfo.org
ntp_proto.c:receive(): Fix typos in 2 diagnostic debug lines
ntpd/ntp_proto.c@1.418 +2 -2
ntp_proto.c:receive(): Fix typos in 2 diagnostic debug lines
ChangeSet@1.3780, 2018-02-13 01:31:39+00:00, stenn@psp-deb1.ntp.org
NEWS file updates
NEWS@1.187 +256 -10
NEWS file updates
ChangeSet@1.3779, 2018-02-11 11:02:07+00:00, stenn@psp-deb1.ntp.org
Use consistent 4th arg type for [gs]etsockopt
ChangeLog@1.1917 +1 -0
Use consistent 4th arg type for [gs]etsockopt
NEWS@1.186 +1 -1
Use consistent 4th arg type for [gs]etsockopt
packageinfo.sh@1.537 +1 -1
Use consistent 4th arg type for [gs]etsockopt
ChangeSet@1.3777, 2018-02-11 11:47:25+01:00, perlinger@ntp.org
getsockopt: 4th argument should be (void*)
ntpd/refclock_gpsdjson.c@1.28 +1 -1
getsockopt: 4th argument should be (void*)
ports/winnt/ntpd/ntp_iocompletionport.c@1.80 +1 -1
getsockopt: 4th argument should be (void*)
ChangeSet@1.3775.1.1, 2018-02-11 02:20:02-08:00, harlan@mb6.tal1.ntfo.org
Initialize ippeerlimit in restrict_def[46]. HStenn
ntpd/ntp_restrict.c@1.46 +6 -0
Initialize ippeerlimit in restrict_def[46]. HStenn
ChangeSet@1.3776, 2018-02-11 09:26:47+01:00, perlinger@ntp.org
consistent casting of 'setsockopt' argument
ntpd/ntp_io.c@1.427 +20 -20
consistent casting of 'setsockopt' argument
ntpd/refclock_gpsdjson.c@1.27 +1 -1
consistent casting of 'setsockopt' argument
ntpdc/ntpdc.c@1.109 +2 -2
consistent casting of 'setsockopt' argument
ntpq/ntpq.c@1.183 +2 -2
consistent casting of 'setsockopt' argument
ChangeSet@1.3772.1.1, 2018-02-09 16:05:30-08:00, harlan@mb6.tal1.ntfo.org
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ChangeLog@1.1913.1.1 +2 -0
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
include/ntp.h@1.230 +12 -9
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
include/ntp_request.h@1.51 +1 -1
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
include/ntpd.h@1.203 +2 -1
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_config.c@1.360 +72 -59
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_control.c@1.224.1.1 +2 -1
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_io.c@1.424.1.1 +2 -2
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_peer.c@1.165 +6 -0
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_request.c@1.126 +17 -5
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpd/ntp_restrict.c@1.45 +134 -27
Rename restrict flags to rflags. Use an enum for their values. Provide dump_restricts().
ntpdc/layout.std@1.14 +1 -1
Rename restrict flags to rflags
ntpdc/ntpdc_ops.c@1.83 +3 -3
Rename restrict flags to rflags
tests/ntpd/ntp_restrict.c@1.7 +8 -8
Rename restrict flags to rflags
ChangeSet@1.3773, 2018-02-07 08:14:35+01:00, perlinger@ntp.org
[Bug 3457] OpenSSL FIPS mode regression
ChangeLog@1.1914 +1 -0
[Bug 3457] OpenSSL FIPS mode regression
libntp/a_md5encrypt.c@1.49 +7 -4
[Bug 3457] OpenSSL FIPS mode regression
ntpd/ntp_control.c@1.225 +6 -0
[Bug 3457] OpenSSL FIPS mode regression
ntpd/ntp_crypto.c@1.190 +12 -0
[Bug 3457] OpenSSL FIPS mode regression
sntp/crypto.c@1.37 +14 -5
[Bug 3457] OpenSSL FIPS mode regression
ChangeSet@1.3772, 2018-02-05 02:18:59-08:00, harlan@psp-at0.tal1.ntfo.org
libntp/ssl_init.h only needs MD5_LENGTH if we don't have OpenSSL
libntp/ssl_init.c@1.29 +2 -1
libntp/ssl_init.h only needs MD5_LENGTH if we don't have OpenSSL
ChangeSet@1.3771, 2018-02-04 03:54:19-08:00, harlan@max.pfcs.com
[Sec 3453] Interleaved symmetric mode cannot recover from bad state
ChangeLog@1.1913 +1 -0
[Sec 3453] Interleaved symmetric mode cannot recover from bad state
ntpd/ntp_proto.c@1.417 +2 -0
[Sec 3453] Interleaved symmetric mode cannot recover from bad state
ChangeSet@1.3768.2.2, 2018-02-03 01:35:05-08:00, harlan@psp-at0.tal1.ntfo.org
[Sec 3454] Unauthenticated packet can reset authenticated interleave associations
ChangeLog@1.1910.2.1 +2 -0
[Sec 3454] Unauthenticated packet can reset authenticated interleave associations
ntpd/ntp_proto.c@1.416 +142 -15
[Sec 3454] Unauthenticated packet can reset authenticated interleave associations
ChangeSet@1.3768.2.1, 2018-02-03 01:22:07-08:00, harlan@psp-at0.tal1.ntfo.org
cleanup
ntpd/ntp.conf.def@1.31 +3 -3
cleanup
ChangeSet@1.3768.1.2, 2018-02-02 07:37:12+01:00, perlinger@ntp.org
[Bug 3455] ntpd doesn't use scope id when binding multicast
ChangeLog@1.1910.1.1 +2 -0
[Bug 3455] ntpd doesn't use scope id when binding multicast
ntpd/ntp_io.c@1.425 +1 -0
[Bug 3455] ntpd doesn't use scope id when binding multicast
ChangeSet@1.3768.1.1, 2018-01-26 16:58:55-08:00, harlan@psp-at0.tal1.ntfo.org
type
ntpd/ntp.conf.def@1.30 +1 -1
type
ChangeSet@1.3769, 2018-01-26 17:12:19+01:00, perlinger@ntp.org
[Bug 3452] PARSE driver prints uninitialized memory
ChangeLog@1.1911 +1 -0
[Bug 3452] PARSE driver prints uninitialized memory
ntpd/refclock_parse.c@1.86 +10 -3
[Bug 3452] PARSE driver prints uninitialized memory
- avoid underflow in buffer length calculation
ChangeSet@1.3768, 2018-01-25 22:47:05-08:00, harlan@psp-at0.tal1.ntfo.org
Properly set ippeerlimit in hack_restrict()
ntpd/ntp_restrict.c@1.44 +1 -0
Properly set ippeerlimit in hack_restrict()
ChangeSet@1.3767, 2018-01-26 05:24:23+00:00, stenn@psp-deb1.ntp.org
Show ippeerlimit for the address of the incoming packet
ntpd/ntp_proto.c@1.415 +2 -2
Show ippeerlimit for the address of the incoming packet
ChangeSet@1.3766, 2018-01-24 08:44:24+00:00, stenn@psp-deb1.ntp.org
Update ntpq peer documentation to describe the 'p' type
ChangeLog@1.1910 +1 -0
Update ntpq peer documentation to describe the 'p' type
NEWS@1.185 +1 -1
Update ntpq peer documentation to describe the 'p' type
html/ntpq.html@1.52 +11 -4
Update ntpq peer documentation to describe the 'p' type
ntpq/invoke-ntpq.texi@1.520 +4 -2
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq-opts.c@1.537 +7 -7
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq-opts.def@1.32 +2 -0
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq-opts.h@1.535 +3 -3
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq.1ntpqman@1.348 +4 -2
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq.1ntpqmdoc@1.348 +4 -2
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq.html@1.186 +1 -1
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq.man.in@1.348 +4 -2
Update ntpq peer documentation to describe the 'p' type
ntpq/ntpq.mdoc.in@1.348 +4 -2
Update ntpq peer documentation to describe the 'p' type
ChangeSet@1.3765, 2018-01-24 07:51:14+00:00, stenn@psp-deb1.ntp.org
NEWS update
NEWS@1.184 +15 -16
NEWS update
ChangeSet@1.3761.1.1, 2018-01-23 23:03:23-08:00, harlan@psp-at0.tal1.ntfo.org
Pass ippeerlimit to all newpeer() calls.
ntpd/ntp_proto.c@1.414 +14 -12
Pass ippeerlimit to all newpeer() calls.
ChangeSet@1.3763, 2018-01-23 12:43:17+00:00, stenn@psp-deb1.ntp.org
Update NEWS file
NEWS@1.183 +39 -3
Update NEWS file
ChangeSet@1.3762, 2018-01-22 12:35:36+00:00, stenn@psp-deb1.ntp.org
Update the documentation for ippeerlimit and noepeer
html/accopt.html@1.47 +139 -45
Update the documentation for ippeerlimit and noepeer
ntpd/invoke-ntp.conf.texi@1.212 +26 -18
Update the documentation for ippeerlimit and noepeer
ntpd/ntp.conf.5man@1.246 +28 -20
Update the documentation for ippeerlimit and noepeer
ntpd/ntp.conf.5mdoc@1.246 +30 -8
Update the documentation for ippeerlimit and noepeer
ntpd/ntp.conf.def@1.29 +28 -6
Update the documentation for ippeerlimit and noepeer
ntpd/ntp.conf.man.in@1.246 +28 -20
Update the documentation for ippeerlimit and noepeer
ntpd/ntp.conf.mdoc.in@1.246 +30 -8
Update the documentation for ippeerlimit and noepeer
tests/ntpd/run-ntp_restrict.c@1.8 +6 -6
Update the test runner for the updated restrictions() code
ChangeSet@1.3761, 2018-01-22 02:55:41-08:00, harlan@psp-at0.tal1.ntfo.org
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ChangeLog@1.1909 +1 -0
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
include/ntp.h@1.229 +6 -0
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
include/ntpd.h@1.202 +7 -7
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntp_config.c@1.359 +7 -0
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntp_peer.c@1.164 +15 -1
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntp_proto.c@1.413 +18 -13
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntp_request.c@1.125 +4 -1
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntp_restrict.c@1.43 +16 -10
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ntpd/ntpsim.c@1.33 +1 -0
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
tests/ntpd/ntp_restrict.c@1.6 +21 -8
restrictions() must return restrict flags and ippeerlimit. Implement ippeerlimit.
ChangeSet@1.3760, 2018-01-21 12:45:31+00:00, stenn@psp-deb1.ntp.org
ntp.conf.def tweaks
ntpd/invoke-ntp.conf.texi@1.211 +6 -6
ntp.conf.def tweaks
ntpd/ntp.conf.5man@1.245 +3358 -6
ntp.conf.def tweaks
ntpd/ntp.conf.5mdoc@1.245 +3192 -6
ntp.conf.def tweaks
ntpd/ntp.conf.def@1.28 +5 -5
ntp.conf.def tweaks
ntpd/ntp.conf.html@1.194 +267 -68
ntp.conf.def tweaks
ntpd/ntp.conf.man.in@1.245 +3358 -6
ntp.conf.def tweaks
ntpd/ntp.conf.mdoc.in@1.245 +3192 -6
ntp.conf.def tweaks
ntpd/ntp.keys.html@1.195 +10 -2
ntp.conf.def tweaks
ChangeSet@1.3759, 2018-01-21 03:34:08-08:00, harlan@psp-at0.tal1.ntfo.org
ntp_parser.y, ntp_parser.c, ChangeLog:
Warn the user if deprecated "driftfile name WanderThreshold" is used
Many files:
Update the documentation in ntp.conf.def
ChangeLog@1.1908 +1 -0
Update the documentation in ntp.conf.def
ChangeLog@1.1907 +1 -0
Warn the user if deprecated "driftfile name WanderThreshold" is used
ntpd/invoke-ntp.conf.texi@1.210 +238 -22
Update the documentation in ntp.conf.def
ntpd/ntp.conf.5man@1.244 +2 -2
Update the documentation in ntp.conf.def
ntpd/ntp.conf.5mdoc@1.244 +2 -2
Update the documentation in ntp.conf.def
ntpd/ntp.conf.def@1.27 +269 -27
Update the documentation in ntp.conf.def
ntpd/ntp.conf.man.in@1.244 +2 -2
Update the documentation in ntp.conf.def
ntpd/ntp.conf.mdoc.in@1.244 +2 -2
Update the documentation in ntp.conf.def
ntpd/ntp_parser.c@1.112 +107 -103
Warn the user if deprecated "driftfile name WanderThreshold" is used
ntpd/ntp_parser.y@1.100 +4 -0
Warn the user if deprecated "driftfile name WanderThreshold" is used
ChangeSet@1.3758, 2018-01-20 20:45:47-08:00, harlan@psp-at1.tal1.ntfo.org
Decode interface flags on receive() debug output
ChangeLog@1.1906 +1 -0
Decode interface flags on receive() debug output
include/ntp.h@1.228 +2 -1
Decode interface flags on receive() debug output
ntpd/ntp_config.c@1.358 +92 -19
Decode interface flags on receive() debug output
ntpd/ntp_proto.c@1.412 +3 -2
Decode interface flags on receive() debug output
ChangeSet@1.3757, 2018-01-20 03:41:34-08:00, harlan@psp-at1.tal1.ntfo.org
Decode restrict flags on receive() debug output
ChangeLog@1.1905 +1 -0
Decode restrict flags on receive() debug output
include/ntp.h@1.227 +3 -0
Decode restrict flags on receive() debug output
ntpd/ntp_config.c@1.357 +141 -4
Decode restrict flags on receive() debug output
ntpd/ntp_proto.c@1.411 +3 -2
Decode restrict flags on receive() debug output
ChangeSet@1.3756, 2018-01-20 00:35:52-08:00, harlan@mb6.tal1.ntfo.org
typo
ntpd/ntp_config.c@1.356 +2 -2
typo
ChangeSet@1.3755, 2018-01-20 00:33:06-08:00, harlan@mb6.tal1.ntfo.org
When dumping restrict nodes, use const char * for address and mask
ntpd/ntp_config.c@1.355 +5 -2
When dumping restrict nodes, use const char * for address and mask
ChangeSet@1.3754, 2018-01-19 23:19:41-08:00, harlan@mb6.tal1.ntfo.org
Improve saveconfig output
ChangeLog@1.1904 +1 -0
Improve saveconfig output
ntpd/ntp_config.c@1.354 +33 -3
Improve saveconfig output
ChangeSet@1.3753, 2018-01-17 22:12:36-08:00, harlan@psp-at0.tal1.ntfo.org
Rename the configuration flag fifo variables
ChangeLog@1.1903 +1 -0
Rename the configuration flag fifo variables
include/ntp_config.h@1.86 +1 -1
Rename the configuration flag fifo variables
ntpd/ntp_config.c@1.353 +21 -21
Rename the configuration flag fifo variables
ChangeSet@1.3752, 2018-01-17 04:34:17-08:00, harlan@psp-at1.tal1.ntfo.org
Add DPRINTF(2,...) lines to receive() for packet drops
ChangeLog@1.1902 +1 -0
Add DPRINTF(2,...) lines to receive() for packet drops
ntpd/ntp_proto.c@1.410 +49 -1
Add DPRINTF(2,...) lines to receive() for packet drops
ChangeSet@1.3751, 2018-01-16 20:06:43-08:00, harlan@psp-at1.tal1.ntfo.org
ippeerlimt: hook in ip_count support
include/ntpd.h@1.201 +1 -1
ippeerlimt: hook in ip_count support
ntpd/ntp_config.c@1.352 +2 -2
ippeerlimt: hook in ip_count support
ntpd/ntp_peer.c@1.163 +27 -12
ippeerlimt: hook in ip_count support
ntpd/ntp_proto.c@1.409 +6 -6
ippeerlimt: hook in ip_count support
ntpd/ntp_refclock.c@1.126 +2 -2
ippeerlimt: hook in ip_count support
ntpd/ntp_request.c@1.124 +9 -9
ippeerlimt: hook in ip_count support
ChangeSet@1.3750, 2018-01-15 23:35:22-08:00, harlan@psp-at1.tal1.ntfo.org
Bug 3415: implement ippeerlimit
ChangeLog@1.1901 +1 -1
Bug 3415: implement ippeerlimit
include/ntp.h@1.226 +6 -5
Bug 3415: implement ippeerlimit
include/ntp_config.h@1.85 +7 -5
Bug 3415: implement ippeerlimit
include/ntp_request.h@1.50 +1 -0
Bug 3415: implement ippeerlimit
include/ntpd.h@1.200 +1 -1
Bug 3415: implement ippeerlimit
ntpd/complete.conf.in@1.33 +8 -8
Bug 3415: implement ippeerlimit
ntpd/keyword-gen-utd@1.32 +1 -1
Bug 3415: implement ippeerlimit
ntpd/keyword-gen.c@1.38 +1 -0
Bug 3415: implement ippeerlimit
ntpd/ntp_config.c@1.351 +17 -11
Bug 3415: implement ippeerlimit
ntpd/ntp_io.c@1.424 +2 -2
Bug 3415: implement ippeerlimit
ntpd/ntp_keyword.h@1.34 +784 -774
Bug 3415: implement ippeerlimit
ntpd/ntp_parser.c@1.111 +1089 -1055
Bug 3415: implement ippeerlimit
ntpd/ntp_parser.h@1.74 +274 -272
Bug 3415: implement ippeerlimit
ntpd/ntp_parser.y@1.99 +36 -13
Bug 3415: implement ippeerlimit
ntpd/ntp_request.c@1.123 +2 -1
Bug 3415: implement ippeerlimit
ntpd/ntp_restrict.c@1.42 +8 -5
Bug 3415: implement ippeerlimit
ntpdc/layout.std@1.13 +7 -6
Bug 3415: implement ippeerlimit
tests/ntpd/ntp_restrict.c@1.5 +12 -12
Bug 3415: implement ippeerlimit
ChangeSet@1.3747.1.1, 2018-01-13 00:42:58-08:00, harlan@psp-at0.tal1.ntfo.org
Cleanup description of Sec 3415
ChangeLog@1.1898.1.1 +2 -1
Cleanup description of Sec 3415
ChangeSet@1.3747, 2018-01-12 01:29:33-08:00, harlan@psp-at0.tal1.ntfo.org
Distribute testconf.yml
ChangeLog@1.1898 +1 -0
Distribute testconf.yml
sntp/tests/Makefile.am@1.72 +1 -0
Distribute testconf.yml
tests/bug-2803/Makefile.am@1.18 +4 -0
Distribute testconf.yml
tests/libntp/Makefile.am@1.99 +4 -0
Distribute testconf.yml
tests/ntpd/Makefile.am@1.36 +4 -0
Distribute testconf.yml
tests/ntpq/Makefile.am@1.14 +4 -0
Distribute testconf.yml
tests/sandbox/Makefile.am@1.12 +4 -0
Distribute testconf.yml
tests/sec-2853/Makefile.am@1.8 +4 -0
Distribute testconf.yml
ChangeSet@1.3746, 2018-01-12 01:24:20-08:00, harlan@psp-at0.tal1.ntfo.org
[Sec 3415] Multiple authenticated ephemeral associations.
ChangeLog@1.1897 +1 -0
[Sec 3415] Multiple authenticated ephemeral associations.
ChangeSet@1.3745, 2018-01-11 12:25:17+00:00, stenn@psp-deb1.ntp.org
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ChangeLog@1.1896 +2 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
NEWS@1.182 +3 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
html/keygen.html@1.36 +350 -138
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
include/ntp_request.h@1.49 +2 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
include/ntpd.h@1.199 +10 -9
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
libntp/systime.c@1.74 +12 -6
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/invoke-ntp.keys.texi@1.198 +11 -3
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp.keys.5man@1.232 +12 -4
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp.keys.5mdoc@1.232 +12 -4
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp.keys.def@1.12 +10 -2
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp.keys.man.in@1.232 +12 -4
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp.keys.mdoc.in@1.232 +12 -4
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp_control.c@1.224 +109 -97
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp_parser.c@1.110 +154 -154
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp_parser.h@1.73 +4 -4
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp_proto.c@1.408 +2 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpd/ntp_request.c@1.122 +2 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpdc/layout.std@1.12 +3 -1
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ntpq/ntpq-subs.c@1.122 +4 -0
sys_lamport and sys_tsrounding. Document .../N in ntp.keys
ChangeSet@1.3744, 2018-01-10 17:48:26+01:00, perlinger@ntp.org
[Bug 3450] Dubious error messages from plausibility checks in get_systime()
ChangeLog@1.1895 +2 -0
[Bug 3450] Dubious error messages from plausibility checks in get_systime()
libntp/systime.c@1.73 +31 -31
[Bug 3450] Dubious error messages from plausibility checks in get_systime()
- use ceiling when converting sys_fuzz to nsecs
- make sure the time stamps in l_fp format increase when truncation errors hit
- use DPRINTF() instead of syslog -- this is expected to happen from time to time
ChangeSet@1.3743, 2018-01-08 04:20:20-08:00, harlan@psp-at0.tal1.ntfo.org
[Sec 3012] Sybil vulnerability: noepeer support
ChangeLog@1.1894 +1 -1
[Sec 3012] Sybil vulnerability: noepeer support
ChangeSet@1.3742, 2018-01-08 00:02:07-08:00, harlan@psp-at0.tal1.ntfo.org
Document noepeer
html/accopt.html@1.46 +2 -2
Document noepeer
ntpd/invoke-ntp.conf.texi@1.209 +10 -6
Document noepeer
ntpd/ntp.conf.5man@1.243 +9 -3127
Document noepeer
ntpd/ntp.conf.5mdoc@1.243 +7 -2947
Document noepeer
ntpd/ntp.conf.def@1.26 +9 -5
Document noepeer
ntpd/ntp.conf.man.in@1.243 +9 -3127
Document noepeer
ntpd/ntp.conf.mdoc.in@1.243 +7 -2947
Document noepeer
ChangeSet@1.3741, 2018-01-06 03:43:02-08:00, harlan@psp-at0.tal1.ntfo.org
noepeer support
ChangeLog@1.1893 +1 -0
noepeer support
html/accopt.html@1.45 +3 -1
noepeer support
include/ntp.h@1.225 +12 -10
noepeer support
libntp/statestr.c@1.30 +147 -137
noepeer support
ntpd/keyword-gen-utd@1.31 +1 -1
noepeer support
ntpd/keyword-gen.c@1.37 +2 -0
noepeer support
ntpd/ntp_config.c@1.350 +5 -1
noepeer support
ntpd/ntp_keyword.h@1.33 +902 -891
noepeer support
ntpd/ntp_parser.c@1.109 +1120 -1120
noepeer support
ntpd/ntp_parser.h@1.72 +326 -322
noepeer support
ntpd/ntp_parser.y@1.98 +5 -1
noepeer support
ntpd/ntp_proto.c@1.407 +36 -28
noepeer support
ChangeSet@1.3737.1.2, 2018-01-02 14:59:21+01:00, perlinger@ntp.org
fix typo / warning for VisualC
libntp/a_md5encrypt.c@1.48 +2 -2
fix typo / warning for VisualC
ChangeSet@1.3739, 2017-12-31 02:49:37-08:00, harlan@psp-at0.tal1.ntfo.org
authistrustedip() - use it in more places
ChangeLog@1.1892 +2 -1
authistrustedip() - use it in more places
ntpd/ntp_control.c@1.223 +1 -1
authistrustedip() - use it in more places
ntpd/ntp_request.c@1.121 +1 -0
authistrustedip() - use it in more places
ChangeSet@1.3737.1.1, 2017-12-31 11:03:00+01:00, perlinger@ntp.org
make 'authistrustedip()' more flexible
libntp/authkeys.c@1.41 +6 -7
make 'authistrustedip()' more flexible
ChangeSet@1.3726.6.1, 2017-12-30 03:54:30-08:00, harlan@psp-at0.tal1.ntfo.org
record_raw_stats cleanup
ntpd/ntp_proto.c@1.406 +53 -4
record_raw_stats cleanup
ChangeSet@1.3737, 2017-12-30 10:01:53+01:00, perlinger@ntp.org
unit tests: avoid CD to source dir when calling ruby
sntp/tests/Makefile.am@1.71 +10 -10
unit tests: avoid CD to source dir when calling ruby
sntp/unity/auto/generate_test_runner.rb@1.12 +2 -2
generator emits only module name, not module path, to generated code
tests/bug-2803/Makefile.am@1.17 +2 -2
unit tests: avoid CD to source dir when calling ruby
tests/libntp/Makefile.am@1.98 +40 -40
unit tests: avoid CD to source dir when calling ruby
tests/ntpd/Makefile.am@1.35 +7 -7
unit tests: avoid CD to source dir when calling ruby
tests/ntpq/Makefile.am@1.13 +2 -2
unit tests: avoid CD to source dir when calling ruby
tests/sandbox/Makefile.am@1.11 +4 -4
unit tests: avoid CD to source dir when calling ruby
tests/sec-2853/Makefile.am@1.7 +2 -2
unit tests: avoid CD to source dir when calling ruby
ChangeSet@1.3736, 2017-12-30 08:10:36+00:00, stenn@psp-deb1.ntp.org
Clean up directory paths for test programs
sntp/tests/Makefile.am@1.70 +3 -3
Clean up directory paths for test programs
tests/bug-2803/Makefile.am@1.16 +3 -3
Clean up directory paths for test programs
tests/libntp/Makefile.am@1.97 +3 -3
Clean up directory paths for test programs
tests/ntpd/Makefile.am@1.34 +3 -3
Clean up directory paths for test programs
tests/ntpq/Makefile.am@1.12 +3 -3
Clean up directory paths for test programs
tests/sandbox/Makefile.am@1.10 +3 -3
Clean up directory paths for test programs
tests/sec-2853/Makefile.am@1.6 +3 -3
Clean up directory paths for test programs
ChangeSet@1.3735, 2017-12-30 07:49:54+01:00, perlinger@ntp.org
address matching: cleanup & unit tests
libntp/authkeys.c@1.40 +29 -3
address matching: cleanup & unit tests
- improve handling of invalid addresses
tests/libntp/authkeys.c@1.16 +173 -45
address matching: cleanup & unit tests
- add test cases
tests/libntp/run-authkeys.c@1.14 +19 -7
address matching: cleanup & unit tests
- update auto-generated file
ChangeSet@1.3734, 2017-12-29 10:53:55+01:00, perlinger@ntp.org
implement mask/prefix match on addresses for key lookup
include/ntp_keyacc.h@1.4 +6 -2
implement mask/prefix match on addresses for key lookup
libntp/authkeys.c@1.39 +73 -2
implement mask/prefix match on addresses for key lookup
libntp/authreadkeys.c@1.32 +13 -19
cleanup of mask parsing, accept excessive masks
libntp/ssl_init.c@1.28 +1 -2
cleanup use of loval vars
ChangeSet@1.3730.1.9, 2017-12-28 22:48:21-08:00, harlan@psp-at0.tal1.ntfo.org
Allow .../N to specify subnet bits for IPs in ntp.keys
ChangeLog@1.1891 +1 -0
Allow .../N to specify subnet bits for IPs in ntp.keys
include/ntp_keyacc.h@1.3 +3 -1
Allow .../N to specify subnet bits for IPs in ntp.keys
libntp/authkeys.c@1.38 +4 -1
Allow .../N to specify subnet bits for IPs in ntp.keys
libntp/authreadkeys.c@1.31 +47 -7
Allow .../N to specify subnet bits for IPs in ntp.keys
ChangeSet@1.3730.1.8, 2017-12-28 22:42:07-08:00, harlan@psp-at0.tal1.ntfo.org
[Bug 2900] libntp build order problem
ChangeLog@1.1890 +1 -0
[Bug 2900] libntp build order problem
Makefile.am@1.136 +1 -1
[Bug 2900] libntp build order problem
sntp/check-libntp.mf@1.3 +0 -1
[Bug 2900] libntp build order problem
ChangeSet@1.3730.1.7, 2017-12-28 00:09:57-08:00, harlan@psp-at1.tal1.ntfo.org
sntp: show the IP of who sent us a crypto-NAK
ChangeLog@1.1889 +1 -0
sntp: show the IP of who sent us a crypto-NAK
sntp/networking.c@1.69 +6 -2
sntp: show the IP of who sent us a crypto-NAK
ChangeSet@1.3730.1.6, 2017-12-25 19:53:47-08:00, harlan@psp-at0.tal1.ntfo.org
Clean up libevent configure checks
ChangeLog@1.1888 +1 -0
Clean up libevent configure checks
sntp/m4/ntp_libevent.m4@1.20 +6 -7
Clean up libevent configure checks
ChangeSet@1.3730.1.5, 2017-12-25 18:07:37-08:00, harlan@psp-at0.tal1.ntfo.org
prepend "yes, " to the displayed value of pkg-config --modversion
sntp/m4/ntp_libevent.m4@1.19 +1 -1
prepend "yes, " to the displayed value of pkg-config --modversion
sntp/m4/ntp_openssl.m4@1.29 +1 -1
prepend "yes, " to the displayed value of pkg-config --modversion
ChangeSet@1.3730.2.1, 2017-12-25 04:53:42-08:00, harlan@psp-at1.tal1.ntfo.org
When using pkg-config, report --modversion
ChangeLog@1.1887 +1 -0
When using pkg-config, report --modversion
sntp/m4/ntp_libevent.m4@1.18 +6 -1
When using pkg-config, report --modversion
sntp/m4/ntp_openssl.m4@1.28 +6 -1
When using pkg-config, report --modversion
ChangeSet@1.3726.5.2, 2017-12-22 14:53:55+01:00, perlinger@ntp.org
SNTP: separate MAC computation from copy or compare
sntp/crypto.c@1.36 +85 -56
separate MAC computation from copy or compare
ChangeSet@1.3726.4.1, 2017-12-21 07:59:17+01:00, perlinger@ntp.org
zero-pad or truncate AES128CMAC keys to exactly 16byte
libntp/a_md5encrypt.c@1.47 +14 -6
zero-pad or truncate AES128CMAC keys to exactly 16byte
sntp/crypto.c@1.32.1.1 +15 -23
zero-pad or truncate AES128CMAC keys to exactly 16byte
ChangeSet@1.3726.1.17, 2017-12-13 20:30:41-08:00, harlan@psp-at0.tal1.ntfo.org
update-leap: updates from Paul McMath
ChangeLog@1.1885 +1 -0
update-leap: updates from Paul McMath
scripts/update-leap/update-leap.in@1.5 +13 -12
update-leap: updates from Paul McMath
ChangeSet@1.3726.3.9, 2017-12-13 03:21:32-08:00, harlan@psp-at0.tal1.ntfo.org
sntp: pkt_output(): Improve debug output.
ChangeLog@1.1876.5.8 +1 -0
sntp: pkt_output(): Improve debug output.
libntp/authreadkeys.c@1.27.1.2 +1 -0
Minor cleanup
sntp/utilities.c@1.20 +1 -1
sntp: pkt_output(): Improve debug output.
ChangeSet@1.3726.3.8, 2017-12-13 02:14:15-08:00, harlan@psp-at0.tal1.ntfo.org
sntp: tweak key file logging.
ChangeLog@1.1876.5.7 +1 -0
sntp: tweak key file logging.
sntp/crypto.c@1.25.1.4 +10 -4
sntp: tweak key file logging.
sntp/main.c@1.102 +1 -2
sntp: tweak key file logging.
ChangeSet@1.3726.3.7, 2017-12-12 19:15:09-08:00, harlan@psp-at0.tal1.ntfo.org
[Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
ChangeLog@1.1876.5.6 +1 -0
[Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
NEWS@1.181 +6 -0
[Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
scripts/update-leap/update-leap.in@1.4 +358 -312
[Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
ChangeSet@1.3726.3.6, 2017-12-11 11:55:35+00:00, stenn@psp-deb1.ntp.org
Deal with NULL src when calling record_raw_stats()
ntpd/ntp_io.c@1.423 +1 -1
Deal with NULL src when calling record_raw_stats()
ChangeSet@1.3726.3.5, 2017-12-11 03:31:22-08:00, harlan@psp-at0.tal1.ntfo.org
Handle a null srcadr in record_raw_stats()
ntpd/ntp_util.c@1.119 +2 -1
Handle a null srcadr in record_raw_stats()
ChangeSet@1.3726.1.14, 2017-12-11 08:52:38+00:00, stenn@psp-deb1.ntp.org
merge cleanup
sntp/invoke-sntp.texi@1.512 +1 -1
merge cleanup
sntp/sntp-opts.c@1.531 +95 -92
merge cleanup
sntp/sntp-opts.h@1.529 +1 -1
merge cleanup
sntp/sntp.1sntpman@1.347 +7 -2
merge cleanup
sntp/sntp.1sntpmdoc@1.347 +7 -2
merge cleanup
sntp/sntp.man.in@1.347 +7 -2
merge cleanup
sntp/sntp.mdoc.in@1.347 +7 -2
merge cleanup
ChangeSet@1.3726.1.12, 2017-12-09 10:39:12+01:00, jnperlin@hydra.localnet
[Bug 2878] Tests are cluttering up syslog
ChangeLog@1.1882 +1 -0
[Bug 2878] Tests are cluttering up syslog
sntp/tests/Makefile.am@1.69 +3 -2
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
sntp/tests/run-crypto.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-keyFile.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-kodDatabase.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-kodFile.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-networking.c@1.4 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-packetHandling.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-packetProcessing.c@1.13 +8 -0
Bug 2878 - Tests are cluttering up syslog
sntp/tests/run-t-log.c@1.6 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/run-utilities.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
sntp/tests/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
sntp/tests/testconf.yml@1.0 +0 -0
sntp/unity/auto/generate_test_runner.rb@1.11 +1 -1
[Bug 2878] Tests are cluttering up syslog
- fix prototype of generated 'suite_setup()' function
tests/bug-2803/Makefile.am@1.15 +2 -1
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/bug-2803/run-bug-2803.c@1.10 +8 -2
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/bug-2803/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/bug-2803/testconf.yml@1.0 +0 -0
tests/bug-3102/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/bug-3102/testconf.yml@1.0 +0 -0
tests/libntp/Makefile.am@1.96 +3 -2
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/libntp/run-a_md5encrypt.c@1.16 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-atoint.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-atouint.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-authkeys.c@1.13 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-buftvtots.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-calendar.c@1.13 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-caljulian.c@1.14 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-caltontp.c@1.6 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-calyearstart.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-clocktime.c@1.11 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-decodenetnum.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-hextoint.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-hextolfp.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-humandate.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-lfpfunc.c@1.20 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-lfptostr.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-modetoa.c@1.13 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-msyslog.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-netof.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-numtoa.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-numtohost.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-octtoint.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-prettydate.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-recvbuff.c@1.6 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-refidsmear.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-refnumtoa.c@1.10 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-sfptostr.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-socktoa.c@1.15 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-ssl_init.c@1.10 +17 -5
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-statestr.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-strtolfp.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-timespecops.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-timevalops.c@1.15 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-tsafememcmp.c@1.2 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-tstotv.c@1.6 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-tvtots.c@1.7 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-uglydate.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-vi64ops.c@1.9 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/run-ymd2yd.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/libntp/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/libntp/testconf.yml@1.0 +0 -0
tests/ntpd/Makefile.am@1.33 +2 -1
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/ntpd/run-leapsec.c@1.6.1.1 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/run-ntp_prio_q.c@1.4.1.1 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/run-ntp_restrict.c@1.5.1.1 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/run-rc_cmdlength.c@1.4.1.1 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/run-t-ntp_scanner.c@1.5.1.1 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/run-t-ntp_signd.c@1.12 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpd/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/ntpd/testconf.yml@1.0 +0 -0
tests/ntpq/Makefile.am@1.11 +2 -1
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/ntpq/run-t-ntpq.c@1.4 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/ntpq/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/ntpq/testconf.yml@1.0 +0 -0
tests/sandbox/Makefile.am@1.9 +2 -1
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/sandbox/run-modetoa.c@1.4 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/sandbox/run-uglydate.c@1.8 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/sandbox/run-ut-2803.c@1.3 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/sandbox/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/sandbox/testconf.yml@1.0 +0 -0
tests/sec-2853/Makefile.am@1.5 +4 -2
[Bug 2878] Tests are cluttering up syslog
- use YAML config to setup test suites
tests/sec-2853/run-sec-2853.c@1.6 +8 -0
[Bug 2878] Tests are cluttering up syslog
- auto-regenerated test driver
tests/sec-2853/testconf.yml@1.1 +9 -0
[Bug 2878] Tests are cluttering up syslog
- generator configuration to redirect syslog to stderr
tests/sec-2853/testconf.yml@1.0 +0 -0
ChangeSet@1.3726.1.11, 2017-12-08 07:14:36+01:00, perlinger@ntp.org
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
ChangeLog@1.1881 +1 -0
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
include/ntp_stdlib.h@1.86 +2 -2
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
libntp/a_md5encrypt.c@1.46 +163 -174
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
libntp/authkeys.c@1.37 +6 -3
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
libntp/libssl_compat.c@1.5 +4 -1
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
tests/libntp/a_md5encrypt.c@1.16 +4 -8
[Bug 3447] AES-128-CMAC (fixes)
- refactoring the MAC code, too
ChangeSet@1.3726.3.4, 2017-12-07 10:56:10+00:00, stenn@psp-deb1.ntp.org
Update monopt.html with the new rawstats information
html/monopt.html@1.41 +21 -5
Update monopt.html with the new rawstats information
ChangeSet@1.3726.1.10, 2017-12-06 21:15:12+01:00, perlinger@ntp.org
[Bug 3447] AES-128-CMAC (fixes)
ChangeLog@1.1880 +1 -0
[Bug 3447] AES-128-CMAC (fixes)
libntp/a_md5encrypt.c@1.45 +151 -168
[Bug 3447] AES-128-CMAC (fixes)
sntp/crypto.c@1.32 +77 -82
[Bug 3447] AES-128-CMAC (fixes)
ChangeSet@1.3726.3.3, 2017-12-05 20:23:17-08:00, harlan@psp-at0.tal1.ntfo.org
[Bug 3433] sntp crashes when run with -a
ChangeLog@1.1876.5.5 +1 -0
[Bug 3433] sntp crashes when run with -a
sntp/crypto.c@1.25.1.3 +1 -0
[Bug 3433] sntp crashes when run with -a
sntp/invoke-sntp.texi@1.509.1.1 +1 -1
[Bug 3433] sntp crashes when run with -a
sntp/main.c@1.101 +19 -7
[Bug 3433] sntp crashes when run with -a
sntp/sntp-opts.c@1.528.1.1 +95 -92
[Bug 3433] sntp crashes when run with -a
sntp/sntp-opts.def@1.48 +1 -0
[Bug 3433] sntp crashes when run with -a
sntp/sntp-opts.h@1.526.1.1 +1 -1
[Bug 3433] sntp crashes when run with -a
sntp/sntp.1sntpman@1.342.1.3 +8 -3
[Bug 3433] sntp crashes when run with -a
sntp/sntp.1sntpmdoc@1.342.1.3 +7 -2
[Bug 3433] sntp crashes when run with -a
sntp/sntp.html@1.523.2.3 +104 -80
[Bug 3433] sntp crashes when run with -a
sntp/sntp.man.in@1.342.1.3 +8 -3
[Bug 3433] sntp crashes when run with -a
sntp/sntp.mdoc.in@1.342.1.3 +7 -2
[Bug 3433] sntp crashes when run with -a
ChangeSet@1.3726.3.2, 2017-12-05 18:48:06-08:00, harlan@psp-at0.tal1.ntfo.org
Add comment about client-mode pkt->rootdisp
ntpd/ntp_io.c@1.422 +1 -0
Add comment about client-mode pkt->rootdisp
ChangeSet@1.3726.3.1, 2017-12-04 00:24:49-08:00, harlan@psp-at0.tal1.ntfo.org
record_raw_stats(): Log entire packet. Log writes.
ChangeLog@1.1876.5.4 +1 -0
record_raw_stats(): Log entire packet. Log writes.
include/ntpd.h@1.198 +1 -1
record_raw_stats(): Log entire packet. Log writes.
ntpd/ntp_io.c@1.421 +13 -0
record_raw_stats(): Log entire packet. Log writes.
ntpd/ntp_proto.c@1.405 +2 -1
record_raw_stats(): Log entire packet. Log writes.
ntpd/ntp_util.c@1.118 +15 -2
record_raw_stats(): Log entire packet. Log writes.
ChangeSet@1.3726.1.9, 2017-12-03 02:49:10-08:00, harlan@psp-at0.tal1.ntfo.org
Many files:
new file
libntp/aes/FROM@1.1 +1 -0
BitKeeper file libntp/aes/FROM
libntp/aes/FROM@1.0 +0 -0
libntp/aes/Makefile.am@1.1 +24 -0
BitKeeper file libntp/aes/Makefile.am
libntp/aes/Makefile.am@1.0 +0 -0
libntp/aes/README@1.1 +56 -0
BitKeeper file libntp/aes/README
libntp/aes/README@1.0 +0 -0
libntp/aes/aes-omac1.c@1.1 +118 -0
BitKeeper file libntp/aes/aes-omac1.c
libntp/aes/aes-omac1.c@1.0 +0 -0
libntp/aes/aes.h@1.1 +21 -0
BitKeeper file libntp/aes/aes.h
libntp/aes/aes.h@1.0 +0 -0
libntp/aes/aes_wrap.h@1.1 +64 -0
BitKeeper file libntp/aes/aes_wrap.h
libntp/aes/aes_wrap.h@1.0 +0 -0
libntp/aes/ar-lib@1.1 +270 -0
BitKeeper file libntp/aes/ar-lib
libntp/aes/ar-lib@1.0 +0 -0
libntp/aes/build_config.h@1.1 +77 -0
BitKeeper file libntp/aes/build_config.h
libntp/aes/build_config.h@1.0 +0 -0
libntp/aes/common.h@1.1 +489 -0
BitKeeper file libntp/aes/common.h
libntp/aes/common.h@1.0 +0 -0
libntp/aes/compile@1.1 +347 -0
BitKeeper file libntp/aes/compile
libntp/aes/compile@1.0 +0 -0
libntp/aes/configure.ac@1.1 +37 -0
BitKeeper file libntp/aes/configure.ac
libntp/aes/configure.ac@1.0 +0 -0
libntp/aes/depcomp@1.1 +791 -0
BitKeeper file libntp/aes/depcomp
libntp/aes/depcomp@1.0 +0 -0
libntp/aes/includes.h@1.1 +50 -0
BitKeeper file libntp/aes/includes.h
libntp/aes/includes.h@1.0 +0 -0
libntp/aes/missing@1.1 +215 -0
BitKeeper file libntp/aes/missing
libntp/aes/missing@1.0 +0 -0
libntp/aes/os.h@1.1 +539 -0
BitKeeper file libntp/aes/os.h
libntp/aes/os.h@1.0 +0 -0
libntp/aes/rfc4493-test.c@1.1 +256 -0
BitKeeper file libntp/aes/rfc4493-test.c
libntp/aes/rfc4493-test.c@1.0 +0 -0
libntp/aes/test-aes-libtomcrypt.c@1.1 +101 -0
BitKeeper file libntp/aes/test-aes-libtomcrypt.c
libntp/aes/test-aes-libtomcrypt.c@1.0 +0 -0
libntp/aes/test-aes-openssl.c@1.1 +71 -0
BitKeeper file libntp/aes/test-aes-openssl.c
libntp/aes/test-aes-openssl.c@1.0 +0 -0
libntp/aes/validate-aes.c@1.1 +122 -0
BitKeeper file libntp/aes/validate-aes.c
libntp/aes/validate-aes.c@1.0 +0 -0
libntp/aes/wpa_debug.c@1.1 +688 -0
BitKeeper file libntp/aes/wpa_debug.c
libntp/aes/wpa_debug.c@1.0 +0 -0
libntp/aes/wpa_debug.h@1.1 +291 -0
BitKeeper file libntp/aes/wpa_debug.h
libntp/aes/wpa_debug.h@1.0 +0 -0
libntp/aes/wpabuf.c@1.1 +303 -0
BitKeeper file libntp/aes/wpabuf.c
libntp/aes/wpabuf.c@1.0 +0 -0
libntp/aes/wpabuf.h@1.1 +162 -0
BitKeeper file libntp/aes/wpabuf.h
libntp/aes/wpabuf.h@1.0 +0 -0
ChangeSet@1.3726.1.8, 2017-11-28 08:44:31+00:00, stenn@psp-deb1.ntp.org
Identify AES-128-CMAC workers
ChangeLog@1.1879 +1 -1
Identify AES-128-CMAC workers
ChangeSet@1.3726.1.7, 2017-11-28 00:12:53-08:00, harlan@mb6.tal1.ntfo.org
Continue AES-128-CMAC test development
sntp/tests/crypto.c@1.15 +10 -6
Continue AES-128-CMAC test development
ChangeSet@1.3726.2.1, 2017-11-28 07:08:15+00:00, stenn@psp-deb1.ntp.org
Merge cleanup
libntp/ssl_init.c@1.27 +1 -0
Merge cleanup
ntpd/ntpd.html@1.188 +1 -1
Merge cleanup
ntpq/ntpq.c@1.181 +1 -0
Merge cleanup
ntpq/ntpq.html@1.185 +1 -1
Merge cleanup
sntp/crypto.c@1.30 +13 -13
Merge cleanup
sntp/crypto.h@1.14 +2 -1
Merge cleanup
sntp/tests/crypto.c@1.13 +2 -2
Merge cleanup
sntp/tests/packetProcessing.c@1.16 +1 -1
Merge cleanup
sntp/tests/run-crypto.c@1.7 +10 -6
Merge cleanup
sntp/tests/run-packetProcessing.c@1.12 +20 -18
Merge cleanup
ChangeSet@1.3720.58.1, 2017-11-27 22:35:12-08:00, harlan@mb6.tal1.ntfo.org
aes-128-cmac support
sntp/crypto.c@1.28.1.1 +23 -15
aes-128-cmac support
sntp/tests/crypto.c@1.11.1.1 +27 -4
aes-128-cmac support
ChangeSet@1.3726.1.3, 2017-11-13 22:54:14-08:00, harlan@psp-at0.tal1.ntfo.org
Fix bug in the override portion of the compiler hardening macro
ChangeLog@1.1876.5.3 +1 -0
Fix bug in the override portion of the compiler hardening macro
html/access.html@1.3, harlan@max.pfcs.com +2 -2
whitespace cleanup
html/accopt.html@1.44, harlan@max.pfcs.com +4 -4
whitespace cleanup
sntp/m4/ntp_harden.m4@1.2 +6 -6
Fix bug in the override portion of the compiler hardening macro
ChangeSet@1.3731, 2017-10-31 07:33:33+01:00, perlinger@ntp.org
Fix trivial warnings from 'make check'
- printf format clashes
tests/libntp/timespecops.c@1.12 +9 -6
Fix trivial warnings from 'make check'
- printf format clashes
tests/libntp/timevalops.c@1.15 +8 -8
Fix trivial warnings from 'make check'
- printf format clashes
ChangeSet@1.3730, 2017-10-30 09:46:03+01:00, perlinger@ntp.org
Fix trivial warnings from 'make check'
ChangeLog@1.1876.1.7 +1 -0
Fix trivial warnings from 'make check'
tests/ntpd/leapsec.c@1.5 +97 -193
Fix trivial warnings from 'make check'
tests/ntpd/ntp_prio_q.c@1.4 +24 -16
Fix trivial warnings from 'make check'
tests/ntpd/ntp_restrict.c@1.4 +34 -22
Fix trivial warnings from 'make check'
tests/ntpd/rc_cmdlength.c@1.4 +3 -4
Fix trivial warnings from 'make check'
tests/ntpd/run-leapsec.c@1.7 +34 -33
Fix trivial warnings from 'make check' (auto-regenerated file)
tests/ntpd/run-ntp_prio_q.c@1.5 +6 -6
Fix trivial warnings from 'make check' (auto-regenerated file)
tests/ntpd/run-ntp_restrict.c@1.6 +8 -8
Fix trivial warnings from 'make check' (auto-regenerated file)
tests/ntpd/run-rc_cmdlength.c@1.5 +1 -1
Fix trivial warnings from 'make check' (auto-regenerated file)
tests/ntpd/run-t-ntp_scanner.c@1.6 +11 -11
Fix trivial warnings from 'make check' (auto-regenerated file)
tests/ntpd/t-ntp_scanner.c@1.8 +33 -37
Fix trivial warnings from 'make check'
ChangeSet@1.3726.1.2, 2017-10-27 04:01:06-04:00, stenn@psp-deb2.ntp.org
Build ntpq and libntpq.a with NTP_HARD_*FLAGS
ChangeLog@1.1876.5.2 +1 -0
Build ntpq and libntpq.a with NTP_HARD_*FLAGS
ntpq/Makefile.am@1.73 +5 -1
Build ntpq and libntpq.a with NTP_HARD_*FLAGS
ChangeSet@1.3726.1.1, 2017-10-15 07:52:15+00:00, stenn@psp-deb1.ntp.org
refclock_jjy.c: Add missing "%s" to an msyslog() call
ChangeLog@1.1876.5.1 +1 -0
refclock_jjy.c: Add missing "%s" to an msyslog() call
ntpd/refclock_jjy.c@1.36 +1 -1
refclock_jjy.c: Add missing "%s" to an msyslog() call
ChangeSet@1.3720.56.9, 2017-10-15 04:51:52+00:00, stenn@psp-deb1.ntp.org
[Bug 3441] Validate the assumption that AF_UNSPEC is 0
ChangeLog@1.1876.4.8 +1 -0
[Bug 3441] Validate the assumption that AF_UNSPEC is 0
configure.ac@1.610 +2 -0
[Bug 3441] Validate the assumption that AF_UNSPEC is 0
sntp/m4/ntp_af_unspec.m4@1.2 +1 -1
[Bug 3441] Validate the assumption that AF_UNSPEC is 0
sntp/m4/ntp_af_unspec.m4@1.1 +23 -0
BitKeeper file sntp/m4/ntp_af_unspec.m4
sntp/m4/ntp_af_unspec.m4@1.0 +0 -0
ChangeSet@1.3720.56.8, 2017-10-15 01:07:22+00:00, stenn@psp-deb1.ntp.org
regenerate ntp_parser.[ch]
ntpd/ntp_parser.c@1.108 +1176 -1157
regenerate ntp_parser.[ch]
ntpd/ntp_parser.h@1.71 +5 -5
regenerate ntp_parser.[ch]
ChangeSet@1.3720.53.2, 2017-10-14 08:37:26+02:00, perlinger@ntp.org
[Bug 3435] anchor NTP era alignment
html/miscopt.html@1.87.1.2 +1 -1
[Bug 3435] anchor NTP era alignment
ntpd/ntp_config.c@1.348 +16 -5
[Bug 3435] anchor NTP era alignment
ChangeSet@1.3720.56.6, 2017-10-13 08:17:25+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1876.4.6 +2 -2
cleanup
ChangeSet@1.3720.57.1, 2017-10-13 09:18:19+02:00, perlinger@ntp.org
[Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
ChangeLog@1.1873.23.1 +4 -0
[Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
ntpd/ntp_io.c@1.420 +11 -0
[Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
ChangeSet@1.3720.29.23, 2017-10-13 03:35:03+00:00, stenn@psp-deb1.ntp.org
Note 3412 is a Security bug
ChangeLog@1.1876.2.16 +1 -1
Note 3412 is a Security bug
ChangeSet@1.3720.29.22, 2017-10-13 03:31:58+00:00, stenn@psp-deb1.ntp.org
[Bug 3412] ctl_getitem(): Don't compare names past NUL
ChangeLog@1.1876.2.15 +1 -0
[Bug 3412] ctl_getitem(): Don't compare names past NUL
ntpd/ntp_control.c@1.222 +3 -1
[Bug 3412] ctl_getitem(): Don't compare names past NUL
ChangeSet@1.3720.29.19, 2017-10-13 02:20:50+00:00, stenn@psp-deb1.ntp.org
test_ntp_scanner_LDADD needs ntpd/ntp_io.o
ChangeLog@1.1876.2.12 +1 -0
test_ntp_scanner_LDADD needs ntpd/ntp_io.o
tests/ntpd/Makefile.am@1.32 +1 -0
test_ntp_scanner_LDADD needs ntpd/ntp_io.o
ChangeSet@1.3720.55.2, 2017-10-12 12:55:29+02:00, perlinger@ntp.org
[Bug 3439] (ntpq) When running multiple commands / hosts in ntpq...
ChangeLog@1.1873.22.2 +2 -0
[Bug 3439] (ntpq) When running multiple commands / hosts in ntpq...
ntpq/ntpq.c@1.174.3.1 +8 -2
[Bug 3439] (ntpq) When running multiple commands / hosts in ntpq...
- applied patch by ggarvey
ChangeSet@1.3720.55.1, 2017-10-12 12:51:50+02:00, perlinger@ntp.org
[Bug 3438] (ntpq) Negative values and values > 999 days in...
- make sure negative values are curbed and excessive days are converted to years
ChangeLog@1.1873.22.1 +4 -0
[Bug 3438] (ntpq) Negative values and values > 999 days in...
ntpq/ntpq-subs.c@1.119.4.1 +10 -1
[Bug 3438] (ntpq) Negative values and values > 999 days in...
- make sure negative values are curbed and excessive days are converted to years
ChangeSet@1.3720.29.12, 2017-10-12 09:35:01+00:00, stenn@psp-deb1.ntp.org
[Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
html/drivers/driver40-ja.html@1.7 +1 -1
[Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
html/drivers/driver40.html@1.22 +1 -1
[Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
html/miscopt.html@1.89 +1 -2
[Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
ChangeSet@1.3720.29.9, 2017-10-12 08:21:13+00:00, stenn@psp-deb1.ntp.org
[Bug 2737] Wrong phone number listed for USNO
html/drivers/driver18.html@1.22 +1 -1
[Bug 2737] Wrong phone number listed for USNO
ChangeSet@1.3720.29.6, 2017-10-12 07:26:49+00:00, stenn@psp-deb1.ntp.org
[Bug 948] Trustedkey config directive leaks memory
ChangeLog@1.1876.2.1 +1 -0
[Bug 948] Trustedkey config directive leaks memory
include/ntp_config.h@1.84 +13 -0
[Bug 948] Trustedkey config directive leaks memory
ntpd/ntp_config.c@1.346.1.1 +35 -3
[Bug 948] Trustedkey config directive leaks memory
ntpd/ntp_parser.c@1.105.1.1 +551 -548
[Bug 948] Trustedkey config directive leaks memory
ntpd/ntp_parser.h@1.68.1.1 +3 -3
[Bug 948] Trustedkey config directive leaks memory
ntpd/ntp_parser.y@1.95.1.1 +7 -6
[Bug 948] Trustedkey config directive leaks memory
ChangeSet@1.3720.53.1, 2017-10-10 08:44:16+02:00, perlinger@ntp.org
[Bug 3435] anchor NTP era alignment
ChangeLog@1.1873.21.1 +3 -0
[Bug 3435] anchor NTP era alignment
html/miscopt.html@1.87.1.1 +3 -1
[Bug 3435] anchor NTP era alignment
- explain "tos basedate"
include/ntp_calendar.h@1.19 +23 -0
[Bug 3435] anchor NTP era alignment
- add support far 'basedate' calculations
include/ntp_fp.h@1.34 +1 -0
[Bug 3435] anchor NTP era alignment
- check/clamp system time based on 'basedate'
libntp/ntp_calendar.c@1.19 +109 -0
[Bug 3435] anchor NTP era alignment
- add support far 'basedate' calculations
libntp/systime.c@1.72 +173 -95
[Bug 3435] anchor NTP era alignment
- check/clamp system time based on 'basedate'
ntpd/keyword-gen-utd@1.30 +1 -1
[Bug 3435] anchor NTP era alignment
- add 'basedate' keyword
ntpd/keyword-gen.c@1.36 +1 -0
[Bug 3435] anchor NTP era alignment
- add 'basedate' keyword
ntpd/ntp_config.c@1.347 +56 -3
[Bug 3435] anchor NTP era alignment
- add 'basedate' statement to TOS line
ntpd/ntp_keyword.h@1.32 +1082 -1074
[Bug 3435] anchor NTP era alignment
- add 'basedate' keyword
ntpd/ntp_parser.c@1.106 +1176 -1155
[Bug 3435] anchor NTP era alignment
- add 'basedate' statement to TOS line
ntpd/ntp_parser.h@1.69 +377 -375
[Bug 3435] anchor NTP era alignment
- add 'basedate' statement to TOS line
ntpd/ntp_parser.y@1.96 +7 -0
[Bug 3435] anchor NTP era alignment
- add 'basedate' statement to TOS line
ChangeSet@1.3720.44.2, 2017-09-11 09:37:31+02:00, perlinger@ntp.org
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug
- fix type & annoying but harmless signed/unsigned clash
ntpd/refclock_palisade.c@1.45 +2 -2
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug
- fix type & annoying but harmless signed/unsigned clash
ChangeSet@1.3720.52.1, 2017-09-09 08:05:52+02:00, perlinger@ntp.org
[Bug 2737] Wrong phone number listed for USNO
ChangeLog@1.1873.20.1 +3 -0
[Bug 2737] Wrong phone number listed for USNO
html/drivers/driver18.html@1.21 +1 -1
[Bug 2737] Wrong phone number listed for USNO
ChangeSet@1.3720.51.1, 2017-09-08 07:54:24+02:00, perlinger@ntp.org
[Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
ChangeLog@1.1873.19.1 +4 -0
[Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
include/recvbuff.h@1.27 +3 -2
[Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
- raised receive buffer size to 1200
ChangeSet@1.3720.37.2, 2017-09-07 15:47:26+02:00, perlinger@ntp.org
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
- restore logic of 'ctl_putstr()'/'ctl_putunqstr()' for empty strings (just name, no assign)
ntpd/ntp_control.c@1.221 +20 -14
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
- restore logic of 'ctl_putstr()'/'ctl_putunqstr()' for empty strings (just name, no assign)
ChangeSet@1.3720.50.4, 2017-09-07 15:44:14+02:00, perlinger@ntp.org
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- side kick: missing linefeed in 'ifstat' warning messes up screen
ntpq/ntpq-subs.c@1.119.3.1 +2 -2
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- side kick: missing linefeed in 'ifstat' warning messes up screen
ChangeSet@1.3720.50.3, 2017-09-07 11:11:08+02:00, perlinger@ntp.org
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- sidekick: permit longer key type (hash algo names) for SNTP
sntp/crypto.c@1.25.1.2 +1 -1
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- sidekick: permit longer key type (hash algo names) for SNTP
sntp/crypto.h@1.11.1.2 +1 -1
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- sidekick: permit longer key type (hash algo names) for SNTP
ChangeSet@1.3720.50.2, 2017-09-06 13:10:55+02:00, perlinger@ntp.org
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- fix MD5 fallback: only 'M' as keytype accepted
- provide full digest list with MSVC for OpenSSL v1.0.1 and above
libntp/ssl_init.c@1.22.1.2 +1 -1
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- fix MD5 fallback: only 'M' as keytype accepted
ntpq/ntpq.c@1.174.2.2 +6 -0
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- with MSVC, enable HAVE_EVP_MD_DO_ALL_SORTED for OpenSSL v1.0.1 and above
ChangeSet@1.3720.50.1, 2017-09-06 10:16:25+02:00, perlinger@ntp.org
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
ChangeLog@1.1873.18.1 +5 -0
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
include/ntp.h@1.224 +6 -4
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- macros for key id size & max digest size in MAC
include/ntp_request.h@1.48 +2 -2
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- use macro for max digest size
libntp/a_md5encrypt.c@1.40.1.1 +10 -9
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- use macros for key id size & max digest size in MAC
libntp/authreadkeys.c@1.27.1.1 +1 -6
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- 'keytype_from_text' only returns valid algorithms
libntp/ssl_init.c@1.22.1.1 +35 -39
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- separate OpenSSL and non-SSL code in 'keytype_from_text'
- assure the algorithm is valid, not just known
- drop length check (we support truncated hashes)
ntpq/ntpq.c@1.174.2.1 +28 -37
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- keep key type selection in sync with NTPD
sntp/crypto.c@1.25.1.1 +17 -10
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- decode & check hash algo only when reading the key file (early error detection)
- support truncated digest for long hash algos
- use macros for key and digest size
sntp/crypto.h@1.11.1.1 +2 -1
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- decode & check hash algo only when reading the key file
sntp/main.c@1.100 +2 -3
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- use macros for key and digest size
sntp/tests/crypto.c@1.10.1.1 +13 -7
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- resolve algorithm before running MAC
- use strlcpy(), not memcpy() for string values
sntp/tests/keyFile.c@1.14 +3 -3
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- resolve algorithm before running MAC
- use strlcpy(), not memcpy() for string values
sntp/tests/packetHandling.c@1.7 +3 -2
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- resolve algorithm before running MAC
- use strlcpy(), not memcpy() for string values
- fix sizing bug
sntp/tests/packetProcessing.c@1.12.3.1 +10 -8
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- resolve algorithm before running MAC
- use strlcpy(), not memcpy() for string values
- use macros for key & digest size
ChangeSet@1.3720.49.1, 2017-09-05 08:40:47+02:00, perlinger@ntp.org
[Bug 3394] Leap second deletion does not work on ntpd clients
ChangeLog@1.1873.17.1 +4 -0
[Bug 3394] Leap second deletion does not work on ntpd clients
ntpd/ntp_leapsec.c@1.23 +16 -6
[Bug 3394] Leap second deletion does not work on ntpd clients
- fixed handling of dynamic deletion w/o leap file
ChangeSet@1.3720.48.1, 2017-08-25 21:32:40+00:00, perlinger@ntp.org
[Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
ChangeLog@1.1873.16.1 +4 -0
[Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
sntp/harden/linux@1.2 +2 -2
[Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
- changed '-z foo' to '-Wl,-z,foo' for portability (older GCC, CLANG)
- '-pie' is linker flag, '-fPIE' or '-fpie' is code generation: '-pie' moved to linker flags
tests/ntpd/Makefile.am@1.31 +6 -1
Bug 3399 - SNTP: linker error in 4.2.8p10 during Linux cross-compilation
- missing forward of AM_CFLAGS for individual targets broke link
ChangeSet@1.3720.47.1, 2017-08-25 21:48:38+02:00, perlinger@ntp.org
[Bug 2557] Thunderbolt init is wrong
ChangeLog@1.1873.15.1 +3 -0
[Bug 2557] Thunderbolt init is wrong
ntpd/refclock_palisade.c@1.43.1.1 +1 -1
[Bug 2557] Thunderbolt init is wrong
ChangeSet@1.3720.46.1, 2017-08-25 07:24:59+02:00, perlinger@ntp.org
[Bug 3423] QNX adjtime() implementation error checking is wrong
ChangeLog@1.1873.14.1 +3 -0
[Bug 3423] QNX adjtime() implementation error checking is wrong
libntp/adjtime.c@1.8 +2 -2
[Bug 3423] QNX adjtime() implementation error checking is wrong
ChangeSet@1.3720.45.1, 2017-08-25 06:15:17+02:00, perlinger@ntp.org
[Bug 3016] wrong error position reported for bad ":config pool"
ChangeLog@1.1873.13.1 +4 -0
[Bug 3016] wrong error position reported for bad ":config pool"
ntpd/ntp_scanner.c@1.51 +1 -0
[Bug 3016] wrong error position reported for bad ":config pool"
- fixed location count (get/unget imbalance)
ntpq/ntpq-subs.c@1.119.2.1 +6 -7
[Bug 3016] wrong error position reported for bad ":config pool"
- changed error indicator output
ChangeSet@1.3720.44.1, 2017-08-24 20:04:12+00:00, perlinger@psp-deb1.ntp.org
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug
ChangeLog@1.1873.12.1 +4 -0
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug
ntpd/refclock_palisade.c@1.44 +82 -38
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug
- if necessary, warp effective time stamp by GPS cycles to be on or after build date
- adjusted code to print/log the effective resulting date
- made sure the leap second check uses the adjusted dates, too
ChangeSet@1.3720.43.1, 2017-08-21 19:46:03+02:00, perlinger@ntp.org
[Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8
ChangeLog@1.1873.11.1 +4 -0
[Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8
ntpd/ntp_refclock.c@1.123.1.1 +13 -5
[Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8
- revert handling of 'time_pps_kcbind()' and flag3 to state of revision 1.118
ChangeSet@1.3720.42.1, 2017-08-20 07:49:58+02:00, perlinger@ntp.org
[Bug 3398] tests fail with core dump
ChangeLog@1.1873.10.1 +4 -0
[Bug 3398] tests fail with core dump
sntp/tests/packetProcessing.c@1.12.2.1 +1 -1
[Bug 3398] tests fail with core dump
- use srtlcpy() to set ASCIIZ string
ChangeSet@1.3720.41.1, 2017-07-23 10:53:14+02:00, perlinger@ntp.org
[Bug 3417] ntpq ifstats packet counters can be negative
ChangeLog@1.1873.9.1 +4 -0
[Bug 3417] ntpq ifstats packet counters can be negative
ntpq/ntpq-subs.c@1.119.1.1 +13 -13
[Bug 3417] ntpq ifstats packet counters can be negative
- made IFSTATS counter quantities unsigned & adjusted scan/print formats
ChangeSet@1.3720.29.5, 2017-07-12 06:40:04-04:00, stenn@psp-deb2.ntp.org
Use strlcpy() to copy strings, not memcpy()
ChangeLog@1.1876.1.1 +1 -0
Use strlcpy() to copy strings, not memcpy()
sntp/tests/packetProcessing.c@1.12.1.1 +1 -1
Use strlcpy() to copy strings, not memcpy()
ChangeSet@1.3720.40.1, 2017-07-08 00:43:56+02:00, perlinger@ntp.org
[Sec 3414] ntpq: decodearr() can write beyond its 'buf' limits
ChangeLog@1.1873.8.1 +4 -0
[Sec 3414] ntpq: decodearr() can write beyond its 'buf' limits
ntpq/ntpq.c@1.174.1.2 +62 -48
[Sec 3414] ntpq: decodearr() can write beyond its 'buf' limits
- dest-length limited copy
- many buggy casts in calls to CTYPE 'isfoobar()' functions
ChangeSet@1.3724, 2017-07-07 02:35:10-07:00, harlan@max.pfcs.com
typo
ChangeLog@1.1873.7.1 +4 -2
typo
html/monopt.html@1.40 +2 -2
typo
libntp/work_thread.c@1.22 +1 -1
typo
ntpsnmpd/netsnmp_daemonize.c@1.6 +1 -1
typo
ChangeSet@1.3720.39.2, 2017-07-02 09:42:42+02:00, perlinger@ntp.org
[Bug 3404] revert change
include/ssl_applink.c@1.6 +3 -1
[Bug 3404] revert change
ChangeSet@1.3720.39.1, 2017-07-02 09:16:39+02:00, perlinger@ntp.org
[Bug 3404] Fix openSSL DLL usage under Windows
ChangeLog@1.1873.6.1 +4 -0
[Bug 3404] Fix openSSL DLL usage under Windows
include/ssl_applink.c@1.5 +14 -12
[Bug 3404] Fix openSSL DLL usage under Windows
ports/winnt/include/msvc_ssl_autolib.h@1.2 +23 -9
[Bug 3404] Fix openSSL DLL usage under Windows
- DON'T use tagged libraries by default
ports/winnt/vs2008/debug-x64.vsprops@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2008/debug.vsprops@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2008/release-x64.vsprops@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2008/release.vsprops@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2013/debug-x64.props@1.4 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2013/debug.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2013/release-x64.props@1.4 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2013/release.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2015/debug-x64.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2015/debug.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2015/release-x64.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ports/winnt/vs2015/release.props@1.3 +1 -1
[Bug 3404] Fix openSSL DLL usage under Windows
- fix/drop assumptions on OpenSSL libs directory layout
ChangeSet@1.3720.33.6, 2017-05-29 13:41:48-06:00, bwi@nwtime.org
libntp/a_md5encrypt.c(MD5authdecrypt) force AES 128 key size
libntp/a_md5encrypt.c@1.43 +1 -1
libntp/a_md5encrypt.c(MD5authdecrypt) force AES 128 key size
ChangeSet@1.3720.33.5, 2017-05-29 19:23:32+01:00, Brian@bwinglisd.
libntp/a_md5encrypt.c(MD5authencrypt): force CMAC AES 128 key size
libntp/a_md5encrypt.c@1.42 +3 -2
libntp/a_md5encrypt.c(MD5authencrypt): force CMAC AES 128 key size
ChangeSet@1.3720.33.4, 2017-05-26 19:28:01+01:00, Brian@bwinglisd.
libntp/a_md5encrypt.c: add AES128CMAC and better OpenSSL support,
libntp/authreadkeys.c: add AES128CMAC support,
ports/winnt/ntpd/nt_ppsimpl.c: fix environment termination
libntp/a_md5encrypt.c@1.41 +176 -13
add AES128CMAC and better OpenSSL support
libntp/authreadkeys.c@1.28 +2 -1
add AES128CMAC support
ports/winnt/ntpd/nt_ppsimpl.c@1.3 +3 -2
fix environment termination
ChangeSet@1.3720.1.42, 2017-05-19 12:38:05+00:00, stenn@psp-deb1.ntp.org
autogen updates
ntpd/invoke-ntp.conf.texi@1.208 +1 -1
autogen updates
ntpd/invoke-ntp.keys.texi@1.197 +1 -1
autogen updates
ntpd/invoke-ntpd.texi@1.513 +2 -2
autogen updates
ntpd/ntp.conf.5man@1.242 +3 -3
autogen updates
ntpd/ntp.conf.5mdoc@1.242 +2 -2
autogen updates
ntpd/ntp.conf.html@1.193 +1 -1
autogen updates
ntpd/ntp.conf.man.in@1.242 +3 -3
autogen updates
ntpd/ntp.conf.mdoc.in@1.242 +2 -2
autogen updates
ntpd/ntp.keys.5man@1.231 +2 -2
autogen updates
ntpd/ntp.keys.5mdoc@1.231 +3 -3
autogen updates
ntpd/ntp.keys.html@1.194 +1 -1
autogen updates
ntpd/ntp.keys.man.in@1.231 +2 -2
autogen updates
ntpd/ntp.keys.mdoc.in@1.231 +3 -3
autogen updates
ntpd/ntpd-opts.c@1.535 +1 -1
autogen updates
ntpd/ntpd-opts.h@1.534 +1 -1
autogen updates
ntpd/ntpd.1ntpdman@1.342 +3 -3
autogen updates
ntpd/ntpd.1ntpdmdoc@1.342 +2 -2
autogen updates
ntpd/ntpd.html@1.187 +2 -2
autogen updates
ntpd/ntpd.man.in@1.342 +3 -3
autogen updates
ntpd/ntpd.mdoc.in@1.342 +2 -2
autogen updates
ntpdc/invoke-ntpdc.texi@1.510 +2 -2
autogen updates
ntpdc/ntpdc-opts.c@1.528 +1 -1
autogen updates
ntpdc/ntpdc-opts.h@1.527 +1 -1
autogen updates
ntpdc/ntpdc.1ntpdcman@1.341 +3 -3
autogen updates
ntpdc/ntpdc.1ntpdcmdoc@1.341 +2 -2
autogen updates
ntpdc/ntpdc.html@1.356 +2 -2
autogen updates
ntpdc/ntpdc.man.in@1.341 +3 -3
autogen updates
ntpdc/ntpdc.mdoc.in@1.341 +2 -2
autogen updates
ntpq/invoke-ntpq.texi@1.519 +3 -3
autogen updates
ntpq/ntpq-opts.c@1.536 +114 -114
autogen updates
ntpq/ntpq-opts.h@1.534 +3 -3
autogen updates
ntpq/ntpq.1ntpqman@1.347 +3 -3
autogen updates
ntpq/ntpq.1ntpqmdoc@1.347 +3 -3
autogen updates
ntpq/ntpq.html@1.184 +254 -171
autogen updates
ntpq/ntpq.man.in@1.347 +3 -3
autogen updates
ntpq/ntpq.mdoc.in@1.347 +3 -3
autogen updates
ntpsnmpd/invoke-ntpsnmpd.texi@1.512 +10 -11
autogen updates
ntpsnmpd/ntpsnmpd-opts.c@1.530 +1 -1
autogen updates
ntpsnmpd/ntpsnmpd-opts.h@1.529 +1 -1
autogen updates
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.341 +3 -3
autogen updates
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.341 +2 -2
autogen updates
ntpsnmpd/ntpsnmpd.html@1.182 +1 -1
autogen updates
ntpsnmpd/ntpsnmpd.man.in@1.341 +3 -3
autogen updates
ntpsnmpd/ntpsnmpd.mdoc.in@1.341 +2 -2
autogen updates
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.102 +3 -3
autogen updates
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.103 +2 -2
autogen updates
scripts/calc_tickadj/calc_tickadj.html@1.104 +33 -21
autogen updates
scripts/calc_tickadj/calc_tickadj.man.in@1.101 +3 -3
autogen updates
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.103 +2 -2
autogen updates
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.106 +1 -1
autogen updates
scripts/invoke-plot_summary.texi@1.124 +1 -1
autogen updates
scripts/invoke-summary.texi@1.123 +1 -1
autogen updates
scripts/ntp-wait/invoke-ntp-wait.texi@1.333 +1 -1
autogen updates
scripts/ntp-wait/ntp-wait-opts@1.69 +1 -1
autogen updates
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.330 +3 -3
autogen updates
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.331 +2 -2
autogen updates
scripts/ntp-wait/ntp-wait.html@1.352 +2 -2
autogen updates
scripts/ntp-wait/ntp-wait.man.in@1.330 +3 -3
autogen updates
scripts/ntp-wait/ntp-wait.mdoc.in@1.331 +2 -2
autogen updates
scripts/ntpsweep/invoke-ntpsweep.texi@1.121 +1 -1
autogen updates
scripts/ntpsweep/ntpsweep-opts@1.71 +1 -1
autogen updates
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.109 +3 -3
autogen updates
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.109 +2 -2
autogen updates
scripts/ntpsweep/ntpsweep.html@1.124 +2 -2
autogen updates
scripts/ntpsweep/ntpsweep.man.in@1.109 +3 -3
autogen updates
scripts/ntpsweep/ntpsweep.mdoc.in@1.110 +2 -2
autogen updates
scripts/ntptrace/invoke-ntptrace.texi@1.122 +1 -1
autogen updates
scripts/ntptrace/ntptrace-opts@1.71 +1 -1
autogen updates
scripts/ntptrace/ntptrace.1ntptraceman@1.109 +3 -3
autogen updates
scripts/ntptrace/ntptrace.1ntptracemdoc@1.110 +2 -2
autogen updates
scripts/ntptrace/ntptrace.html@1.125 +2 -2
autogen updates
scripts/ntptrace/ntptrace.man.in@1.109 +3 -3
autogen updates
scripts/ntptrace/ntptrace.mdoc.in@1.111 +2 -2
autogen updates
scripts/plot_summary-opts@1.72 +1 -1
autogen updates
scripts/plot_summary.1plot_summaryman@1.122 +3 -3
autogen updates
scripts/plot_summary.1plot_summarymdoc@1.122 +2 -2
autogen updates
scripts/plot_summary.html@1.127 +2 -2
autogen updates
scripts/plot_summary.man.in@1.122 +3 -3
autogen updates
scripts/plot_summary.mdoc.in@1.122 +2 -2
autogen updates
scripts/summary-opts@1.71 +1 -1
autogen updates
scripts/summary.1summaryman@1.121 +3 -3
autogen updates
scripts/summary.1summarymdoc@1.121 +2 -2
autogen updates
scripts/summary.html@1.126 +2 -2
autogen updates
scripts/summary.man.in@1.121 +3 -3
autogen updates
scripts/summary.mdoc.in@1.121 +2 -2
autogen updates
scripts/update-leap/invoke-update-leap.texi@1.22 +1 -1
autogen updates
scripts/update-leap/update-leap-opts@1.22 +1 -1
autogen updates
scripts/update-leap/update-leap.1update-leapman@1.22 +3 -3
autogen updates
scripts/update-leap/update-leap.1update-leapmdoc@1.22 +2 -2
autogen updates
scripts/update-leap/update-leap.html@1.23 +1 -1
autogen updates
scripts/update-leap/update-leap.man.in@1.22 +3 -3
autogen updates
scripts/update-leap/update-leap.mdoc.in@1.22 +2 -2
autogen updates
sntp/invoke-sntp.texi@1.510 +1 -1
autogen updates
sntp/sntp-opts.c@1.529 +1 -1
autogen updates
sntp/sntp-opts.h@1.527 +1 -1
autogen updates
sntp/sntp.1sntpman@1.345 +3 -3
autogen updates
sntp/sntp.1sntpmdoc@1.345 +2 -2
autogen updates
sntp/sntp.html@1.527 +2 -2
autogen updates
sntp/sntp.man.in@1.345 +3 -3
autogen updates
sntp/sntp.mdoc.in@1.345 +2 -2
autogen updates
util/invoke-ntp-keygen.texi@1.514 +2 -2
autogen updates
util/ntp-keygen-opts.c@1.532 +173 -173
autogen updates
util/ntp-keygen-opts.h@1.530 +3 -3
autogen updates
util/ntp-keygen.1ntp-keygenman@1.342 +2 -2
autogen updates
util/ntp-keygen.1ntp-keygenmdoc@1.342 +2 -2
autogen updates
util/ntp-keygen.html@1.188 +608 -448
autogen updates
util/ntp-keygen.man.in@1.342 +2 -2
autogen updates
util/ntp-keygen.mdoc.in@1.342 +2 -2
autogen updates
ChangeSet@1.3720.38.1, 2017-05-07 02:38:45+00:00, abe@psp-deb1.ntp.org
refclock_jjy.c, ChangeLog:
[Bug 3408] refclock_jjy.c : Avoid a wrong report of the coverity static analysis tool.
ChangeLog@1.1873.5.1 +3 -0
[Bug 3408] refclock_jjy.c : Avoid a wrong report of the coverity static analysis tool.
ntpd/refclock_jjy.c@1.35 +24 -4
[Bug 3408] refclock_jjy.c : Avoid a wrong report of the coverity static analysis tool.
ChangeSet@1.3720.37.1, 2017-05-01 07:36:51+02:00, perlinger@ntp.org
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
ChangeLog@1.1873.4.1 +5 -0
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
ntpd/ntp_control.c@1.220 +131 -102
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
rework of formatting & data transfer stuff in 'ntp_control.c'
avoids unecessary buffers and size limitations.
ChangeSet@1.3720.1.39, 2017-03-28 02:51:14+00:00, stenn@psp-deb1.ntp.org
Note in the ChangeLog that this repo contains the AES-128-CMAC work
ChangeLog@1.1873.3.1 +4 -0
Note in the ChangeLog that this repo contains the AES-128-CMAC work
ChangeSet@1.3720.36.1, 2017-03-27 08:33:02+02:00, perlinger@ntp.org
[Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
ChangeLog@1.1873.2.1 +4 -0
[Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
ntpd/ntpd.c@1.173 +10 -5
[Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
- increased mimimum stack size to 32kB
ChangeSet@1.3720.31.11, 2017-03-23 07:36:54+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1873.1.5 +1 -2
cleanup
ChangeSet@1.3720.29.2, 2017-03-23 05:45:08+00:00, stenn@psp-deb1.ntp.org
[Bug 3358] Spurious KoD log messages in .INIT. phase
ntpd/ntp_proto.c@1.404 +8 -6
[Bug 3358] Spurious KoD log messages in .INIT. phase
ChangeSet@1.3720.31.10, 2017-03-21 11:01:54-04:00, stenn@deacon.udel.edu
NTP_4_2_8P10
TAG: NTP_4_2_8P10
ntpd/invoke-ntp.conf.texi@1.205.1.2 +1 -1
NTP_4_2_8P10
ntpd/invoke-ntp.keys.texi@1.194.1.2 +1 -1
NTP_4_2_8P10
ntpd/invoke-ntpd.texi@1.510.1.2 +17 -22
NTP_4_2_8P10
ntpd/ntp.conf.5man@1.239.1.2 +3 -3
NTP_4_2_8P10
ntpd/ntp.conf.5mdoc@1.239.1.2 +1 -1
NTP_4_2_8P10
ntpd/ntp.conf.html@1.189.2.2 +1 -1
NTP_4_2_8P10
ntpd/ntp.conf.man.in@1.239.1.2 +3 -3
NTP_4_2_8P10
ntpd/ntp.conf.mdoc.in@1.239.1.2 +1 -1
NTP_4_2_8P10
ntpd/ntp.keys.5man@1.228.1.2 +2 -2
NTP_4_2_8P10
ntpd/ntp.keys.5mdoc@1.228.1.2 +1 -1
NTP_4_2_8P10
ntpd/ntp.keys.html@1.190.2.2 +1 -1
NTP_4_2_8P10
ntpd/ntp.keys.man.in@1.228.1.2 +2 -2
NTP_4_2_8P10
ntpd/ntp.keys.mdoc.in@1.228.1.2 +1 -1
NTP_4_2_8P10
ntpd/ntpd-opts.c@1.532.1.2 +245 -245
NTP_4_2_8P10
ntpd/ntpd-opts.h@1.531.1.2 +3 -3
NTP_4_2_8P10
ntpd/ntpd.1ntpdman@1.339.1.2 +3 -3
NTP_4_2_8P10
ntpd/ntpd.1ntpdmdoc@1.339.1.2 +1 -1
NTP_4_2_8P10
ntpd/ntpd.html@1.183.2.2 +2 -2
NTP_4_2_8P10
ntpd/ntpd.man.in@1.339.1.2 +3 -3
NTP_4_2_8P10
ntpd/ntpd.mdoc.in@1.339.1.2 +1 -1
NTP_4_2_8P10
ntpdc/invoke-ntpdc.texi@1.507.1.2 +16 -22
NTP_4_2_8P10
ntpdc/ntpdc-opts.c@1.525.1.2 +107 -107
NTP_4_2_8P10
ntpdc/ntpdc-opts.h@1.524.1.2 +3 -3
NTP_4_2_8P10
ntpdc/ntpdc.1ntpdcman@1.338.1.2 +3 -3
NTP_4_2_8P10
ntpdc/ntpdc.1ntpdcmdoc@1.338.1.2 +1 -1
NTP_4_2_8P10
ntpdc/ntpdc.html@1.352.2.2 +16 -22
NTP_4_2_8P10
ntpdc/ntpdc.man.in@1.338.1.2 +3 -3
NTP_4_2_8P10
ntpdc/ntpdc.mdoc.in@1.338.1.2 +1 -1
NTP_4_2_8P10
ntpq/invoke-ntpq.texi@1.515.2.2 +21 -18
NTP_4_2_8P10
ntpq/ntpq-opts.c@1.532.2.2 +114 -114
NTP_4_2_8P10
ntpq/ntpq-opts.h@1.530.2.2 +3 -3
NTP_4_2_8P10
ntpq/ntpq.1ntpqman@1.343.2.2 +3 -3
NTP_4_2_8P10
ntpq/ntpq.1ntpqmdoc@1.343.2.2 +1 -1
NTP_4_2_8P10
ntpq/ntpq.html@1.180.2.2 +2 -2
NTP_4_2_8P10
ntpq/ntpq.man.in@1.343.2.2 +3 -3
NTP_4_2_8P10
ntpq/ntpq.mdoc.in@1.343.2.2 +1 -1
NTP_4_2_8P10
ntpsnmpd/invoke-ntpsnmpd.texi@1.511 +1 -1
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd-opts.c@1.529 +68 -68
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd-opts.h@1.528 +3 -3
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.338.1.2 +3 -3
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.338.1.2 +1 -1
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd.html@1.178.2.2 +1 -1
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd.man.in@1.338.1.2 +3 -3
NTP_4_2_8P10
ntpsnmpd/ntpsnmpd.mdoc.in@1.338.1.2 +1 -1
NTP_4_2_8P10
packageinfo.sh@1.534.1.2 +3 -3
NTP_4_2_8P10
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.99.1.2 +3 -3
NTP_4_2_8P10
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.100.1.2 +1 -1
NTP_4_2_8P10
scripts/calc_tickadj/calc_tickadj.html@1.101.1.2 +1 -1
NTP_4_2_8P10
scripts/calc_tickadj/calc_tickadj.man.in@1.98.1.2 +3 -3
NTP_4_2_8P10
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.100.1.2 +1 -1
NTP_4_2_8P10
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.105 +1 -1
NTP_4_2_8P10
scripts/invoke-plot_summary.texi@1.121.1.2 +74 -56
NTP_4_2_8P10
scripts/invoke-summary.texi@1.120.1.2 +2 -2
NTP_4_2_8P10
scripts/ntp-wait/invoke-ntp-wait.texi@1.330.1.2 +2 -2
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait-opts@1.68 +2 -2
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.327.1.2 +3 -3
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.328.1.2 +1 -1
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait.html@1.348.2.2 +2 -2
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait.man.in@1.327.1.2 +3 -3
NTP_4_2_8P10
scripts/ntp-wait/ntp-wait.mdoc.in@1.328.1.2 +1 -1
NTP_4_2_8P10
scripts/ntpsweep/invoke-ntpsweep.texi@1.118.1.2 +2 -2
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep-opts@1.70 +2 -2
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.106.1.2 +3 -3
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.106.1.2 +1 -1
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep.html@1.120.2.2 +2 -2
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep.man.in@1.106.1.2 +3 -3
NTP_4_2_8P10
scripts/ntpsweep/ntpsweep.mdoc.in@1.107.1.2 +1 -1
NTP_4_2_8P10
scripts/ntptrace/invoke-ntptrace.texi@1.119.1.2 +2 -2
NTP_4_2_8P10
scripts/ntptrace/ntptrace-opts@1.70 +2 -2
NTP_4_2_8P10
scripts/ntptrace/ntptrace.1ntptraceman@1.106.1.2 +3 -3
NTP_4_2_8P10
scripts/ntptrace/ntptrace.1ntptracemdoc@1.107.1.2 +1 -1
NTP_4_2_8P10
scripts/ntptrace/ntptrace.html@1.121.2.2 +2 -2
NTP_4_2_8P10
scripts/ntptrace/ntptrace.man.in@1.106.1.2 +3 -3
NTP_4_2_8P10
scripts/ntptrace/ntptrace.mdoc.in@1.108.1.2 +1 -1
NTP_4_2_8P10
scripts/plot_summary-opts@1.71 +2 -2
NTP_4_2_8P10
scripts/plot_summary.1plot_summaryman@1.119.1.2 +3 -3
NTP_4_2_8P10
scripts/plot_summary.1plot_summarymdoc@1.119.1.2 +1 -1
NTP_4_2_8P10
scripts/plot_summary.html@1.123.2.2 +87 -61
NTP_4_2_8P10
scripts/plot_summary.man.in@1.119.1.2 +3 -3
NTP_4_2_8P10
scripts/plot_summary.mdoc.in@1.119.1.2 +1 -1
NTP_4_2_8P10
scripts/summary-opts@1.70 +2 -2
NTP_4_2_8P10
scripts/summary.1summaryman@1.118.1.2 +3 -3
NTP_4_2_8P10
scripts/summary.1summarymdoc@1.118.1.2 +1 -1
NTP_4_2_8P10
scripts/summary.html@1.122.2.2 +2 -2
NTP_4_2_8P10
scripts/summary.man.in@1.118.1.2 +3 -3
NTP_4_2_8P10
scripts/summary.mdoc.in@1.118.1.2 +1 -1
NTP_4_2_8P10
scripts/update-leap/invoke-update-leap.texi@1.21 +1 -1
NTP_4_2_8P10
scripts/update-leap/update-leap-opts@1.21 +2 -2
NTP_4_2_8P10
scripts/update-leap/update-leap.1update-leapman@1.19.1.2 +3 -3
NTP_4_2_8P10
scripts/update-leap/update-leap.1update-leapmdoc@1.19.1.2 +1 -1
NTP_4_2_8P10
scripts/update-leap/update-leap.html@1.19.2.2 +1 -1
NTP_4_2_8P10
scripts/update-leap/update-leap.man.in@1.19.1.2 +3 -3
NTP_4_2_8P10
scripts/update-leap/update-leap.mdoc.in@1.19.1.2 +1 -1
NTP_4_2_8P10
sntp/invoke-sntp.texi@1.509 +23 -27
NTP_4_2_8P10
sntp/sntp-opts.c@1.528 +159 -159
NTP_4_2_8P10
sntp/sntp-opts.h@1.526 +3 -3
NTP_4_2_8P10
sntp/sntp.1sntpman@1.342.1.2 +3 -3
NTP_4_2_8P10
sntp/sntp.1sntpmdoc@1.342.1.2 +1 -1
NTP_4_2_8P10
sntp/sntp.html@1.523.2.2 +23 -27
NTP_4_2_8P10
sntp/sntp.man.in@1.342.1.2 +3 -3
NTP_4_2_8P10
sntp/sntp.mdoc.in@1.342.1.2 +1 -1
NTP_4_2_8P10
util/invoke-ntp-keygen.texi@1.510.2.2 +17 -15
NTP_4_2_8P10
util/ntp-keygen-opts.c@1.528.2.2 +173 -173
NTP_4_2_8P10
util/ntp-keygen-opts.h@1.526.2.2 +3 -3
NTP_4_2_8P10
util/ntp-keygen.1ntp-keygenman@1.338.2.2 +3 -3
NTP_4_2_8P10
util/ntp-keygen.1ntp-keygenmdoc@1.338.2.2 +1 -1
NTP_4_2_8P10
util/ntp-keygen.html@1.184.2.2 +2 -2
NTP_4_2_8P10
util/ntp-keygen.man.in@1.338.2.2 +3 -3
NTP_4_2_8P10
util/ntp-keygen.mdoc.in@1.338.2.2 +1 -1
NTP_4_2_8P10
ChangeSet@1.3720.31.9, 2017-03-21 09:40:52-04:00, stenn@deacon.udel.edu
NTP_4_2_8P10_WIN_BETA1
TAG: NTP_4_2_8P10_WIN_BETA1
ChangeLog@1.1873.1.4 +1 -0
NTP_4_2_8P10_WIN_BETA1
ntpd/invoke-ntp.conf.texi@1.205.1.1 +1 -1
NTP_4_2_8P10_WIN_BETA1
ntpd/invoke-ntp.keys.texi@1.194.1.1 +1 -1
NTP_4_2_8P10_WIN_BETA1
ntpd/invoke-ntpd.texi@1.510.1.1 +22 -17
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.conf.5man@1.239.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.conf.5mdoc@1.239.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.conf.html@1.189.2.1 +1192 -1541
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.conf.man.in@1.239.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.conf.mdoc.in@1.239.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.keys.5man@1.228.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.keys.5mdoc@1.228.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.keys.html@1.190.2.1 +115 -162
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.keys.man.in@1.228.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpd/ntp.keys.mdoc.in@1.228.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd-opts.c@1.532.1.1 +245 -245
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd-opts.h@1.531.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd.1ntpdman@1.339.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd.1ntpdmdoc@1.339.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd.html@1.183.2.1 +677 -752
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd.man.in@1.339.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpd/ntpd.mdoc.in@1.339.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpdc/invoke-ntpdc.texi@1.507.1.1 +22 -16
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc-opts.c@1.525.1.1 +107 -107
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc-opts.h@1.524.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc.1ntpdcman@1.338.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc.1ntpdcmdoc@1.338.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc.html@1.352.2.1 +371 -434
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc.man.in@1.338.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpdc/ntpdc.mdoc.in@1.338.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpq/invoke-ntpq.texi@1.515.2.1 +18 -21
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq-opts.c@1.532.2.1 +114 -114
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq-opts.h@1.530.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq.1ntpqman@1.343.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq.1ntpqmdoc@1.343.2.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq.html@1.180.2.1 +1283 -1438
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq.man.in@1.343.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpq/ntpq.mdoc.in@1.343.2.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/invoke-ntpsnmpd.texi@1.510 +11 -10
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd-opts.c@1.528 +68 -68
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd-opts.h@1.527 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.338.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.338.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd.html@1.178.2.1 +59 -92
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd.man.in@1.338.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
ntpsnmpd/ntpsnmpd.mdoc.in@1.338.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
packageinfo.sh@1.534.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.99.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.100.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/calc_tickadj.html@1.101.1.1 +22 -34
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/calc_tickadj.man.in@1.98.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.100.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.104 +1 -1
NTP_4_2_8P10_WIN_BETA1
scripts/invoke-plot_summary.texi@1.121.1.1 +56 -74
NTP_4_2_8P10_WIN_BETA1
scripts/invoke-summary.texi@1.120.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/invoke-ntp-wait.texi@1.330.1.1 +1 -1
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait-opts@1.67 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.327.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.328.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait.html@1.348.2.1 +141 -189
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait.man.in@1.327.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntp-wait/ntp-wait.mdoc.in@1.328.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/invoke-ntpsweep.texi@1.118.1.1 +1 -1
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep-opts@1.69 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.106.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.106.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep.html@1.120.2.1 +148 -196
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep.man.in@1.106.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntpsweep/ntpsweep.mdoc.in@1.107.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/invoke-ntptrace.texi@1.119.1.1 +1 -1
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace-opts@1.69 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace.1ntptraceman@1.106.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.107.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace.html@1.121.2.1 +126 -175
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace.man.in@1.106.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/ntptrace/ntptrace.mdoc.in@1.108.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary-opts@1.70 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary.1plot_summaryman@1.119.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary.1plot_summarymdoc@1.119.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary.html@1.123.2.1 +139 -211
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary.man.in@1.119.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/plot_summary.mdoc.in@1.119.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/summary-opts@1.69 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/summary.1summaryman@1.118.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/summary.1summarymdoc@1.118.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/summary.html@1.122.2.1 +132 -180
NTP_4_2_8P10_WIN_BETA1
scripts/summary.man.in@1.118.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/summary.mdoc.in@1.118.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/invoke-update-leap.texi@1.20 +1 -1
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap-opts@1.20 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap.1update-leapman@1.19.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap.1update-leapmdoc@1.19.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap.html@1.19.2.1 +199 -247
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap.man.in@1.19.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
scripts/update-leap/update-leap.mdoc.in@1.19.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
sntp/invoke-sntp.texi@1.508 +27 -23
NTP_4_2_8P10_WIN_BETA1
sntp/sntp-opts.c@1.527 +159 -159
NTP_4_2_8P10_WIN_BETA1
sntp/sntp-opts.h@1.525 +3 -3
NTP_4_2_8P10_WIN_BETA1
sntp/sntp.1sntpman@1.342.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
sntp/sntp.1sntpmdoc@1.342.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
sntp/sntp.html@1.523.2.1 +441 -509
NTP_4_2_8P10_WIN_BETA1
sntp/sntp.man.in@1.342.1.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
sntp/sntp.mdoc.in@1.342.1.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
util/invoke-ntp-keygen.texi@1.510.2.1 +15 -17
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen-opts.c@1.528.2.1 +173 -173
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen-opts.h@1.526.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen.1ntp-keygenman@1.338.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen.1ntp-keygenmdoc@1.338.2.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen.html@1.184.2.1 +1006 -1082
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen.man.in@1.338.2.1 +3 -3
NTP_4_2_8P10_WIN_BETA1
util/ntp-keygen.mdoc.in@1.338.2.1 +2 -2
NTP_4_2_8P10_WIN_BETA1
ChangeSet@1.3720.31.8, 2017-03-21 07:11:32-04:00, stenn@deacon.udel.edu
Disable some triggers for now
BitKeeper/triggers/2mirrors@1.10 +3 -0
Disable some triggers for now
BitKeeper/triggers/trigger.cfg@1.15 +3 -2
Disable some triggers for now
ChangeSet@1.3720.35.2, 2017-03-21 06:34:14-04:00, stenn@deacon.udel.edu
bk hostname cleanup for bk7
BitKeeper/triggers/paranoid@1.5 +1 -1
bk hostname cleanup for bk7
ChangeSet@1.3720.31.6, 2017-03-21 05:51:48-04:00, stenn@psp-deb2.ntp.org
Updated NEWS for p9-win
NEWS@1.177.1.30 +10 -0
Updated NEWS for p9-win
ChangeSet@1.3720.31.4, 2017-03-21 08:39:07+00:00, stenn@psp-deb1.ntp.org
Bug 3393 is a normal bug
ChangeLog@1.1873.1.1 +1 -1
Bug 3393 is a normal bug
ChangeSet@1.3720.34.2, 2017-03-21 04:19:53-04:00, stenn@deacon.udel.edu
bk-7 trigger updates
BitKeeper/triggers/send@1.16.1.1 +2 -2
bk-7 trigger updates
ChangeLog@1.1853.11.2 +4 -0
bk-7 trigger updates
ChangeSet@1.3720.34.1, 2017-03-21 04:06:39-04:00, stenn@deacon.udel.edu
cleanup
ChangeLog@1.1853.11.1 +0 -2
cleanup
ChangeSet@1.3720.33.3, 2017-03-20 17:07:56+00:00, bwi@psp-deb1.ntp.org
Checkin Autogen-ed docs
ntpq/invoke-ntpq.texi@1.515.1.2 +2 -2
Checkin Autogen-ed docs
ntpq/ntpq-opts.c@1.532.1.2 +1 -1
Checkin Autogen-ed docs
ntpq/ntpq-opts.h@1.530.1.1 +1 -1
Checkin Autogen-ed docs
ntpq/ntpq.1ntpqman@1.343.1.2 +3 -3
Checkin Autogen-ed docs
ntpq/ntpq.1ntpqmdoc@1.343.1.2 +3 -3
Checkin Autogen-ed docs
ntpq/ntpq.man.in@1.343.1.2 +3 -3
Checkin Autogen-ed docs
ntpq/ntpq.mdoc.in@1.343.1.2 +3 -3
Checkin Autogen-ed docs
scripts/invoke-plot_summary.texi@1.122 +1 -1
Checkin Autogen-ed docs
scripts/invoke-summary.texi@1.121 +1 -1
Checkin Autogen-ed docs
scripts/ntp-wait/invoke-ntp-wait.texi@1.331 +1 -1
Checkin Autogen-ed docs
scripts/ntpsweep/invoke-ntpsweep.texi@1.119 +1 -1
Checkin Autogen-ed docs
scripts/ntptrace/invoke-ntptrace.texi@1.120 +1 -1
Checkin Autogen-ed docs
ChangeSet@1.3720.33.2, 2017-03-20 17:38:08+01:00, bwi@nwtime.org
ntpq/ntpq-opts.def(addvars): add missing Oc to match Oo
ntpq/ntpq-opts.def@1.31 +1 -1
ntpq/ntpq-opts.def(addvars): add missing Oc to match Oo
ChangeSet@1.3720.33.1, 2017-03-20 16:25:04+00:00, bwi@psp-deb1.ntp.org
Checkin Autogen-ed docs and sources
ntpd/invoke-ntp.conf.texi@1.206 +1 -1
Checkin Autogen-ed docs and sources
ntpd/invoke-ntp.keys.texi@1.195 +1 -1
Checkin Autogen-ed docs and sources
ntpd/invoke-ntpd.texi@1.511 +1 -1
Checkin Autogen-ed docs and sources
ntpd/ntp.conf.5man@1.240 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.conf.5mdoc@1.240 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.conf.html@1.189.1.1 +1193 -1529
Checkin Autogen-ed docs and sources
ntpd/ntp.conf.man.in@1.240 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.conf.mdoc.in@1.240 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.keys.5man@1.229 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.keys.5mdoc@1.229 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.keys.html@1.190.1.1 +123 -158
Checkin Autogen-ed docs and sources
ntpd/ntp.keys.man.in@1.229 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntp.keys.mdoc.in@1.229 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntpd-opts.c@1.533 +1 -1
Checkin Autogen-ed docs and sources
ntpd/ntpd-opts.h@1.532 +1 -1
Checkin Autogen-ed docs and sources
ntpd/ntpd.1ntpdman@1.340 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntpd.1ntpdmdoc@1.340 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntpd.html@1.183.1.1 +681 -712
Checkin Autogen-ed docs and sources
ntpd/ntpd.man.in@1.340 +2 -2
Checkin Autogen-ed docs and sources
ntpd/ntpd.mdoc.in@1.340 +2 -2
Checkin Autogen-ed docs and sources
ntpdc/invoke-ntpdc.texi@1.508 +1 -1
Checkin Autogen-ed docs and sources
ntpdc/ntpdc-opts.c@1.526 +1 -1
Checkin Autogen-ed docs and sources
ntpdc/ntpdc-opts.h@1.525 +1 -1
Checkin Autogen-ed docs and sources
ntpdc/ntpdc.1ntpdcman@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpdc/ntpdc.1ntpdcmdoc@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpdc/ntpdc.html@1.352.1.1 +354 -403
Checkin Autogen-ed docs and sources
ntpdc/ntpdc.man.in@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpdc/ntpdc.mdoc.in@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpq/invoke-ntpq.texi@1.515.1.1 +296 -202
Checkin Autogen-ed docs and sources
ntpq/ntpq-opts.c@1.532.1.1 +109 -109
Checkin Autogen-ed docs and sources
ntpq/ntpq.1ntpqman@1.343.1.1 +394 -250
Checkin Autogen-ed docs and sources
ntpq/ntpq.1ntpqmdoc@1.343.1.1 +399 -330
Checkin Autogen-ed docs and sources
ntpq/ntpq.html@1.180.1.1 +1425 -1475
Checkin Autogen-ed docs and sources
ntpq/ntpq.man.in@1.343.1.1 +394 -250
Checkin Autogen-ed docs and sources
ntpq/ntpq.mdoc.in@1.343.1.1 +399 -330
Checkin Autogen-ed docs and sources
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpsnmpd/ntpsnmpd.html@1.178.1.1 +61 -90
Checkin Autogen-ed docs and sources
ntpsnmpd/ntpsnmpd.man.in@1.339 +2 -2
Checkin Autogen-ed docs and sources
ntpsnmpd/ntpsnmpd.mdoc.in@1.339 +2 -2
Checkin Autogen-ed docs and sources
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.100 +2 -2
Checkin Autogen-ed docs and sources
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.101 +2 -2
Checkin Autogen-ed docs and sources
scripts/calc_tickadj/calc_tickadj.html@1.102 +1 -1
Checkin Autogen-ed docs and sources
scripts/calc_tickadj/calc_tickadj.man.in@1.99 +2 -2
Checkin Autogen-ed docs and sources
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.101 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.328 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.329 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntp-wait/ntp-wait.html@1.348.1.1 +151 -181
Checkin Autogen-ed docs and sources
scripts/ntp-wait/ntp-wait.man.in@1.328 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntp-wait/ntp-wait.mdoc.in@1.329 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.107 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.107 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntpsweep/ntpsweep.html@1.120.1.1 +151 -188
Checkin Autogen-ed docs and sources
scripts/ntpsweep/ntpsweep.man.in@1.107 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntpsweep/ntpsweep.mdoc.in@1.108 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntptrace/ntptrace.1ntptraceman@1.107 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntptrace/ntptrace.1ntptracemdoc@1.108 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntptrace/ntptrace.html@1.121.1.1 +128 -168
Checkin Autogen-ed docs and sources
scripts/ntptrace/ntptrace.man.in@1.107 +2 -2
Checkin Autogen-ed docs and sources
scripts/ntptrace/ntptrace.mdoc.in@1.109 +2 -2
Checkin Autogen-ed docs and sources
scripts/plot_summary.1plot_summaryman@1.120 +2 -2
Checkin Autogen-ed docs and sources
scripts/plot_summary.1plot_summarymdoc@1.120 +2 -2
Checkin Autogen-ed docs and sources
scripts/plot_summary.html@1.123.1.1 +160 -188
Checkin Autogen-ed docs and sources
scripts/plot_summary.man.in@1.120 +2 -2
Checkin Autogen-ed docs and sources
scripts/plot_summary.mdoc.in@1.120 +2 -2
Checkin Autogen-ed docs and sources
scripts/summary.1summaryman@1.119 +2 -2
Checkin Autogen-ed docs and sources
scripts/summary.1summarymdoc@1.119 +2 -2
Checkin Autogen-ed docs and sources
scripts/summary.html@1.122.1.1 +135 -171
Checkin Autogen-ed docs and sources
scripts/summary.man.in@1.119 +2 -2
Checkin Autogen-ed docs and sources
scripts/summary.mdoc.in@1.119 +2 -2
Checkin Autogen-ed docs and sources
scripts/update-leap/update-leap.1update-leapman@1.20 +2 -2
Checkin Autogen-ed docs and sources
scripts/update-leap/update-leap.1update-leapmdoc@1.20 +2 -2
Checkin Autogen-ed docs and sources
scripts/update-leap/update-leap.html@1.19.1.1 +212 -236
Checkin Autogen-ed docs and sources
scripts/update-leap/update-leap.man.in@1.20 +2 -2
Checkin Autogen-ed docs and sources
scripts/update-leap/update-leap.mdoc.in@1.20 +2 -2
Checkin Autogen-ed docs and sources
sntp/sntp.1sntpman@1.343 +2 -2
Checkin Autogen-ed docs and sources
sntp/sntp.1sntpmdoc@1.343 +2 -2
Checkin Autogen-ed docs and sources
sntp/sntp.html@1.523.1.1 +419 -467
Checkin Autogen-ed docs and sources
sntp/sntp.man.in@1.343 +2 -2
Checkin Autogen-ed docs and sources
sntp/sntp.mdoc.in@1.343 +2 -2
Checkin Autogen-ed docs and sources
util/invoke-ntp-keygen.texi@1.510.1.1 +597 -426
Checkin Autogen-ed docs and sources
util/ntp-keygen-opts.c@1.528.1.1 +155 -154
Checkin Autogen-ed docs and sources
util/ntp-keygen-opts.h@1.526.1.1 +17 -17
Checkin Autogen-ed docs and sources
util/ntp-keygen.1ntp-keygenman@1.338.1.1 +591 -440
Checkin Autogen-ed docs and sources
util/ntp-keygen.1ntp-keygenmdoc@1.338.1.1 +570 -418
Checkin Autogen-ed docs and sources
util/ntp-keygen.html@1.184.1.1 +1414 -1271
Checkin Autogen-ed docs and sources
util/ntp-keygen.man.in@1.338.1.1 +591 -440
Checkin Autogen-ed docs and sources
util/ntp-keygen.mdoc.in@1.338.1.1 +570 -418
Checkin Autogen-ed docs and sources
ChangeSet@1.3720.1.38, 2017-03-19 10:13:40+00:00, stenn@psp-deb1.ntp.org
AES-128-CMAC autogen updates
ntpd/ntp.conf.html@1.190 +1193 -1529
AES-128-CMAC autogen updates
ntpd/ntp.keys.html@1.191 +123 -158
AES-128-CMAC autogen updates
ntpd/ntpd.html@1.184 +681 -712
AES-128-CMAC autogen updates
ntpdc/ntpdc.html@1.353 +354 -403
AES-128-CMAC autogen updates
ntpq/invoke-ntpq.texi@1.516 +296 -202
AES-128-CMAC autogen updates
ntpq/ntpq-opts.c@1.533 +109 -109
AES-128-CMAC autogen updates
ntpq/ntpq-opts.h@1.531 +1 -1
AES-128-CMAC autogen updates
ntpq/ntpq.1ntpqman@1.344 +394 -250
AES-128-CMAC autogen updates
ntpq/ntpq.1ntpqmdoc@1.344 +399 -330
AES-128-CMAC autogen updates
ntpq/ntpq.html@1.181 +1281 -1412
AES-128-CMAC autogen updates
ntpq/ntpq.man.in@1.344 +394 -250
AES-128-CMAC autogen updates
ntpq/ntpq.mdoc.in@1.344 +399 -330
AES-128-CMAC autogen updates
ntpsnmpd/ntpsnmpd.html@1.179 +61 -90
AES-128-CMAC autogen updates
scripts/ntp-wait/ntp-wait.html@1.349 +151 -181
AES-128-CMAC autogen updates
scripts/ntpsweep/ntpsweep.html@1.121 +151 -188
AES-128-CMAC autogen updates
scripts/ntptrace/ntptrace.html@1.122 +128 -168
AES-128-CMAC autogen updates
scripts/plot_summary.html@1.124 +160 -188
AES-128-CMAC autogen updates
scripts/summary.html@1.123 +135 -171
AES-128-CMAC autogen updates
scripts/update-leap/update-leap.html@1.20 +212 -236
AES-128-CMAC autogen updates
sntp/sntp.html@1.524 +419 -467
AES-128-CMAC autogen updates
util/invoke-ntp-keygen.texi@1.511 +597 -426
AES-128-CMAC autogen updates
util/ntp-keygen-opts.c@1.529 +155 -154
AES-128-CMAC autogen updates
util/ntp-keygen-opts.h@1.527 +17 -17
AES-128-CMAC autogen updates
util/ntp-keygen.1ntp-keygenman@1.339 +591 -440
AES-128-CMAC autogen updates
util/ntp-keygen.1ntp-keygenmdoc@1.339 +570 -418
AES-128-CMAC autogen updates
util/ntp-keygen.html@1.185 +1031 -1048
AES-128-CMAC autogen updates
util/ntp-keygen.man.in@1.339 +591 -440
AES-128-CMAC autogen updates
util/ntp-keygen.mdoc.in@1.339 +570 -418
AES-128-CMAC autogen updates
ChangeSet@1.3720.1.37, 2017-03-19 06:23:57+01:00, bwi@nwtime.org
ntpq/ntpq-opts.def name resolution need not involve DNS, replace command_keyword with command and optionally add name, \& quote recommended operators, change clearlist to clearvars, add Ns macros around |, reset some option strings to No;
ntpq/ntpq-subs.c(doprintpeers) space over on next line allowing for host + sp if > 1 host and regular tally + source + sp if wide output and long source name
ntpq/ntpq-opts.def@1.30 +49 -49
name resolution need not involve DNS, replace command_keyword with command and optionally add name, \& quote recommended operators, change clearlist to clearvars, add Ns macros around |, reset some option strings to No,
ntpq/ntpq-subs.c@1.120 +5 -1
space over on next line allowing for host + sp if > 1 host and regular tally + source + sp if wide output and long source name
ChangeSet@1.3720.31.3, 2017-03-16 07:48:09+00:00, stenn@psp-deb1.ntp.org
Updates
NEWS@1.177.1.29 +24 -25
Updates
ChangeSet@1.3720.1.36, 2017-03-14 22:06:13+01:00, bwi@nwtime.org
ntpq/ntpq-opts.def restore Ba to | as unsupported by mdoc; util/ntp-keygen-opts.def restore Ba to | as unsupported by mdoc and backslash escape ` to try to avoid build errors
ntpq/ntpq-opts.def@1.29 +11 -11
restore Ba to | as unsupported by mdoc
util/ntp-keygen-opts.def@1.31 +5 -5
restore Ba to | as unsupported by mdoc and backslash escape ` to try to avoid build errors
ChangeSet@1.3720.1.35, 2017-03-14 06:58:02+01:00, bwi@nwtime.org
packageinfo.sh comment out special win, util/ntp-keygen-opts.def quote @ { } with prefix @ for texinfo
packageinfo.sh@1.535 +1 -1
comment out special win
util/ntp-keygen-opts.def@1.30 +12 -12
quote @ { } with prefix @ for texinfo
ChangeSet@1.3720.1.34, 2017-03-13 23:19:02+01:00, bwi@nwtime.org
clean up ntpq/ntpq-opts.def and util/ntp-keygen-opts.def:
reconcile internally, with implementation, and updates to generated files;
make markup and wording consistent and clearer
ntpq/ntpq-opts.def@1.28 +385 -325
remove old RFC ref, NTPv4 differences, some refs to messages as mode 6 and control, deprecation of man page;
add missing commands (including poll as it is visible in help), variables, statistics, and counters;
made optional arguments so;
say what happens with no arguments;
say when clients are shown with peers;
say what counters or statistics are shown in display commands;
say display instead of print, read, show;
word like help where better;
reorder commands listed out of alphabetic order without any grouping;
Xr commands in section 1 not functions in section 3 as devel docs may not be installed;
ID lowercased to not look like acronym or shout;
add \& as recommended;
commands use Ic, variables and named values Cm not Ic, flags use Fl, Ba instead of |;
wrap long lines;
correct poll interval units from log2 s to seconds;
define jitter as offset RMS error estimate
util/ntp-keygen-opts.def@1.29 +584 -426
reconcile three embedded Running the Program sections (two of them pure duplicates);
remove duplicated paragraphs;
move apparently orphan paragraphs to appropriate places;
reword chunks with repeated content;
reconcile Command Line Options section with options, add missing options, add long option flags;
specify explicitly when other program commands and configuration files are referenced;
change external references from section 3 functions to section 1 commands;
use markup consistently
ChangeSet@1.3720.31.1, 2017-03-10 10:00:39+01:00, burnicki@pc-martin4.py.meinberg.de
Include openssl/applink.c only for openSSL versions < 1.1.0.
include/ssl_applink.c@1.4 +3 -1
Include openssl/applink.c only for openSSL versions < 1.1.0.
ChangeSet@1.3720.30.2, 2017-03-09 21:59:34+01:00, perlinger@ntp.org
[Sec 3384] followup: fixed a comment typo.
ports/winnt/instsrv/instsrv.c@1.11 +1 -1
[Sec 3384] followup: fixed a comment typo.
ChangeSet@1.3720.1.33, 2017-03-08 21:51:39+00:00, bwi@nwtime.org
ports/winnt/instsrv/instsrv.c(addSourceToRegistry) prefix use of snprintf with _ required for VS < 2015
ports/winnt/instsrv/instsrv.c@1.9.1.1 +1 -1
prefix addSourceToRegistry() use of snprintf with _ required for VS < 2015
ChangeSet@1.3720.30.1, 2017-03-08 22:34:08+01:00, perlinger@ntp.org
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- VS2008 compatibility restored
ports/winnt/instsrv/instsrv.c@1.10 +4 -0
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- VS2008 compatibility restored
ChangeSet@1.3720.1.32, 2017-03-08 17:32:15+00:00, bwi@nwtime.org
add AES128CMAC to MAC selections list in ntpq.texi (replacing earlier change directly to ntpq.html)
ntpq/ntpq.texi@1.5 +1 -1
add AES128CMAC to MAC selections list (replacing earlier change directly to ntpq.html)
ChangeSet@1.3720.29.1, 2017-03-08 06:11:49-05:00, stenn@psp-fb3.ntp.org
[Bug 3358] Spurious KoD log messages in .INIT. phase
ChangeLog@1.1874 +4 -0
[Bug 3358] Spurious KoD log messages in .INIT. phase
ntpd/ntp_proto.c@1.403 +8 -11
[Bug 3358] Spurious KoD log messages in .INIT. phase
ChangeSet@1.3720.1.30, 2017-03-06 21:07:41+00:00, stenn@psp-deb1.ntp.org
CVE updates for 4.2.8p10
NEWS@1.177.1.28 +15 -15
CVE updates for 4.2.8p10
ChangeSet@1.3720.1.29, 2017-03-06 13:54:35+00:00, stenn@psp-deb1.ntp.org
NEWS for p10
NEWS@1.177.1.27 +447 -1
NEWS for p10
ChangeSet@1.3720.1.28, 2017-03-06 11:52:11+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1873 +2 -4
cleanup
ChangeSet@1.3720.25.7, 2017-03-05 11:23:32-07:00, bwi@bwinglisrpi1.(none)
ntpd/ntp_refclock.c(refclock_params) report time_pps_kcbind errors but only return failure if error other than not supported, allowing PPS to work
ntpd/ntp_refclock.c@1.124 +4 -1
report time_pps_kcbind errors but only return failure if error other than not supported, allowing PPS to work
ChangeSet@1.3720.1.27, 2017-03-05 14:56:43+01:00, perlinger@ntp.org
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- load PPS providers from registry
- disable PPSAPI_HACK envvar
- major cleanup of 'instsrv'
ChangeLog@1.1872 +4 -0
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- load PPS providers from registry, disable PPSAPI_HACK envvar
include/ntp_stdlib.h@1.85 +6 -2
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- side kick: fix array allocation for DEBUG builds
include/ntpd.h@1.197 +1 -1
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- sidekick: signed/unsigned clashes on 'sys_ttlmax'
ntpd/ntp_config.c@1.346 +1 -1
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- sidekick: signed/unsigned clashes on 'sys_ttlmax'
ntpd/ntp_proto.c@1.402 +2 -2
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- sidekick: signed/unsigned clashes on 'sys_ttlmax'
ports/winnt/include/ntp_iocpltypes.h@1.4 +1 -0
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- track use of PPS API on serial channels
ports/winnt/instsrv/instsrv.c@1.9 +378 -347
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- major cleanup
- add command line arguments for service
- set PPS API provider list in service entry
ports/winnt/ntpd/nt_ppsimpl.c@1.2 +290 -70
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- load PPS providers from registry
- disable PPSAPI_HACK envvar
- track use of PPS API on serial channels
ports/winnt/ntpd/ntp_iocompletionport.c@1.79 +7 -19
[Sec 3384] NTP-01-009 NTP: Privileged execution of User Library code (Pentest report 01.2017)
- disable PPSAPI_HACK envvar, use tracking from PPS API loader instead
ChangeSet@1.3720.25.6, 2017-03-04 04:41:52+00:00, Brian@bwinglisd.
ensure Windows system32 added to start of PATH
ports/winnt/scripts/mkver.bat@1.18 +4 -0
ensure Windows system32 from COMSPEC added to start of PATH in case other find commands are on PATH
ChangeSet@1.3720.1.26, 2017-03-02 17:34:00-05:00, stenn@psp-deb2.ntp.org
[Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory
include/ntp_stdlib.h@1.84 +6 -6
[Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory
libntp/authkeys.c@1.36 +1 -1
[Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory
libntp/emalloc.c@1.21 +3 -3
[Sec 3385] NTP-01-010: ereallocarray()/eallocarray() underused: zero out new memory
ChangeSet@1.3720.1.25, 2017-03-02 05:35:49+00:00, stenn@stenn.ntp.org
[Sec 3376] Support build "hardening" flags: NetBSD
sntp/harden/netbsd7.0@1.1 +4 -0
BitKeeper file sntp/harden/netbsd7.0
sntp/harden/netbsd7.0@1.0 +0 -0
sntp/harden/netbsd7.99@1.1 +4 -0
BitKeeper file sntp/harden/netbsd7.99
sntp/harden/netbsd7.99@1.0 +0 -0
ChangeSet@1.3720.1.23, 2017-03-01 09:44:54+00:00, stenn@psp-deb1.ntp.org
[Sec 3376] Support build "hardening" flags
sntp/m4/ntp_prog_cc.m4@1.3 +1 -1
[Sec 3376] Support build "hardening" flags
ChangeSet@1.3720.1.22, 2017-03-01 09:30:03+00:00, stenn@psp-deb1.ntp.org
[Sec 3376] Support build "hardening" flags
configure.ac@1.609 +5 -4
[Sec 3376] Support build "hardening" flags
sntp/configure.ac@1.85 +4 -4
[Sec 3376] Support build "hardening" flags
sntp/harden/freebsd11@1.2 +1 -1
[Sec 3376] Support build "hardening" flags
sntp/harden/freebsd12@1.2 +1 -1
[Sec 3376] Support build "hardening" flags
sntp/m4/ntp_compiler.m4@1.6 +14 -2
[Sec 3376] Support build "hardening" flags
sntp/m4/ntp_prog_cc.m4@1.2 +12 -11
[Sec 3376] Support build "hardening" flags
ChangeSet@1.3720.26.3, 2017-03-01 09:16:03+00:00, stenn@psp-deb1.ntp.org
merge cleanup
ChangeLog@1.1869.1.3 +1 -3
merge cleanup
ChangeSet@1.3720.28.1, 2017-02-28 06:46:17-05:00, stenn@psp-fb4.ntp.org
[Sec 3361] 0rigin (zero origin) DoS.
ChangeLog@1.1869.3.1 +1 -0
[Sec 3361] 0rigin (zero origin) DoS.
ntpd/ntp_proto.c@1.400 +4 -0
[Sec 3361] 0rigin (zero origin) DoS.
ChangeSet@1.3720.27.1, 2017-02-28 06:13:45-05:00, stenn@psp-fb4.ntp.org
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
ChangeLog@1.1869.2.1 +1 -0
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
include/ntp_stdlib.h@1.83 +7 -5
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
libntp/authkeys.c@1.35 +1 -1
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
libntp/emalloc.c@1.20 +5 -4
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
libntp/recvbuff.c@1.42 +1 -1
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
ntpd/ntp_loopfilter.c@1.190 +1 -2
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
ntpd/ntp_peer.c@1.162 +1 -1
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
ntpd/ntp_restrict.c@1.41 +2 -2
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
sntp/kod_management.c@1.34 +3 -1
[Sec 3385] NTP-01-010 NTP: ereallocarray()/eallocarray() underused. HStenn
ChangeSet@1.3720.26.1, 2017-02-26 08:20:56+00:00, perlinger@ntp.org
[Sec 3393] clang scan-build findings
ChangeLog@1.1869.1.1 +3 -0
[Sec 3393] clang scan-build findings
libntp/ntp_intres.c@1.102 +1 -1
[Sec 3393] clang scan-build findings
- test proper source pointer, not memcpy result
ntpd/ntp_config.c@1.344 +28 -46
[Sec 3393] clang scan-build findings
- provide non-returning error function, triggered only by programming error (mismatch between
parser and evaluator)
- fix assignment to wrong variable in tos stratum check
ntpd/ntp_control.c@1.218 +1 -1
[Sec 3393] clang scan-build findings
- minor signed/unsigned clash
ntpd/ntp_scanner.c@1.50 +0 -1
[Sec 3393] clang scan-build findings
- dead assignment
ntpd/refclock_gpsdjson.c@1.26 +8 -6
[Sec 3393] clang scan-build findings
- never feed NULL to memcpy(), even with zero-length
ntpd/refclock_jjy.c@1.34 +2 -2
[Sec 3393] clang scan-build findings
- use memcpy() instead or strncpy() when the number of bytes is known
ntpd/refclock_nmea.c@1.79 +0 -3
[Sec 3393] clang scan-build findings
- dead initialisations: always overwritten
ntpd/refclock_oncore.c@1.102.1.1 +3 -3
[Sec 3393] clang scan-build findings
- dead initialisations and assignments: always overwritten
ntpd/refclock_parse.c@1.85 +12 -8
[Sec 3393] clang scan-build findings
- dead initialisations and assignments: always overwritten
- buggy use of snprintf result
ntpdate/ntpdate.c@1.99 +2 -0
[Sec 3393] clang scan-build findings
- INSIST() on sys_samples in range
ntpdc/ntpdc.c@1.108 +1 -1
[Sec 3393] clang scan-build findings
- make sure result of recv() is used
ntpq/ntpq.c@1.174.1.1 +42 -26
[Sec 3393] clang scan-build findings
- make sure result of recv() is used
- initialise tables
- rework hexdump utility function
ChangeSet@1.3720.25.5, 2017-02-24 21:36:43-07:00, bwi@bwinglisrpi1.(none)
add missing change comment in mkver.bat
ports/winnt/scripts/mkver.bat@1.17 +5 -1
add missing change comment in mkver.bat
ChangeSet@1.3720.25.4, 2017-02-24 19:33:50+00:00, Brian@bwinglisd.
allow EVP_MD_do_all_sorted to be used on Windows with OpenSSL 1+
ntpq/ntpq.c@1.178 +6 -0
define HAVE_EVP_MD_DO_ALL_SORTED on Windows with OpenSSL 1+
ChangeSet@1.3720.1.21, 2017-02-24 06:26:16-05:00, stenn@psp-deb2.ntp.org
[Sec 3376] Support build "hardening" flags.
ChangeLog@1.1870 +1 -0
[Sec 3376] Support build "hardening" flags.
adjtimed/Makefile.am@1.16 +4 -1
[Sec 3376] Support build "hardening" flags.
clockstuff/Makefile.am@1.22 +3 -0
[Sec 3376] Support build "hardening" flags.
configure.ac@1.608 +2 -0
[Sec 3376] Support build "hardening" flags.
libntp/Makefile.am@1.81 +4 -0
[Sec 3376] Support build "hardening" flags.
libparse/Makefile.am@1.32 +4 -0
[Sec 3376] Support build "hardening" flags.
ntpd/Makefile.am@1.135 +3 -0
[Sec 3376] Support build "hardening" flags.
ntpd/ntp.conf.html@1.189 +1541 -1192
[Sec 3376] Support build "hardening" flags.
ntpd/ntp.keys.html@1.190 +162 -115
[Sec 3376] Support build "hardening" flags.
ntpd/ntpd.html@1.183 +753 -678
[Sec 3376] Support build "hardening" flags.
ntpdate/Makefile.am@1.38 +3 -0
[Sec 3376] Support build "hardening" flags.
ntpdc/Makefile.am@1.76 +3 -0
[Sec 3376] Support build "hardening" flags.
ntpdc/ntpdc.html@1.352 +404 -355
[Sec 3376] Support build "hardening" flags.
ntpq/Makefile.am@1.72 +4 -1
[Sec 3376] Support build "hardening" flags.
ntpq/ntpq.html@1.180 +1439 -1284
[Sec 3376] Support build "hardening" flags.
ntpsnmpd/Makefile.am@1.41 +5 -2
[Sec 3376] Support build "hardening" flags.
ntpsnmpd/ntpsnmpd.html@1.178 +92 -59
[Sec 3376] Support build "hardening" flags.
parseutil/Makefile.am@1.18 +5 -1
[Sec 3376] Support build "hardening" flags.
scripts/ntp-wait/ntp-wait.html@1.348 +182 -152
[Sec 3376] Support build "hardening" flags.
scripts/ntpsweep/ntpsweep.html@1.120 +189 -152
[Sec 3376] Support build "hardening" flags.
scripts/ntptrace/ntptrace.html@1.121 +168 -128
[Sec 3376] Support build "hardening" flags.
scripts/plot_summary.html@1.123 +188 -160
[Sec 3376] Support build "hardening" flags.
scripts/summary.html@1.122 +171 -135
[Sec 3376] Support build "hardening" flags.
scripts/update-leap/update-leap.html@1.19 +247 -199
[Sec 3376] Support build "hardening" flags.
sntp/Makefile.am@1.91 +6 -2
[Sec 3376] Support build "hardening" flags.
sntp/configure.ac@1.84 +2 -0
[Sec 3376] Support build "hardening" flags.
sntp/harden/README@1.1 +11 -0
BitKeeper file sntp/harden/README
sntp/harden/README@1.0 +0 -0
sntp/harden/default@1.1 +4 -0
BitKeeper file sntp/harden/default
sntp/harden/default@1.0 +0 -0
sntp/harden/freebsd10@1.1 +4 -0
BitKeeper file sntp/harden/freebsd10
sntp/harden/freebsd10@1.0 +0 -0
sntp/harden/freebsd11@1.1 +4 -0
BitKeeper file sntp/harden/freebsd11
sntp/harden/freebsd11@1.0 +0 -0
sntp/harden/freebsd12@1.1 +4 -0
BitKeeper file sntp/harden/freebsd12
sntp/harden/freebsd12@1.0 +0 -0
sntp/harden/linux@1.1 +4 -0
BitKeeper file sntp/harden/linux
sntp/harden/linux@1.0 +0 -0
sntp/libevent/Makefile.am@1.15 +5 -3
[Sec 3376] Support build "hardening" flags.
sntp/libevent/configure.ac@1.18 +4 -0
[Sec 3376] Support build "hardening" flags.
sntp/libopts/Makefile.am@1.28 +4 -0
[Sec 3376] Support build "hardening" flags.
sntp/m4/ntp_harden.m4@1.1 +52 -0
BitKeeper file sntp/m4/ntp_harden.m4
sntp/m4/ntp_harden.m4@1.0 +0 -0
sntp/m4/ntp_libevent.m4@1.17 +3 -0
[Sec 3376] Support build "hardening" flags.
sntp/scripts/Makefile.am@1.4 +1 -0
[Sec 3376] Support build "hardening" flags.
sntp/scripts/genHardFlags@1.1 +152 -0
BitKeeper file sntp/scripts/genHardFlags
sntp/scripts/genHardFlags@1.0 +0 -0
sntp/sntp.html@1.523 +468 -420
[Sec 3376] Support build "hardening" flags.
sntp/tests/Makefile.am@1.68 +4 -1
[Sec 3376] Support build "hardening" flags.
sntp/unity/Makefile.am@1.11 +5 -0
[Sec 3376] Support build "hardening" flags.
tests/bug-2803/Makefile.am@1.14 +4 -1
[Sec 3376] Support build "hardening" flags.
tests/libntp/Makefile.am@1.95 +5 -2
[Sec 3376] Support build "hardening" flags.
tests/ntpd/Makefile.am@1.30 +4 -1
[Sec 3376] Support build "hardening" flags.
tests/ntpq/Makefile.am@1.10 +4 -1
[Sec 3376] Support build "hardening" flags.
tests/sandbox/Makefile.am@1.8 +4 -1
[Sec 3376] Support build "hardening" flags.
tests/sec-2853/Makefile.am@1.4 +4 -1
[Sec 3376] Support build "hardening" flags.
util/Makefile.am@1.79 +5 -2
[Sec 3376] Support build "hardening" flags.
util/ntp-keygen.html@1.184 +1083 -1007
[Sec 3376] Support build "hardening" flags.
ChangeSet@1.3720.25.3, 2017-02-23 05:53:09+00:00, Brian@bwinglisd.
increase struct key member type size from 10 to 16 to allow AES128CMAC and future longer types up to 15 chars, refactor ntpq digest list CMAC insertion into function, fix packetProcessing tests, add debug output to check CMAC working
libntp/ssl_init.c@1.25 +15 -0
add debug output to validate CMAC being handled
ntpq/ntpq.c@1.177 +158 -98
include stddef.h for prtdiff_t, refactor CMAC insertion into MD list into insert_cmac() called from list_digest_names(), use EVP_MD_size() instead of EVP_Digest..() calls in list_md_fn(), remove associated variables, move check earlier in function, minor style and line length cleanups
sntp/crypto.c@1.28 +9 -1
increase max key type length to 15 to reflect struct key type size 16, add debug output to check CMAC operation
sntp/crypto.h@1.12 +1 -1
increase struct key member type size from 10 to 16 to allow AES128CMAC and future longer types
this should be considered for future length checking when handling digest names
sntp/tests/packetProcessing.c@1.14 +5 -4
fix PrepareAuthenticationTest() to use args and not hard wire MD5, increase CMAC key to mandatory length 16, fix exten to match key id
ChangeSet@1.3720.25.2, 2017-02-21 04:21:19+00:00, Brian@bwinglisd.
fix typos caught by gcc not encountered with Windows build
include/ntp_md5.h@1.13 +0 -1
remove cmac include
libntp/ssl_init.c@1.24 +11 -13
indent nested include/define, drop unused array digest, make const md var and initialize
ntpq/ntpq.c@1.176 +19 -9
move SORTED K_... defines outside MAIN and LIB ifdef, fix var typos and char arg caught by gcc missed by VS/VC
ports/winnt/scripts/mkver.bat@1.16 +1 -1
restore initial echo off
sntp/crypto.c@1.27 +18 -4
add CMAC include and define name removed elsewhere, make_mac() fix assign instead of compare typo, ensure len 0 if error, check for NULL CTX even for internal MD5
ChangeSet@1.3720.25.1, 2017-02-20 05:21:29+00:00, Brian@bwinglisd.
add AES-128 CMAC digest support as key type AES128CMAC length *MUST BE* 16 bytes
html/authentic.html@1.16 +32 -6
mention AES-128 CMAC, provide text figure of key file with key 20 AES128CMAC as table with caption instead of fuzzy gif
html/keygen.html@1.35 +63 -37
mention AES-128 cmac, change random <dd>...</dd> to <p>...</p>, change keys file figure from fuzzy gif to text with key 20 AES128CMAC, remove dated timing and references from Bugs comment
html/ntpq.html@1.51 +1 -1
add AES128CMAC to list of digest algorithms
include/ntp_md5.h@1.12 +1 -0
include OpenSSL cmac.h for callers
libntp/ssl_init.c@1.23 +55 -20
include OpenSSL cmac.h, define MD5_LENGTH, CMAC_LENGTH, and CMAC name, recognise CMAC name and set NID_cmac
ntpq/ntpq.c@1.175 +61 -3
define CMAC name, move sorted digest list defines up, add variables and code to detect or append CMAC name, as CMAC is not a registered MAC
ports/winnt/scripts/mkver.bat@1.15 +3 -1
add support for Windows 10 (Home maybe others) rename of registry Time Zone info from ActiveTimeBias to Bias
sntp/crypto.c@1.26 +74 -8
support AES-128 CMAC digest, add similar error checking to OpenSSL MAC digests, leave local MD5 digest as is
sntp/tests/crypto.c@1.11 +67 -0
define CMAC name and length, add CMAC tests like SHA1 tests
sntp/tests/packetProcessing.c@1.13 +26 -0
add CMAC name and test like SHA1 test
tests/libntp/ssl_init.c@1.10 +31 -0
add CMAC name, length, tests like SHA1 tests
util/ntp-keygen-opts.def@1.28 +4 -8
mention AES-128 CMAC, fix garbled sentence, remove outdated timing and references from Bugs
ChangeSet@1.3720.24.1, 2017-02-12 18:15:23+01:00, perlinger@ntp.org
[Sec 3380] NTP-01-005: Off-by-one in Oncore GPS Receiver
ChangeLog@1.1853.10.1 +4 -0
[Sec 3380] NTP-01-005: Off-by-one in Oncore GPS Receiver
ntpd/refclock_oncore.c@1.103 +1 -1
[Sec 3380] NTP-01-005: Off-by-one in Oncore GPS Receiver
ChangeSet@1.3720.23.1, 2017-02-12 17:35:27+01:00, perlinger@ntp.org
[Sec 3382] NTP-01-007: Data Structure terminated insufficiently
[Sec 3383] NTP-01-008: Stack Buffer Overflow from Command Line
ChangeLog@1.1853.9.1 +6 -0
[Sec 3382] NTP-01-007: Data Structure terminated insufficiently
[Sec 3383] NTP-01-008: Stack Buffer Overflow from Command Line
ports/winnt/instsrv/instsrv.c@1.8 +52 -55
[Sec 3382] NTP-01-007: Data Structure terminated insufficiently
- use static const char ARRAY of defined length to hold MULTISZ value
[Sec 3383] NTP-01-008: Stack Buffer Overflow from Command Line
- use result-checked 'snprintf()' do concat the strings in a buffer of static size
ChangeSet@1.3720.22.1, 2017-02-12 13:46:35+01:00, perlinger@ntp.org
[Sec 3388] NTP-01-014: Buffer Overflow in DPTS Clock
ChangeLog@1.1853.8.1 +4 -0
[Sec 3388] NTP-01-014: Buffer Overflow in DPTS Clock
ntpd/refclock_datum.c@1.23 +10 -9
[Sec 3388] NTP-01-014: Buffer Overflow in DPTS Clock
ChangeSet@1.3720.21.1, 2017-02-12 12:35:04+01:00, perlinger@ntp.org
[Sec 3386] NTP-01-011: ntpq_stripquotes() returns incorrect Value
ChangeLog@1.1853.7.1 +4 -0
[Sec 3386] NTP-01-011: ntpq_stripquotes() returns incorrect Value
ntpq/libntpq.c@1.14 +35 -32
[Sec 3386] NTP-01-011: ntpq_stripquotes() returns incorrect Value
ChangeSet@1.3720.20.1, 2017-02-12 11:08:16+01:00, perlinger@ntp.org
[Sec 3387] NTP-01-012: Authenticated DoS via Malicious Config Option
ChangeLog@1.1853.6.1 +4 -0
[Sec 3387] NTP-01-012: Authenticated DoS via Malicious Config Option
ntpd/ntp_config.c@1.340.3.1 +12 -15
[Sec 3387] NTP-01-012: Authenticated DoS via Malicious Config Option
ChangeSet@1.3720.19.1, 2017-02-12 09:49:29+01:00, perlinger@ntp.org
[Sec 3389] NTP-01-016: Denial of Service via Malformed Config
ChangeLog@1.1853.5.1 +4 -0
[Sec 3389] NTP-01-016: Denial of Service via Malformed Config
ntpd/ntp_config.c@1.340.2.1 +23 -2
[Sec 3389] NTP-01-016: Denial of Service via Malformed Config
- allow 'ttl' only for network peers and 'mode' only for refclocks
ntpd/ntp_proto.c@1.398.1.1 +11 -9
[Sec 3389] NTP-01-016: Denial of Service via Malformed Config
clamp access to 'sys_ttl' to avoid OOB conditions / undefined behaviour
ChangeSet@1.3720.18.1, 2017-02-12 08:03:30+01:00, perlinger@ntp.org
[Sec 3379] NTP-01-004 Potential Overflows in ctl_put() functions
ChangeLog@1.1853.4.1 +4 -0
[Sec 3379] NTP-01-004 Potential Overflows in ctl_put() functions
ntpd/ntp_control.c@1.215.1.1 +99 -174
[Sec 3379] NTP-01-004 Potential Overflows in ctl_put() functions
ChangeSet@1.3720.17.1, 2017-02-11 20:47:37+01:00, perlinger@ntp.org
[Sec 3378] NTP-01-003 Improper use of snprintf() in mx4200_send()
ChangeLog@1.1853.3.1 +4 -0
[Sec 3378] NTP-01-003 Improper use of snprintf() in mx4200_send()
ntpd/refclock_mx4200.c@1.31 +20 -12
[Sec 3378] NTP-01-003 Improper use of snprintf() in mx4200_send()
ChangeSet@1.3720.16.10, 2017-02-11 19:30:47+01:00, perlinger@ntp.org
[Sec 3377] NTP-01-002 Buffer Overflow in ntpq when fetching reslist
ChangeLog@1.1853.2.6 +4 -0
[Sec 3377] NTP-01-002 Buffer Overflow in ntpq when fetching reslist
ntpq/ntpq-subs.c@1.119 +4 -2
[Sec 3377] NTP-01-002 Buffer Overflow in ntpq when fetching reslist
ChangeSet@1.3720.16.9, 2017-02-01 08:07:13-05:00, stenn@deacon.udel.edu
cleanup
ChangeLog@1.1853.2.5 +0 -2
cleanup
ChangeSet@1.3720.16.8, 2017-02-01 08:05:36-05:00, stenn@deacon.udel.edu
Update triggers for bk-7
BitKeeper/triggers/post-incoming.license-warn@1.10 +3 -0
Update triggers for bk-7
BitKeeper/triggers/pre-resolve.license-chk@1.11 +3 -0
Update triggers for bk-7
BitKeeper/triggers/send@1.17 +2 -2
Update triggers for bk-7
ChangeSet@1.3720.16.7, 2017-02-01 07:39:35-05:00, stenn@deacon.udel.edu
NTP_4_2_8P9_WIN
TAG: NTP_4_2_8P9_WIN
ChangeLog@1.1853.2.4 +3 -0
NTP_4_2_8P9_WIN
ntpd/invoke-ntp.conf.texi@1.203.1.1 +1 -1
NTP_4_2_8P9_WIN
ntpd/invoke-ntp.keys.texi@1.192.1.1 +1 -1
NTP_4_2_8P9_WIN
ntpd/invoke-ntpd.texi@1.508.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.conf.5man@1.237.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpd/ntp.conf.5mdoc@1.237.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.conf.html@1.188 +1 -1
NTP_4_2_8P9_WIN
ntpd/ntp.conf.man.in@1.237.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpd/ntp.conf.mdoc.in@1.237.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.keys.5man@1.226.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.keys.5mdoc@1.226.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.keys.html@1.189 +1 -1
NTP_4_2_8P9_WIN
ntpd/ntp.keys.man.in@1.226.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntp.keys.mdoc.in@1.226.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntpd-opts.c@1.530.1.1 +245 -245
NTP_4_2_8P9_WIN
ntpd/ntpd-opts.h@1.529.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpd/ntpd.1ntpdman@1.337.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpd/ntpd.1ntpdmdoc@1.337.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntpd.html@1.182 +2 -2
NTP_4_2_8P9_WIN
ntpd/ntpd.man.in@1.337.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpd/ntpd.mdoc.in@1.337.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpdc/invoke-ntpdc.texi@1.505.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpdc/ntpdc-opts.c@1.523.1.1 +107 -107
NTP_4_2_8P9_WIN
ntpdc/ntpdc-opts.h@1.522.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpdc/ntpdc.1ntpdcman@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpdc/ntpdc.1ntpdcmdoc@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpdc/ntpdc.html@1.349.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpdc/ntpdc.man.in@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpdc/ntpdc.mdoc.in@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpq/invoke-ntpq.texi@1.513.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpq/ntpq-opts.c@1.530.1.1 +114 -114
NTP_4_2_8P9_WIN
ntpq/ntpq-opts.h@1.528.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpq/ntpq.1ntpqman@1.341.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpq/ntpq.1ntpqmdoc@1.341.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpq/ntpq.html@1.179 +2 -2
NTP_4_2_8P9_WIN
ntpq/ntpq.man.in@1.341.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpq/ntpq.mdoc.in@1.341.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpsnmpd/invoke-ntpsnmpd.texi@1.507.1.1 +11 -10
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd-opts.c@1.525.1.1 +68 -68
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd-opts.h@1.524.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd.html@1.177 +1 -1
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd.man.in@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
ntpsnmpd/ntpsnmpd.mdoc.in@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
packageinfo.sh@1.534 +1 -1
NTP_4_2_8P9_WIN
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.97.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.98.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/calc_tickadj/calc_tickadj.html@1.99.1.1 +1 -1
NTP_4_2_8P9_WIN
scripts/calc_tickadj/calc_tickadj.man.in@1.96.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.98.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.101.1.1 +1 -1
NTP_4_2_8P9_WIN
scripts/invoke-plot_summary.texi@1.119.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/invoke-summary.texi@1.118.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntp-wait/invoke-ntp-wait.texi@1.328.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait-opts@1.64.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.325.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.326.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait.html@1.345.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait.man.in@1.325.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntp-wait/ntp-wait.mdoc.in@1.326.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntpsweep/invoke-ntpsweep.texi@1.116.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep-opts@1.66.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.104.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.104.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep.html@1.117.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep.man.in@1.104.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntpsweep/ntpsweep.mdoc.in@1.105.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntptrace/invoke-ntptrace.texi@1.117.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace-opts@1.66.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace.1ntptraceman@1.104.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace.1ntptracemdoc@1.105.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace.html@1.118.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace.man.in@1.104.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/ntptrace/ntptrace.mdoc.in@1.106.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/plot_summary-opts@1.67.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/plot_summary.1plot_summaryman@1.117.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/plot_summary.1plot_summarymdoc@1.117.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/plot_summary.html@1.120.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/plot_summary.man.in@1.117.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/plot_summary.mdoc.in@1.117.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/summary-opts@1.66.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/summary.1summaryman@1.116.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/summary.1summarymdoc@1.116.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/summary.html@1.119.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/summary.man.in@1.116.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/summary.mdoc.in@1.116.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/update-leap/invoke-update-leap.texi@1.17.1.1 +1 -1
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap-opts@1.17.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap.1update-leapman@1.17.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap.1update-leapmdoc@1.17.1.1 +2 -2
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap.html@1.18 +1 -1
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap.man.in@1.17.1.1 +3 -3
NTP_4_2_8P9_WIN
scripts/update-leap/update-leap.mdoc.in@1.17.1.1 +2 -2
NTP_4_2_8P9_WIN
sntp/invoke-sntp.texi@1.505.1.1 +2 -2
NTP_4_2_8P9_WIN
sntp/sntp-opts.c@1.524.1.1 +159 -159
NTP_4_2_8P9_WIN
sntp/sntp-opts.h@1.522.1.1 +3 -3
NTP_4_2_8P9_WIN
sntp/sntp.1sntpman@1.340.1.1 +3 -3
NTP_4_2_8P9_WIN
sntp/sntp.1sntpmdoc@1.340.1.1 +2 -2
NTP_4_2_8P9_WIN
sntp/sntp.html@1.520.1.1 +2 -2
NTP_4_2_8P9_WIN
sntp/sntp.man.in@1.340.1.1 +3 -3
NTP_4_2_8P9_WIN
sntp/sntp.mdoc.in@1.340.1.1 +2 -2
NTP_4_2_8P9_WIN
util/invoke-ntp-keygen.texi@1.508.1.1 +2 -2
NTP_4_2_8P9_WIN
util/ntp-keygen-opts.c@1.526.1.1 +173 -173
NTP_4_2_8P9_WIN
util/ntp-keygen-opts.h@1.524.1.1 +3 -3
NTP_4_2_8P9_WIN
util/ntp-keygen.1ntp-keygenman@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
util/ntp-keygen.1ntp-keygenmdoc@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
util/ntp-keygen.html@1.183 +2 -2
NTP_4_2_8P9_WIN
util/ntp-keygen.man.in@1.336.1.1 +3 -3
NTP_4_2_8P9_WIN
util/ntp-keygen.mdoc.in@1.336.1.1 +2 -2
NTP_4_2_8P9_WIN
ChangeSet@1.3720.16.6, 2017-01-28 09:32:36-05:00, stenn@pogo.udel.edu
typos
sntp/m4/ntp_openssl.m4@1.25.1.1 +13 -13
typos
ChangeSet@1.3720.16.4, 2017-01-27 11:21:38+00:00, stenn@psp-deb1.ntp.org
ntp-4.2.8p9-win
ChangeLog@1.1853.2.2 +4 -1
ntp-4.2.8p9-win
packageinfo.sh@1.533 +1 -1
ntp-4.2.8p9-win
ChangeSet@1.3720.16.3, 2017-01-27 11:09:20+00:00, stenn@psp-deb1.ntp.org
bk-7 repos don't have a ChangeSet file
sntp/Makefile.am@1.88.1.1 +1 -1
bk-7 repos don't have a ChangeSet file
ChangeSet@1.3720.16.2, 2017-01-21 15:12:35+01:00, perlinger@ntp.org
[Bug 3144] NTP does not build without openSSL <perlinger@ntp.org>
- pulled missing changeset, minor warning fixes
ChangeLog@1.1853.2.1 +2 -1
[Bug 3144] NTP does not build without openSSL <perlinger@ntp.org>
- pulled missing changeset, minor warning fixes
include/ssl_applink.c@1.3 +9 -1
[Bug 3144] NTP does not build without openSSL <perlinger@ntp.org>
- minor warning fixes
ports/winnt/ntpd/ntservice.c@1.31 +1 -0
[Bug 3144] NTP does not build without openSSL <perlinger@ntp.org>
- pulled missing changeset, minor warning fixes
ChangeSet@1.3720.1.18, 2017-01-10 11:14:17+00:00, stenn@psp-deb1.ntp.org
s/DNL/dnl/ in ntp_openssl.m4
sntp/m4/ntp_openssl.m4@1.26 +13 -13
s/DNL/dnl/ in ntp_openssl.m4
ChangeSet@1.3720.15.2, 2017-01-10 06:07:05-05:00, stenn@pogo.udel.edu
configure.ac cleanup
ChangeLog@1.1852.13.1 +5 -0
configure.ac cleanup
configure.ac@1.607 +1 -1
configure.ac cleanup
ChangeSet@1.3720.15.1, 2017-01-10 06:05:44-05:00, stenn@pogo.udel.edu
openssl configure cleanup
sntp/m4/ntp_libntp.m4@1.34 +1 -3
openssl configure cleanup
sntp/m4/ntp_openssl.m4@1.25 +19 -1
openssl configure cleanup
ChangeSet@1.3720.1.14, 2017-01-08 11:33:47+00:00, stenn@psp-deb1.ntp.org
typo
ChangeLog@1.1864 +1 -1
typo
ChangeSet@1.3720.14.1, 2017-01-08 11:16:33+01:00, perlinger@ntp.org
[Bug 3062] Change the process name of forked DNS worker
- applied patch by Reinhard Max. See bugzilla for limitations.
ChangeLog@1.1852.12.1 +4 -1
[Bug 3062] Change the process name of forked DNS worker
- applied patch by Reinhard Max.
include/ntpd.h@1.194.1.1 +2 -0
[Bug 3062] Change the process name of forked DNS worker
- applied patch by Reinhard Max.
libntp/work_fork.c@1.17.1.1 +18 -0
[Bug 3062] Change the process name of forked DNS worker
- applied patch by Reinhard Max.
ntpd/ntpd.c@1.172 +2 -0
[Bug 3062] Change the process name of forked DNS worker
- applied patch by Reinhard Max.
ChangeSet@1.3720.1.7, 2017-01-08 09:30:07+00:00, stenn@psp-deb1.ntp.org
[Bug 2896] logging message cleanup
ntpd/ntp_config.c@1.343 +2 -2
[Bug 2896] logging message cleanup
ChangeSet@1.3720.12.1, 2017-01-07 04:30:19+00:00, abe@psp-deb1.ntp.org
miscopt.html, driver40.html, driver40-ja.html, ChangeLog:
[Bug 3365] Updates driver40(-ja).html and miscopt.html
ChangeLog@1.1852.11.1 +2 -0
[Bug 3365] Updates driver40(-ja).html and miscopt.html
html/drivers/driver40-ja.html@1.6 +2 -1
[Bug 3365] Updates driver40(-ja).html and miscopt.html
html/drivers/driver40.html@1.21 +2 -1
[Bug 3365] Updates driver40(-ja).html and miscopt.html
html/miscopt.html@1.88 +4 -1
[Bug 3365] Updates driver40(-ja).html and miscopt.html
ChangeSet@1.3720.1.3, 2017-01-06 23:24:33+01:00, jnperlin@hydra.localnet
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
ChangeLog@1.1854 +2 -0
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
include/libssl_compat.h@1.3 +19 -0
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
include/ntp_crypto.h@1.52 +1 -0
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
libntp/ssl_init.c@1.22 +33 -20
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
ntpd/ntp_crypto.c@1.189 +12 -7
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
sntp/libevent/test/regress_ssl.c@1.8 +18 -4
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
util/ntp-keygen.c@1.110 +17 -5
[Bug 3363] Support for openssl-1.1.0 without compatibility modes
ChangeSet@1.3720.11.1, 2017-01-04 10:46:52+01:00, jnperlin@hydra.localnet
[Bug 2923] Trap Configuration Fail
ChangeLog@1.1852.10.1 +4 -1
[Bug 2923] Trap Configuration Fail
ntpd/ntp_config.c@1.340.1.1 +2 -2
[Bug 2923] Trap Configuration Fail
ChangeSet@1.3720.10.2, 2017-01-02 12:09:21+00:00, stenn@psp-deb1.ntp.org
Update copyright year
ChangeLog@1.1852.9.2 +3 -0
Update copyright year
html/copyright.html@1.68 +5 -5
Update copyright year
ntpd/invoke-ntp.conf.texi@1.204 +1 -1
Update copyright year
ntpd/invoke-ntp.keys.texi@1.193 +1 -1
Update copyright year
ntpd/invoke-ntpd.texi@1.509 +1 -1
Update copyright year
ntpd/ntp.conf.5man@1.238 +4 -4
Update copyright year
ntpd/ntp.conf.5mdoc@1.238 +3 -3
Update copyright year
ntpd/ntp.conf.man.in@1.238 +4 -4
Update copyright year
ntpd/ntp.conf.mdoc.in@1.238 +3 -3
Update copyright year
ntpd/ntp.keys.5man@1.227 +3 -3
Update copyright year
ntpd/ntp.keys.5mdoc@1.227 +4 -4
Update copyright year
ntpd/ntp.keys.man.in@1.227 +3 -3
Update copyright year
ntpd/ntp.keys.mdoc.in@1.227 +4 -4
Update copyright year
ntpd/ntpd-opts.c@1.531 +4 -4
Update copyright year
ntpd/ntpd-opts.h@1.530 +2 -2
Update copyright year
ntpd/ntpd.1ntpdman@1.338 +4 -4
Update copyright year
ntpd/ntpd.1ntpdmdoc@1.338 +3 -3
Update copyright year
ntpd/ntpd.man.in@1.338 +4 -4
Update copyright year
ntpd/ntpd.mdoc.in@1.338 +3 -3
Update copyright year
ntpdc/invoke-ntpdc.texi@1.506 +1 -1
Update copyright year
ntpdc/ntpdc-opts.c@1.524 +4 -4
Update copyright year
ntpdc/ntpdc-opts.h@1.523 +2 -2
Update copyright year
ntpdc/ntpdc.1ntpdcman@1.337 +4 -4
Update copyright year
ntpdc/ntpdc.1ntpdcmdoc@1.337 +3 -3
Update copyright year
ntpdc/ntpdc.html@1.350 +75 -55
Update copyright year
ntpdc/ntpdc.man.in@1.337 +4 -4
Update copyright year
ntpdc/ntpdc.mdoc.in@1.337 +3 -3
Update copyright year
ntpq/invoke-ntpq.texi@1.514 +1 -1
Update copyright year
ntpq/ntpq-opts.c@1.531 +4 -4
Update copyright year
ntpq/ntpq-opts.h@1.529 +2 -2
Update copyright year
ntpq/ntpq.1ntpqman@1.342 +4 -4
Update copyright year
ntpq/ntpq.1ntpqmdoc@1.342 +3 -3
Update copyright year
ntpq/ntpq.man.in@1.342 +4 -4
Update copyright year
ntpq/ntpq.mdoc.in@1.342 +3 -3
Update copyright year
ntpsnmpd/invoke-ntpsnmpd.texi@1.508 +1 -1
Update copyright year
ntpsnmpd/ntpsnmpd-opts.c@1.526 +4 -4
Update copyright year
ntpsnmpd/ntpsnmpd-opts.h@1.525 +2 -2
Update copyright year
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.337 +4 -4
Update copyright year
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.337 +3 -3
Update copyright year
ntpsnmpd/ntpsnmpd.man.in@1.337 +4 -4
Update copyright year
ntpsnmpd/ntpsnmpd.mdoc.in@1.337 +3 -3
Update copyright year
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.98 +3 -3
Update copyright year
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.99 +2 -2
Update copyright year
scripts/calc_tickadj/calc_tickadj.html@1.100 +33 -21
Update copyright year
scripts/calc_tickadj/calc_tickadj.man.in@1.97 +3 -3
Update copyright year
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.99 +2 -2
Update copyright year
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.102 +1 -1
Update copyright year
scripts/invoke-plot_summary.texi@1.120 +1 -1
Update copyright year
scripts/invoke-summary.texi@1.119 +1 -1
Update copyright year
scripts/ntp-wait/invoke-ntp-wait.texi@1.329 +1 -1
Update copyright year
scripts/ntp-wait/ntp-wait-opts@1.65 +1 -1
Update copyright year
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.326 +3 -3
Update copyright year
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.327 +2 -2
Update copyright year
scripts/ntp-wait/ntp-wait.html@1.346 +47 -29
Update copyright year
scripts/ntp-wait/ntp-wait.man.in@1.326 +3 -3
Update copyright year
scripts/ntp-wait/ntp-wait.mdoc.in@1.327 +2 -2
Update copyright year
scripts/ntpsweep/invoke-ntpsweep.texi@1.117 +1 -1
Update copyright year
scripts/ntpsweep/ntpsweep-opts@1.67 +1 -1
Update copyright year
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.105 +3 -3
Update copyright year
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.105 +2 -2
Update copyright year
scripts/ntpsweep/ntpsweep.html@1.118 +42 -31
Update copyright year
scripts/ntpsweep/ntpsweep.man.in@1.105 +3 -3
Update copyright year
scripts/ntpsweep/ntpsweep.mdoc.in@1.106 +2 -2
Update copyright year
scripts/ntptrace/invoke-ntptrace.texi@1.118 +1 -1
Update copyright year
scripts/ntptrace/ntptrace-opts@1.67 +1 -1
Update copyright year
scripts/ntptrace/ntptrace.1ntptraceman@1.105 +3 -3
Update copyright year
scripts/ntptrace/ntptrace.1ntptracemdoc@1.106 +2 -2
Update copyright year
scripts/ntptrace/ntptrace.html@1.119 +34 -25
Update copyright year
scripts/ntptrace/ntptrace.man.in@1.105 +3 -3
Update copyright year
scripts/ntptrace/ntptrace.mdoc.in@1.107 +2 -2
Update copyright year
scripts/plot_summary-opts@1.68 +1 -1
Update copyright year
scripts/plot_summary.1plot_summaryman@1.118 +3 -3
Update copyright year
scripts/plot_summary.1plot_summarymdoc@1.118 +2 -2
Update copyright year
scripts/plot_summary.html@1.121 +45 -27
Update copyright year
scripts/plot_summary.man.in@1.118 +3 -3
Update copyright year
scripts/plot_summary.mdoc.in@1.118 +2 -2
Update copyright year
scripts/summary-opts@1.67 +1 -1
Update copyright year
scripts/summary.1summaryman@1.117 +3 -3
Update copyright year
scripts/summary.1summarymdoc@1.117 +2 -2
Update copyright year
scripts/summary.html@1.120 +37 -25
Update copyright year
scripts/summary.man.in@1.117 +3 -3
Update copyright year
scripts/summary.mdoc.in@1.117 +2 -2
Update copyright year
scripts/update-leap/invoke-update-leap.texi@1.18 +1 -1
Update copyright year
scripts/update-leap/update-leap-opts@1.18 +1 -1
Update copyright year
scripts/update-leap/update-leap.1update-leapman@1.18 +3 -3
Update copyright year
scripts/update-leap/update-leap.1update-leapmdoc@1.18 +2 -2
Update copyright year
scripts/update-leap/update-leap.man.in@1.18 +3 -3
Update copyright year
scripts/update-leap/update-leap.mdoc.in@1.18 +2 -2
Update copyright year
sntp/include/copyright.def@1.27 +1 -1
Update copyright year
sntp/invoke-sntp.texi@1.506 +1 -1
Update copyright year
sntp/sntp-opts.c@1.525 +4 -4
Update copyright year
sntp/sntp-opts.h@1.523 +2 -2
Update copyright year
sntp/sntp.1sntpman@1.341 +4 -4
Update copyright year
sntp/sntp.1sntpmdoc@1.341 +3 -3
Update copyright year
sntp/sntp.html@1.521 +107 -83
Update copyright year
sntp/sntp.man.in@1.341 +4 -4
Update copyright year
sntp/sntp.mdoc.in@1.341 +3 -3
Update copyright year
util/invoke-ntp-keygen.texi@1.509 +1 -1
Update copyright year
util/ntp-keygen-opts.c@1.527 +4 -4
Update copyright year
util/ntp-keygen-opts.h@1.525 +2 -2
Update copyright year
util/ntp-keygen.1ntp-keygenman@1.337 +4 -4
Update copyright year
util/ntp-keygen.1ntp-keygenmdoc@1.337 +3 -3
Update copyright year
util/ntp-keygen.man.in@1.337 +4 -4
Update copyright year
util/ntp-keygen.mdoc.in@1.337 +3 -3
Update copyright year
ChangeSet@1.3720.10.1, 2017-01-02 11:53:32+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1852.9.1 +0 -1
cleanup
ChangeSet@1.3720.9.1, 2016-12-30 10:39:31+01:00, jnperlin@hydra.localnet
[Bug 3356] Bugfix 3072 breaks multicastclient
ChangeLog@1.1852.8.1 +3 -0
[Bug 3356] Bugfix 3072 breaks multicastclient
ntpd/ntp_peer.c@1.161 +2 -1
[Bug 3356] Bugfix 3072 breaks multicastclient
(see bugs.ntp.org for details)
ChangeSet@1.3720.8.2, 2016-12-11 11:53:32+01:00, perlinger@ntp.org
[Bug 3065] Quiet warnings on NetBSD (take II)
ntpq/ntpq.c@1.174 +1 -1
[Bug 3065] Quiet warnings on NetBSD
- repair of repair
ChangeSet@1.3720.8.1, 2016-12-11 11:39:49+01:00, perlinger@ntp.org
[Bug 3065] Quiet warnings on NetBSD
ChangeLog@1.1852.7.1 +5 -1
[Bug 3065] Quiet warnings on NetBSD
include/ntp_fp.h@1.33 +1 -1
[Bug 3065] Quiet warnings on NetBSD
- GPS time units are unsigned -- gpstolfp should reflect this
libparse/clk_trimtsip.c@1.14 +4 -4
[Bug 3065] Quiet warnings on NetBSD
- GPS time units are unsigned
libparse/gpstolfp.c@1.13 +2 -2
[Bug 3065] Quiet warnings on NetBSD
- GPS time units are unsigned -- gpstolfp should reflect this
ntpd/refclock_jjy.c@1.33 +7 -6
[Bug 3065] Quiet warnings on NetBSD
- length counters should better be unsigned
ntpd/refclock_parse.c@1.84 +5 -5
[Bug 3065] Quiet warnings on NetBSD
- GPS time units are unsigned
ntpq/ntpq.c@1.173 +3 -3
[Bug 3065] Quiet warnings on NetBSD
ChangeSet@1.3686.26.1, 2016-12-08 08:28:15+01:00, perlinger@ntp.org
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
ChangeLog@1.1834.26.1 +5 -0
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
lib/isc/inet_pton.c@1.8 +3 -3
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
libntp/statestr.c@1.29 +4 -5
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
ntpd/ntp_control.c@1.209.7.1 +5 -5
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
ntpd/ntp_io.c@1.417.1.1 +3 -4
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
- sidekick: counters should be unsigned, if it's really just for counting
ntpdc/ntpdc_ops.c@1.82 +1 -1
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
- sidekick: flags should not be counters
sntp/crypto.c@1.21.2.1 +2 -2
[Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
sidekick: arithmetic on void pointers is a booboo.
ChangeSet@1.3720.6.1, 2016-11-29 20:36:05+01:00, perlinger@ntp.org
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- create error log, but stay responsive
ChangeLog@1.1852.5.1 +4 -0
[Bug 2896] Nothing happens if minsane < maxclock < minclock
include/ntpd.h@1.195 +1 -0
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- list 'sys_maxclock', too, for constraint checks
ntpd/ntp_config.c@1.341 +73 -15
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- check minsane/minclock/maxclock relation and drop error log on constraint violation
ntpd/ntp_parser.c@1.104 +152 -152
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- sidekick: minclock/maxclock should be int, not float!
ntpd/ntp_parser.h@1.68 +1 -1
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- sidekick: minclock/maxclock should be int, not float!
ntpd/ntp_parser.y@1.94 +4 -4
[Bug 2896] Nothing happens if minsane < maxclock < minclock
- sidekick: minclock/maxclock should be int, not float!
ChangeSet@1.3720.5.1, 2016-11-27 21:09:17+01:00, perlinger@ntp.org
[Bug 3216] libntp audio ioctl() args incorrectly cast to int on 4.4BSD-Lite derived platforms
ChangeLog@1.1852.4.1 +5 -0
[Bug 3216] libntp audio ioctl() args incorrectly cast to int on 4.4BSD-Lite derived platforms
libntp/audio.c@1.38 +25 -11
[Bug 3216] libntp audio ioctl() args incorrectly cast to int on 4.4BSD-Lite derived platforms
- provide platform-dependent typedef for IOCTL request identifier
- remove explicit, unnecessary and potentially harmful casts to 'int' for literal IOCTL requests
- make module-global variables static to keep them out of global namespace
ChangeSet@1.3720.4.1, 2016-11-27 10:18:17+01:00, perlinger@ntp.org
[Bug 3215] 'make distcheck' fails with newer BK repository format
ChangeLog@1.1852.3.1 +3 -0
[Bug 3215] 'make distcheck' fails with newer BK repository format
sntp/Makefile.am@1.89 +1 -2
[Bug 3215] 'make distcheck' fails with newer BK repository format
- use 'bk root' in receipe to test for working BK and source being a BK repo in one go
ChangeSet@1.3720.3.1, 2016-11-26 18:10:01+01:00, perlinger@ntp.org
[Bug 3139] (...) time_pps_create: Exec format error
ChangeLog@1.1852.2.1 +6 -0
[Bug 3139] (...) time_pps_create: Exec format error
ports/winnt/include/timepps.h@1.4 +14 -386
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/ntpd/nt_ppsimpl.c@1.1 +550 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
- augment pathless dlls with absolute path to NTPD
- use 'msyslog()' instead of 'printf()' for reporting trouble
ports/winnt/ntpd/nt_ppsimpl.c@1.0 +0 -0
ports/winnt/vs2005/ntpd.vcproj@1.22 +4 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.52 +4 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.10 +1 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.7 +3 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.2 +1 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.2 +3 -0
[Bug 3139] (...) time_pps_create: Exec format error
- move loader API from 'inline' to proper source
ChangeSet@1.3720.2.1, 2016-11-24 07:57:37+01:00, perlinger@ntp.org
[Bug 3173] forking async worker: interrupted pipe I/O
ChangeLog@1.1852.1.1 +4 -0
[Bug 3173] forking async worker: interrupted pipe I/O
libntp/work_fork.c@1.18 +90 -57
[Bug 3173] forking async worker: interrupted pipe I/O
ntpd/ntp_proto.c@1.397.1.1 +2 -1
[Bug 3173] forking async worker: interrupted pipe I/O
- sidekick: minor const/init cleanup
ChangeSet@1.3720.1.2, 2016-11-23 08:34:52+01:00, perlinger@ntp.org
Bug 3144 - NTP does not build without openSSL
- fix SNTP to build '--without-crypto',too
- remove some warnings that result from '--without-crypto'
ntpd/ntp_control.c@1.215 +4 -1
Bug 3144 - NTP does not build without openSSL
- remove some warnings that result from '--without-crypto'
ntpd/ntp_proto.c@1.398 +1 -1
Bug 3144 - NTP does not build without openSSL
- remove some warnings that result from '--without-crypto'
sntp/crypto.c@1.24 +1 -1
Bug 3144 - NTP does not build without openSSL
- fix SNTP to build '--without-crypto', too
ChangeSet@1.3720.1.1, 2016-11-22 22:22:46+01:00, perlinger@ntp.org
[Bug 3144] NTP does not build without openSSL
ChangeLog@1.1853 +3 -1
[Bug 3144] NTP does not build without openSSL
include/ntp_md5.h@1.11 +4 -0
[Bug 3144] NTP does not build without openSSL
- pull in "libssl_compat.h" if built with openssl
- provide compliant API otherwise
libntp/a_md5encrypt.c@1.40 +0 -1
[Bug 3144] NTP does not build without openSSL
- do not directly include "libssl_compat.h" -- comes with "ntp_md5.h"
libntp/libssl_compat.c@1.2.1.1 +10 -7
[Bug 3144] NTP does not build without openSSL
- compiles code only if openssl is indeed required
ntpd/ntp_control.c@1.214 +1 -3
[Bug 3144] NTP does not build without openSSL
- do not directly include "libssl_compat.h" -- comes with "ntp_md5.h"
- fix long-standing warning
ntpd/ntp_io.c@1.418 +9 -5
[Bug 3144] NTP does not build without openSSL
- sidekick: Fix annoying warnings for Debug Build (Win64/32 issue)
ports/winnt/ntpd/ntp_iocompletionport.c@1.78 +4 -6
[Bug 3144] NTP does not build without openSSL
- sidekick: Fix annoying warnings MSVC emits
ChangeSet@1.3688.6.1, 2016-11-22 03:21:05-08:00, harlan@fb-x86-a.pfcs.com
NEWS:
NEWS
NEWS@1.178, harlan@max.pfcs.com +2 -0
NEWS
ChangeSet@1.3720, 2016-11-21 08:08:21-05:00, stenn@deacon.udel.edu
NTP_4_2_8P9
TAG: NTP_4_2_8P9
ChangeLog@1.1852 +1 -0
NTP_4_2_8P9
ntpd/invoke-ntp.conf.texi@1.203 +1 -1
NTP_4_2_8P9
ntpd/invoke-ntp.keys.texi@1.192 +1 -1
NTP_4_2_8P9
ntpd/invoke-ntpd.texi@1.508 +2 -2
NTP_4_2_8P9
ntpd/ntp.conf.5man@1.237 +3 -3
NTP_4_2_8P9
ntpd/ntp.conf.5mdoc@1.237 +2 -2
NTP_4_2_8P9
ntpd/ntp.conf.html@1.187 +157 -154
NTP_4_2_8P9
ntpd/ntp.conf.man.in@1.237 +3 -3
NTP_4_2_8P9
ntpd/ntp.conf.mdoc.in@1.237 +2 -2
NTP_4_2_8P9
ntpd/ntp.keys.5man@1.226 +2 -2
NTP_4_2_8P9
ntpd/ntp.keys.5mdoc@1.226 +3 -3
NTP_4_2_8P9
ntpd/ntp.keys.html@1.188 +21 -33
NTP_4_2_8P9
ntpd/ntp.keys.man.in@1.226 +2 -2
NTP_4_2_8P9
ntpd/ntp.keys.mdoc.in@1.226 +3 -3
NTP_4_2_8P9
ntpd/ntpd-opts.c@1.530 +245 -245
NTP_4_2_8P9
ntpd/ntpd-opts.h@1.529 +3 -3
NTP_4_2_8P9
ntpd/ntpd.1ntpdman@1.337 +3 -3
NTP_4_2_8P9
ntpd/ntpd.1ntpdmdoc@1.337 +2 -2
NTP_4_2_8P9
ntpd/ntpd.html@1.181 +142 -186
NTP_4_2_8P9
ntpd/ntpd.man.in@1.337 +3 -3
NTP_4_2_8P9
ntpd/ntpd.mdoc.in@1.337 +2 -2
NTP_4_2_8P9
ntpdc/invoke-ntpdc.texi@1.505 +2 -2
NTP_4_2_8P9
ntpdc/ntpdc-opts.c@1.523 +106 -106
NTP_4_2_8P9
ntpdc/ntpdc-opts.h@1.522 +3 -3
NTP_4_2_8P9
ntpdc/ntpdc.1ntpdcman@1.336 +3 -3
NTP_4_2_8P9
ntpdc/ntpdc.1ntpdcmdoc@1.336 +2 -2
NTP_4_2_8P9
ntpdc/ntpdc.html@1.349 +75 -95
NTP_4_2_8P9
ntpdc/ntpdc.man.in@1.336 +3 -3
NTP_4_2_8P9
ntpdc/ntpdc.mdoc.in@1.336 +2 -2
NTP_4_2_8P9
ntpq/invoke-ntpq.texi@1.513 +2 -2
NTP_4_2_8P9
ntpq/ntpq-opts.c@1.530 +113 -113
NTP_4_2_8P9
ntpq/ntpq-opts.h@1.528 +3 -3
NTP_4_2_8P9
ntpq/ntpq.1ntpqman@1.341 +3 -3
NTP_4_2_8P9
ntpq/ntpq.1ntpqmdoc@1.341 +2 -2
NTP_4_2_8P9
ntpq/ntpq.html@1.178 +136 -160
NTP_4_2_8P9
ntpq/ntpq.man.in@1.341 +3 -3
NTP_4_2_8P9
ntpq/ntpq.mdoc.in@1.341 +2 -2
NTP_4_2_8P9
ntpsnmpd/invoke-ntpsnmpd.texi@1.507 +2 -2
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd-opts.c@1.525 +67 -67
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd-opts.h@1.524 +3 -3
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.336 +3 -3
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.336 +2 -2
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd.html@1.176 +10 -14
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd.man.in@1.336 +3 -3
NTP_4_2_8P9
ntpsnmpd/ntpsnmpd.mdoc.in@1.336 +2 -2
NTP_4_2_8P9
packageinfo.sh@1.532 +2 -2
NTP_4_2_8P9
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.97 +3 -3
NTP_4_2_8P9
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.98 +2 -2
NTP_4_2_8P9
scripts/calc_tickadj/calc_tickadj.html@1.99 +30 -42
NTP_4_2_8P9
scripts/calc_tickadj/calc_tickadj.man.in@1.96 +3 -3
NTP_4_2_8P9
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.98 +2 -2
NTP_4_2_8P9
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.101 +1 -1
NTP_4_2_8P9
scripts/invoke-plot_summary.texi@1.119 +2 -2
NTP_4_2_8P9
scripts/invoke-summary.texi@1.118 +2 -2
NTP_4_2_8P9
scripts/ntp-wait/invoke-ntp-wait.texi@1.328 +2 -2
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait-opts@1.64 +2 -2
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.325 +3 -3
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.326 +2 -2
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait.html@1.345 +41 -59
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait.man.in@1.325 +3 -3
NTP_4_2_8P9
scripts/ntp-wait/ntp-wait.mdoc.in@1.326 +2 -2
NTP_4_2_8P9
scripts/ntpsweep/invoke-ntpsweep.texi@1.116 +2 -2
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep-opts@1.66 +2 -2
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.104 +3 -3
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.104 +2 -2
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep.html@1.117 +46 -57
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep.man.in@1.104 +3 -3
NTP_4_2_8P9
scripts/ntpsweep/ntpsweep.mdoc.in@1.105 +2 -2
NTP_4_2_8P9
scripts/ntptrace/invoke-ntptrace.texi@1.117 +2 -2
NTP_4_2_8P9
scripts/ntptrace/ntptrace-opts@1.66 +2 -2
NTP_4_2_8P9
scripts/ntptrace/ntptrace.1ntptraceman@1.104 +3 -3
NTP_4_2_8P9
scripts/ntptrace/ntptrace.1ntptracemdoc@1.105 +2 -2
NTP_4_2_8P9
scripts/ntptrace/ntptrace.html@1.118 +38 -47
NTP_4_2_8P9
scripts/ntptrace/ntptrace.man.in@1.104 +3 -3
NTP_4_2_8P9
scripts/ntptrace/ntptrace.mdoc.in@1.106 +2 -2
NTP_4_2_8P9
scripts/plot_summary-opts@1.67 +2 -2
NTP_4_2_8P9
scripts/plot_summary.1plot_summaryman@1.117 +3 -3
NTP_4_2_8P9
scripts/plot_summary.1plot_summarymdoc@1.117 +2 -2
NTP_4_2_8P9
scripts/plot_summary.html@1.120 +40 -58
NTP_4_2_8P9
scripts/plot_summary.man.in@1.117 +3 -3
NTP_4_2_8P9
scripts/plot_summary.mdoc.in@1.117 +2 -2
NTP_4_2_8P9
scripts/summary-opts@1.66 +2 -2
NTP_4_2_8P9
scripts/summary.1summaryman@1.116 +3 -3
NTP_4_2_8P9
scripts/summary.1summarymdoc@1.116 +2 -2
NTP_4_2_8P9
scripts/summary.html@1.119 +37 -49
NTP_4_2_8P9
scripts/summary.man.in@1.116 +3 -3
NTP_4_2_8P9
scripts/summary.mdoc.in@1.116 +2 -2
NTP_4_2_8P9
scripts/update-leap/invoke-update-leap.texi@1.17 +1 -1
NTP_4_2_8P9
scripts/update-leap/update-leap-opts@1.17 +2 -2
NTP_4_2_8P9
scripts/update-leap/update-leap.1update-leapman@1.17 +3 -3
NTP_4_2_8P9
scripts/update-leap/update-leap.1update-leapmdoc@1.17 +2 -2
NTP_4_2_8P9
scripts/update-leap/update-leap.html@1.17 +48 -72
NTP_4_2_8P9
scripts/update-leap/update-leap.man.in@1.17 +3 -3
NTP_4_2_8P9
scripts/update-leap/update-leap.mdoc.in@1.17 +2 -2
NTP_4_2_8P9
sntp/invoke-sntp.texi@1.505 +2 -2
NTP_4_2_8P9
sntp/sntp-opts.c@1.524 +158 -158
NTP_4_2_8P9
sntp/sntp-opts.h@1.522 +3 -3
NTP_4_2_8P9
sntp/sntp.1sntpman@1.340 +3 -3
NTP_4_2_8P9
sntp/sntp.1sntpmdoc@1.340 +2 -2
NTP_4_2_8P9
sntp/sntp.html@1.520 +111 -135
NTP_4_2_8P9
sntp/sntp.man.in@1.340 +3 -3
NTP_4_2_8P9
sntp/sntp.mdoc.in@1.340 +2 -2
NTP_4_2_8P9
util/invoke-ntp-keygen.texi@1.508 +2 -2
NTP_4_2_8P9
util/ntp-keygen-opts.c@1.526 +172 -172
NTP_4_2_8P9
util/ntp-keygen-opts.h@1.524 +3 -3
NTP_4_2_8P9
util/ntp-keygen.1ntp-keygenman@1.336 +3 -3
NTP_4_2_8P9
util/ntp-keygen.1ntp-keygenmdoc@1.336 +2 -2
NTP_4_2_8P9
util/ntp-keygen.html@1.182 +157 -216
NTP_4_2_8P9
util/ntp-keygen.man.in@1.336 +3 -3
NTP_4_2_8P9
util/ntp-keygen.mdoc.in@1.336 +2 -2
NTP_4_2_8P9
ChangeSet@1.3719, 2016-11-21 07:07:04-05:00, stenn@deacon.udel.edu
ntp-4.2.8p9
packageinfo.sh@1.531 +1 -1
ntp-4.2.8p9
ChangeSet@1.3718, 2016-11-21 03:47:58+00:00, stenn@psp-deb1.ntp.org
NEWS updates, final p9 testing
NEWS@1.177.1.26 +25 -17
NEWS updates, final p9 testing
packageinfo.sh@1.530 +2 -2
NEWS updates, final p9 testing
ChangeSet@1.3717, 2016-11-18 10:33:02+00:00, stenn@psp-deb1.ntp.org
NEWS update for 3142
NEWS@1.177.1.25 +2 -1
NEWS update for 3142
ChangeSet@1.3686.25.1, 2016-11-18 08:55:13+01:00, perlinger@ntp.org
[Bug 3142] bug in netmask prefix length detection
ChangeLog@1.1834.25.1 +3 -0
[Bug 3142] bug in netmask prefix length detection
lib/isc/netaddr.c@1.15 +0 -1
[Bug 3142] bug in netmask prefix length detection
ChangeSet@1.3715, 2016-11-16 21:25:49-08:00, harlan@fb-x86-a.pfcs.com
NEWS file update
NEWS@1.177.1.24 +7 -22
NEWS file update
ChangeSet@1.3686.24.1, 2016-11-16 22:14:26+01:00, perlinger@ntp.org
[Bug 2851] allow -4/-6 on restrict line with mask
ChangeLog@1.1834.24.1 +4 -0
[Bug 2851] allow -4/-6 on restrict line with mask
ntpd/ntp_parser.c@1.102.1.1 +248 -248
[Bug 2851] allow -4/-6 on restrict line with mask
- update bison-generated file
ntpd/ntp_parser.y@1.92.1.1 +1 -1
[Bug 2851] allow -4/-6 on restrict line with mask
- applied patch by Miroslav Lichvar for ntp4.2.6 compat
ChangeSet@1.3686.23.1, 2016-11-15 23:02:51+01:00, perlinger@ntp.org
[Bug 3107] Incorrect Logic for Peer Event Limiting
ChangeLog@1.1834.23.1 +4 -0
[Bug 3107] Incorrect Logic for Peer Event Limiting
ntpd/ntp_control.c@1.209.6.1 +1 -1
[Bug 3107] Incorrect Logic for Peer Event Limiting
- applied patch by Matthew Van Gundy
ChangeSet@1.3707.1.1, 2016-11-13 21:59:31-08:00, harlan@fb-x86-a.pfcs.com
cleanup
NEWS@1.177.2.1 +201 -77
cleanup
ChangeSet@1.3713, 2016-11-13 21:56:18-08:00, harlan@hms-mbp11.pfcs.com
cleanip
ChangeLog@1.1850 +2 -0
cleanip
ChangeSet@1.3712, 2016-11-13 02:43:02+00:00, stenn@psp-deb1.ntp.org
NEWS updates
NEWS@1.177.1.22 +17 -0
NEWS updates
ChangeSet@1.3710, 2016-11-13 02:30:31+00:00, stenn@psp-deb1.ntp.org
NEWS cleanup
NEWS@1.177.1.21 +2 -0
NEWS cleanup
ChangeSet@1.3707, 2016-11-12 17:36:54-08:00, harlan@fb-x86-a.pfcs.com
NEWS cleanup
NEWS@1.177.1.20 +41 -6
NEWS cleanup
ChangeSet@1.3706, 2016-11-12 16:55:59-08:00, harlan@fb-x86-a.pfcs.com
[Bug 3067] Root distance calculation needs improvement. HStenn
ChangeLog@1.1846.1.2 +1 -0
[Bug 3067] Root distance calculation needs improvement. HStenn
NEWS@1.177.1.19 +1 -0
[Bug 3067] Root distance calculation needs improvement. HStenn
ntpd/ntp_proto.c@1.396 +16 -11
[Bug 3067] Root distance calculation needs improvement. HStenn
ChangeSet@1.3705, 2016-11-12 15:57:34-08:00, harlan@fb-x86-a.pfcs.com
[Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
ChangeLog@1.1846.1.1 +1 -0
[Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
NEWS@1.177.1.18 +1 -0
[Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
ntpd/refclock_gpsdjson.c@1.25 +1 -1
[Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
ChangeSet@1.3686.22.1, 2016-11-12 05:54:39+01:00, perlinger@ntp.org
[Bug 3129] Unknown hosts can put resolver thread into a hard loop
ChangeLog@1.1834.22.1 +4 -0
[Bug 3129] Unknown hosts can put resolver thread into a hard loop
include/ntp_intres.h@1.2 +6 -0
[Bug 3129] Unknown hosts can put resolver thread into a hard loop
- add flags and prototype for 'getaddrinfo_sometime_ex()'
libntp/ntp_intres.c@1.101 +48 -14
[Bug 3129] Unknown hosts can put resolver thread into a hard loop
- implement 'getaddrinfo_sometime_ex()', support ignoring all errors
ntpd/ntp_config.c@1.338.1.1 +11 -10
[Bug 3129] Unknown hosts can put resolver thread into a hard loop
- move decison about igoring DNS errors to resolver code
ChangeSet@1.3703.1.2, 2016-11-09 12:32:07+00:00, stenn@psp-deb1.ntp.org
[Bug 3114] bcpollbstep, tweaks and cleanup
ChangeLog@1.1848 +1 -1
[Bug 3114] bcpollbstep, tweaks and cleanup
html/miscopt.html@1.87 +4 -2
[Bug 3114] bcpollbstep, tweaks and cleanup
include/ntp.h@1.223 +1 -0
[Bug 3114] bcpollbstep, tweaks and cleanup
include/ntpd.h@1.194 +1 -0
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/complete.conf.in@1.32 +1 -1
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/invoke-ntp.conf.texi@1.202 +16 -1
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/keyword-gen-utd@1.29 +1 -1
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/keyword-gen.c@1.35 +1 -0
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp.conf.5man@1.236 +29 -8
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp.conf.5mdoc@1.236 +21 -2
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp.conf.def@1.25 +19 -0
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp.conf.man.in@1.236 +29 -8
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp.conf.mdoc.in@1.236 +21 -2
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_config.c@1.339 +15 -0
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_keyword.h@1.31 +1068 -1058
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_parser.c@1.103 +1196 -1193
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_parser.h@1.67 +373 -371
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_parser.y@1.93 +3 -1
[Bug 3114] bcpollbstep, tweaks and cleanup
ntpd/ntp_proto.c@1.394.1.2 +43 -26
[Bug 3114] bcpollbstep, tweaks and cleanup
ChangeSet@1.3703, 2016-11-09 06:06:04+00:00, stenn@psp-deb1.ntp.org
typo
ChangeLog@1.1846 +1 -1
typo
ChangeSet@1.3686.21.1, 2016-11-08 20:01:41+01:00, perlinger@ntp.org
[Bug 3089] Serial Parser does not work anymore for hopfser like device
ChangeLog@1.1834.21.1 +4 -0
[Bug 3089] Serial Parser does not work anymore for hopfser like device
libparse/clk_hopf6021.c@1.13 +43 -25
[Bug 3089] Serial Parser does not work anymore for hopfser like device
- simplified / refactored hex-decoding in driver.
ChangeSet@1.3698.2.1, 2016-11-03 17:02:24-07:00, harlan@max.pfcs.com
Added leap smear/root dispersion comment
ntpd/ntp_proto.c@1.393.1.1 +4 -0
Added leap smear/root dispersion comment
ChangeSet@1.3699.1.2, 2016-10-31 10:56:33+00:00, stenn@psp-deb1.ntp.org
Add bug 3125 to the NEWS file
NEWS@1.177.1.17 +2 -0
Add bug 3125 to the NEWS file
ChangeSet@1.3701, 2016-10-24 07:37:25+02:00, perlinger@ntp.org
[winio2 - unlocked]
- the great lock removal
- the great renaming
ChangeLog@1.1844 +1 -0
[winio2 - unlocked] notes on changes
ntpd/ntp_refclock.c@1.123 +1 -1
[winio2 - unlocked]
- whitespace at EOL
ports/winnt/include/ntp_iocpltypes.h@1.3 +21 -24
[winio2 - unlocked]
- eliminate critical section, simplify API
- the great renaming
ports/winnt/ntpd/ntp_iocompletionport.c@1.77 +331 -209
[winio2 - unlocked]
- the great lock removal
- handle context objects are only manipulated by IOCPL thread
- closing handles is done by main thread after informing IOCPL thread (RPC-style)
- the great renaming
- restructured UNIX line mode emulation
ports/winnt/ntpd/ntp_iocpltypes.c@1.3 +31 -95
[winio2 - unlocked]
- eliminate critical section, simplify API
- the great renaming
ChangeSet@1.3698.1.7, 2016-10-23 05:18:04+00:00, stenn@psp-deb1.ntp.org
ntp-4.2.8p9-PRE
ntpd/invoke-ntp.conf.texi@1.201 +1 -1
ntp-4.2.8p9-PRE
ntpd/invoke-ntp.keys.texi@1.191 +1 -1
ntp-4.2.8p9-PRE
ntpd/invoke-ntpd.texi@1.507 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntp.conf.5man@1.235 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntp.conf.5mdoc@1.235 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntp.conf.html@1.186 +104 -91
ntp-4.2.8p9-PRE
ntpd/ntp.conf.man.in@1.235 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntp.conf.mdoc.in@1.235 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntp.keys.5man@1.225 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntp.keys.5mdoc@1.225 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntp.keys.html@1.187 +29 -17
ntp-4.2.8p9-PRE
ntpd/ntp.keys.man.in@1.225 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntp.keys.mdoc.in@1.225 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntpd-opts.c@1.529 +245 -245
ntp-4.2.8p9-PRE
ntpd/ntpd-opts.h@1.528 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntpd.1ntpdman@1.336 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntpd.1ntpdmdoc@1.336 +2 -2
ntp-4.2.8p9-PRE
ntpd/ntpd.html@1.180 +146 -102
ntp-4.2.8p9-PRE
ntpd/ntpd.man.in@1.336 +3 -3
ntp-4.2.8p9-PRE
ntpd/ntpd.mdoc.in@1.336 +2 -2
ntp-4.2.8p9-PRE
ntpdc/invoke-ntpdc.texi@1.504 +2 -2
ntp-4.2.8p9-PRE
ntpdc/ntpdc-opts.c@1.522 +106 -106
ntp-4.2.8p9-PRE
ntpdc/ntpdc-opts.h@1.521 +3 -3
ntp-4.2.8p9-PRE
ntpdc/ntpdc.1ntpdcman@1.335 +3 -3
ntp-4.2.8p9-PRE
ntpdc/ntpdc.1ntpdcmdoc@1.335 +2 -2
ntp-4.2.8p9-PRE
ntpdc/ntpdc.html@1.348 +77 -57
ntp-4.2.8p9-PRE
ntpdc/ntpdc.man.in@1.335 +3 -3
ntp-4.2.8p9-PRE
ntpdc/ntpdc.mdoc.in@1.335 +2 -2
ntp-4.2.8p9-PRE
ntpq/invoke-ntpq.texi@1.512 +2 -2
ntp-4.2.8p9-PRE
ntpq/ntpq-opts.c@1.529 +113 -113
ntp-4.2.8p9-PRE
ntpq/ntpq-opts.h@1.527 +3 -3
ntp-4.2.8p9-PRE
ntpq/ntpq.1ntpqman@1.340 +3 -3
ntp-4.2.8p9-PRE
ntpq/ntpq.1ntpqmdoc@1.340 +2 -2
ntp-4.2.8p9-PRE
ntpq/ntpq.html@1.177 +129 -105
ntp-4.2.8p9-PRE
ntpq/ntpq.man.in@1.340 +3 -3
ntp-4.2.8p9-PRE
ntpq/ntpq.mdoc.in@1.340 +2 -2
ntp-4.2.8p9-PRE
ntpsnmpd/invoke-ntpsnmpd.texi@1.506 +2 -2
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd-opts.c@1.524 +67 -67
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd-opts.h@1.523 +3 -3
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.335 +3 -3
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.335 +2 -2
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd.html@1.175 +14 -10
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd.man.in@1.335 +3 -3
ntp-4.2.8p9-PRE
ntpsnmpd/ntpsnmpd.mdoc.in@1.335 +2 -2
ntp-4.2.8p9-PRE
packageinfo.sh@1.529 +2 -2
ntp-4.2.8p9-PRE
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.96 +3 -3
ntp-4.2.8p9-PRE
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.97 +2 -2
ntp-4.2.8p9-PRE
scripts/calc_tickadj/calc_tickadj.html@1.98 +34 -22
ntp-4.2.8p9-PRE
scripts/calc_tickadj/calc_tickadj.man.in@1.95 +3 -3
ntp-4.2.8p9-PRE
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.97 +2 -2
ntp-4.2.8p9-PRE
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.100 +1 -1
ntp-4.2.8p9-PRE
scripts/invoke-plot_summary.texi@1.118 +2 -2
ntp-4.2.8p9-PRE
scripts/invoke-summary.texi@1.117 +2 -2
ntp-4.2.8p9-PRE
scripts/ntp-wait/invoke-ntp-wait.texi@1.327 +2 -2
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait-opts@1.63 +2 -2
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.324 +3 -3
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.325 +2 -2
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait.html@1.344 +49 -31
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait.man.in@1.324 +3 -3
ntp-4.2.8p9-PRE
scripts/ntp-wait/ntp-wait.mdoc.in@1.325 +2 -2
ntp-4.2.8p9-PRE
scripts/ntpsweep/invoke-ntpsweep.texi@1.115 +2 -2
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep-opts@1.65 +2 -2
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.103 +3 -3
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.103 +2 -2
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep.html@1.116 +44 -33
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep.man.in@1.103 +3 -3
ntp-4.2.8p9-PRE
scripts/ntpsweep/ntpsweep.mdoc.in@1.104 +2 -2
ntp-4.2.8p9-PRE
scripts/ntptrace/invoke-ntptrace.texi@1.116 +2 -2
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace-opts@1.65 +2 -2
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace.1ntptraceman@1.103 +3 -3
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace.1ntptracemdoc@1.104 +2 -2
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace.html@1.117 +36 -27
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace.man.in@1.103 +3 -3
ntp-4.2.8p9-PRE
scripts/ntptrace/ntptrace.mdoc.in@1.105 +2 -2
ntp-4.2.8p9-PRE
scripts/plot_summary-opts@1.66 +2 -2
ntp-4.2.8p9-PRE
scripts/plot_summary.1plot_summaryman@1.116 +3 -3
ntp-4.2.8p9-PRE
scripts/plot_summary.1plot_summarymdoc@1.116 +2 -2
ntp-4.2.8p9-PRE
scripts/plot_summary.html@1.119 +47 -29
ntp-4.2.8p9-PRE
scripts/plot_summary.man.in@1.116 +3 -3
ntp-4.2.8p9-PRE
scripts/plot_summary.mdoc.in@1.116 +2 -2
ntp-4.2.8p9-PRE
scripts/summary-opts@1.65 +2 -2
ntp-4.2.8p9-PRE
scripts/summary.1summaryman@1.115 +3 -3
ntp-4.2.8p9-PRE
scripts/summary.1summarymdoc@1.115 +2 -2
ntp-4.2.8p9-PRE
scripts/summary.html@1.118 +39 -27
ntp-4.2.8p9-PRE
scripts/summary.man.in@1.115 +3 -3
ntp-4.2.8p9-PRE
scripts/summary.mdoc.in@1.115 +2 -2
ntp-4.2.8p9-PRE
scripts/update-leap/invoke-update-leap.texi@1.16 +1 -1
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap-opts@1.16 +2 -2
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap.1update-leapman@1.16 +3 -3
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap.1update-leapmdoc@1.16 +2 -2
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap.html@1.16 +59 -35
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap.man.in@1.16 +3 -3
ntp-4.2.8p9-PRE
scripts/update-leap/update-leap.mdoc.in@1.16 +2 -2
ntp-4.2.8p9-PRE
sntp/invoke-sntp.texi@1.504 +2 -2
ntp-4.2.8p9-PRE
sntp/sntp-opts.c@1.523 +158 -158
ntp-4.2.8p9-PRE
sntp/sntp-opts.h@1.521 +3 -3
ntp-4.2.8p9-PRE
sntp/sntp.1sntpman@1.339 +3 -3
ntp-4.2.8p9-PRE
sntp/sntp.1sntpmdoc@1.339 +2 -2
ntp-4.2.8p9-PRE
sntp/sntp.html@1.519 +109 -85
ntp-4.2.8p9-PRE
sntp/sntp.man.in@1.339 +3 -3
ntp-4.2.8p9-PRE
sntp/sntp.mdoc.in@1.339 +2 -2
ntp-4.2.8p9-PRE
util/invoke-ntp-keygen.texi@1.507 +2 -2
ntp-4.2.8p9-PRE
util/ntp-keygen-opts.c@1.525 +172 -172
ntp-4.2.8p9-PRE
util/ntp-keygen-opts.h@1.523 +3 -3
ntp-4.2.8p9-PRE
util/ntp-keygen.1ntp-keygenman@1.335 +3 -3
ntp-4.2.8p9-PRE
util/ntp-keygen.1ntp-keygenmdoc@1.335 +2 -2
ntp-4.2.8p9-PRE
util/ntp-keygen.html@1.181 +183 -124
ntp-4.2.8p9-PRE
util/ntp-keygen.man.in@1.335 +3 -3
ntp-4.2.8p9-PRE
util/ntp-keygen.mdoc.in@1.335 +2 -2
ntp-4.2.8p9-PRE
ChangeSet@1.3688.5.1, 2016-10-20 19:28:06+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1836.4.1 +1 -0
cleanup
ChangeSet@1.3686.20.1, 2016-10-20 20:13:40+02:00, perlinger@ntp.org
[Sec 3114] Broadcast Mode Replay Prevention DoS
ChangeLog@1.1834.20.1 +4 -0
[Sec 3114] Broadcast Mode Replay Prevention DoS
ntpd/ntp_proto.c@1.392.2.1 +39 -6
[Sec 3114] Broadcast Mode Replay Prevention DoS
- applied patches by Matthew Van Gundy, with some rework.
ChangeSet@1.3686.19.1, 2016-10-20 09:21:04+02:00, perlinger@ntp.org
[Sec 3113] Broadcast Mode Poll Interval Enforcement DoS
ChangeLog@1.1834.19.1 +4 -0
[Sec 3113] Broadcast Mode Poll Interval Enforcement DoS
include/ntp.h@1.220.1.1 +1 -1
[Sec 3113] Broadcast Mode Poll Interval Enforcement DoS
ntpd/ntp_proto.c@1.392.1.1 +12 -3
[Sec 3113] Broadcast Mode Poll Interval Enforcement DoS
- applied fix as suggested by Matthew Van Gundy
ChangeSet@1.3698.1.5, 2016-10-13 01:26:54-07:00, harlan@max.pfcs.com
typo
ChangeLog@1.1841.1.3 +1 -1
typo
ChangeSet@1.3698.1.4, 2016-10-13 01:24:48-07:00, harlan@max.pfcs.com
[Bug 3102] Zero origin issues
ChangeLog@1.1841.1.2 +1 -0
[Bug 3102] Zero origin issues
ntpd/ntp_proto.c@1.393 +28 -3
[Bug 3102] Zero origin issues
ChangeSet@1.3698.1.3, 2016-10-11 01:33:28-07:00, harlan@max.pfcs.com
Distribute libssl_compat.h
include/Makefile.am@1.55 +1 -0
Distribute libssl_compat.h
ChangeSet@1.3698.1.2, 2016-10-10 22:34:55-07:00, harlan@max.pfcs.com
bug 3102 tests
tests/bug-3102/README-3102.txt@1.1 +43 -0
BitKeeper file tests/bug-3102/README-3102.txt
tests/bug-3102/README-3102.txt@1.0 +0 -0
tests/bug-3102/zeroorg.py@1.1 +24 -0
BitKeeper file tests/bug-3102/zeroorg.py
tests/bug-3102/zeroorg.py@1.0 +0 -0
ChangeSet@1.3688.4.1, 2016-10-10 01:46:05-07:00, harlan@max.pfcs.com
Fix typos in include/ntp.h
ChangeLog@1.1836.3.1 +1 -0
Fix typos in include/ntp.h
include/ntp.h@1.221 +3 -4
Fix typos in include/ntp.h
ChangeSet@1.3699, 2016-10-04 08:36:17+02:00, perlinger@ntp.org
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
ChangeLog@1.1842 +2 -0
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
ports/winnt/include/ntp_iocompletionport.h@1.23 +1 -1
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
- minor type renaming
ports/winnt/include/termios.h@1.18 +3 -0
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
- manage device context for IOCPL together with comport
ports/winnt/libntp/termios.c@1.34 +191 -120
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
- manage device context for IOCPL together with comport
ports/winnt/ntpd/ntp_iocompletionport.c@1.76 +91 -98
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
- manage device context for IOCPL together with comport
- integrate Danny Mayers changes for docket error handling
ports/winnt/ntpd/ntp_iocpltypes.c@1.2 +2 -2
[Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order using the loopback-ppsapi-provider.dll
- fix wrong instance initialisation
ChangeSet@1.3688.3.2, 2016-10-02 09:01:53+02:00, perlinger@ntp.org
[Bug 3095] Compatibility with openssl 1.1
- add autolib hader
- fix linker input selection
include/ssl_applink.c@1.2 +15 -3
[Bug 3095] Compatibility with openssl 1.1
- the graet renaming of v1.1.0
libntp/libssl_compat.c@1.3 +4 -0
[Bug 3095] Compatibility with openssl 1.1
- make sure 'inttypes.h' is included before SSL headers (macro definitiion order)
ports/winnt/include/msvc_ssl_autolib.h@1.1 +94 -0
[Bug 3095] Compatibility with openssl 1.1
create automagic library selection header
ports/winnt/include/msvc_ssl_autolib.h@1.0 +0 -0
ports/winnt/vs2008/debug-x64.vsprops@1.2 +2 -2
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2008/debug.vsprops@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2008/release-x64.vsprops@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2008/release.vsprops@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2013/debug-x64.props@1.3 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2013/debug.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2013/libntp/libntp.vcxproj@1.13 +2 -1
[Bug 3095] Compatibility with openssl 1.1
- add autolib hader
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.11 +3 -0
[Bug 3095] Compatibility with openssl 1.1
- add autolib hader
ports/winnt/vs2013/release-x64.props@1.3 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2013/release.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2015/debug-x64.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2015/debug.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2015/libntp/libntp.vcxproj@1.3 +1 -0
[Bug 3095] Compatibility with openssl 1.1
- add autolib hader
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.3 +3 -0
[Bug 3095] Compatibility with openssl 1.1
- add autolib hader
ports/winnt/vs2015/release-x64.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ports/winnt/vs2015/release.props@1.2 +1 -1
[Bug 3095] Compatibility with openssl 1.1
- fix linker input selection
ChangeSet@1.3698, 2016-10-01 10:52:11+00:00, stenn@psp-deb1.ntp.org
Update NEWS for 3119
NEWS@1.177.1.16 +17 -0
Update NEWS for 3119
ChangeSet@1.3696, 2016-10-01 10:43:24+00:00, stenn@psp-deb1.ntp.org
Update NEWS for 3118
NEWS@1.177.1.15 +17 -0
Update NEWS for 3118
ChangeSet@1.3694, 2016-10-01 10:29:06+00:00, stenn@psp-deb1.ntp.org
Update NEWS for 3110
NEWS@1.177.1.14 +17 -0
Update NEWS for 3110
ChangeSet@1.3688.3.1, 2016-10-01 11:36:55+02:00, perlinger@ntp.org
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project files
ports/winnt/vs2005/libntp.vcproj@1.26 +8 -0
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ports/winnt/vs2008/libntp/libntp.vcproj@1.57 +12 -0
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ports/winnt/vs2013/libntp/libntp.vcxproj@1.12 +4 -1
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.10 +14 -5
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ports/winnt/vs2015/libntp/libntp.vcxproj@1.2 +3 -0
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.2 +9 -0
[Bug 3095] Compatibility with openssl 1.1
- add new sources to project
ChangeSet@1.3691, 2016-10-01 09:18:25+00:00, stenn@psp-deb1.ntp.org
Update NEWS for 3082
NEWS@1.177.1.13 +17 -0
Update NEWS for 3082
ChangeSet@1.3688.1.33, 2016-10-01 08:32:28+00:00, stenn@psp-deb1.ntp.org
[Bug 3072] tweaks
NEWS@1.177.1.12 +16 -1
[Bug 3072] tweaks
ntpd/ntp_peer.c@1.160 +6 -1
[Bug 3072] tweaks
ChangeSet@1.3688.1.31, 2016-09-29 20:53:30+00:00, perlinger@ntp.org
created 'X509_get_signature_nid()' shim for OpenSSL < v1.1.0
fixed unit test for sntp/packetProcessing to work with or without AUTOKEY flag
include/libssl_compat.h@1.2 +8 -1
created 'X509_get_signature_nid()' shim for OpenSSL < v1.1.0
libntp/libssl_compat.c@1.2 +9 -1
created 'X509_get_signature_nid()' shim for OpenSSL < v1.1.0
libntp/ssl_init.c@1.21 +0 -11
moved 'X509_get_signature_nid()' for OpenSSL < v1.1.0 to 'libssl_compat.{c,h}'
sntp/tests/packetProcessing.c@1.12 +0 -13
fixed unit test to work with or without AUTOKEY flag
ChangeSet@1.3688.1.30, 2016-09-29 12:03:17+00:00, stenn@psp-deb1.ntp.org
NEWS update
NEWS@1.177.1.11 +2 -0
NEWS update
ChangeSet@1.3688.2.1, 2016-09-29 11:59:03+00:00, stenn@psp-deb1.ntp.org
X509_get_signature_nid() shim tweak
ChangeLog@1.1836.2.1, stenn@stenn.ntp.org +1 -0
Shim X509_get_signature_nid() if needed
NEWS@1.177.1.10, stenn@stenn.ntp.org +1 -0
Shim X509_get_signature_nid() if needed
libntp/ssl_init.c@1.17.1.3 +1 -1
X509_get_signature_nid() shim tweak
libntp/ssl_init.c@1.17.1.2, stenn@stenn.ntp.org +12 -0
Shim X509_get_signature_nid() if needed
ChangeSet@1.3688.1.27, 2016-09-28 11:28:56+00:00, stenn@psp-deb1.ntp.org
NEWS
NEWS@1.177.1.9 +1 -0
NEWS
ChangeSet@1.3688.1.25, 2016-09-28 11:24:36+00:00, stenn@psp-deb1.ntp.org
NEWS
NEWS@1.177.1.8 +2 -0
NEWS
ChangeSet@1.3688.1.23, 2016-09-28 11:17:22+00:00, stenn@psp-deb1.ntp.org
Updated ChangeLog and NEWS
ChangeLog@1.1836.1.19 +2 -2
Updated ChangeLog and NEWS
NEWS@1.177.1.7 +2 -0
Updated ChangeLog and NEWS
ChangeSet@1.3688.1.21, 2016-09-28 11:12:28+00:00, stenn@psp-deb1.ntp.org
NEWS
NEWS@1.177.1.6 +2 -0
NEWS
ChangeSet@1.3688.1.19, 2016-09-28 11:01:29+00:00, stenn@psp-deb1.ntp.org
NEWS
NEWS@1.177.1.5 +3 -0
NEWS
ChangeSet@1.3688.1.17, 2016-09-28 10:54:12+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS
NEWS@1.177.1.4 +3 -0
Update ChangeLog and NEWS
ChangeSet@1.3688.1.15, 2016-09-28 10:45:21+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS
ChangeLog@1.1836.1.14 +2 -2
Update ChangeLog and NEWS
NEWS@1.177.1.3 +2 -0
Update ChangeLog and NEWS
ChangeSet@1.3688.1.13, 2016-09-28 10:37:17+00:00, stenn@psp-deb1.ntp.org
NEWS updates
NEWS@1.177.1.2 +4 -0
NEWS updates
ChangeSet@1.3688.1.11, 2016-09-28 10:25:01+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS
ChangeLog@1.1836.1.11 +1 -1
Update ChangeLog and NEWS
NEWS@1.177.1.1 +1 -0
Update ChangeLog and NEWS
ChangeSet@1.3688.1.8, 2016-09-28 08:17:16+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS
ChangeLog@1.1836.1.8 +2 -4
Update ChangeLog and NEWS
NEWS@1.177 +3 -0
Update ChangeLog and NEWS
ChangeSet@1.3688.1.6, 2016-09-28 08:10:35+00:00, stenn@psp-deb1.ntp.org
Update ChangeLog and NEWS
ChangeLog@1.1836.1.6 +4 -6
Update ChangeLog and NEWS
NEWS@1.176 +4 -0
Update ChangeLog and NEWS
ChangeSet@1.3688.1.4, 2016-09-28 07:59:31+00:00, stenn@psp-deb1.ntp.org
ChangeLog and NEWS cleanup
ChangeLog@1.1836.1.4 +2 -4
ChangeLog and NEWS cleanup
NEWS@1.175 +20 -0
ChangeLog and NEWS cleanup
ChangeSet@1.3686.9.2, 2016-09-26 08:24:48+02:00, perlinger@ntp.org
[Bug 3021] unity_fixture.c needs pragma weak
- add library implementation of empty setUp()/tearDown()
sntp/unity/Makefile.am@1.10 +2 -0
[Bug 3021] unity_fixture.c needs pragma weak
- add library implementation of empty setUp()/tearDown()
sntp/unity/ulib_setup.c@1.1 +14 -0
[Bug 3021] unity_fixture.c needs pragma weak
- add library implementation of empty setUp()/tearDown()
sntp/unity/ulib_setup.c@1.0 +0 -0
sntp/unity/ulib_teardown.c@1.1 +13 -0
[Bug 3021] unity_fixture.c needs pragma weak
- add library implementation of empty setUp()/tearDown()
sntp/unity/ulib_teardown.c@1.0 +0 -0
ChangeSet@1.3686.18.1, 2016-09-25 10:58:43+02:00, perlinger@ntp.org
[Bug 2689] ATOM driver processes last PPS pulse at startup, even if it is very old
- make sure PPS source is alive before processing samples
- improve stability close to the 500ms phase jump by a 400ms phase gate
ChangeLog@1.1834.18.1 +6 -0
[Bug 2689] ATOM driver processes last PPS pulse at startup, even if it is very old
ntpd/ntp_refclock.c@1.122 +50 -10
[Bug 2689] ATOM driver processes last PPS pulse at startup, even if it is very old
- make sure PPS source is alive before processing samples
- improve stability close to the 500ms phase jump by a 400ms phase gate
ChangeSet@1.3686.17.1, 2016-09-24 20:38:17+02:00, perlinger@ntp.org
[Sec 3118] Mode 6 information disclosure and DDoS vector
ChangeLog@1.1834.17.1 +4 -0
[Sec 3118] Mode 6 information disclosure and DDoS vector
ntpd/ntp_control.c@1.209.5.1 +3 -3
[Sec 3118] Mode 6 information disclosure and DDoS vector
- TRAP config via mode 6 packet requires AUTH now
- writing the clock status should require AUTH, too.
ChangeSet@1.3686.16.1, 2016-09-23 20:00:55+02:00, perlinger@ntp.org
[Sec 3119] Trap crash
ChangeLog@1.1834.16.1 +3 -0
[Sec 3119] Trap crash
ntpd/ntp_control.c@1.209.4.1 +19 -4
[Sec 3119] Trap crash
- bail out if we hit a Peer Event without a peer.
ChangeSet@1.3686.15.1, 2016-09-22 20:42:39+02:00, perlinger@ntp.org
[Bug 3116] unit tests for NTP time stamp expansion
ChangeLog@1.1834.15.1 +3 -0
[Bug 3116] unit tests for NTP time stamp expansion
libntp/ntp_calendar.c@1.18 +56 -29
[Bug 3116] unit tests for NTP time stamp expansion
- added back unsigned spec to constant to avoid confusion
and explained why there was no problem at all
tests/libntp/calendar.c@1.13 +127 -0
[Bug 3116] unit tests for NTP time stamp expansion
- added test cases for NTP time stamp expansion
tests/libntp/run-calendar.c@1.12 +20 -15
[Bug 3116] unit tests for NTP time stamp expansion
- update generated file
ChangeSet@1.3688.1.2, 2016-09-16 08:26:08+00:00, stenn@psp-deb1.ntp.org
[Bug 3053] ntp_loopfilter.c frequency calc precedence error. Sarah White.
ChangeLog@1.1836.1.2 +1 -0
[Bug 3053] ntp_loopfilter.c frequency calc precedence error. Sarah White.
ntpd/ntp_loopfilter.c@1.189 +6 -5
[Bug 3053] ntp_loopfilter.c frequency calc precedence error. Sarah White.
ChangeSet@1.3688.1.1, 2016-09-16 08:21:45+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1836.1.1 +1 -0
cleanup
ChangeSet@1.3686.14.1, 2016-09-15 19:29:17+02:00, perlinger@ntp.org
[Bug 2959] refclock_jupiter: gps week correction
ChangeLog@1.1834.14.1 +5 -0
[Bug 2959] refclock_jupiter: gps week correction
ntpd/refclock_jupiter.c@1.30 +66 -1
[Bug 2959] refclock_jupiter: gps week correction
- fixed GPS week expansion to work based on build date. Special thanks to Craig Leres
for initial patch and testing.
ChangeSet@1.3686.13.1, 2016-09-13 07:26:06+02:00, perlinger@ntp.org
[Bug 3072] Attack on interface selection
ChangeLog@1.1834.13.1 +6 -1
[Bug 3072] Attack on interface selection
ntpd/ntp_peer.c@1.159 +61 -50
[Bug 3072] Attack on interface selection
- implemented Miroslav Lichvars <mlichvar@redhat.com> suggestion to skip interface updates
based on incoming packets
ChangeSet@1.3686.12.1, 2016-09-10 17:22:27+02:00, perlinger@ntp.org
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be> to source
- added shim layer for new SSL API calls
ChangeLog@1.1834.12.1 +5 -0
[Bug 3095] Compatibility with openssl 1.1
include/libssl_compat.h@1.1 +93 -0
[Bug 3095] Compatibility with openssl 1.1
shim layer for OpenSSL v1.1 API compatibility
include/libssl_compat.h@1.0 +0 -0
libntp/Makefile.am@1.78.1.1 +1 -0
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
libntp/a_md5encrypt.c@1.36.1.1 +26 -28
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
libntp/libssl_compat.c@1.1 +327 -0
[Bug 3095] Compatibility with openssl 1.1
shim layer for OpenSSL v1.1 API compatibility
libntp/libssl_compat.c@1.0 +0 -0
libntp/ssl_init.c@1.17.1.1 +7 -3
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpd/ntp_control.c@1.209.3.1 +13 -10
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpd/ntp_crypto.c@1.186.1.1 +207 -138
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpq/ntpq.c@1.170.1.1 +6 -3
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
sntp/crypto.c@1.21.1.1 +11 -7
[Bug 3095] Compatibility with openssl 1.1
- switched to new OpenSSL API
util/ntp-keygen.c@1.107.1.1 +217 -150
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
- replaced use of deprecated functions
ChangeSet@1.3686.11.1, 2016-09-09 18:34:03+02:00, jnperlin@nemesis.localnet
[Sec 3110] Windows: ntpd DoS by oversized UDP packet
BitKeeper/etc/ignore@1.91.2.1 +2 -0
add more studio specific garbage
ChangeLog@1.1834.11.1 +4 -0
[Sec 3110] Windows: ntpd DoS by oversized UDP packet
ports/winnt/include/ntp_iocpltypes.h@1.2 +1 -0
[Sec 3110] Windows: ntpd DoS by oversized UDP packet
- add 'ioFlags' to context; should be persistent during overlapped IO
ports/winnt/ntpd/ntp_iocompletionport.c@1.73.1.1 +48 -9
[Sec 3110] Windows: ntpd DoS by oversized UDP packet
- fixed error handling for truncated UDP packets
- sidekick: fixed handling of spurious ERROR_HOST_UNREACHABLE errors
- sidekick: fixed error message formatting for WaitForMultipleObjects() errors
ports/winnt/vs2015/ntp.sln@1.2 +3 -3
[Sec 3110] Windows: ntpd DoS by oversized UDP packet
- sidekick: set version of solution to match VS2015
ChangeSet@1.3686.10.1, 2016-09-04 21:10:56+02:00, perlinger@ntp.org
[Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
ChangeLog@1.1834.10.1 +4 -0
[Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
tests/ntpd/Makefile.am@1.29 +0 -1
[Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
- removed source file that is included from t-ntp_signed.c
ChangeSet@1.3686.9.1, 2016-09-04 19:19:34+02:00, perlinger@ntp.org
[Bug 3021] unity_fixture.c needs pragma weak
ChangeLog@1.1834.9.1 +4 -0
[Bug 3021] unity_fixture.c needs pragma weak
sntp/unity/unity_fixture.c@1.2 +0 -4
[Bug 3021] unity_fixture.c needs pragma weak
- removed unnecessary & harmful decls of 'setUp()' & 'tearDown()'
(no need to declare & implement locally unreferenced functions)
ChangeSet@1.3686.8.1, 2016-09-04 17:37:34+02:00, perlinger@ntp.org
[Bug 3050] Fix for bug #2960 causes sntp to print a spurious error message
ChangeLog@1.1834.8.1 +5 -0
[Bug 3050] Fix for bug #2960 causes sntp to print a spurious error message
libntp/work_fork.c@1.17 +13 -5
[Bug 3050] Fix for bug #2960 causes sntp to print a spurious error message
- applied patches by Reinhard Max <max@suse.com> and Havard Eidnes <he@uninett.no>.
Reinhard fought the cause, Harvard the symptom -- having both should put an end to this issue.
ChangeSet@1.3686.7.2, 2016-09-04 11:20:00+02:00, perlinger@ntp.org
[Bug 3059] Potential buffer overrun from oversized hash
ChangeLog@1.1834.7.2 +2 -0
[Bug 3059] Potential buffer overrun from oversized hash
libntp/a_md5encrypt.c@1.38 +7 -1
[Bug 3059] Potential buffer overrun from oversized hash
- applied patch by Brian Utterback <brian.utterback@oracle.com>
ChangeSet@1.3686.7.1, 2016-09-04 08:48:03+02:00, perlinger@ntp.org
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be> to source
- added shim layer for SSL API calls with issues (both directions)
ChangeLog@1.1834.7.1 +5 -0
[Bug 3095] Compatibility with openssl 1.1
include/libssl_compat.h@1.1 +127 -0
[Bug 3095] Compatibility with openssl 1.1
shim layer for OpenSSL v1.1 API compatibility
include/libssl_compat.h@1.0 +0 -0
libntp/Makefile.am@1.79 +1 -0
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
libntp/a_md5encrypt.c@1.37 +26 -28
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
- added shim layer for SSL API calls with issues (both directions)
libntp/libssl_compat.c@1.1 +452 -0
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be> to source
- added shim layer for SSL API calls with issues (both directions)
libntp/libssl_compat.c@1.0 +0 -0
libntp/ssl_init.c@1.18 +7 -3
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpd/ntp_control.c@1.209.2.1 +13 -10
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpd/ntp_crypto.c@1.187 +207 -138
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ntpq/ntpq.c@1.171 +6 -3
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
sntp/crypto.c@1.22 +11 -7
[Bug 3095] Compatibility with openssl 1.1
- switched to new OpenSSL API
util/ntp-keygen.c@1.108 +147 -131
[Bug 3095] Compatibility with openssl 1.1
- applied patches by Kurt Roeckx <kurt@roeckx.be>
ChangeSet@1.3686.6.1, 2016-08-21 09:29:00+02:00, perlinger@ntp.org
[Bug 3100] ntpq can't retrieve daemon_version
(extended sysvar lookup bug, introduced with fix for bug 3008)
ChangeLog@1.1834.6.1 +4 -0
[Bug 3100] ntpq can't retrieve daemon_version
ntpd/ntp_control.c@1.209.1.1 +10 -4
[Bug 3100] ntpq can't retrieve daemon_version
- extended sysvar lookup broken with fix for bug3008: extended sysvar text is "<name>=<val>",
name compare has to match if the name match stops at NUL or '='. Bug introduced with bug 3008 fix.
ChangeSet@1.3686.5.1, 2016-08-01 09:09:19+02:00, perlinger@ntp.org
[Bug 3068] Linker warnings when building on Solaris.
- applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
ChangeLog@1.1834.5.1 +2 -0
[Bug 3068] Linker warnings when building on Solaris.
libntp/audio.c@1.37 +3 -3
[Bug 3068] Linker warnings when building on Solaris.
- applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
ChangeSet@1.3686.4.1, 2016-07-26 08:56:44+02:00, perlinger@ntp.org
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
ChangeLog@1.1834.4.1 +1 -0
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
sntp/tests/packetProcessing.c@1.9.1.1 +107 -89
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
- make sure the tests compile when configured using --without-crypto --disable-autokey
- ensure the there is no buffer overrun when AUTOKEY is disabled
sntp/tests/run-packetProcessing.c@1.11 +18 -18
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
- automatic testrunner update
tests/libntp/a_md5encrypt.c@1.15 +1 -3
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
- side kick: avoid extra memset by using 'emalloc_zero()'
tests/libntp/sfptostr.c@1.6 +3 -3
[Bug 2998] sntp/tests/packetProcessing.c broken without openssl
- side kick: avoid warnings about left shift of negative integer
ChangeSet@1.3686.3.1, 2016-07-23 09:20:53+02:00, perlinger@ntp.org
[Bug 3066] NMEA clock ignores pps.
(side kick: ignore msbuild 10 user settings file)
BitKeeper/etc/ignore@1.91.1.1 +1 -0
ignore msbuild 10 user setting
ChangeLog@1.1834.3.1 +4 -0
[Bug 3066] NMEA clock ignores pps. (actually, the PPS HACK stopped to work for all serial devices)
ports/winnt/ntpd/ntp_iocompletionport.c@1.74 +20 -2
[Bug 3066] NMEA clock ignores pps. perlinger@ntp.org
- PPS-HACK works again; now controllable (explicitely) by the env var PPSAPI_HACK=true/yes/1 (anything else is NO)
- if PPSAPI_HACK is not set, a non-empty PPSAPI_DLLS list disables the PPS hack
ChangeSet@1.3686.2.2, 2016-07-06 01:53:32-07:00, harlan@max.pfcs.com
[Bug 3084] update-leap mis-parses the leapfile name
ChangeLog@1.1834.2.2 +1 -0
[Bug 3084] update-leap mis-parses the leapfile name
scripts/update-leap/update-leap.in@1.3 +5 -2
[Bug 3084] update-leap mis-parses the leapfile name
ChangeSet@1.3686.2.1, 2016-07-06 01:47:02-07:00, harlan@max.pfcs.com
[Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY
ChangeLog@1.1834.2.1 +4 -0
[Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY
sntp/tests/packetProcessing.c@1.10 +5 -3
[Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY
ChangeSet@1.3686.1.1, 2016-07-05 23:15:20+02:00, perlinger@ntp.org
[Sec 3075] Core Dump. Added missing paramter validation in read_mru_list().
[Sec 3082] (title too long -- Variation of [Sec 3075].)
- more hardening to read_mru_list().
ChangeLog@1.1834.1.1 +7 -1
[Sec 3075] Core Dump. Added missing paramter validation in read_mru_list()
[Sec 3082] (title too long -- Variation of [Sec 3075].)
- more hardening to read_mru_list().
ntpd/ntp_control.c@1.210 +57 -33
[Sec 3075] Core Dump. Added missing paramter validation in read_mru_list().
[Sec 3082] (title too long -- Variation of [Sec 3075].)
- more hardening to read_mru_list().
ChangeSet@1.3688, 2016-06-14 05:57:34+00:00, stenn@psp-deb1.ntp.org
bk ignore file cleanup
BitKeeper/etc/ignore@1.92 +17 -13
bk ignore file cleanup
ChangeLog@1.1836 +1 -0
bk ignore file cleanup
ChangeSet@1.3687, 2016-06-14 05:56:12+00:00, stenn@psp-deb1.ntp.org
git author attribution cleanup
BitKeeper/etc/Authors/a115350.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/a115350.txt
BitKeeper/etc/Authors/a115350.txt@1.0 +0 -0
BitKeeper/etc/Authors/abe.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/abe.txt
BitKeeper/etc/Authors/abe.txt@1.0 +0 -0
BitKeeper/etc/Authors/amidamaru.txt@1.1 +2 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/amidamaru.txt
BitKeeper/etc/Authors/amidamaru.txt@1.0 +0 -0
BitKeeper/etc/Authors/bkorb.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/bkorb.txt
BitKeeper/etc/Authors/bkorb.txt@1.0 +0 -0
BitKeeper/etc/Authors/blk.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/blk.txt
BitKeeper/etc/Authors/blk.txt@1.0 +0 -0
BitKeeper/etc/Authors/blu.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/blu.txt
BitKeeper/etc/Authors/blu.txt@1.0 +0 -0
BitKeeper/etc/Authors/bruckman.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/bruckman.txt
BitKeeper/etc/Authors/bruckman.txt@1.0 +0 -0
BitKeeper/etc/Authors/burnicki.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/burnicki.txt
BitKeeper/etc/Authors/burnicki.txt@1.0 +0 -0
BitKeeper/etc/Authors/claas.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/claas.txt
BitKeeper/etc/Authors/claas.txt@1.0 +0 -0
BitKeeper/etc/Authors/clemens.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/clemens.txt
BitKeeper/etc/Authors/clemens.txt@1.0 +0 -0
BitKeeper/etc/Authors/cov-build.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/cov-build.txt
BitKeeper/etc/Authors/cov-build.txt@1.0 +0 -0
BitKeeper/etc/Authors/cprice.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/cprice.txt
BitKeeper/etc/Authors/cprice.txt@1.0 +0 -0
BitKeeper/etc/Authors/davehart.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/davehart.txt
BitKeeper/etc/Authors/davehart.txt@1.0 +0 -0
BitKeeper/etc/Authors/dietrich.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/dietrich.txt
BitKeeper/etc/Authors/dietrich.txt@1.0 +0 -0
BitKeeper/etc/Authors/dunlop.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/dunlop.txt
BitKeeper/etc/Authors/dunlop.txt@1.0 +0 -0
BitKeeper/etc/Authors/fernandoph.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/fernandoph.txt
BitKeeper/etc/Authors/fernandoph.txt@1.0 +0 -0
BitKeeper/etc/Authors/fredb.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/fredb.txt
BitKeeper/etc/Authors/fredb.txt@1.0 +0 -0
BitKeeper/etc/Authors/gerstung.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/gerstung.txt
BitKeeper/etc/Authors/gerstung.txt@1.0 +0 -0
BitKeeper/etc/Authors/ginsbach.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/ginsbach.txt
BitKeeper/etc/Authors/ginsbach.txt@1.0 +0 -0
BitKeeper/etc/Authors/gnu.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/gnu.txt
BitKeeper/etc/Authors/gnu.txt@1.0 +0 -0
BitKeeper/etc/Authors/gopal.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/gopal.txt
BitKeeper/etc/Authors/gopal.txt@1.0 +0 -0
BitKeeper/etc/Authors/gunturu.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/gunturu.txt
BitKeeper/etc/Authors/gunturu.txt@1.0 +0 -0
BitKeeper/etc/Authors/harlan.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/harlan.txt
BitKeeper/etc/Authors/harlan.txt@1.0 +0 -0
BitKeeper/etc/Authors/harlanst.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/harlanst.txt
BitKeeper/etc/Authors/harlanst.txt@1.0 +0 -0
BitKeeper/etc/Authors/hart.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/hart.txt
BitKeeper/etc/Authors/hart.txt@1.0 +0 -0
BitKeeper/etc/Authors/hilbrecht.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/hilbrecht.txt
BitKeeper/etc/Authors/hilbrecht.txt@1.0 +0 -0
BitKeeper/etc/Authors/hstenn.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/hstenn.txt
BitKeeper/etc/Authors/hstenn.txt@1.0 +0 -0
BitKeeper/etc/Authors/jhay.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/jhay.txt
BitKeeper/etc/Authors/jhay.txt@1.0 +0 -0
BitKeeper/etc/Authors/jnperlin.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/jnperlin.txt
BitKeeper/etc/Authors/jnperlin.txt@1.0 +0 -0
BitKeeper/etc/Authors/kamboj.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/kamboj.txt
BitKeeper/etc/Authors/kamboj.txt@1.0 +0 -0
BitKeeper/etc/Authors/kardel.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/kardel.txt
BitKeeper/etc/Authors/kardel.txt@1.0 +0 -0
BitKeeper/etc/Authors/karlsson.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/karlsson.txt
BitKeeper/etc/Authors/karlsson.txt@1.0 +0 -0
BitKeeper/etc/Authors/kuehn.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/kuehn.txt
BitKeeper/etc/Authors/kuehn.txt@1.0 +0 -0
BitKeeper/etc/Authors/linus.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/linus.txt
BitKeeper/etc/Authors/linus.txt@1.0 +0 -0
BitKeeper/etc/Authors/loki.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/loki.txt
BitKeeper/etc/Authors/loki.txt@1.0 +0 -0
BitKeeper/etc/Authors/martin.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/martin.txt
BitKeeper/etc/Authors/martin.txt@1.0 +0 -0
BitKeeper/etc/Authors/matthias.andree.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/matthias.andree.txt
BitKeeper/etc/Authors/matthias.andree.txt@1.0 +0 -0
BitKeeper/etc/Authors/mayer.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/mayer.txt
BitKeeper/etc/Authors/mayer.txt@1.0 +0 -0
BitKeeper/etc/Authors/mbrett.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/mbrett.txt
BitKeeper/etc/Authors/mbrett.txt@1.0 +0 -0
BitKeeper/etc/Authors/murray.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/murray.txt
BitKeeper/etc/Authors/murray.txt@1.0 +0 -0
BitKeeper/etc/Authors/neal.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/neal.txt
BitKeeper/etc/Authors/neal.txt@1.0 +0 -0
BitKeeper/etc/Authors/paul.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/paul.txt
BitKeeper/etc/Authors/paul.txt@1.0 +0 -0
BitKeeper/etc/Authors/peda.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/peda.txt
BitKeeper/etc/Authors/peda.txt@1.0 +0 -0
BitKeeper/etc/Authors/perlinger.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/perlinger.txt
BitKeeper/etc/Authors/perlinger.txt@1.0 +0 -0
BitKeeper/etc/Authors/phk.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/phk.txt
BitKeeper/etc/Authors/phk.txt@1.0 +0 -0
BitKeeper/etc/Authors/rayvt.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/rayvt.txt
BitKeeper/etc/Authors/rayvt.txt@1.0 +0 -0
BitKeeper/etc/Authors/rick.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/rick.txt
BitKeeper/etc/Authors/rick.txt@1.0 +0 -0
BitKeeper/etc/Authors/ro.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/ro.txt
BitKeeper/etc/Authors/ro.txt@1.0 +0 -0
BitKeeper/etc/Authors/root.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/root.txt
BitKeeper/etc/Authors/root.txt@1.0 +0 -0
BitKeeper/etc/Authors/skamboj.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/skamboj.txt
BitKeeper/etc/Authors/skamboj.txt@1.0 +0 -0
BitKeeper/etc/Authors/stenn.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/stenn.txt
BitKeeper/etc/Authors/stenn.txt@1.0 +0 -0
BitKeeper/etc/Authors/tflendrich.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/tflendrich.txt
BitKeeper/etc/Authors/tflendrich.txt@1.0 +0 -0
BitKeeper/etc/Authors/tomek.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/tomek.txt
BitKeeper/etc/Authors/tomek.txt@1.0 +0 -0
BitKeeper/etc/Authors/utterback.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/utterback.txt
BitKeeper/etc/Authors/utterback.txt@1.0 +0 -0
BitKeeper/etc/Authors/venu.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/venu.txt
BitKeeper/etc/Authors/venu.txt@1.0 +0 -0
BitKeeper/etc/Authors/viperus.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/viperus.txt
BitKeeper/etc/Authors/viperus.txt@1.0 +0 -0
BitKeeper/etc/Authors/wink.txt@1.1 +1 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/Authors/wink.txt
BitKeeper/etc/Authors/wink.txt@1.0 +0 -0
BitKeeper/etc/authors.txt@1.1 +58 -0
BitKeeper file /home/stenn/ntp-stable-p8/BitKeeper/etc/authors.txt
BitKeeper/etc/authors.txt@1.0 +0 -0
ChangeLog@1.1835 +3 -0
git author attribution cleanup
scripts/build/genAuthors.in@1.2 +7 -5
git author attribution cleanup
ChangeSet@1.3686, 2016-06-02 07:40:06-04:00, stenn@deacon.udel.edu
NTP_4_2_8P8
TAG: NTP_4_2_8P8
ChangeLog@1.1834 +1 -0
NTP_4_2_8P8
ntpd/invoke-ntp.conf.texi@1.200 +1 -1
NTP_4_2_8P8
ntpd/invoke-ntp.keys.texi@1.190 +1 -1
NTP_4_2_8P8
ntpd/invoke-ntpd.texi@1.506 +2 -2
NTP_4_2_8P8
ntpd/ntp.conf.5man@1.234 +3 -3
NTP_4_2_8P8
ntpd/ntp.conf.5mdoc@1.234 +2 -2
NTP_4_2_8P8
ntpd/ntp.conf.html@1.185 +55 -19
NTP_4_2_8P8
ntpd/ntp.conf.man.in@1.234 +3 -3
NTP_4_2_8P8
ntpd/ntp.conf.mdoc.in@1.234 +2 -2
NTP_4_2_8P8
ntpd/ntp.keys.5man@1.224 +2 -2
NTP_4_2_8P8
ntpd/ntp.keys.5mdoc@1.224 +2 -2
NTP_4_2_8P8
ntpd/ntp.keys.html@1.186 +1 -1
NTP_4_2_8P8
ntpd/ntp.keys.man.in@1.224 +2 -2
NTP_4_2_8P8
ntpd/ntp.keys.mdoc.in@1.224 +2 -2
NTP_4_2_8P8
ntpd/ntpd-opts.c@1.528 +7 -7
NTP_4_2_8P8
ntpd/ntpd-opts.h@1.527 +3 -3
NTP_4_2_8P8
ntpd/ntpd.1ntpdman@1.335 +3 -3
NTP_4_2_8P8
ntpd/ntpd.1ntpdmdoc@1.335 +2 -2
NTP_4_2_8P8
ntpd/ntpd.html@1.179 +2 -2
NTP_4_2_8P8
ntpd/ntpd.man.in@1.335 +3 -3
NTP_4_2_8P8
ntpd/ntpd.mdoc.in@1.335 +2 -2
NTP_4_2_8P8
ntpdc/invoke-ntpdc.texi@1.503 +2 -2
NTP_4_2_8P8
ntpdc/ntpdc-opts.c@1.521 +7 -7
NTP_4_2_8P8
ntpdc/ntpdc-opts.h@1.520 +3 -3
NTP_4_2_8P8
ntpdc/ntpdc.1ntpdcman@1.334 +3 -3
NTP_4_2_8P8
ntpdc/ntpdc.1ntpdcmdoc@1.334 +2 -2
NTP_4_2_8P8
ntpdc/ntpdc.html@1.347 +2 -2
NTP_4_2_8P8
ntpdc/ntpdc.man.in@1.334 +3 -3
NTP_4_2_8P8
ntpdc/ntpdc.mdoc.in@1.334 +2 -2
NTP_4_2_8P8
ntpq/invoke-ntpq.texi@1.511 +2 -2
NTP_4_2_8P8
ntpq/ntpq-opts.c@1.528 +7 -7
NTP_4_2_8P8
ntpq/ntpq-opts.h@1.526 +3 -3
NTP_4_2_8P8
ntpq/ntpq.1ntpqman@1.339 +3 -3
NTP_4_2_8P8
ntpq/ntpq.1ntpqmdoc@1.339 +2 -2
NTP_4_2_8P8
ntpq/ntpq.html@1.176 +2 -2
NTP_4_2_8P8
ntpq/ntpq.man.in@1.339 +3 -3
NTP_4_2_8P8
ntpq/ntpq.mdoc.in@1.339 +2 -2
NTP_4_2_8P8
ntpsnmpd/invoke-ntpsnmpd.texi@1.505 +2 -2
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd-opts.c@1.523 +7 -7
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd-opts.h@1.522 +3 -3
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.334 +3 -3
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.334 +2 -2
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd.html@1.174 +1 -1
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd.man.in@1.334 +3 -3
NTP_4_2_8P8
ntpsnmpd/ntpsnmpd.mdoc.in@1.334 +2 -2
NTP_4_2_8P8
packageinfo.sh@1.528 +2 -2
NTP_4_2_8P8
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.95 +3 -3
NTP_4_2_8P8
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.96 +2 -2
NTP_4_2_8P8
scripts/calc_tickadj/calc_tickadj.html@1.97 +1 -1
NTP_4_2_8P8
scripts/calc_tickadj/calc_tickadj.man.in@1.94 +3 -3
NTP_4_2_8P8
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.96 +2 -2
NTP_4_2_8P8
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.99 +1 -1
NTP_4_2_8P8
scripts/invoke-plot_summary.texi@1.117 +2 -2
NTP_4_2_8P8
scripts/invoke-summary.texi@1.116 +2 -2
NTP_4_2_8P8
scripts/ntp-wait/invoke-ntp-wait.texi@1.326 +2 -2
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait-opts@1.62 +2 -2
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.323 +3 -3
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.324 +2 -2
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait.html@1.343 +2 -2
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait.man.in@1.323 +3 -3
NTP_4_2_8P8
scripts/ntp-wait/ntp-wait.mdoc.in@1.324 +2 -2
NTP_4_2_8P8
scripts/ntpsweep/invoke-ntpsweep.texi@1.114 +2 -2
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep-opts@1.64 +2 -2
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.102 +3 -3
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.102 +2 -2
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep.html@1.115 +2 -2
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep.man.in@1.102 +3 -3
NTP_4_2_8P8
scripts/ntpsweep/ntpsweep.mdoc.in@1.103 +2 -2
NTP_4_2_8P8
scripts/ntptrace/invoke-ntptrace.texi@1.115 +2 -2
NTP_4_2_8P8
scripts/ntptrace/ntptrace-opts@1.64 +2 -2
NTP_4_2_8P8
scripts/ntptrace/ntptrace.1ntptraceman@1.102 +3 -3
NTP_4_2_8P8
scripts/ntptrace/ntptrace.1ntptracemdoc@1.103 +2 -2
NTP_4_2_8P8
scripts/ntptrace/ntptrace.html@1.116 +2 -2
NTP_4_2_8P8
scripts/ntptrace/ntptrace.man.in@1.102 +3 -3
NTP_4_2_8P8
scripts/ntptrace/ntptrace.mdoc.in@1.104 +2 -2
NTP_4_2_8P8
scripts/plot_summary-opts@1.65 +2 -2
NTP_4_2_8P8
scripts/plot_summary.1plot_summaryman@1.115 +3 -3
NTP_4_2_8P8
scripts/plot_summary.1plot_summarymdoc@1.115 +2 -2
NTP_4_2_8P8
scripts/plot_summary.html@1.118 +40 -58
NTP_4_2_8P8
scripts/plot_summary.man.in@1.115 +3 -3
NTP_4_2_8P8
scripts/plot_summary.mdoc.in@1.115 +2 -2
NTP_4_2_8P8
scripts/summary-opts@1.64 +2 -2
NTP_4_2_8P8
scripts/summary.1summaryman@1.114 +3 -3
NTP_4_2_8P8
scripts/summary.1summarymdoc@1.114 +2 -2
NTP_4_2_8P8
scripts/summary.html@1.117 +2 -2
NTP_4_2_8P8
scripts/summary.man.in@1.114 +3 -3
NTP_4_2_8P8
scripts/summary.mdoc.in@1.114 +2 -2
NTP_4_2_8P8
scripts/update-leap/invoke-update-leap.texi@1.15 +1 -1
NTP_4_2_8P8
scripts/update-leap/update-leap-opts@1.15 +2 -2
NTP_4_2_8P8
scripts/update-leap/update-leap.1update-leapman@1.15 +3 -3
NTP_4_2_8P8
scripts/update-leap/update-leap.1update-leapmdoc@1.15 +2 -2
NTP_4_2_8P8
scripts/update-leap/update-leap.html@1.15 +1 -1
NTP_4_2_8P8
scripts/update-leap/update-leap.man.in@1.15 +3 -3
NTP_4_2_8P8
scripts/update-leap/update-leap.mdoc.in@1.15 +2 -2
NTP_4_2_8P8
sntp/invoke-sntp.texi@1.503 +2 -2
NTP_4_2_8P8
sntp/sntp-opts.c@1.522 +7 -7
NTP_4_2_8P8
sntp/sntp-opts.h@1.520 +3 -3
NTP_4_2_8P8
sntp/sntp.1sntpman@1.338 +3 -3
NTP_4_2_8P8
sntp/sntp.1sntpmdoc@1.338 +2 -2
NTP_4_2_8P8
sntp/sntp.html@1.518 +2 -2
NTP_4_2_8P8
sntp/sntp.man.in@1.338 +3 -3
NTP_4_2_8P8
sntp/sntp.mdoc.in@1.338 +2 -2
NTP_4_2_8P8
util/invoke-ntp-keygen.texi@1.506 +2 -2
NTP_4_2_8P8
util/ntp-keygen-opts.c@1.524 +7 -7
NTP_4_2_8P8
util/ntp-keygen-opts.h@1.522 +3 -3
NTP_4_2_8P8
util/ntp-keygen.1ntp-keygenman@1.334 +3 -3
NTP_4_2_8P8
util/ntp-keygen.1ntp-keygenmdoc@1.334 +2 -2
NTP_4_2_8P8
util/ntp-keygen.html@1.180 +2 -2
NTP_4_2_8P8
util/ntp-keygen.man.in@1.334 +3 -3
NTP_4_2_8P8
util/ntp-keygen.mdoc.in@1.334 +2 -2
NTP_4_2_8P8
ChangeSet@1.3685, 2016-06-02 06:50:37-04:00, stenn@deacon.udel.edu
4.2.8p8
packageinfo.sh@1.527 +1 -1
4.2.8p8
ChangeSet@1.3684, 2016-05-27 08:02:09+00:00, stenn@psp-deb1.ntp.org
typo
NEWS@1.174 +1 -1
typo
ChangeSet@1.3683, 2016-05-27 00:07:22-07:00, harlan@max.pfcs.com
[Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn.
ChangeLog@1.1833 +2 -0
[Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn.
NEWS@1.173 +2 -0
[Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn.
ntpd/ntp_io.c@1.417 +41 -41
[Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback, JPerlinger, HStenn.
ChangeSet@1.3682, 2016-05-26 22:37:19-07:00, harlan@max.pfcs.com
[Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org
ChangeLog@1.1832 +2 -1
[Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org
NEWS@1.172 +9 -9
[Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org
ntpd/ntp_proto.c@1.392 +19 -6
[Sec3043] - validate origin timestamps on bad MACs, too. stenn@ntp.org
ChangeSet@1.3681, 2016-05-24 23:31:36+00:00, stenn@psp-deb1.ntp.org
Update the NEWS file for 4.2.8p8. HStenn.
ChangeLog@1.1831 +1 -0
Update the NEWS file for 4.2.8p8. HStenn.
NEWS@1.171 +103 -2
Update the NEWS file for 4.2.8p8. HStenn.
ChangeSet@1.3680, 2016-05-24 12:05:06+00:00, stenn@psp-deb1.ntp.org
[Sec 3044] Spoofed server packets are partially processed. HStenn.
ChangeLog@1.1830 +3 -2
[Sec 3044] Spoofed server packets are partially processed. HStenn.
ntpd/ntp_proto.c@1.391 +39 -24
[Sec 3044] Spoofed server packets are partially processed. HStenn.
ChangeSet@1.3669.4.2, 2016-05-24 02:58:00-07:00, harlan@hms-mbp11.pfcs.com
Make sure we have an "author" file for git imports. HStenn.
ChangeLog@1.1820.4.3 +1 -0
Update the problem tests for MacOS for sntp. HStenn.
ChangeLog@1.1820.4.2 +1 -0
Make sure we have an "author" file for git imports. HStenn.
configure.ac@1.606 +1 -0
Make sure we have an "author" file for git imports. HStenn.
scripts/build/Makefile.am@1.5 +1 -1
Make sure we have an "author" file for git imports. HStenn.
scripts/build/genAuthors.in@1.1 +82 -0
BitKeeper file /Users/harlan/src/ntp-stable/scripts/build/genAuthors.in
scripts/build/genAuthors.in@1.0 +0 -0
sntp/configure.ac@1.83 +2 -0
Make sure we have an "author" file for git imports. HStenn.
sntp/m4/ntp_problemtests.m4@1.5 +1 -0
Make sure we have an "author" file for git imports. HStenn.
sntp/m4/sntp_problemtests.m4@1.1 +47 -0
BitKeeper file /Users/harlan/src/ntp-stable/sntp/m4/sntp_problemtests.m4
sntp/m4/sntp_problemtests.m4@1.0 +0 -0
sntp/tests/Makefile.am@1.67 +8 -2
Update the problem tests for MacOS for sntp. HStenn.
ChangeSet@1.3669.4.1, 2016-05-24 02:25:46-07:00, harlan@hms-mbp11.pfcs.com
[Sec 3042] Broadcast Interleave. HStenn.
ChangeLog@1.1820.4.1 +4 -0
[Sec 3042] Broadcast Interleave. HStenn.
ntpd/ntp_proto.c@1.386.1.1 +69 -14
[Sec 3042] Broadcast Interleave. HStenn.
ChangeSet@1.3678, 2016-05-23 09:53:37+00:00, stenn@psp-deb1.ntp.org
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ChangeLog@1.1828 +1 -1
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
include/ntp.h@1.220 +1 -0
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/complete.conf.in@1.31 +1 -1
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/invoke-ntp.conf.texi@1.199 +23 -3
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/keyword-gen-utd@1.28 +1 -1
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/keyword-gen.c@1.34 +2 -1
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp.conf.5man@1.233 +27 -6
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp.conf.5mdoc@1.233 +24 -2
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp.conf.def@1.24 +22 -0
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp.conf.man.in@1.233 +27 -6
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp.conf.mdoc.in@1.233 +24 -2
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_config.c@1.338 +6 -2
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_keyword.h@1.30 +617 -597
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_parser.c@1.102 +1541 -1773
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_parser.h@1.66 +294 -306
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_parser.y@1.92 +2 -0
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ntpd/ntp_proto.c@1.389 +29 -8
[Sec 3043] Autokey association reset. perlinger@ntp.org, stenn@ntp.org
ChangeSet@1.3671.1.3, 2016-05-17 06:49:41+00:00, stenn@psp-deb1.ntp.org
[Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
ChangeLog@1.1822.1.3 +1 -0
[Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
html/miscopt.html@1.86 +2 -2
[Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
ChangeSet@1.3671.1.2, 2016-05-17 04:25:50+00:00, stenn@psp-deb1.ntp.org
[Bug 3052] Add a .gitignore file. Edmund Wong.
.gitignore@1.1 +9 -0
BitKeeper file /home/stenn/ntp-stable/.gitignore
.gitignore@1.0 +0 -0
BitKeeper/etc/ignore@1.91 +0 -1
[Bug 3052] Add a .gitignore file. Edmund Wong.
ChangeLog@1.1822.1.2 +1 -0
[Bug 3052] Add a .gitignore file. Edmund Wong.
ChangeSet@1.3669.3.2, 2016-05-10 12:11:43+00:00, abe@psp-deb1.ntp.org
refclock_jjy.c:
[Bug 3047] Correct typo in the comment line.
ntpd/refclock_jjy.c@1.32 +1 -1
[Bug 3047] Correct typo in the comment line.
ChangeSet@1.3675, 2016-05-08 11:59:28+02:00, perlinger@ntp.org
[Sec 3043] Autokey association reset. perlinger@ntp.org
(fixes [Sec 3044] and [Sec 3045], too)
ChangeLog@1.1825 +2 -0
[Sec 3043] Autokey association reset. perlinger@ntp.org
ntpd/ntp_proto.c@1.388 +28 -22
[Sec 3043] Autokey association reset. perlinger@ntp.org
(fixes [Sec 3044] and [Sec 3045], too)
ChangeSet@1.3669.3.1, 2016-05-08 07:34:11+00:00, abe@psp-deb1.ntp.org
driver40.html, refclock_jjy.c, driver40-ja.html, ChangeLog:
[Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
ChangeLog@1.1820.3.1 +2 -0
[Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
html/drivers/driver40-ja.html@1.5 +2 -2
[Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
html/drivers/driver40.html@1.20 +2 -2
[Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
ntpd/refclock_jjy.c@1.31 +7 -3
[Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
ChangeSet@1.3674, 2016-05-06 11:05:44+00:00, stenn@psp-deb1.ntp.org
[Sec 3046] CRYPTO_NAK crash
ChangeLog@1.1824 +1 -0
[Sec 3046] CRYPTO_NAK crash
ntpd/ntp_proto.c@1.387 +2 -1
[Sec 3046] CRYPTO_NAK crash
ChangeSet@1.3669.2.1, 2016-05-06 09:20:29+00:00, stenn@psp-deb1.ntp.org
Fix typo in ntp-wait and plot_summary. HStenn.
ChangeLog@1.1820.2.1 +4 -0
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/invoke-plot_summary.texi@1.116 +2 -2
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/ntp-wait/ntp-wait.in@1.12 +1 -1
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary-opts@1.64 +1 -1
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary-opts.def@1.3 +1 -1
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary.1plot_summaryman@1.114 +4 -4
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary.1plot_summarymdoc@1.114 +3 -3
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary.html@1.117 +58 -40
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary.man.in@1.114 +4 -4
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/plot_summary.mdoc.in@1.114 +3 -3
Fix typo in ntp-wait and plot_summary. HStenn.
scripts/t/ntp-wait.t@1.2 +1 -1
Fix typo in ntp-wait and plot_summary. HStenn.
ChangeSet@1.3672, 2016-05-05 06:17:20+00:00, stenn@psp-deb1.ntp.org
Update NEWS file for 4.2.8p9 for Bug 3038
NEWS@1.170 +9 -0
Update NEWS file for 4.2.8p9 for Bug 3038
ChangeSet@1.3671, 2016-05-05 06:09:53+00:00, stenn@psp-deb1.ntp.org
trivial cleanup
ChangeLog@1.1822 +1 -0
trivial cleanup
ChangeSet@1.3670, 2016-04-27 21:54:12+02:00, perlinger@ntp.org
[Bug 3038] NTP fails to build in VS2015 Community Edition
- new build environment
- 'wint_t' and 'struct timespec' defined by VS2015
- fixed several format clashes in 'printf()' and 'scanf'
BitKeeper/etc/ignore@1.90 +1 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- skip next version of MSVC symbol database
ChangeLog@1.1821 +6 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
ntpd/refclock_parse.c@1.83 +6 -6
[Bug 3038] NTP fails to build in VS2015 Community Edition
- work around clash SOCKET vs file descriptor formatting
ntpdc/ntpdc.c@1.107 +2 -2
[Bug 3038] NTP fails to build in VS2015 Community Edition
- fix format warnings/errors
ntpq/ntpq.c@1.170 +5 -2
[Bug 3038] NTP fails to build in VS2015 Community Edition
- fix format warnings/errors
ports/winnt/include/config.h@1.115 +4 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- VS2015 has 'wint_t'
ports/winnt/include/sys/time.h@1.9 +2 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- VS2015 has 'struct timespec'
ports/winnt/libntp/termios.c@1.33 +3 -3
[Bug 3038] NTP fails to build in VS2015 Community Edition
- fix format parsing error
ports/winnt/ppsapi/loopback/src/sys/time.h@1.2 +2 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- VS2015 has 'struct timespec'
ports/winnt/vs2013/common.props@1.3 +1 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
-enable multiprocessor build
ports/winnt/vs2015/common.props@1.1 +60 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/common.props@1.0 +0 -0
ports/winnt/vs2015/debug-x64.props@1.1 +24 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/debug-x64.props@1.0 +0 -0
ports/winnt/vs2015/debug.props@1.1 +24 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/debug.props@1.0 +0 -0
ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.1 +269 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/instsrv/instsrv.vcxproj@1.0 +0 -0
ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.1 +28 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/instsrv/instsrv.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/libntp/libntp.vcxproj@1.1 +431 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/libntp/libntp.vcxproj@1.0 +0 -0
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.1 +574 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/libntp/libntp.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.1 +252 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj@1.0 +0 -0
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.1 +39 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.1 +270 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj.filters@1.1 +36 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntp-keygen/ntp-keygen.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntp.sln@1.1 +166 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntp.sln@1.0 +0 -0
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.1 +227 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.1 +69 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.1 +53 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpd/gen-ntp_keyword.bat@1.0 +0 -0
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.1 +515 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpd/ntpd.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.1 +556 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpd/ntpd.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.1 +287 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.1 +72 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpdate/ntpdate.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.1 +278 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj.filters@1.1 +45 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpdc/ntpdc.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.1 +277 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpq/ntpq.vcxproj@1.0 +0 -0
ports/winnt/vs2015/ntpq/ntpq.vcxproj.filters@1.1 +42 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/ntpq/ntpq.vcxproj.filters@1.0 +0 -0
ports/winnt/vs2015/release-x64.props@1.1 +25 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/release-x64.props@1.0 +0 -0
ports/winnt/vs2015/release.props@1.1 +25 -0
[Bug 3038] NTP fails to build in VS2015 Community Edition
- add build environment
ports/winnt/vs2015/release.props@1.0 +0 -0
ChangeSet@1.3669, 2016-04-26 20:30:51-04:00, stenn@deacon.udel.edu
NTP_4_2_8P7
TAG: NTP_4_2_8P7
ChangeLog@1.1820 +1 -0
NTP_4_2_8P7
ntpd/invoke-ntp.conf.texi@1.198 +38 -20
NTP_4_2_8P7
ntpd/invoke-ntp.keys.texi@1.189 +1 -1
NTP_4_2_8P7
ntpd/invoke-ntpd.texi@1.505 +2 -2
NTP_4_2_8P7
ntpd/ntp.conf.5man@1.232 +43 -24
NTP_4_2_8P7
ntpd/ntp.conf.5mdoc@1.232 +40 -18
NTP_4_2_8P7
ntpd/ntp.conf.html@1.184 +34 -10
NTP_4_2_8P7
ntpd/ntp.conf.man.in@1.232 +43 -24
NTP_4_2_8P7
ntpd/ntp.conf.mdoc.in@1.232 +40 -18
NTP_4_2_8P7
ntpd/ntp.keys.5man@1.223 +2 -2
NTP_4_2_8P7
ntpd/ntp.keys.5mdoc@1.223 +2 -2
NTP_4_2_8P7
ntpd/ntp.keys.html@1.185 +1 -1
NTP_4_2_8P7
ntpd/ntp.keys.man.in@1.223 +2 -2
NTP_4_2_8P7
ntpd/ntp.keys.mdoc.in@1.223 +2 -2
NTP_4_2_8P7
ntpd/ntpd-opts.c@1.527 +7 -7
NTP_4_2_8P7
ntpd/ntpd-opts.h@1.526 +3 -3
NTP_4_2_8P7
ntpd/ntpd.1ntpdman@1.334 +3 -3
NTP_4_2_8P7
ntpd/ntpd.1ntpdmdoc@1.334 +2 -2
NTP_4_2_8P7
ntpd/ntpd.html@1.178 +2 -2
NTP_4_2_8P7
ntpd/ntpd.man.in@1.334 +3 -3
NTP_4_2_8P7
ntpd/ntpd.mdoc.in@1.334 +2 -2
NTP_4_2_8P7
ntpdc/invoke-ntpdc.texi@1.502 +2 -2
NTP_4_2_8P7
ntpdc/ntpdc-opts.c@1.520 +7 -7
NTP_4_2_8P7
ntpdc/ntpdc-opts.h@1.519 +3 -3
NTP_4_2_8P7
ntpdc/ntpdc.1ntpdcman@1.333 +3 -3
NTP_4_2_8P7
ntpdc/ntpdc.1ntpdcmdoc@1.333 +2 -2
NTP_4_2_8P7
ntpdc/ntpdc.html@1.346 +2 -2
NTP_4_2_8P7
ntpdc/ntpdc.man.in@1.333 +3 -3
NTP_4_2_8P7
ntpdc/ntpdc.mdoc.in@1.333 +2 -2
NTP_4_2_8P7
ntpq/invoke-ntpq.texi@1.510 +2 -2
NTP_4_2_8P7
ntpq/ntpq-opts.c@1.527 +7 -7
NTP_4_2_8P7
ntpq/ntpq-opts.h@1.525 +3 -3
NTP_4_2_8P7
ntpq/ntpq.1ntpqman@1.338 +3 -3
NTP_4_2_8P7
ntpq/ntpq.1ntpqmdoc@1.338 +2 -2
NTP_4_2_8P7
ntpq/ntpq.html@1.175 +36 -6
NTP_4_2_8P7
ntpq/ntpq.man.in@1.338 +3 -3
NTP_4_2_8P7
ntpq/ntpq.mdoc.in@1.338 +2 -2
NTP_4_2_8P7
ntpsnmpd/invoke-ntpsnmpd.texi@1.504 +2 -2
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd-opts.c@1.522 +7 -7
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd-opts.h@1.521 +3 -3
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.333 +3 -3
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.333 +2 -2
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd.html@1.173 +1 -1
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd.man.in@1.333 +3 -3
NTP_4_2_8P7
ntpsnmpd/ntpsnmpd.mdoc.in@1.333 +2 -2
NTP_4_2_8P7
packageinfo.sh@1.526 +2 -2
NTP_4_2_8P7
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.94 +3 -3
NTP_4_2_8P7
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.95 +2 -2
NTP_4_2_8P7
scripts/calc_tickadj/calc_tickadj.html@1.96 +1 -1
NTP_4_2_8P7
scripts/calc_tickadj/calc_tickadj.man.in@1.93 +3 -3
NTP_4_2_8P7
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.95 +2 -2
NTP_4_2_8P7
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.98 +1 -1
NTP_4_2_8P7
scripts/invoke-plot_summary.texi@1.115 +2 -2
NTP_4_2_8P7
scripts/invoke-summary.texi@1.115 +2 -2
NTP_4_2_8P7
scripts/ntp-wait/invoke-ntp-wait.texi@1.325 +2 -2
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait-opts@1.61 +2 -2
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.322 +3 -3
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.323 +2 -2
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait.html@1.342 +2 -2
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait.man.in@1.322 +3 -3
NTP_4_2_8P7
scripts/ntp-wait/ntp-wait.mdoc.in@1.323 +2 -2
NTP_4_2_8P7
scripts/ntpsweep/invoke-ntpsweep.texi@1.113 +2 -2
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep-opts@1.63 +2 -2
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.101 +3 -3
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.101 +2 -2
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep.html@1.114 +2 -2
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep.man.in@1.101 +3 -3
NTP_4_2_8P7
scripts/ntpsweep/ntpsweep.mdoc.in@1.102 +2 -2
NTP_4_2_8P7
scripts/ntptrace/invoke-ntptrace.texi@1.114 +2 -2
NTP_4_2_8P7
scripts/ntptrace/ntptrace-opts@1.63 +2 -2
NTP_4_2_8P7
scripts/ntptrace/ntptrace.1ntptraceman@1.101 +3 -3
NTP_4_2_8P7
scripts/ntptrace/ntptrace.1ntptracemdoc@1.102 +2 -2
NTP_4_2_8P7
scripts/ntptrace/ntptrace.html@1.115 +2 -2
NTP_4_2_8P7
scripts/ntptrace/ntptrace.man.in@1.101 +3 -3
NTP_4_2_8P7
scripts/ntptrace/ntptrace.mdoc.in@1.103 +2 -2
NTP_4_2_8P7
scripts/plot_summary-opts@1.63 +2 -2
NTP_4_2_8P7
scripts/plot_summary.1plot_summaryman@1.113 +3 -3
NTP_4_2_8P7
scripts/plot_summary.1plot_summarymdoc@1.113 +2 -2
NTP_4_2_8P7
scripts/plot_summary.html@1.116 +2 -2
NTP_4_2_8P7
scripts/plot_summary.man.in@1.113 +3 -3
NTP_4_2_8P7
scripts/plot_summary.mdoc.in@1.113 +2 -2
NTP_4_2_8P7
scripts/summary-opts@1.63 +2 -2
NTP_4_2_8P7
scripts/summary.1summaryman@1.113 +3 -3
NTP_4_2_8P7
scripts/summary.1summarymdoc@1.113 +2 -2
NTP_4_2_8P7
scripts/summary.html@1.116 +2 -2
NTP_4_2_8P7
scripts/summary.man.in@1.113 +3 -3
NTP_4_2_8P7
scripts/summary.mdoc.in@1.113 +2 -2
NTP_4_2_8P7
scripts/update-leap/invoke-update-leap.texi@1.14 +1 -1
NTP_4_2_8P7
scripts/update-leap/update-leap-opts@1.14 +2 -2
NTP_4_2_8P7
scripts/update-leap/update-leap.1update-leapman@1.14 +3 -3
NTP_4_2_8P7
scripts/update-leap/update-leap.1update-leapmdoc@1.14 +2 -2
NTP_4_2_8P7
scripts/update-leap/update-leap.html@1.14 +1 -1
NTP_4_2_8P7
scripts/update-leap/update-leap.man.in@1.14 +3 -3
NTP_4_2_8P7
scripts/update-leap/update-leap.mdoc.in@1.14 +2 -2
NTP_4_2_8P7
sntp/invoke-sntp.texi@1.502 +2 -2
NTP_4_2_8P7
sntp/sntp-opts.c@1.521 +7 -7
NTP_4_2_8P7
sntp/sntp-opts.h@1.519 +3 -3
NTP_4_2_8P7
sntp/sntp.1sntpman@1.337 +3 -3
NTP_4_2_8P7
sntp/sntp.1sntpmdoc@1.337 +2 -2
NTP_4_2_8P7
sntp/sntp.html@1.517 +2 -2
NTP_4_2_8P7
sntp/sntp.man.in@1.337 +3 -3
NTP_4_2_8P7
sntp/sntp.mdoc.in@1.337 +2 -2
NTP_4_2_8P7
util/invoke-ntp-keygen.texi@1.505 +2 -2
NTP_4_2_8P7
util/ntp-keygen-opts.c@1.523 +7 -7
NTP_4_2_8P7
util/ntp-keygen-opts.h@1.521 +3 -3
NTP_4_2_8P7
util/ntp-keygen.1ntp-keygenman@1.333 +3 -3
NTP_4_2_8P7
util/ntp-keygen.1ntp-keygenmdoc@1.333 +2 -2
NTP_4_2_8P7
util/ntp-keygen.html@1.179 +2 -2
NTP_4_2_8P7
util/ntp-keygen.man.in@1.333 +3 -3
NTP_4_2_8P7
util/ntp-keygen.mdoc.in@1.333 +2 -2
NTP_4_2_8P7
ChangeSet@1.3668, 2016-04-26 20:07:48-04:00, stenn@deacon.udel.edu
ntp-4.2.8p7
packageinfo.sh@1.525 +1 -1
ntp-4.2.8p7
ChangeSet@1.3667, 2016-04-26 23:24:25+00:00, stenn@psp-deb1.ntp.org
4.2.8p7 documentation cleanup
ChangeLog@1.1819 +9 -9
4.2.8p7 documentation cleanup
NEWS@1.169 +123 -36
4.2.8p7 documentation cleanup
ChangeSet@1.3666, 2016-04-24 09:17:06+00:00, stenn@psp-deb1.ntp.org
[Bug 3036] autokey trips an INSIST in authistrustedip()
ntpd/ntp_proto.c@1.386 +0 -1
[Bug 3036] autokey trips an INSIST in authistrustedip()
ChangeSet@1.3665, 2016-04-21 23:42:43+00:00, stenn@psp-deb1.ntp.org
Update 3007
NEWS@1.168 +1 -1
Update 3007
ChangeSet@1.3664, 2016-04-21 23:29:30+00:00, stenn@psp-deb1.ntp.org
[Bug 3007] Fix bug in crypto-NAK check
ChangeLog@1.1818 +1 -1
[Bug 3007] Fix bug in crypto-NAK check
ntpd/ntp_proto.c@1.385 +3 -1
[Bug 3007] Fix bug in crypto-NAK check
ChangeSet@1.3663, 2016-04-21 09:29:31+00:00, stenn@psp-deb1.ntp.org
[Bug 3036] autokey trips an INSIST in authistrustedip()
NEWS@1.167 +1 -0
[Bug 3036] autokey trips an INSIST in authistrustedip()
ChangeSet@1.3661, 2016-04-21 09:24:12+00:00, stenn@psp-deb1.ntp.org
tweak some ntp_proto.c timestamp log messages
ntpd/ntp_proto.c@1.383 +4 -3
tweak some ntp_proto.c timestamp log messages
ChangeSet@1.3630.1.17, 2016-04-21 09:11:51+00:00, stenn@psp-deb1.ntp.org
[Bug 3036] autokey trips an INSIST in authistrustedip()
ChangeLog@1.1794.1.15 +1 -0
[Bug 3036] autokey trips an INSIST in authistrustedip()
ntpd/ntp_proto.c@1.373.2.7 +6 -1
[Bug 3036] autokey trips an INSIST in authistrustedip()
ChangeSet@1.3660, 2016-04-19 05:29:57+00:00, stenn@psp-deb1.ntp.org
Windows cleanup for Bug 2978 mitigation
ports/winnt/include/config.h@1.114 +6 -0
Windows cleanup for Bug 2978 mitigation
ChangeSet@1.3659, 2016-04-18 05:38:06+00:00, stenn@psp-deb1.ntp.org
4.2.8p7 update: [Bug 2831] Segmentation Fault in DNS lookup during startup
NEWS@1.166 +2 -0
4.2.8p7 update: [Bug 2831] Segmentation Fault in DNS lookup during startup
ChangeSet@1.3630.15.1, 2016-04-18 06:07:25+02:00, perlinger@ntp.org
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code.
ChangeLog@1.1794.15.1 +2 -0
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code.
include/ntp_worker.h@1.7 +2 -0
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code: global locker prototype
libntp/ntp_intres.c@1.100 +20 -28
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code:
lock global context table during access
remove dangerous wrapper
libntp/work_fork.c@1.14.1.1 +5 -0
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code: global locker dummy
libntp/work_thread.c@1.21 +23 -0
[Bug 2831] Segmentation Fault in DNS lookup during startup.
- fixed yet another race condition in the threaded resolver code: create&handle global lock
ChangeSet@1.3657, 2016-04-16 07:59:23+00:00, stenn@psp-deb1.ntp.org
type
NEWS@1.165 +1 -1
type
ChangeSet@1.3656, 2016-04-14 09:03:11+00:00, stenn@psp-deb1.ntp.org
Update the NEWS file for 4.2.8p7
NEWS@1.164 +7 -0
Update the NEWS file for 4.2.8p7
ChangeSet@1.3655, 2016-04-14 01:59:45+00:00, stenn@psp-deb1.ntp.org
[Sec 2978] Interleave can be partially triggered
ChangeLog@1.1815 +1 -0
[Sec 2978] Interleave can be partially triggered
configure.ac@1.605 +22 -0
[Sec 2978] Interleave can be partially triggered
ntpd/ntp_proto.c@1.382 +11 -3
[Sec 2978] Interleave can be partially triggered
ChangeSet@1.3654, 2016-04-14 01:46:50+00:00, stenn@psp-deb1.ntp.org
Update the NEWS file for 4.2.8p7
NEWS@1.163 +168 -26
Update the NEWS file for 4.2.8p7
ChangeSet@1.3653, 2016-04-12 22:29:18+00:00, stenn@psp-deb1.ntp.org
4.2.8p7 prep
NEWS@1.162 +105 -5
4.2.8p7 prep
ChangeSet@1.3652, 2016-04-12 09:01:09+00:00, stenn@psp-deb1.ntp.org
Credit Aleksandr Kostikov on bug 3019
ChangeLog@1.1814 +1 -0
Credit Aleksandr Kostikov on bug 3019
ChangeSet@1.3630.13.6, 2016-04-12 07:43:08+00:00, stenn@psp-deb1.ntp.org
comment tweak
ntpd/ntp_proto.c@1.373.2.6 +1 -1
comment tweak
ChangeSet@1.3650, 2016-04-11 20:26:29-07:00, harlan@max.pfcs.com
[Bug 2952] Symmetric active/passive mode is broken
ChangeLog@1.1812 +1 -0
[Bug 2952] Symmetric active/passive mode is broken
ntpd/ntp_proto.c@1.380 +21 -12
[Bug 2952] Symmetric active/passive mode is broken
ChangeSet@1.3649, 2016-04-11 19:56:06-07:00, harlan@max.pfcs.com
Cleanup to include/ntp.h
ChangeLog@1.1811 +1 -0
Cleanup to include/ntp.h
include/ntp.h@1.218 +7 -0
cleanup
ChangeSet@1.3630.13.5, 2016-04-01 19:18:25+02:00, jnperlin@nemesis.localnet
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed
- adjust pull cycle of broadcast client to trensmission of brodcast server
libntp/ntp_worker.c@1.7.1.1 +1 -1
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed
- side kick: fix annoying signed/unsigned clash
ntpd/ntp_proto.c@1.373.2.5 +1 -0
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed
- adjust pull cycle of broadcast client to trensmission of brodcast server
ChangeSet@1.3630.13.4, 2016-03-30 23:55:33+02:00, jnperlin@nemesis.localnet
[Bug 3031] modify deadband
ntpd/ntp_proto.c@1.373.2.4 +13 -12
[Bug 3031] broadcast issues
- modify deadband for first round after volley
ChangeSet@1.3630.14.1, 2016-03-30 17:28:04+00:00, perlinger@psp-deb1.ntp.org
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
- Check the initial delay calculation and reject/unpeer the broadcast server if the delay exceeds
the cutoff limit. (default 50ms)
Retry again after the next broadcast packet.
ChangeLog@1.1794.14.1 +5 -0
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
ntpd/ntp_io.c@1.414.3.1 +28 -10
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
- improve/fix handling of opening broadcast sockets (-> EADDRNOTAVAIL)
ntpd/ntp_proto.c@1.373.3.1 +23 -4
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
- Check the initial delay calculation and reject/unpeer the broadcast server if the delay exceeds 50ms.
Retry again after the next broadcast packet.
- the absolute value of negative broadcastdelays is cutoff limit for peer removal.
ChangeSet@1.3630.13.2, 2016-03-30 19:23:06+02:00, jnperlin@nemesis.localnet
[Bug 3031]
ntpd/ntp_io.c@1.414.2.1 +28 -10
[Bug 3031]
- improve/fix handling of opening broadcast sockets (-> EADDRNOTAVAIL)
ntpd/ntp_proto.c@1.373.2.2 +14 -6
[Bug 3031]
- the absolute value of negative broadcastdelays is cutoff limit for peer removal
ChangeSet@1.3630.1.14, 2016-03-30 10:29:07+00:00, stenn@psp-deb1.ntp.org
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
ChangeLog@1.1794.1.12 +2 -0
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
libntp/work_fork.c@1.15 +1 -1
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
ntpd/ntp_timer.c@1.96 +6 -0
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
ntpd/ntpd.c@1.171 +15 -0
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
sntp/m4/ntp_libntp.m4@1.33 +1 -0
[Bug 2960] async name resolution fixes for chroot() environments. Reinhard Max
ChangeSet@1.3630.13.1, 2016-03-29 18:22:03+02:00, perlinger@ntp.org
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
- Check the initial delay calculation and reject/unpeer the broadcast server if the delay exceeds 50ms.
Retry again after the next broadcast packet.
ChangeLog@1.1794.13.1 +5 -0
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
ntpd/ntp_proto.c@1.373.2.1 +11 -0
[Bug 3031] ntp broadcastclient unable to synchronize to an server when the time of server changed.
- Check the initial delay calculation and reject/unpeer the broadcast server if the delay exceeds 50ms.
Retry again after the next broadcast packet.
ChangeSet@1.3630.12.1, 2016-03-27 23:59:51+02:00, jnperlin@nemesis.localnet
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- complete refurbishment of overlapped IO engine
- cleanup
ChangeLog@1.1794.12.1 +2 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- work around windows network issues, improve overlapped IO. perlinger@ntp.org
include/ntp.h@1.216.1.1 +1 -0
[Bug 3019] NTPD stops processing packets ERROR_HOST_UNREACHABLE
- add IOCPL registration handle to interface
include/ntp_refclock.h@1.38 +2 -1
[Bug 3019] NTPD stops processing packets ERROR_HOST_UNREACHABLE
- add IOCPL registration handle to RIO structure
include/recvbuff.h@1.26 +2 -2
[Bug 3019] NTPD stops processing packets ERROR_HOST_UNREACHABLE
- fix SOCKET vs. FD clash
- 'get_free_recv_buffer_alloc()': extended comment
libntp/ntp_worker.c@1.8 +1 -1
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- fix signed/unsigned clash
libntp/recvbuff.c@1.41 +15 -13
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- API cleanup: accept and silently ignore NULL pointer in 'freerecvbuf()'
- fix SOCKET vs. FD clash
ntpd/ntp_io.c@1.414.1.1 +42 -12
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- first invalidate FDs in shared structure, then close handles
- defer free() via cooling pond when doing overlapped IO
---
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- proper wiring to IO completion ports
---
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- first invalidate FDs in shared structure, then close handles
- defer free() via cooling pond when doing overlapped IO
- proper wiring to IO completion ports
---
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- wired the needed unregistration functions for overlapped IO
ports/winnt/include/ntp_iocompletionport.h@1.22 +17 -10
Bug 3019 - NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- extend API to provide essential information
- added missing unregistration functions to API
ports/winnt/include/ntp_iocplmem.h@1.1 +24 -0
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- refactored IOCPL heap into separate file
ports/winnt/include/ntp_iocplmem.h@1.0 +0 -0
ports/winnt/include/ntp_iocpltypes.h@1.1 +160 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- refactored helper objects (locks, PPS/device context, IO context,...) into separate file
ports/winnt/include/ntp_iocpltypes.h@1.0 +0 -0
ports/winnt/ntpd/ntp_iocompletionport.c@1.73 +875 -791
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- make sure ALL operations are overlapped for sockets
- use APC queue for deferred error processing
- take extra care to deal with interfaces/clocks being removed while overlapped IO in flight
- minor WINAPI cleanups (VS2008 vs VS2013)
- extend API to provide essential information
- better context checking
- implemented the missing unregistration functions
- implemented shared locking between clocks/interfaces and IO operations
- made sure minimal locking is engaged
- fixed / locked / avoided access to global / shared values from IO thread
- made sure interfaces and clocks cannot be deleted wile accessed from worker thread
- made sure feeding the receive queue stops with deregistration
In other words, a complete refurbishment.
- further refactoring, better handling of received packets
ports/winnt/ntpd/ntp_iocplmem.c@1.1 +123 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- refactored IOCPL heap into separate file
ports/winnt/ntpd/ntp_iocplmem.c@1.0 +0 -0
ports/winnt/ntpd/ntp_iocpltypes.c@1.1 +366 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- refactored helper objects (locks, PPS/device context, IO context,...) into separate file
ports/winnt/ntpd/ntp_iocpltypes.c@1.0 +0 -0
ports/winnt/ntpd/ntservice.c@1.30 +13 -3
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- log request from SCM in INFO level
ports/winnt/vs2005/ntpd.vcproj@1.21 +8 -18
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- added ntp_iocpl{mem,types}.c to sources.
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.51 +16 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- added ntp_iocpl{mem,types}.c to sources.
ports/winnt/vs2013/debug-x64.props@1.2 +1 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- sidekick: property sheet name
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.7.1.1 +3 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- auto update
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.9 +4 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- added ntp_iocpl{mem,types}.c to sources.
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.6 +12 -0
[Bug 3019] NTPD stops processing packets after hitting ERROR_HOST_UNREACHABLE
- auto update
ports/winnt/vs2013/release-x64.props@1.2 +1 -0
[Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- sidekick: property sheet name
ChangeSet@1.3630.1.12, 2016-03-19 09:09:07+00:00, stenn@psp-deb1.ntp.org
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
tests/ntpq/Makefile.am@1.9 +1 -0
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ChangeSet@1.3630.1.10, 2016-03-16 09:22:31+00:00, stenn@psp-deb1.ntp.org
Add README.pullrequests. Harlan Stenn
ChangeLog@1.1794.1.9 +1 -0
Add README.pullrequests. Harlan Stenn
Makefile.am@1.135 +1 -0
Add README.pullrequests. Harlan Stenn
README.pullrequests@1.1 +90 -0
BitKeeper file /home/stenn/ntp-stable/README.pullrequests
README.pullrequests@1.0 +0 -0
ChangeSet@1.3630.11.1, 2016-03-16 08:46:16+00:00, stenn@psp-deb1.ntp.org
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ChangeLog@1.1794.11.1 +1 -0
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/invoke-ntpq.texi@1.509 +28 -1
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq-opts.c@1.526 +108 -50
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq-opts.def@1.27 +12 -0
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq-opts.h@1.524 +21 -8
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq-subs.c@1.116.1.1 +17 -10
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.1ntpqman@1.337 +24 -3
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.1ntpqmdoc@1.337 +22 -2
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.c@1.169 +53 -2
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.h@1.32 +3 -0
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.man.in@1.337 +24 -3
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ntpq/ntpq.mdoc.in@1.337 +22 -2
[Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
ChangeSet@1.3630.10.1, 2016-03-01 08:30:22+01:00, perlinger@ntp.org
[Bug 3023] ntpdate cannot correct dates in the future.
ChangeLog@1.1794.10.1 +1 -0
[Bug 3023] ntpdate cannot correct dates in the future.
ntpdate/ntpdate.c@1.98 +9 -5
[Bug 3023] ntpdate cannot correct dates in the future.
ChangeSet@1.3642, 2016-03-01 05:46:29+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1805 +0 -1
cleanup
ChangeSet@1.3641, 2016-02-29 23:01:01+00:00, stenn@psp-deb1.ntp.org
[Sec 3020] Refclock impersonation. HStenn.
ChangeLog@1.1804 +1 -0
[Sec 3020] Refclock impersonation. HStenn.
configure.ac@1.604 +18 -0
[Sec 3020] Refclock impersonation. HStenn.
ntpd/ntp_io.c@1.415 +12 -0
[Sec 3020] Refclock impersonation. HStenn.
ChangeSet@1.3630.9.1, 2016-02-29 20:03:59+01:00, jnperlin@hydra.localnet
[Bug 3022] authkeys.c should be refactored
ChangeLog@1.1794.9.1 +4 -0
[Bug 3022] authkeys.c should be refactored
include/ntp_keyacc.h@1.2 +6 -0
[Bug 3022] authkeys.c should be refactored
- refactoring of key access handling
libntp/authkeys.c@1.34 +146 -85
[Bug 3022] authkeys.c should be refactored
- refactoring of key access handling
- fixed memory leak in access list
libntp/authreadkeys.c@1.25.1.1 +52 -44
[Bug 3022] authkeys.c should be refactored
- refactoring of key access handling
- reduced number of error branches
ChangeSet@1.3638.2.2, 2016-02-22 05:33:56+00:00, stenn@psp-deb1.ntp.org
[Sec 3008] Always check the return value of ctl_getitem(). HStenn.
ChangeLog@1.1801.2.1 +1 -0
[Sec 3008] Always check the return value of ctl_getitem(). HStenn.
ntpd/ntp_control.c@1.206.2.1 +11 -2
[Sec 3008] Always check the return value of ctl_getitem(). HStenn.
ChangeSet@1.3638.2.1, 2016-02-22 05:12:39+00:00, stenn@psp-deb1.ntp.org
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.def@1.23 +38 -16
Update ntp.conf documentation. Harlan Stenn.
ChangeSet@1.3638.1.3, 2016-02-22 03:39:39+00:00, stenn@psp-deb1.ntp.org
Bug 3007 cleanup
ntpd/ntp_proto.c@1.379 +4 -1
Bug 3007 cleanup
ChangeSet@1.3630.8.1, 2016-02-21 15:09:37+01:00, perlinger@ntp.org
[Bug 3009] Crafted addpeer with hmode > 7 causes OOB error
ChangeLog@1.1794.8.1 +2 -0
[Bug 3009] Crafted addpeer with hmode > 7 causes OOB error
ntpd/ntp_request.c@1.117.2.1 +29 -2
[Bug 3009] Crafted addpeer with hmode > 7 causes OOB error
- added more stringent checks on packet content:
hmode <= 6 (7 is already out of range for a peer mode!)
ChangeSet@1.3630.7.2, 2016-02-21 09:39:25+01:00, perlinger@ntp.org
Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
- sidekick: Ignore keys that have an unsupported MAC algorithm but are otherwise well-formed
ChangeLog@1.1794.7.2 +2 -0
Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
- sidekick: Ignore keys that have an unsupported MAC algorithm but are otherwise well-formed
libntp/authreadkeys.c@1.26 +48 -26
[Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
- sidekick: Ignore keys that have an unsupported MAC algorithm but are otherwise well-formed
ChangeSet@1.3630.7.1, 2016-02-19 22:42:25+01:00, perlinger@ntp.org
[Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
ChangeLog@1.1794.7.1 +2 -0
[Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
ntpd/ntp_request.c@1.117.1.1 +41 -25
[Bug 3010] remote configuration trustedkey/requestkey values are not properly validated
- make sure the new keyids are valid static key IDs and present in the key table
ChangeSet@1.3630.6.1, 2016-02-19 19:47:31+01:00, perlinger@ntp.org
[Bug 3013] Fix for ssl_init.c SHA1 test
ChangeLog@1.1794.6.1 +2 -0
[Bug 3013] Fix for ssl_init.c SHA1 test
tests/libntp/ssl_init.c@1.9 +2 -2
[Bug 3013] Fix for ssl_init.c SHA1 test
- Require SHA1 explicitely, to avoid confusion with (deprecated) SHA0.
Patch provided by Ch. Weisgerber
ChangeSet@1.3630.5.1, 2016-02-17 18:36:10+01:00, perlinger@ntp.org
[Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
ChangeLog@1.1794.5.1 +3 -0
[Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
ntpq/ntpq-subs.c@1.117 +35 -16
[Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
- remove trailing whitespace in remote config command
- remove comments, too.
ChangeSet@1.3639, 2016-02-17 09:30:05+01:00, jnperlin@hydra.localnet
[Bug 3008] ctl_getitem() return value not always checked
ChangeLog@1.1802 +3 -0
[Bug 3008] ctl_getitem() return value not always checked
ntpd/ntp_control.c@1.206.1.1 +101 -58
[Bug 3008] ctl_getitem() return value not always checked
- also some cleanup of ctl_getitem
ChangeSet@1.3630.3.3, 2016-02-14 10:15:57+00:00, stenn@psp-deb1.ntp.org
Fix typo in html/monopt.html. Harlan Stenn.
ChangeLog@1.1794.3.3 +1 -0
Fix typo in html/monopt.html. Harlan Stenn.
html/monopt.html@1.39 +2 -2
Fix typo in html/monopt.html. Harlan Stenn.
ChangeSet@1.3630.3.2, 2016-02-13 09:15:45+00:00, stenn@psp-deb1.ntp.org
Fix some Credit: attributions in the NEWS file. Harlan Stenn.
ChangeLog@1.1794.3.2 +1 -0
Fix some Credit: attributions in the NEWS file. Harlan Stenn.
NEWS@1.161 +3 -2
Fix some Credit: attributions in the NEWS file. Harlan Stenn.
ChangeSet@1.3630.4.1, 2016-02-10 20:11:21+01:00, perlinger@ntp.org
[Bug 3011] Duplicate IPs on unconfig directives will cause an assertion botch
ChangeLog@1.1794.4.1 +2 -0
[Bug 3011] Duplicate IPs on unconfig directives will cause an assertion botch
ntpd/ntp_request.c@1.118 +48 -78
[Bug 3011] Duplicate IPs on unconfig directives will cause an assertion botch
- reworked 'do_unconf()' to survive the effect of having peers named multiple times
ChangeSet@1.3630.2.3, 2016-02-09 00:46:57+00:00, mayer@psp-deb1.ntp.org
Allow Active and Passive peer for crypto-NAK and added reporting
ntpd/ntp_proto.c@1.373.1.2 +6 -2
Allow Active and Passive peer for crypto-NAK and added reporting
ChangeSet@1.3638, 2016-02-07 07:35:03+00:00, stenn@psp-deb1.ntp.org
Update ntp.conf documentation. Harlan Stenn.
ChangeLog@1.1801 +1 -0
Update ntp.conf documentation. Harlan Stenn.
ntpd/invoke-ntp.conf.texi@1.197 +37 -10
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.5man@1.231 +42 -12
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.5mdoc@1.231 +38 -11
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.def@1.22 +36 -9
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.man.in@1.231 +42 -12
Update ntp.conf documentation. Harlan Stenn.
ntpd/ntp.conf.mdoc.in@1.231 +38 -11
Update ntp.conf documentation. Harlan Stenn.
ChangeSet@1.3637, 2016-02-06 07:39:44+00:00, stenn@psp-deb1.ntp.org
Update html/xleave.html documentation. Harlan Stenn.
ChangeLog@1.1800 +1 -0
Update html/xleave.html documentation. Harlan Stenn.
html/xleave.html@1.11 +6 -6
Update html/xleave.html documentation. Harlan Stenn.
ChangeSet@1.3630.2.2, 2016-02-05 10:50:33+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1794.2.2 +1 -1
cleanup
ChangeSet@1.3630.3.1, 2016-02-05 09:21:00+00:00, stenn@psp-deb1.ntp.org
Document ntp.key's optional IP list in authenetic.html. Harlan Stenn.
ChangeLog@1.1794.3.1 +1 -0
Document ntp.key's optional IP list in authenetic.html. Harlan Stenn.
html/authentic.html@1.15 +16 -16
Document ntp.key's optional IP list in authenetic.html. Harlan Stenn.
ChangeSet@1.3630.2.1, 2016-02-05 04:29:08+00:00, mayer@psp-deb1.ntp.org
Validate crypto-NAK's
ChangeLog@1.1794.2.1 +1 -0
Validate crypto-NAK's
include/ntp.h@1.217 +2 -0
Add badNAM to peer struct and specify min V4 len
ntpd/ntp_proto.c@1.373.1.1 +78 -2
Validate crypto-NAM's
ChangeSet@1.3630.1.4, 2016-01-28 08:08:42+01:00, jnperlin@hydra.localnet
[Bug 2999] out-of-bounds access in 'is_safe_filename()'
ChangeLog@1.1794.1.3 +1 -0
[Bug 2999] out-of-bounds access in 'is_safe_filename()'
ntpd/ntp_control.c@1.207 +3 -3
[Bug 2999] out-of-bounds access in 'is_safe_filename()'
- fixed array bound test
- make function NULL-pointer safe
ChangeSet@1.3635, 2016-01-26 08:47:08+00:00, stenn@psp-deb1.ntp.org
cleanup
ntpd/ntp_proto.c@1.377 +20 -18
cleanup
ChangeSet@1.3630.1.2, 2016-01-24 03:02:29+00:00, stenn@psp-deb1.ntp.org
cleanup
libntp/authkeys.c@1.33 +15 -13
cleanup
ChangeSet@1.3630.1.1, 2016-01-24 02:11:14+00:00, stenn@psp-deb1.ntp.org
ChangeLog cleanup
ChangeLog@1.1794.1.1 +3 -0
ChangeLog cleanup
ChangeSet@1.3628.1.7, 2016-01-23 14:26:48+00:00, stenn@psp-deb1.ntp.org
Reclassify KoD timestamp checks to 2945
ChangeLog@1.1793.1.6 +1 -1
Reclassify KoD timestamp checks to 2945
ChangeSet@1.3628.1.6, 2016-01-23 13:52:03+00:00, stenn@psp-deb1.ntp.org
revert use of isc_tsmemcmp in sntp/crypto.c until it is in a more accessible place. This is not a critical use of that function.
sntp/crypto.c@1.21 +8 -3
revert use of isc_tsmemcmp in sntp/crypto.c until it is in a more accessible place. This is not a critical use of that function.
ChangeSet@1.3628.1.5, 2016-01-23 12:54:39+00:00, stenn@psp-deb1.ntp.org
[Sec 2901] Additional KoD packet checks. HStenn.
ChangeLog@1.1793.1.5 +1 -0
[Sec 2901] Additional KoD packet checks. HStenn.
ntpd/ntp_proto.c@1.376 +53 -0
[Sec 2901] Additional KoD packet checks. HStenn.
ChangeSet@1.3628.1.4, 2016-01-23 11:36:37+00:00, stenn@psp-deb1.ntp.org
[Sec 2901] KoD packets must have non-zero transmit timestamps. HStenn.
ChangeLog@1.1793.1.4 +1 -0
[Sec 2901] KoD packets must have non-zero transmit timestamps. HStenn.
ntpd/ntp_proto.c@1.375 +10 -0
[Sec 2901] KoD packets must have non-zero transmit timestamps. HStenn.
ChangeSet@1.3628.1.3, 2016-01-23 10:34:17+00:00, stenn@psp-deb1.ntp.org
[Sec 2936] Skeleton Key: Any system knowing the trusted key can serve time. Include passive servers in this check. HStenn.
ChangeLog@1.1793.1.3 +2 -0
[Sec 2936] Skeleton Key: Any system knowing the trusted key can serve time. Include passive servers in this check. HStenn.
ntpd/ntp_proto.c@1.374 +1 -1
[Sec 2936] Skeleton Key: Any system knowing the trusted key can serve time. Include passive servers in this check. HStenn.
ChangeSet@1.3628.3.1, 2016-01-21 20:27:05+01:00, jnperlin@hydra.localnet
[Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile
ChangeLog@1.1793.3.1 +3 -0
[Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile
ntpd/ntp_io.c@1.412.1.1 +0 -4
[Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile
- removed unsetting DEBUG_TIMING. (The timing debugging code is IMHO still not async-safe, but DEBUG_TIMING is a developer-option anyway. perlinger@ntp.org)
ChangeSet@1.3628.2.1, 2016-01-21 00:47:12-08:00, harlan@nb7-a.pfcs.com
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
ChangeLog@1.1793.2.1 +4 -0
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
configure.ac@1.603 +3 -1
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
include/ntp_types.h@1.37 +7 -0
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
tests/libntp/lfpfunc.c@1.16 +0 -3
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
tests/libntp/run-lfpfunc.c@1.19 +9 -9
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
tests/libntp/run-timevalops.c@1.14 +28 -28
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
tests/libntp/timespecops.c@1.11 +0 -2
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
tests/libntp/timevalops.c@1.14 +0 -2
[Bug 2858] bool support. Use stdbool.h when available. HStenn.
ChangeSet@1.3628.1.2, 2016-01-21 07:35:48+00:00, stenn@psp-deb1.ntp.org
merge cleanup
ChangeLog@1.1793.1.2 +7 -3
merge cleanup
ChangeSet@1.3630, 2016-01-21 03:55:23+00:00, mayer@psp-deb1.ntp.org
Bug fixes to compile Windows
ChangeLog@1.1794 +1 -0
Bug fixes to compile Windows
ChangeSet@1.3629, 2016-01-21 03:52:41+00:00, mayer@psp-deb1.ntp.org
Bug fixes to compile Windows
include/ntp_stdlib.h@1.82 +1 -1
Bug fixes to compile Windows
include/ntp_worker.h@1.6 +2 -2
Bug fixes to compile Windows
libntp/authkeys.c@1.32 +64 -83
Bug fixes to compile Windows
libntp/is_ip_address.c@1.2 +0 -40
Bug fixes to compile Windows
ntpd/ntp_io.c@1.413 +3 -2
Bug fixes to compile Windows
ports/winnt/vs2008/libntp/libntp.vcproj@1.54.1.1 +5 -1
Bug fixes to compile Windows
ports/winnt/vs2013/libntp/libntp.vcxproj@1.9.1.1 +1 -0
Bug fixes to compile Windows
ChangeSet@1.3628, 2016-01-20 04:20:12-05:00, stenn@deacon.udel.edu
NTP_4_2_8P6
TAG: NTP_4_2_8P6
ChangeLog@1.1793 +1 -0
NTP_4_2_8P6
ntpd/invoke-ntp.conf.texi@1.196 +1 -1
NTP_4_2_8P6
ntpd/invoke-ntp.keys.texi@1.188 +1 -1
NTP_4_2_8P6
ntpd/invoke-ntpd.texi@1.504 +2 -2
NTP_4_2_8P6
ntpd/ntp.conf.5man@1.230 +3 -3
NTP_4_2_8P6
ntpd/ntp.conf.5mdoc@1.230 +2 -3
NTP_4_2_8P6
ntpd/ntp.conf.html@1.183 +60 -2
NTP_4_2_8P6
ntpd/ntp.conf.man.in@1.230 +3 -3
NTP_4_2_8P6
ntpd/ntp.conf.mdoc.in@1.230 +2 -3
NTP_4_2_8P6
ntpd/ntp.keys.5man@1.222 +2 -2
NTP_4_2_8P6
ntpd/ntp.keys.5mdoc@1.222 +3 -3
NTP_4_2_8P6
ntpd/ntp.keys.html@1.184 +21 -33
NTP_4_2_8P6
ntpd/ntp.keys.man.in@1.222 +2 -2
NTP_4_2_8P6
ntpd/ntp.keys.mdoc.in@1.222 +3 -3
NTP_4_2_8P6
ntpd/ntpd-opts.c@1.526 +10 -10
NTP_4_2_8P6
ntpd/ntpd-opts.h@1.525 +4 -4
NTP_4_2_8P6
ntpd/ntpd.1ntpdman@1.333 +4 -4
NTP_4_2_8P6
ntpd/ntpd.1ntpdmdoc@1.333 +3 -3
NTP_4_2_8P6
ntpd/ntpd.html@1.177 +2 -2
NTP_4_2_8P6
ntpd/ntpd.man.in@1.333 +4 -4
NTP_4_2_8P6
ntpd/ntpd.mdoc.in@1.333 +3 -3
NTP_4_2_8P6
ntpdc/invoke-ntpdc.texi@1.501 +2 -2
NTP_4_2_8P6
ntpdc/ntpdc-opts.c@1.519 +10 -10
NTP_4_2_8P6
ntpdc/ntpdc-opts.h@1.518 +4 -4
NTP_4_2_8P6
ntpdc/ntpdc.1ntpdcman@1.332 +4 -4
NTP_4_2_8P6
ntpdc/ntpdc.1ntpdcmdoc@1.332 +3 -3
NTP_4_2_8P6
ntpdc/ntpdc.html@1.345 +2 -2
NTP_4_2_8P6
ntpdc/ntpdc.man.in@1.332 +4 -4
NTP_4_2_8P6
ntpdc/ntpdc.mdoc.in@1.332 +3 -3
NTP_4_2_8P6
ntpq/invoke-ntpq.texi@1.508 +2 -2
NTP_4_2_8P6
ntpq/ntpq-opts.c@1.525 +10 -10
NTP_4_2_8P6
ntpq/ntpq-opts.h@1.523 +4 -4
NTP_4_2_8P6
ntpq/ntpq.1ntpqman@1.336 +4 -4
NTP_4_2_8P6
ntpq/ntpq.1ntpqmdoc@1.336 +3 -3
NTP_4_2_8P6
ntpq/ntpq.html@1.174 +2 -2
NTP_4_2_8P6
ntpq/ntpq.man.in@1.336 +4 -4
NTP_4_2_8P6
ntpq/ntpq.mdoc.in@1.336 +3 -3
NTP_4_2_8P6
ntpsnmpd/invoke-ntpsnmpd.texi@1.503 +2 -2
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd-opts.c@1.521 +10 -10
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd-opts.h@1.520 +4 -4
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.332 +4 -4
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.332 +3 -3
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd.html@1.172 +1 -1
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd.man.in@1.332 +4 -4
NTP_4_2_8P6
ntpsnmpd/ntpsnmpd.mdoc.in@1.332 +3 -3
NTP_4_2_8P6
packageinfo.sh@1.524 +2 -2
NTP_4_2_8P6
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.93 +3 -3
NTP_4_2_8P6
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.94 +2 -2
NTP_4_2_8P6
scripts/calc_tickadj/calc_tickadj.html@1.95 +1 -1
NTP_4_2_8P6
scripts/calc_tickadj/calc_tickadj.man.in@1.92 +3 -3
NTP_4_2_8P6
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.94 +2 -2
NTP_4_2_8P6
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.97 +1 -1
NTP_4_2_8P6
scripts/invoke-plot_summary.texi@1.114 +2 -2
NTP_4_2_8P6
scripts/invoke-summary.texi@1.114 +2 -2
NTP_4_2_8P6
scripts/ntp-wait/invoke-ntp-wait.texi@1.324 +2 -2
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait-opts@1.60 +2 -2
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.321 +3 -3
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.322 +2 -2
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait.html@1.341 +2 -2
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait.man.in@1.321 +3 -3
NTP_4_2_8P6
scripts/ntp-wait/ntp-wait.mdoc.in@1.322 +2 -2
NTP_4_2_8P6
scripts/ntpsweep/invoke-ntpsweep.texi@1.112 +2 -2
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep-opts@1.62 +2 -2
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.100 +3 -3
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.100 +2 -2
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep.html@1.113 +2 -2
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep.man.in@1.100 +3 -3
NTP_4_2_8P6
scripts/ntpsweep/ntpsweep.mdoc.in@1.101 +2 -2
NTP_4_2_8P6
scripts/ntptrace/invoke-ntptrace.texi@1.113 +2 -2
NTP_4_2_8P6
scripts/ntptrace/ntptrace-opts@1.62 +2 -2
NTP_4_2_8P6
scripts/ntptrace/ntptrace.1ntptraceman@1.100 +3 -3
NTP_4_2_8P6
scripts/ntptrace/ntptrace.1ntptracemdoc@1.101 +2 -2
NTP_4_2_8P6
scripts/ntptrace/ntptrace.html@1.114 +2 -2
NTP_4_2_8P6
scripts/ntptrace/ntptrace.man.in@1.100 +3 -3
NTP_4_2_8P6
scripts/ntptrace/ntptrace.mdoc.in@1.102 +2 -2
NTP_4_2_8P6
scripts/plot_summary-opts@1.62 +2 -2
NTP_4_2_8P6
scripts/plot_summary.1plot_summaryman@1.112 +3 -3
NTP_4_2_8P6
scripts/plot_summary.1plot_summarymdoc@1.112 +2 -2
NTP_4_2_8P6
scripts/plot_summary.html@1.115 +2 -2
NTP_4_2_8P6
scripts/plot_summary.man.in@1.112 +3 -3
NTP_4_2_8P6
scripts/plot_summary.mdoc.in@1.112 +2 -2
NTP_4_2_8P6
scripts/summary-opts@1.62 +2 -2
NTP_4_2_8P6
scripts/summary.1summaryman@1.112 +3 -3
NTP_4_2_8P6
scripts/summary.1summarymdoc@1.112 +2 -2
NTP_4_2_8P6
scripts/summary.html@1.115 +2 -2
NTP_4_2_8P6
scripts/summary.man.in@1.112 +3 -3
NTP_4_2_8P6
scripts/summary.mdoc.in@1.112 +2 -2
NTP_4_2_8P6
scripts/update-leap/invoke-update-leap.texi@1.13 +1 -1
NTP_4_2_8P6
scripts/update-leap/update-leap-opts@1.13 +2 -2
NTP_4_2_8P6
scripts/update-leap/update-leap.1update-leapman@1.13 +3 -3
NTP_4_2_8P6
scripts/update-leap/update-leap.1update-leapmdoc@1.13 +2 -2
NTP_4_2_8P6
scripts/update-leap/update-leap.html@1.13 +1 -1
NTP_4_2_8P6
scripts/update-leap/update-leap.man.in@1.13 +3 -3
NTP_4_2_8P6
scripts/update-leap/update-leap.mdoc.in@1.13 +2 -2
NTP_4_2_8P6
sntp/invoke-sntp.texi@1.501 +2 -2
NTP_4_2_8P6
sntp/sntp-opts.c@1.520 +10 -10
NTP_4_2_8P6
sntp/sntp-opts.h@1.518 +4 -4
NTP_4_2_8P6
sntp/sntp.1sntpman@1.336 +4 -4
NTP_4_2_8P6
sntp/sntp.1sntpmdoc@1.336 +3 -3
NTP_4_2_8P6
sntp/sntp.html@1.516 +2 -2
NTP_4_2_8P6
sntp/sntp.man.in@1.336 +4 -4
NTP_4_2_8P6
sntp/sntp.mdoc.in@1.336 +3 -3
NTP_4_2_8P6
util/invoke-ntp-keygen.texi@1.504 +2 -2
NTP_4_2_8P6
util/ntp-keygen-opts.c@1.522 +10 -10
NTP_4_2_8P6
util/ntp-keygen-opts.h@1.520 +4 -4
NTP_4_2_8P6
util/ntp-keygen.1ntp-keygenman@1.332 +4 -4
NTP_4_2_8P6
util/ntp-keygen.1ntp-keygenmdoc@1.332 +3 -3
NTP_4_2_8P6
util/ntp-keygen.html@1.178 +2 -2
NTP_4_2_8P6
util/ntp-keygen.man.in@1.332 +4 -4
NTP_4_2_8P6
util/ntp-keygen.mdoc.in@1.332 +3 -3
NTP_4_2_8P6
ChangeSet@1.3627, 2016-01-20 04:14:51-05:00, stenn@deacon.udel.edu
solaris hack
libntp/work_thread.c@1.20 +2 -0
solaris hack
ChangeSet@1.3626, 2016-01-20 01:50:09-05:00, stenn@deacon.udel.edu
4.2.8p6
packageinfo.sh@1.523 +1 -1
4.2.8p6
ChangeSet@1.3625, 2016-01-20 00:34:15+00:00, stenn@psp-deb1.ntp.org
updates
NEWS@1.160 +24 -24
updates
ChangeSet@1.3624, 2016-01-19 22:28:41+00:00, stenn@psp-deb1.ntp.org
typo
NEWS@1.159 +1 -1
typo
ChangeSet@1.3623, 2016-01-18 11:55:56+00:00, stenn@psp-deb1.ntp.org
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ChangeLog@1.1792 +1 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
NEWS@1.158 +40 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
include/Makefile.am@1.54 +1 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
include/ntp_io.h@1.23 +2 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
include/ntp_keyacc.h@1.1 +13 -0
BitKeeper file /home/stenn/ntp-stable-2936/include/ntp_keyacc.h
include/ntp_keyacc.h@1.0 +0 -0
include/ntp_stdlib.h@1.81 +4 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
include/ntp_types.h@1.36 +1 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
libntp/Makefile.am@1.76.1.1 +1 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
libntp/authkeys.c@1.31 +60 -6
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
libntp/authreadkeys.c@1.25 +50 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
libntp/authusekey.c@1.11 +1 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
libntp/is_ip_address.c@1.1 +129 -0
BitKeeper file /home/stenn/ntp-stable-2936/libntp/is_ip_address.c
libntp/is_ip_address.c@1.0 +0 -0
ntpd/invoke-ntp.keys.texi@1.187 +11 -3
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.5man@1.221 +13 -5
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.5mdoc@1.221 +14 -6
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.def@1.11 +10 -2
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.html@1.183 +42 -22
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.man.in@1.221 +13 -5
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp.keys.mdoc.in@1.221 +14 -6
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp_crypto.c@1.186 +1 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp_io.c@1.412 +0 -72
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ntpd/ntp_proto.c@1.373 +34 -0
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
tests/libntp/authkeys.c@1.15 +1 -1
[Sec 2936] Skeleton Key: Any trusted key system can serve time. HStenn.
ChangeSet@1.3622, 2016-01-17 09:03:57+00:00, stenn@psp-deb1.ntp.org
Disable incomplete t-ntp_signd.c test. Harlan Stenn.
ChangeLog@1.1791 +1 -0
Disable incomplete t-ntp_signd.c test. Harlan Stenn.
tests/ntpd/t-ntp_signd.c@1.16 +4 -0
Disable incomplete t-ntp_signd.c test. Harlan Stenn.
ChangeSet@1.3621, 2016-01-17 05:51:14+00:00, stenn@psp-deb1.ntp.org
Update NEWS file for 2942
NEWS@1.157 +22 -0
Update NEWS file for 2942
ChangeSet@1.3615.14.1, 2016-01-17 05:07:22+00:00, stenn@psp-deb1.ntp.org
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ChangeLog@1.1786.14.1 +4 -0
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
html/miscopt.html@1.85 +11 -3
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
include/ntp.h@1.213.1.1 +3 -0
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/invoke-ntp.conf.texi@1.195 +64 -3
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/keyword-gen-utd@1.27 +1 -1
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/keyword-gen.c@1.33 +3 -0
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp.conf.5man@1.229 +71 -7
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp.conf.5mdoc@1.229 +71 -7
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp.conf.def@1.21 +67 -4
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp.conf.man.in@1.229 +71 -7
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp.conf.mdoc.in@1.229 +71 -7
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_config.c@1.335.1.1 +12 -0
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_keyword.h@1.29 +505 -468
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_parser.c@1.101 +1762 -1513
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_parser.h@1.65 +257 -235
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_parser.y@1.91 +6 -0
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ntpd/ntp_proto.c@1.368.2.1 +40 -4
[Sec 2942]: Off-path DoS attack on auth broadcast mode. HStenn.
ChangeSet@1.3619, 2016-01-14 12:19:16+00:00, stenn@psp-at1.ntp.org
NEWS file updates
NEWS@1.156 +21 -0
NEWS file updates
ChangeSet@1.3615.1.9, 2016-01-14 11:33:43+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1786.1.9 +3 -0
merge cleanup
ChangeSet@1.3615.1.5, 2016-01-14 10:44:13+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1786.1.5 +0 -1
merge cleanup
ChangeSet@1.3615.13.4, 2016-01-14 10:27:23+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1786.13.4 +1 -1
merge cleanup
ChangeSet@1.3615.13.2, 2016-01-14 09:49:52+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1786.13.2 +2 -2
merge cleanup
ChangeSet@1.3615.3.17, 2016-01-14 09:33:56+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1786.3.14 +1 -1
merge cleanup
ChangeSet@1.3615.3.14, 2016-01-14 07:36:57+00:00, stenn@psp-at1.ntp.org
NEWS update
NEWS@1.155 +98 -7
NEWS update
ChangeSet@1.3615.3.12, 2016-01-13 08:07:30+00:00, stenn@psp-deb1.ntp.org
typo
ChangeLog@1.1786.3.10 +1 -1
typo
ChangeSet@1.3615.3.10, 2016-01-13 06:08:29+00:00, stenn@psp-deb1.ntp.org
Update NEWS file for bug 2938
NEWS@1.154 +29 -2
Update NEWS file for bug 2938
ChangeSet@1.3615.3.8, 2016-01-13 04:23:46+00:00, stenn@psp-deb1.ntp.org
Update NEWS file for bug 2935
NEWS@1.153 +52 -0
Update NEWS file for bug 2935
ChangeSet@1.3615.8.12, 2016-01-12 09:53:06+00:00, stenn@psp-at1.ntp.org
[Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger
ntpd/ntp_proto.c@1.368.1.5 +4 -1
[Sec 2935] use L_SUB instead of L_ISGT. Juergen Perlinger
ChangeSet@1.3615.8.11, 2016-01-11 03:02:53-08:00, harlan@max.pfcs.com
[Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
ChangeLog@1.1786.10.1 +4 -0
[Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
include/ntp.h@1.215 +1 -0
[Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
ntpd/ntp_proto.c@1.368.1.4 +67 -0
[Sec 2935] Deja Vu: Replay attack on authenticated broadcast mode.
ChangeSet@1.3615.8.10, 2016-01-11 02:44:25-08:00, harlan@max.pfcs.com
make leapsec_query messages less verbose.
ntpd/ntp_timer.c@1.93.1.1 +6 -4
make leapsec_query messages less verbose.
ChangeSet@1.3615.10.1, 2016-01-11 10:26:12+01:00, jnperlin@hydra.localnet
[Bug 2985] bogus calculation in authkeys.c
- implement 'auth_log2()' using integer bithack instead of float calculation
ChangeLog@1.1786.8.5 +2 -0
[Bug 2985] bogus calculation in authkeys.c
- implement 'auth_log2()' using integer bithack instead of float calculation
libntp/authkeys.c@1.30 +33 -10
[Bug 2985] bogus calculation in authkeys.c
- implement 'auth_log2()' using integer bithack instead of float calculation
tests/libntp/authkeys.c@1.14 +38 -0
[Bug 2985] bogus calculation in authkeys.c
- test bithack implementation of 'auth_log2()'
tests/libntp/run-authkeys.c@1.12 +9 -6
[Bug 2985] bogus calculation in authkeys.c
- update auto-generated file
ChangeSet@1.3615.8.9, 2016-01-09 09:52:44+00:00, stenn@psp-at1.ntp.org
Add timelastrec to the peer structure
include/ntp.h@1.214 +2 -1
Add timelastrec to the peer structure
ChangeSet@1.3615.3.6, 2016-01-08 10:00:03+00:00, stenn@psp-at1.ntp.org
4.2.8p5 merge cleanup
ChangeLog@1.1786.3.6 +1 -1
4.2.8p5 merge cleanup
ChangeSet@1.3615.8.8, 2016-01-08 00:26:09+00:00, stenn@deacon.udel.edu
Update copyright year
sntp/include/copyright.def@1.26 +1 -1
Update copyright year
ChangeSet@1.3615.8.7, 2016-01-07 23:33:11+00:00, stenn@deacon.udel.edu
NTP_4_2_8P5
TAG: NTP_4_2_8P5
ChangeLog@1.1786.8.4 +1 -0
NTP_4_2_8P5
ntpd/invoke-ntp.conf.texi@1.194 +1 -1
NTP_4_2_8P5
ntpd/invoke-ntp.keys.texi@1.186 +1 -1
NTP_4_2_8P5
ntpd/invoke-ntpd.texi@1.503 +2 -2
NTP_4_2_8P5
ntpd/ntp.conf.5man@1.228 +3 -3
NTP_4_2_8P5
ntpd/ntp.conf.5mdoc@1.228 +2 -2
NTP_4_2_8P5
ntpd/ntp.conf.html@1.182 +1 -1
NTP_4_2_8P5
ntpd/ntp.conf.man.in@1.228 +3 -3
NTP_4_2_8P5
ntpd/ntp.conf.mdoc.in@1.228 +2 -2
NTP_4_2_8P5
ntpd/ntp.keys.5man@1.220 +2 -2
NTP_4_2_8P5
ntpd/ntp.keys.5mdoc@1.220 +2 -2
NTP_4_2_8P5
ntpd/ntp.keys.html@1.182 +1 -1
NTP_4_2_8P5
ntpd/ntp.keys.man.in@1.220 +2 -2
NTP_4_2_8P5
ntpd/ntp.keys.mdoc.in@1.220 +2 -2
NTP_4_2_8P5
ntpd/ntpd-opts.c@1.525 +7 -7
NTP_4_2_8P5
ntpd/ntpd-opts.h@1.524 +3 -3
NTP_4_2_8P5
ntpd/ntpd.1ntpdman@1.332 +3 -3
NTP_4_2_8P5
ntpd/ntpd.1ntpdmdoc@1.332 +2 -2
NTP_4_2_8P5
ntpd/ntpd.html@1.176 +2 -2
NTP_4_2_8P5
ntpd/ntpd.man.in@1.332 +3 -3
NTP_4_2_8P5
ntpd/ntpd.mdoc.in@1.332 +2 -2
NTP_4_2_8P5
ntpdc/invoke-ntpdc.texi@1.500 +2 -2
NTP_4_2_8P5
ntpdc/ntpdc-opts.c@1.518 +7 -7
NTP_4_2_8P5
ntpdc/ntpdc-opts.h@1.517 +3 -3
NTP_4_2_8P5
ntpdc/ntpdc.1ntpdcman@1.331 +3 -3
NTP_4_2_8P5
ntpdc/ntpdc.1ntpdcmdoc@1.331 +2 -2
NTP_4_2_8P5
ntpdc/ntpdc.html@1.344 +2 -2
NTP_4_2_8P5
ntpdc/ntpdc.man.in@1.331 +3 -3
NTP_4_2_8P5
ntpdc/ntpdc.mdoc.in@1.331 +2 -2
NTP_4_2_8P5
ntpq/invoke-ntpq.texi@1.507 +2 -2
NTP_4_2_8P5
ntpq/ntpq-opts.c@1.524 +7 -7
NTP_4_2_8P5
ntpq/ntpq-opts.h@1.522 +3 -3
NTP_4_2_8P5
ntpq/ntpq.1ntpqman@1.335 +3 -3
NTP_4_2_8P5
ntpq/ntpq.1ntpqmdoc@1.335 +2 -2
NTP_4_2_8P5
ntpq/ntpq.html@1.173 +2 -2
NTP_4_2_8P5
ntpq/ntpq.man.in@1.335 +3 -3
NTP_4_2_8P5
ntpq/ntpq.mdoc.in@1.335 +2 -2
NTP_4_2_8P5
ntpsnmpd/invoke-ntpsnmpd.texi@1.502 +2 -2
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd-opts.c@1.520 +7 -7
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd-opts.h@1.519 +3 -3
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.331 +3 -3
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.331 +2 -2
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd.html@1.171 +1 -1
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd.man.in@1.331 +3 -3
NTP_4_2_8P5
ntpsnmpd/ntpsnmpd.mdoc.in@1.331 +2 -2
NTP_4_2_8P5
packageinfo.sh@1.522 +2 -2
NTP_4_2_8P5
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.92 +3 -3
NTP_4_2_8P5
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.93 +2 -2
NTP_4_2_8P5
scripts/calc_tickadj/calc_tickadj.html@1.94 +1 -1
NTP_4_2_8P5
scripts/calc_tickadj/calc_tickadj.man.in@1.91 +3 -3
NTP_4_2_8P5
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.93 +2 -2
NTP_4_2_8P5
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.96 +1 -1
NTP_4_2_8P5
scripts/invoke-plot_summary.texi@1.113 +2 -2
NTP_4_2_8P5
scripts/invoke-summary.texi@1.113 +2 -2
NTP_4_2_8P5
scripts/ntp-wait/invoke-ntp-wait.texi@1.323 +2 -2
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait-opts@1.59 +2 -2
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.320 +3 -3
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.321 +2 -2
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait.html@1.340 +2 -2
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait.man.in@1.320 +3 -3
NTP_4_2_8P5
scripts/ntp-wait/ntp-wait.mdoc.in@1.321 +2 -2
NTP_4_2_8P5
scripts/ntpsweep/invoke-ntpsweep.texi@1.111 +2 -2
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep-opts@1.61 +2 -2
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.99 +3 -3
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.99 +2 -2
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep.html@1.112 +2 -2
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep.man.in@1.99 +3 -3
NTP_4_2_8P5
scripts/ntpsweep/ntpsweep.mdoc.in@1.100 +2 -2
NTP_4_2_8P5
scripts/ntptrace/invoke-ntptrace.texi@1.112 +2 -2
NTP_4_2_8P5
scripts/ntptrace/ntptrace-opts@1.61 +2 -2
NTP_4_2_8P5
scripts/ntptrace/ntptrace.1ntptraceman@1.99 +3 -3
NTP_4_2_8P5
scripts/ntptrace/ntptrace.1ntptracemdoc@1.100 +2 -2
NTP_4_2_8P5
scripts/ntptrace/ntptrace.html@1.113 +2 -2
NTP_4_2_8P5
scripts/ntptrace/ntptrace.man.in@1.99 +3 -3
NTP_4_2_8P5
scripts/ntptrace/ntptrace.mdoc.in@1.101 +2 -2
NTP_4_2_8P5
scripts/plot_summary-opts@1.61 +2 -2
NTP_4_2_8P5
scripts/plot_summary.1plot_summaryman@1.111 +3 -3
NTP_4_2_8P5
scripts/plot_summary.1plot_summarymdoc@1.111 +2 -2
NTP_4_2_8P5
scripts/plot_summary.html@1.114 +2 -2
NTP_4_2_8P5
scripts/plot_summary.man.in@1.111 +3 -3
NTP_4_2_8P5
scripts/plot_summary.mdoc.in@1.111 +2 -2
NTP_4_2_8P5
scripts/summary-opts@1.61 +2 -2
NTP_4_2_8P5
scripts/summary.1summaryman@1.111 +3 -3
NTP_4_2_8P5
scripts/summary.1summarymdoc@1.111 +2 -2
NTP_4_2_8P5
scripts/summary.html@1.114 +2 -2
NTP_4_2_8P5
scripts/summary.man.in@1.111 +3 -3
NTP_4_2_8P5
scripts/summary.mdoc.in@1.111 +2 -2
NTP_4_2_8P5
scripts/update-leap/invoke-update-leap.texi@1.12 +1 -1
NTP_4_2_8P5
scripts/update-leap/update-leap-opts@1.12 +2 -2
NTP_4_2_8P5
scripts/update-leap/update-leap.1update-leapman@1.12 +3 -3
NTP_4_2_8P5
scripts/update-leap/update-leap.1update-leapmdoc@1.12 +2 -2
NTP_4_2_8P5
scripts/update-leap/update-leap.html@1.12 +1 -1
NTP_4_2_8P5
scripts/update-leap/update-leap.man.in@1.12 +3 -3
NTP_4_2_8P5
scripts/update-leap/update-leap.mdoc.in@1.12 +2 -2
NTP_4_2_8P5
sntp/invoke-sntp.texi@1.500 +2 -2
NTP_4_2_8P5
sntp/sntp-opts.c@1.519 +7 -7
NTP_4_2_8P5
sntp/sntp-opts.h@1.517 +3 -3
NTP_4_2_8P5
sntp/sntp.1sntpman@1.335 +3 -3
NTP_4_2_8P5
sntp/sntp.1sntpmdoc@1.335 +2 -2
NTP_4_2_8P5
sntp/sntp.html@1.515 +2 -2
NTP_4_2_8P5
sntp/sntp.man.in@1.335 +3 -3
NTP_4_2_8P5
sntp/sntp.mdoc.in@1.335 +2 -2
NTP_4_2_8P5
util/invoke-ntp-keygen.texi@1.503 +2 -2
NTP_4_2_8P5
util/ntp-keygen-opts.c@1.521 +7 -7
NTP_4_2_8P5
util/ntp-keygen-opts.h@1.519 +3 -3
NTP_4_2_8P5
util/ntp-keygen.1ntp-keygenman@1.331 +3 -3
NTP_4_2_8P5
util/ntp-keygen.1ntp-keygenmdoc@1.331 +2 -2
NTP_4_2_8P5
util/ntp-keygen.html@1.177 +2 -2
NTP_4_2_8P5
util/ntp-keygen.man.in@1.331 +3 -3
NTP_4_2_8P5
util/ntp-keygen.mdoc.in@1.331 +2 -2
NTP_4_2_8P5
ChangeSet@1.3615.8.6, 2016-01-07 17:52:24-05:00, stenn@deacon.udel.edu
ntp-4.2.8p5
packageinfo.sh@1.521 +1 -1
ntp-4.2.8p5
ChangeSet@1.3615.8.5, 2016-01-07 22:20:05+00:00, stenn@psp-at1.ntp.org
cleanup
NEWS@1.152 +2 -2
cleanup
ChangeSet@1.3615.8.4, 2016-01-07 09:33:11+00:00, stenn@psp-at1.ntp.org
typo in ntp_proto.c - leap smear. Reported by Martin Burnicki
ntpd/ntp_proto.c@1.368.1.3 +1 -1
typo in ntp_proto.c - leap smear. Reported by Martin Burnicki
ChangeSet@1.3615.8.3, 2016-01-07 06:33:08+00:00, stenn@psp-at1.ntp.org
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
ChangeLog@1.1786.8.3 +1 -0
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
scripts/calc_tickadj/Makefile.am@1.11 +2 -0
Update scripts/calc_tickadj/Makefile.am. Harlan Stenn.
ChangeSet@1.3615.3.2, 2016-01-05 12:34:56+00:00, stenn@psp-at1.ntp.org
ntp-4.2.8p6
ChangeLog@1.1786.3.2 +2 -0
ntp-4.2.8p6
ChangeSet@1.3615.9.1, 2016-01-05 10:57:45+00:00, stenn@psp-at1.ntp.org
Bug 2952 fixes
ChangeLog@1.1786.9.1 +1 -0
Bug 2952 fixes
ntpd/ntp_proto.c@1.368.1.2 +165 -152
Bug 2952 fixes
ChangeSet@1.3615.8.1, 2016-01-05 09:56:31+00:00, stenn@psp-at1.ntp.org
ntp-4.2.8p5 prep
ChangeLog@1.1786.8.1 +2 -1
ntp-4.2.8p5 prep
NEWS@1.151 +104 -3
ntp-4.2.8p5 prep
ChangeSet@1.3615.6.1, 2015-12-13 13:35:12+01:00, jnperlin@hydra.localnet
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
Found this already fixed, but validation lead to further cleanup:
- source code formatting
- inline variable definitions moved to start of block
- made some pure input data pointers 'const void*' instead of 'char*'; avoids casts and warnings
ChangeLog@1.1786.6.1 +3 -0
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
sntp/crypto.c@1.18.1.1 +13 -12
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- sidekick: make pure input pointers 'const void*' instead of 'char*'
- sidekick: remove unnecessary casts
sntp/crypto.h@1.11 +11 -9
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- sidekick: make pure input pointers 'const void*' instead of 'char*'
- source formatting
sntp/main.c@1.99 +1 -1
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- no need to cast input to 'make_mac()' any more
sntp/networking.c@1.68 +1 -1
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- no need to cast input to 'auth_md5()' any more
sntp/tests/crypto.c@1.10 +41 -27
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- remove unnecessary casts
- source code formatting
sntp/tests/fileHandlingTest.c@1.4 +43 -20
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*'
sntp/tests/fileHandlingTest.h.in@1.15 +6 -15
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- create 'DestroyPath()' companion to 'CreatePath()' to avoid trouble with 'free()' on 'const char*'
sntp/tests/keyFile.c@1.13 +66 -46
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- use 'DestroyPath()' avoid trouble with 'free()' on 'const char*'
- printf() combined
- source code formatting
- move variable declarations to front
sntp/tests/packetHandling.c@1.6 +75 -64
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- move variable declarations to front
- source code formatting
sntp/tests/packetProcessing.c@1.9 +124 -90
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- move variable declarations to front
- source code formatting
- drop unnecessary casts
sntp/tests/run-packetProcessing.c@1.10 +18 -18
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
sntp/unity/unity_internals.h@1.6 +1 -1
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- added missing 'const' in pointer casts
tests/libntp/decodenetnum.c@1.11 +33 -23
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- source code formatting + cleanup
tests/libntp/run-decodenetnum.c@1.11 +4 -4
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
tests/libntp/run-socktoa.c@1.14 +5 -5
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
tests/libntp/socktoa.c@1.12 +23 -17
[Bug 2892] Several test cases assume IPv6 capabilities even when IPv6 is disabled in the build
- source code formatting + cleanup
ChangeSet@1.3615.5.1, 2015-12-12 10:24:19+00:00, perlinger@psp-deb1.ntp.org
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest tests
ChangeLog@1.1786.5.1 +3 -0
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest test
lib/isc/hmacmd5.c@1.3 +1 -1
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest tests
lib/isc/hmacsha.c@1.3 +5 -5
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest tests
lib/isc/include/isc/string.h@1.5 +18 -0
[Bug 2879] Improve NTP security against timing attacks.
- prototype for timing-safe 'isc_tsmemcmp()'
lib/isc/tsmemcmp.c@1.1 +55 -0
[Bug 2879] Improve NTP security against timing attacks.
- implement a timing safe (though less efficient) version of 'memcmp()'
as 'isc_tsmemcmp()'
lib/isc/tsmemcmp.c@1.0 +0 -0
libntp/Makefile.am@1.77 +1 -0
[Bug 2879] Improve NTP security against timing attacks.
- add new source file 'lib/isc/tsmemcmp.c'
libntp/a_md5encrypt.c@1.36 +2 -2
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest tests
ports/winnt/vs2005/libntp.vcproj@1.25 +4 -0
[Bug 2879] Improve NTP security against timing attacks.
- add new source file 'lib/isc/tsmemcmp.c'
ports/winnt/vs2008/libntp/libntp.vcproj@1.55 +4 -0
[Bug 2879] Improve NTP security against timing attacks.
- add new source file 'lib/isc/tsmemcmp.c'
ports/winnt/vs2013/libntp/libntp.vcxproj@1.10 +3 -2
[Bug 2879] Improve NTP security against timing attacks.
- add new source file 'lib/isc/tsmemcmp.c'
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.8 +5 -2
[Bug 2879] Improve NTP security against timing attacks.
- add new source file 'lib/isc/tsmemcmp.c'
sntp/crypto.c@1.19 +2 -1
[Bug 2879] Improve NTP security against timing attacks.
- use timing-safe memcmp() for digest tests
tests/libntp/Makefile.am@1.94 +12 -0
[Bug 2879] Improve NTP security against timing attacks.
- add unit test for timing-safe memcmp
tests/libntp/run-tsafememcmp.c@1.1 +64 -0
[Bug 2879] Improve NTP security against timing attacks.
- auto-generated test runner
tests/libntp/run-tsafememcmp.c@1.0 +0 -0
tests/libntp/tsafememcmp.c@1.1 +85 -0
[Bug 2879] Improve NTP security against timing attacks.
- unit tests for timing-safe memcmp
tests/libntp/tsafememcmp.c@1.0 +0 -0
ChangeSet@1.3615.4.1, 2015-12-11 18:24:16+01:00, jnperlin@hydra.localnet
[Bug 2882] Look at ntp_request.c:list_peers_sum()
ChangeLog@1.1786.4.1 +1 -0
[Bug 2882] Look at ntp_request.c:list_peers_sum()
ntpd/ntp_request.c@1.116 +57 -72
[Bug 2882] Look at ntp_request.c:list_peers_sum()
- 'list_peers()' and 'list_peers_sum()' skip IPv6 entires if client does not support them,
but continue processing until end of list now.
ChangeSet@1.3615.1.3, 2015-12-09 18:23:31+01:00, jnperlin@hydra.localnet
[Bug 2891] Deadlock in deferred DNS lookup framework.
ChangeLog@1.1786.1.3 +1 -0
[Bug 2891] Deadlock in deferred DNS lookup framework.
include/ntp_worker.h@1.5 +31 -22
[Bug 2891] Deadlock in deferred DNS lookup framework.
- provide signal-safe result-ready detection
libntp/ntp_worker.c@1.7 +27 -0
[Bug 2891] Deadlock in deferred DNS lookup framework.
- support signal-safe result-ready detection
- provide function to harvest async results from mainloop
ntpd/ntp_io.c@1.409.1.1 +160 -133
[Bug 2891] Deadlock in deferred DNS lookup framework.
- do not process async-resolver results from signal handler
- set notification tags to harvest asyn-resolver results from mainloop
- avoid double select for synchronous IO
- avoid several syslog calls in signal-handler context
- refactor / conditionalize some functions that cannot be used in signal-driven IO
ntpd/ntpd.c@1.169 +4 -0
[Bug 2891] Deadlock in deferred DNS lookup framework.
- reap/harvest async resolver results from mainloop
ChangeSet@1.3615.1.2, 2015-12-06 21:33:26+01:00, jnperlin@hydra.localnet
[Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
- applied patch by shenpeng11@huawei.com with minor adjustments
ChangeLog@1.1786.1.2 +2 -0
[Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
- applied patch by shenpeng11@huawei.com with minor adjustments
ntpd/ntpd.c@1.168 +26 -3
[Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
- applied patch by shenpeng11@huawei.com with minor adjustments
ChangeSet@1.3615.2.1, 2015-12-06 20:19:32+01:00, jnperlin@hydra.localnet
[Bug 2772] adj_systime overflows tv_usec
ChangeLog@1.1786.2.1 +1 -0
[Bug 2772] adj_systime overflows tv_usec
libntp/systime.c@1.71 +12 -3
[Bug 2772] adj_systime overflows tv_usec
- add missing normalisation for nitpicking implementations of 'adjtime()'
ChangeSet@1.3615.1.1, 2015-12-06 11:20:02+00:00, stenn@psp-deb1.ntp.org
Quiet a warning from clang. Harlan Stenn.
ChangeLog@1.1786.1.1 +1 -0
Quiet a warning from clang. Harlan Stenn.
libntp/ntp_rfc2553.c@1.50 +3 -2
Quiet a warning from clang. Harlan Stenn.
ChangeSet@1.3616, 2015-12-05 20:28:19+00:00, perlinger@psp-deb1.ntp.org
[Bug 2980] reduce number of warnings
- string formatting(arguments should be literals)
- applying constness where necessary
- removing bad consts that are superfluous
- avoid signed/unsigned clashes in conditionals (either by cast or type change)
- signed/unsigned and promotion conflicts
- add prototypes for function pointer tables
- force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...})
ChangeLog@1.1787 +2 -0
[Bug 2980] reduce number of warnings
include/parse.h@1.14 +3 -3
[Bug 2980] reduce number of warnings
- make GPSWRAP and GPSWEEK unqualified literals to avoid signed/unsigned clashes
ntpd/ntp_config.c@1.336 +2 -0
[Bug 2980] reduce number of warnings
- add forward declaration of yyparse()
ntpd/ntp_io.c@1.410 +1 -1
[Bug 2980] reduce number of warnings
- fix a signedness comparison by adding a cast to size_t
ntpd/ntp_scanner.c@1.49 +1 -1
[Bug 2980] reduce number of warnings
- for type compatibility, make counter 'i' a size_t
ntpd/ntp_timer.c@1.94 +5 -6
[Bug 2980] reduce number of warnings
- fix a signed / unsigned compare
ntpd/refclock_chu.c@1.58 +1 -1
[Bug 2980] reduce number of warnings
- rewrite check to avoid warning about integer overflow
ntpd/refclock_gpsdjson.c@1.24 +13 -15
[Bug 2980] reduce number of warnings
- reshuffle to use a literal format string
- fix signed/unsigned clashes in compare
ntpd/refclock_jjy.c@1.30 +47 -44
Bug 2980 - reduce number of warnings
- make several pointers 'const char*'
- add prototypes for function pointer tables
- force unsigned argument promotion in calls to 'ctype' functions (is{digit,cntrl,...})
ntpd/refclock_shm.c@1.39 +1 -1
[Bug 2980] reduce number of warnings
- fix signed/unsigned clashes in compare
ntpq/ntpq-subs.c@1.114.1.1 +1 -1
[Bug 2980] reduce number of warnings
- avoid signed/unsigned clashe in compare
ntpq/ntpq.c@1.165.1.1 +47 -7
[Bug 2980] reduce number of warnings
- avoid juggling with formatting into dynamic buffers by a 'asprintf' like function
sntp/libopts/configfile.c@1.24 +22 -22
[Bug 2980] reduce number of warnings
- add some pointer constness to avoid casting it away
sntp/libopts/enum.c@1.14 +5 -5
[Bug 2980] reduce number of warnings
- avoid some unnecessary casts
- avoid shift/promote ambiguity by proper typing
sntp/libopts/find.c@1.13 +1 -1
[Bug 2980] reduce number of warnings
- Use VOIDP instead of a (char*) cast
sntp/libopts/init.c@1.9 +2 -3
[Bug 2980] reduce number of warnings
- use VOIDP() to replace a complicated double cast
- remove one useless cast
sntp/libopts/load.c@1.22 +1 -1
[Bug 2980] reduce number of warnings
- remove a useless cast
sntp/libopts/makeshell.c@1.21 +3 -3
[Bug 2980] reduce number of warnings
- fix integer promotion in calls to toupper/tolower
sntp/libopts/nested.c@1.17 +3 -1
[Bug 2980] reduce number of warnings
- avoid casting away constness by using a helper variable
sntp/libopts/parse-duration.c@1.15 +8 -2
[Bug 2980] reduce number of warnings
- avoid casting away constness by using a helper variable
sntp/libopts/reset.c@1.18 +1 -1
[Bug 2980] reduce number of warnings
- remove a useless cast
sntp/libopts/save.c@1.19 +2 -2
[Bug 2980] reduce number of warnings
- use VOIDP() instead of cast via (void**)
sntp/libopts/tokenize.c@1.14 +1 -1
[Bug 2980] reduce number of warnings
- add a required const qualification
ChangeSet@1.3597.1.5, 2015-12-05 14:29:10+01:00, jnperlin@hydra.localnet
[Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- make CTRL-C work for retrieval and printing od MRU list.
ChangeLog@1.1770.1.3 +1 -0
[Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- make CTRL-C work for retrieval and printing od MRU list.
ntpq/ntpq-subs.c@1.115 +6 -0
[Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- make CTRL-C work for retrieval and printing od MRU list:
1) CTRL-C while collecting terminates the assembling of respose.
2) CTRL-C while printing will terminate the print loop.
3) both work independently of each other.
ntpq/ntpq.c@1.166 +16 -0
[Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- when collecting fragments, CTRL-C will try to cleanly return the list of fragments so far.
ChangeSet@1.3597.5.1, 2015-12-05 13:44:57+01:00, jnperlin@hydra.localnet
[Bug 2905] DNS lookups broken.
- added limits to stack consumption, fixed some return code handling
ChangeLog@1.1770.5.1 +2 -0
[Bug 2905] DNS lookups broken.
- added limits to stack consumption, fixed some return code handling
libntp/work_thread.c@1.19 +55 -17
[Bug 2905] DNS lookups broken.
- added limits to stack consumption
- fixed some return code handling
- harden queue handling
ntpd/ntpd.c@1.166.1.1 +21 -4
[Bug 2905] DNS lookups broken.
- added limits to stack consumption of wartmup thread
ChangeSet@1.3615, 2015-12-05 10:41:51+00:00, stenn@psp-at1.ntp.org
CID 1341677: Nits in sntp/tests/keyFile.c. HStenn.
ChangeLog@1.1786 +1 -0
CID 1341677: Nits in sntp/tests/keyFile.c. HStenn.
sntp/tests/keyFile.c@1.12 +5 -2
CID 1341677: Nits in sntp/tests/keyFile.c. HStenn.
ChangeSet@1.3614, 2015-12-05 10:38:28+00:00, stenn@psp-at1.ntp.org
CID 1341678: Nits in sntp/tests/keyFile.c. HStenn.
ChangeLog@1.1785 +1 -0
CID 1341678: Nits in sntp/tests/keyFile.c. HStenn.
sntp/tests/keyFile.c@1.11 +5 -1
CID 1341678: Nits in sntp/tests/keyFile.c. HStenn.
ChangeSet@1.3613, 2015-12-05 10:31:39+00:00, stenn@psp-at1.ntp.org
CID 1341679: Nits in sntp/tests/keyFile.c. HStenn.
ChangeLog@1.1784 +1 -0
CID 1341679: Nits in sntp/tests/keyFile.c. HStenn.
sntp/tests/keyFile.c@1.10 +4 -2
CID 1341679: Nits in sntp/tests/keyFile.c. HStenn.
ChangeSet@1.3612, 2015-12-05 10:27:40+00:00, stenn@psp-at1.ntp.org
CID 1341680: Nits in sntp/tests/keyFile.c. HStenn.
ChangeLog@1.1783 +1 -0
CID 1341680: Nits in sntp/tests/keyFile.c. HStenn.
sntp/tests/keyFile.c@1.9 +4 -2
CID 1341680: Nits in sntp/tests/keyFile.c. HStenn.
ChangeSet@1.3611, 2015-12-05 10:21:07+00:00, stenn@psp-at1.ntp.org
CID 1341681: Nits in sntp/tests/keyFile.c. HStenn.
ChangeLog@1.1782 +1 -0
CID 1341681: Nits in sntp/tests/keyFile.c. HStenn.
ChangeSet@1.3610, 2015-12-05 10:18:23+00:00, stenn@psp-at1.ntp.org
sntp/tests/keyFile.c lint
sntp/tests/keyFile.c@1.8 +4 -2
sntp/tests/keyFile.c lint
ChangeSet@1.3609, 2015-12-05 10:01:47+00:00, stenn@psp-at1.ntp.org
CID 1341682: Nit in libntp/authreadkeys.c. HStenn.
ChangeLog@1.1781 +1 -0
CID 1341682: Nit in libntp/authreadkeys.c. HStenn.
libntp/authreadkeys.c@1.24 +3 -4
CID 1341682: Nit in libntp/authreadkeys.c. HStenn.
ChangeSet@1.3608, 2015-12-05 09:40:44+00:00, stenn@psp-at1.ntp.org
CID 1341684: Nit in tests/ntpd/t-ntp_signd.c. HStenn.
ChangeLog@1.1780 +1 -0
CID 1341684: Nit in tests/ntpd/t-ntp_signd.c. HStenn.
tests/ntpd/t-ntp_signd.c@1.15 +4 -0
CID 1341684: Nit in tests/ntpd/t-ntp_signd.c. HStenn.
ChangeSet@1.3607, 2015-12-03 12:07:30+00:00, stenn@psp-at1.ntp.org
Update some test runners
tests/libntp/run-sfptostr.c@1.7 +9 -8
update
tests/sandbox/run-uglydate.c@1.7 +2 -1
update
ChangeSet@1.3606, 2015-12-03 03:28:15-08:00, cov-build@cov7.ntfo.org
Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn.
ChangeLog@1.1779 +1 -0
Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn.
tests/libntp/sfptostr.c@1.5 +1 -0
Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn.
ChangeSet@1.3605, 2015-12-03 03:26:50-08:00, cov-build@cov7.ntfo.org
Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn.
ChangeLog@1.1778 +1 -0
Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn.
tests/sandbox/uglydate.c@1.6 +2 -1
Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn.
ChangeSet@1.3604, 2015-12-03 02:16:02-08:00, cov-build@cov7.ntfo.org
CID 1341527: Quiet a CHECKED_RETURN in sntp/tests/t-log.c. HStenn.
ChangeLog@1.1777 +1 -0
CID 1341527: Quiet a CHECKED_RETURN in sntp/tests/t-log.c. HStenn.
sntp/tests/t-log.c@1.7 +1 -1
CID 1341527: Quiet a CHECKED_RETURN in sntp/tests/t-log.c. HStenn.
ChangeSet@1.3603, 2015-12-03 02:00:58-08:00, cov-build@cov7.ntfo.org
CID 1341533: Missing assertion in sntp/tests/t-log.c. HStenn.
ChangeLog@1.1776 +1 -0
CID 1341533: Missing assertion in sntp/tests/t-log.c. HStenn.
sntp/tests/t-log.c@1.6 +2 -0
CID 1341533: Missing assertion in sntp/tests/t-log.c. HStenn.
ChangeSet@1.3602, 2015-12-03 01:50:11-08:00, cov-build@cov7.ntfo.org
CID 134534-134537: Resource leaks in tests/ntpd/t-ntp_signd.c. HStenn.
ChangeLog@1.1775 +4 -0
CID 134534-134537: Resource leaks in tests/ntpd/t-ntp_signd.c. HStenn.
tests/ntpd/t-ntp_signd.c@1.14 +9 -0
CID 134534-134537: Resource leaks in tests/ntpd/t-ntp_signd.c. HStenn.
ChangeSet@1.3601, 2015-12-03 01:22:22-08:00, cov-build@cov7.ntfo.org
CID 1341538: Memory leak in tests/ntpd/ntp_prio_q.c:262. HStenn.
ChangeLog@1.1774 +1 -0
CID 1341538: Memory leak in tests/ntpd/ntp_prio_q.c:262. HStenn.
tests/ntpd/ntp_prio_q.c@1.3 +1 -0
CID 1341538: Memory leak in tests/ntpd/ntp_prio_q.c:262. HStenn.
ChangeSet@1.3597.4.1, 2015-11-30 06:03:47+01:00, jnperlin@hydra.localnet
[Bug 2829] Look at pipe_fds in ntpd.c (initial value issue)
ChangeLog@1.1770.4.1 +1 -0
[Bug 2829] Look at pipe_fds in ntpd.c
ntpd/ntpd.c@1.167 +3 -0
[Bug 2829] Look at pipe_fds in ntpd.c (initial value issue)
ChangeSet@1.3597.3.1, 2015-11-29 13:03:58+01:00, jnperlin@hydra.localnet
[Bug 2887] stratum -1 config results as showing value 99
- fudge stratum only accepts values [0..16].
ChangeLog@1.1770.3.1 +2 -0
[Bug 2887] stratum -1 config results as showing value 99
- fudge stratum only accepts values [0..16].
ntpd/ntp_parser.c@1.100 +178 -171
[Bug 2887] stratum -1 config results as showing value 99
- fudge stratum only accepts values [0..16]. (file regenerated by bison & trimmed manually)
ntpd/ntp_parser.y@1.90 +8 -1
[Bug 2887] stratum -1 config results as showing value 99
- fudge stratum only accepts values [0..16], gives error otherwise
ChangeSet@1.3597.2.1, 2015-11-28 22:59:39+01:00, jnperlin@hydra.localnet
[Bug 2944] errno is not preserved properly in ntpdate after sendto call.
- applied patch by Christos Zoulas.
ChangeLog@1.1770.2.1 +2 -0
[Bug 2944] errno is not preserved properly in ntpdate after sendto call.
- applied patch by Christos Zoulas.
libntp/socktohost.c@1.16 +10 -2
[Bug 2944] errno is not preserved properly in ntpdate after sendto call.
- save errno around calls to getnameinfo/getaddrinfo (patch by Christos Zoulas)
ChangeSet@1.3597.1.4, 2015-11-28 19:09:53+01:00, jnperlin@hydra.localnet
Bug 2971 - ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C.
ChangeLog@1.1770.1.2 +2 -0
Bug 2971 - ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C.
ntpq/ntpq-subs.c@1.114 +11 -8
Bug 2971 - ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C.
ntpq/ntpq.c@1.165 +57 -8
Bug 2971 - ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C.
ntpq/ntpq.h@1.31 +4 -0
Bug 2971 - ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C.
ChangeSet@1.3597.1.3, 2015-11-25 22:10:45-08:00, harlan@max.pfcs.com
Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
ChangeLog@1.1770.1.1 +1 -0
Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
sntp/m4/ntp_libevent.m4@1.16 +2 -1
Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
ChangeSet@1.3597.1.2, 2015-11-25 12:23:40+00:00, stenn@psp-at1.ntp.org
Unity test cleanup. Harlan Stenn.
tests/ntpd/run-t-ntp_signd.c@1.11 +6 -6
Unity test cleanup. Harlan Stenn.
tests/ntpd/t-ntp_signd.c@1.13 +19 -5
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3597.1.1, 2015-11-25 11:50:51+00:00, stenn@psp-at1.ntp.org
Unity test cleanup. Harlan Stenn.
sntp/unity/unity_internals.h@1.5 +13 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/calendar.c@1.12 +8 -3
Unity test cleanup. Harlan Stenn.
tests/ntpd/leapsec.c@1.4 +241 -82
Unity test cleanup. Harlan Stenn.
tests/ntpd/run-leapsec.c@1.6 +33 -33
Unity test cleanup. Harlan Stenn.
tests/ntpd/run-t-ntp_signd.c@1.10 +6 -6
Unity test cleanup. Harlan Stenn.
tests/ntpd/t-ntp_signd.c@1.12 +40 -13
Unity test cleanup. Harlan Stenn.
tests/sandbox/smeartest.c@1.10 +3 -0
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3598, 2015-11-24 08:06:41+01:00, jnperlin@hydra.localnet
[Bug 2967] ntpdate command suffers an assertion failure
- fixed ntp_rfc2553.c to return proper address length.
ChangeLog@1.1771 +2 -0
[Bug 2967] ntpdate command suffers an assertion failure
- fixed ntp_rfc2553.c to return proper address length.
libntp/ntp_rfc2553.c@1.49 +2 -1
[Bug 2967] ntpdate command suffers an assertion failure
- fix do_nodename() to return the proper address length when name is NULL.
ChangeSet@1.3597, 2015-11-23 10:55:16+00:00, stenn@psp-at1.ntp.org
ChangeLog, caljulian.c:
* CID 1339955: Free allocated memory in caljulian test. HStenn.
* CID 1339962: Explicitly initialize variable in caljulian test. HStenn.
ChangeLog@1.1770 +2 -0
* CID 1339955: Free allocated memory in caljulian test. HStenn.
* CID 1339962: Explicitly initialize variable in caljulian test. HStenn.
tests/libntp/caljulian.c@1.14 +16 -10
* CID 1339955: Free allocated memory in caljulian test. HStenn.
* CID 1339962: Explicitly initialize variable in caljulian test. HStenn.
ChangeSet@1.3596, 2015-11-20 20:16:24-08:00, harlan@hms-mbp11.pfcs.com
Unity test cleanup. Harlan Stenn.
sntp/tests/kodDatabase.c@1.9 +0 -4
Unity test cleanup. Harlan Stenn.
sntp/tests/run-kodDatabase.c@1.9 +5 -5
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3595, 2015-11-20 19:41:16-08:00, harlan@hms-mbp11.pfcs.com
Unity test cleanup. Harlan Stenn.
sntp/tests/kodDatabase.c@1.8 +6 -0
Unity test cleanup. Harlan Stenn.
sntp/tests/kodFile.c@1.9 +1 -0
Unity test cleanup. Harlan Stenn.
sntp/tests/run-kodDatabase.c@1.8 +6 -5
Unity test cleanup. Harlan Stenn.
sntp/tests/run-t-log.c@1.5 +3 -3
Unity test cleanup. Harlan Stenn.
sntp/tests/t-log.c@1.5 +32 -16
Unity test cleanup. Harlan Stenn.
tests/libntp/calendar.c@1.11 +11 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/caljulian.c@1.13 +1 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/decodenetnum.c@1.10 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/humandate.c@1.7 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/lfptostr.c@1.8 +9 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/modetoa.c@1.8 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/msyslog.c@1.7 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/netof.c@1.9 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/numtoa.c@1.7 +11 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/numtohost.c@1.7 +11 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/prettydate.c@1.6 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/recvbuff.c@1.7 +3 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/refidsmear.c@1.7 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/refnumtoa.c@1.7 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/run-calendar.c@1.11 +15 -15
Unity test cleanup. Harlan Stenn.
tests/libntp/run-decodenetnum.c@1.10 +6 -6
Unity test cleanup. Harlan Stenn.
tests/libntp/run-humandate.c@1.7 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/run-lfptostr.c@1.8 +11 -11
Unity test cleanup. Harlan Stenn.
tests/libntp/run-modetoa.c@1.12 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/run-msyslog.c@1.9 +8 -8
Unity test cleanup. Harlan Stenn.
tests/libntp/run-netof.c@1.8 +4 -4
Unity test cleanup. Harlan Stenn.
tests/libntp/run-numtoa.c@1.11 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/run-numtohost.c@1.11 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/run-prettydate.c@1.6 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/run-refidsmear.c@1.8 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/run-refnumtoa.c@1.9 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/run-sfptostr.c@1.6 +8 -8
Unity test cleanup. Harlan Stenn.
tests/libntp/run-socktoa.c@1.13 +6 -6
Unity test cleanup. Harlan Stenn.
tests/libntp/run-statestr.c@1.11 +4 -4
Unity test cleanup. Harlan Stenn.
tests/libntp/run-strtolfp.c@1.6 +7 -7
Unity test cleanup. Harlan Stenn.
tests/libntp/run-timespecops.c@1.11 +28 -28
Unity test cleanup. Harlan Stenn.
tests/libntp/run-timevalops.c@1.13 +28 -28
Unity test cleanup. Harlan Stenn.
tests/libntp/run-uglydate.c@1.11 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/sfptostr.c@1.4 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/socktoa.c@1.11 +11 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/statestr.c@1.6 +11 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/strtolfp.c@1.7 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/timespecops.c@1.10 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/timevalops.c@1.13 +10 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/uglydate.c@1.10 +13 -1
Unity test cleanup. Harlan Stenn.
tests/sandbox/run-uglydate.c@1.6 +1 -1
Unity test cleanup. Harlan Stenn.
tests/sandbox/smeartest.c@1.9 +2 -0
Unity test cleanup. Harlan Stenn.
tests/sandbox/uglydate.c@1.5 +11 -0
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3594, 2015-11-20 07:40:57+00:00, stenn@psp-at1.ntp.org
[Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
ChangeLog@1.1769 +1 -0
[Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
ntpq/ntpq.c@1.164 +1 -1
[Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
ChangeSet@1.3593, 2015-11-20 07:27:27+00:00, stenn@psp-at1.ntp.org
Unity test cleanup. Harlan Stenn.
tests/libntp/authkeys.c@1.13 +36 -10
Unity test cleanup. Harlan Stenn.
tests/libntp/buftvtots.c@1.6 +18 -6
Unity test cleanup. Harlan Stenn.
tests/libntp/calendar.c@1.10 +100 -47
Unity test cleanup. Harlan Stenn.
tests/libntp/caljulian.c@1.12 +27 -9
Unity test cleanup. Harlan Stenn.
tests/libntp/clocktime.c@1.9 +48 -24
Unity test cleanup. Harlan Stenn.
tests/libntp/humandate.c@1.6 +6 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/lfpfunc.c@1.15 +113 -69
Unity test cleanup. Harlan Stenn.
tests/libntp/netof.c@1.8 +22 -7
Unity test cleanup. Harlan Stenn.
tests/libntp/numtohost.c@1.6 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/octtoint.c@1.7 +36 -14
Unity test cleanup. Harlan Stenn.
tests/libntp/refidsmear.c@1.6 +1 -4
Unity test cleanup. Harlan Stenn.
tests/libntp/refnumtoa.c@1.6 +5 -5
Unity test cleanup. Harlan Stenn.
tests/libntp/run-lfpfunc.c@1.18 +9 -9
Unity test cleanup. Harlan Stenn.
tests/libntp/run-refidsmear.c@1.7 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/timespecops.c@1.9 +173 -48
Unity test cleanup. Harlan Stenn.
tests/libntp/timestructs.h@1.3 +22 -22
Unity test cleanup. Harlan Stenn.
tests/libntp/timevalops.c@1.12 +168 -52
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3592, 2015-11-20 02:57:37+01:00, jnperlin@nemesis.localnet
[Bug 2969] Seg fault from ntpq/mrulist when looking at server with lots of clients
ChangeLog@1.1768 +2 -0
[Bug 2969] Seg fault from ntpq/mrulist when looking at server with lots of clients
lib/isc/sockaddr.c@1.14 +1 -1
[Bug 2969] Seg fault from ntpq/mrulist when looking at server with lots of clients
- cast fro size_t to u_int (no overflow danger); not related the bug, found while double-checking changes
ntpq/ntpq-subs.c@1.113 +1 -1
[Bug 2969] Seg fault from ntpq/mrulist when looking at server with lots of clients
- make end-of-buffer test unsigned-safe
ChangeSet@1.3591, 2015-11-17 11:12:02+00:00, stenn@psp-at1.ntp.org
[Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn.
ChangeLog@1.1767 +1 -0
[Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn.
html/miscopt.html@1.84 +3 -3
[Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn.
ChangeSet@1.3588, 2015-11-17 05:02:10+00:00, stenn@psp-at1.ntp.org
Credit Martin for 2965
ChangeLog@1.1764.1.3 +1 -1
Credit Martin for 2965
ChangeSet@1.3587, 2015-11-17 04:53:39+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1764.1.2 +1 -1
cleanup
ChangeSet@1.3584.2.1, 2015-11-16 11:59:55+01:00, burnicki@pc-martin4.
[Bug 2965] Local clock didn't work since 4.2.8p4
ChangeLog@1.1764.1.1 +1 -0
[Bug 2965] Local clock didn't work since 4.2.8p4
ntpd/refclock_local.c@1.22 +1 -0
[Bug 2965] Local clock didn't work since 4.2.8p4
ChangeSet@1.3584.1.2, 2015-11-14 01:01:05+01:00, jnperlin@hydra.localnet
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix warnings in test cases
tests/libntp/a_md5encrypt.c@1.14 +23 -15
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix terrible const/noconst and alignment mess
tests/libntp/authkeys.c@1.12 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fixed cast to const cast
tests/libntp/run-a_md5encrypt.c@1.15 +5 -5
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- update generated file
tests/ntpd/rc_cmdlength.c@1.3 +1 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- add header to get prototype
tests/ntpd/run-rc_cmdlength.c@1.4 +2 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
ChangeSet@1.3584.1.1, 2015-11-13 22:54:35+01:00, jnperlin@hydra.localnet
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fixed several other warnings (cast-alignment, missing const, missing prorotypes)
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only arguments
- make sure SOCKET values are not truncated (win32-specific)
- format string fixes
ChangeLog@1.1765 +6 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets.
include/Makefile.am@1.53 +1 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- added 'safeconst.h' to noinstall-headers
include/ntp_refclock.h@1.37 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use ptr-to-const for read-only values
include/ntp_stdlib.h@1.80 +4 -4
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only data
include/ntpd.h@1.193 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
include/safecast.h@1.1 +34 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- checked or saturated size conversion
- added unaligned pointer casts
include/safecast.h@1.0 +0 -0
lib/isc/backtrace.c@1.3 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid increased-alignment-earning in pointer cast
lib/isc/buffer.c@1.2 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
lib/isc/inet_aton.c@1.6 +2 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
lib/isc/inet_pton.c@1.7 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
lib/isc/log.c@1.9 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
lib/isc/netaddr.c@1.14 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explicit cast (no overflow) to u_int
lib/isc/sockaddr.c@1.13 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explicit cast to 'u_int' (no overflow possible)
lib/isc/task.c@1.8 +8 -8
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid warnings about increased alignment requirements (not using 'safecast.h' since it's not in this lib)
lib/isc/win32/interfaceiter.c@1.23 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid truncation of SOCKET
lib/isc/win32/net.c@1.17 +2 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid truncation of SOCKET
libntp/a_md5encrypt.c@1.35 +14 -14
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only values
libntp/atolfp.c@1.7 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explit cast from size_t to u_long (no overflow possoble)
libntp/authkeys.c@1.27.1.1 +4 -4
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
libntp/authusekey.c@1.10 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
libntp/dolfptoa.c@1.12 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explicit cast to size_t to in (no overflow possible)
libntp/hextolfp.c@1.5 +6 -4
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explicit cast size_t to u_long (no overflow possible)
libntp/mstolfp.c@1.5 +1 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
libntp/msyslog.c@1.54 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
libntp/ntp_crypto_rnd.c@1.4 +2 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use checked cast for interface with openSSL
libntp/ntp_lineedit.c@1.14 +2 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- downcast of size_t (no risk here)
libntp/ntp_worker.c@1.6 +2 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- downcast of size_t (no real risk of overflow)
libntp/snprintf.c@1.13 +10 -10
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use explicit downcasts in conversions
libparse/clk_computime.c@1.13 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_dcf7000.c@1.13 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_hopf6021.c@1.12 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_meinberg.c@1.16 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_rawdcf.c@1.23 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_rcc8000.c@1.12 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_schmid.c@1.15 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_trimtaip.c@1.13 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_varitext.c@1.12 +6 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- commented unused static const values
---
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/clk_wharton.c@1.11 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
libparse/parse.c@1.21 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use "%p" to format pointers
ntpd/ntp_control.c@1.205 +5 -5
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpd/ntp_crypto.c@1.185 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix small signed/unsigned clash
ntpd/ntp_io.c@1.409 +6 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- remove cast-alignment warnings by casting via 'void*'
- proper cast from SOCKET to int when file descriptor needed
ntpd/ntp_loopfilter.c@1.188 +2 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid 'unused' warnings
ntpd/ntp_proto.c@1.368.1.1 +8 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
- fix signed/unsigned clash
ntpd/ntp_refclock.c@1.121 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use ptr-to-const for read-only parameters
ntpd/ntp_request.c@1.115 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid serious LP64 problem by using uint32_t instead of u_long
ntpd/ntp_restrict.c@1.40 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpd/ntp_signd.c@1.5 +3 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fixed missing 'const' in cast
ntpd/ntp_timer.c@1.93 +7 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid mixed float/int calculations
ntpd/ntp_util.c@1.117 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpd/refclock_parse.c@1.82 +2 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpd/refclock_shm.c@1.38 +3 -2
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fixed some volatile madness & casts
ntpd/refclock_true.c@1.25 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpd/refclock_tsyncpci.c@1.10 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- remove cast-alignment warnings by omitting superfluous cast
ntpdate/ntpdate.c@1.97 +7 -7
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- avoid truncation of SOCKET handles
ntpdc/ntpdc.c@1.104.1.1 +36 -34
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
ntpdc/ntpdc.h@1.12 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ntpdc/ntpdc_ops.c@1.81 +109 -109
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
ntpq/libntpq.c@1.13 +7 -9
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
ntpq/libntpq.h@1.11 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- more size_t propagation and format string fixes
ntpq/libntpq_subs.c@1.7 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- more size_t propagation and format string fixes
ntpq/ntpq-subs.c@1.112 +39 -37
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
ntpq/ntpq.c@1.163 +34 -34
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- format string fixes
ntpq/ntpq.h@1.30 +7 -7
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
ports/winnt/include/config.h@1.113 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- use ptr-to-const for read-only values
ports/winnt/include/ntp_iocompletionport.h@1.21 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid truncation of SOCKET identifiers
ports/winnt/instsrv/instsrv.c@1.7 +6 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- explicit cast to DWORD (overflow hardly possible)
ports/winnt/libntp/termios.c@1.32 +18 -16
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only values
- avoid truncation of handle
ports/winnt/ntpd/ntp_iocompletionport.c@1.72 +9 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- avoid truncation of SOCKET handles
ports/winnt/vs2008/common.vsprops@1.2 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- disable a size_t cast warnings
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.50 +49 -17
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- disable C4307 (integer constant overflow) on refclock_arc.c
ports/winnt/vs2013/common.props@1.2 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- disable the annoying truncation-of-value error
ports/winnt/vs2013/libntp/libntp.vcxproj@1.9 +1 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- add 'safecast.h' header
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.7 +3 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- add safecast.h header
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.8 +7 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- refclock_arc is very noisy with integer constant overflow
sntp/networking.c@1.67 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- remove cast-alignment warnings by casting via 'void*'
tests/libntp/authkeys.c@1.11 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix missing 'const' in cast
tests/ntpd/ntp_restrict.c@1.3 +1 -0
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix function declarations
tests/ntpd/run-ntp_restrict.c@1.5 +8 -8
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- update auto-generated file
tests/ntpd/run-t-ntp_signd.c@1.9 +7 -7
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix function prototypes
tests/ntpd/t-ntp_scanner.c@1.7 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- add missing 'const' declarations
tests/ntpd/t-ntp_signd.c@1.11 +24 -13
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- added missing prototypes and a fix serious pointer problem
tests/sandbox/run-uglydate.c@1.3.1.1 +1 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- update generated file
tests/sandbox/uglydate.c@1.2.1.1 +4 -1
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- add prototypes
tests/sec-2853/sec-2853.c@1.7 +6 -6
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- fix size_t format
util/ntp-keygen.c@1.107 +3 -3
[Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets
- let openssl sort out the string size
ChangeSet@1.3585, 2015-11-07 23:46:41+00:00, stenn@psp-at1.ntp.org
Unity test cleanup. Harlan Stenn.
sntp/tests/t-log.c@1.4 +1 -1
Unity test cleanup. Harlan Stenn.
tests/sandbox/run-uglydate.c@1.4 +1 -1
Unity test cleanup. Harlan Stenn.
tests/sandbox/uglydate.c@1.3 +2 -0
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3581.1.1, 2015-11-06 08:33:23+01:00, jnperlin@hydra.localnet
[Bug 2957] format specifies type 'unsigned int' but the argument has type 'size_t'
- accept key file only if there are no parsing errors
- fixed size_t/u_int format clash
- restore pre-Bug1243 compatibility (revert 'strlcpy()' to 'strncpy()' as 'strlcpy()' is wrong here)
ChangeLog@1.1761.1.1 +4 -0
[Bug 2957] format specifies type 'unsigned int' but the argument has type 'size_t'
- accept key file only if there are no parsing errors
- fixed size_t/u_int format clash
- restore pre-Bug1243 compatibility (revert 'strlcpy()' to 'strncpy()' as 'strlcpy()' is wrong here)
libntp/authkeys.c@1.28 +17 -5
[Bug 2957] format specifies type 'unsigned int' but the argument has type 'size_t'
- restore pre-Bug1243 compatibility (revert 'strlcpy()' to 'strncpy()' as 'strlcpy()' is wrong here)
libntp/authreadkeys.c@1.23 +68 -22
[Bug 2957] format specifies type 'unsigned int' but the argument has type 'size_t'
- accept key file only if there are no parsing errors
- fixed size_t/u_int format clash
ChangeSet@1.3584, 2015-11-05 11:47:50+00:00, stenn@psp-at1.ntp.org
Unity test cleanup. Harlan Stenn.
ChangeLog@1.1764 +1 -0
Unity test cleanup. Harlan Stenn.
sntp/tests/run-t-log.c@1.4 +1 -1
Unity test cleanup. Harlan Stenn.
sntp/tests/t-log.c@1.3 +1 -0
Unity test cleanup. Harlan Stenn.
sntp/tests/utilities.c@1.5 +2 -2
Unity test cleanup. Harlan Stenn.
tests/bug-2803/bug-2803.c@1.10 +1 -1
Unity test cleanup. Harlan Stenn.
tests/bug-2803/run-bug-2803.c@1.9 +2 -0
Unity test cleanup. Harlan Stenn.
tests/libntp/a_md5encrypt.c@1.13 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/caljulian.c@1.11 +4 -4
Unity test cleanup. Harlan Stenn.
tests/libntp/lfpfunc.c@1.14 +9 -9
Unity test cleanup. Harlan Stenn.
tests/libntp/netof.c@1.7 +10 -10
Unity test cleanup. Harlan Stenn.
tests/libntp/prettydate.c@1.5 +3 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/recvbuff.c@1.6 +1 -1
Unity test cleanup. Harlan Stenn.
tests/libntp/socktoa.c@1.10 +2 -2
Unity test cleanup. Harlan Stenn.
tests/libntp/uglydate.c@1.9 +2 -2
Unity test cleanup. Harlan Stenn.
tests/sandbox/smeartest.c@1.8 +1 -0
Unity test cleanup. Harlan Stenn.
tests/sandbox/uglydate.c@1.2 +2 -2
Unity test cleanup. Harlan Stenn.
tests/sec-2853/sec-2853.c@1.6 +1 -4
Unity test cleanup. Harlan Stenn.
ChangeSet@1.3583, 2015-11-05 10:37:38+00:00, stenn@psp-at1.ntp.org
Unity cleanup for FreeBSD-6.4. Harlan Stenn.
ChangeLog@1.1763 +1 -1
Unity cleanup for FreeBSD-6.4. Harlan Stenn.
ChangeLog@1.1762 +1 -0
Unity cleanup for FreeBSD-6.2. Harlan Stenn.
sntp/m4/ntp_problemtests.m4@1.4 +4 -1
Unity cleanup for FreeBSD-6.4. Harlan Stenn.
ChangeSet@1.3582, 2015-11-05 10:01:57+00:00, stenn@psp-at1.ntp.org
Sec 2956 cleanup
include/ntpd.h@1.192 +1 -0
Sec 2956 cleanup
libntp/systime.c@1.70 +2 -3
Sec 2956 cleanup
ntpd/ntp_loopfilter.c@1.187 +0 -2
Sec 2956 cleanup
ntpdate/ntpdate.c@1.96 +0 -3
Sec 2956 cleanup
ntpsnmpd/ntpsnmpd.c@1.10 +0 -3
Sec 2956 cleanup
sntp/main.c@1.98 +0 -3
Sec 2956 cleanup
ChangeSet@1.3581, 2015-11-04 10:02:25+00:00, stenn@psp-at1.ntp.org
[Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray
ChangeLog@1.1761 +2 -1
[Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray
tests/ntpd/t-ntp_scanner.c@1.6 +1 -1
[Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray
ChangeSet@1.3580, 2015-11-04 08:39:12+00:00, stenn@psp-at1.ntp.org
[Sec 2956] small-step/big-step. Close the panic gate earlier.
ChangeLog@1.1760 +2 -0
[Sec 2956] small-step/big-step. Close the panic gate earlier.
libntp/systime.c@1.69 +23 -2
[Sec 2956] small-step/big-step. Close the panic gate earlier.
ntpd/ntp_loopfilter.c@1.186 +17 -27
[Sec 2956] small-step/big-step. Close the panic gate earlier.
ntpdate/ntpdate.c@1.95 +3 -0
[Sec 2956] small-step/big-step. Close the panic gate earlier.
ntpsnmpd/ntpsnmpd.c@1.9 +3 -0
[Sec 2956] small-step/big-step. Close the panic gate earlier.
sntp/main.c@1.97 +3 -0
[Sec 2956] small-step/big-step. Close the panic gate earlier.
ChangeSet@1.3579, 2015-11-03 22:08:46+01:00, jnperlin@hydra.localnet
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
ChangeLog@1.1759 +1 -0
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
ntpd/ntpd.c@1.166 +9 -2
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
ChangeSet@1.3578, 2015-10-31 18:04:18+00:00, perlinger@psp-deb1.ntp.org
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- fixed race conditions between worker and main thread in DNS worker
ChangeLog@1.1758 +3 -0
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- fixed race conditions between worker and main thread in DNS worker
include/ntp_worker.h@1.4 +45 -21
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- provide shared access lock based on semaphore
- better isolation of OS dependencies
libntp/work_thread.c@1.18 +370 -231
[Bug 2954] Version 4.2.8p4 crashes on startup with sig fault
- fixed race conditions between worker and main thread
- better (still not perfect) isolation of OS dependent code for semaphore handling
ChangeSet@1.3577, 2015-10-21 12:42:02-04:00, stenn@deacon.udel.edu
NTP_4_2_8P4
TAG: NTP_4_2_8P4
ChangeLog@1.1757 +1 -0
NTP_4_2_8P4
ntpd/invoke-ntp.conf.texi@1.193 +1 -1
NTP_4_2_8P4
ntpd/invoke-ntp.keys.texi@1.185 +1 -1
NTP_4_2_8P4
ntpd/invoke-ntpd.texi@1.502 +2 -2
NTP_4_2_8P4
ntpd/ntp.conf.5man@1.227 +3 -3
NTP_4_2_8P4
ntpd/ntp.conf.5mdoc@1.227 +2 -2
NTP_4_2_8P4
ntpd/ntp.conf.html@1.181 +94 -107
NTP_4_2_8P4
ntpd/ntp.conf.man.in@1.227 +3 -3
NTP_4_2_8P4
ntpd/ntp.conf.mdoc.in@1.227 +2 -2
NTP_4_2_8P4
ntpd/ntp.keys.5man@1.219 +2 -2
NTP_4_2_8P4
ntpd/ntp.keys.5mdoc@1.219 +3 -3
NTP_4_2_8P4
ntpd/ntp.keys.html@1.181 +21 -33
NTP_4_2_8P4
ntpd/ntp.keys.man.in@1.219 +2 -2
NTP_4_2_8P4
ntpd/ntp.keys.mdoc.in@1.219 +3 -3
NTP_4_2_8P4
ntpd/ntpd-opts.c@1.524 +245 -245
NTP_4_2_8P4
ntpd/ntpd-opts.h@1.523 +3 -3
NTP_4_2_8P4
ntpd/ntpd.1ntpdman@1.331 +3 -3
NTP_4_2_8P4
ntpd/ntpd.1ntpdmdoc@1.331 +2 -2
NTP_4_2_8P4
ntpd/ntpd.html@1.175 +142 -186
NTP_4_2_8P4
ntpd/ntpd.man.in@1.331 +3 -3
NTP_4_2_8P4
ntpd/ntpd.mdoc.in@1.331 +2 -2
NTP_4_2_8P4
ntpdc/invoke-ntpdc.texi@1.499 +2 -2
NTP_4_2_8P4
ntpdc/ntpdc-opts.c@1.517 +107 -107
NTP_4_2_8P4
ntpdc/ntpdc-opts.h@1.516 +3 -3
NTP_4_2_8P4
ntpdc/ntpdc.1ntpdcman@1.330 +3 -3
NTP_4_2_8P4
ntpdc/ntpdc.1ntpdcmdoc@1.330 +2 -2
NTP_4_2_8P4
ntpdc/ntpdc.html@1.343 +75 -95
NTP_4_2_8P4
ntpdc/ntpdc.man.in@1.330 +3 -3
NTP_4_2_8P4
ntpdc/ntpdc.mdoc.in@1.330 +2 -2
NTP_4_2_8P4
ntpq/invoke-ntpq.texi@1.506 +2 -2
NTP_4_2_8P4
ntpq/ntpq-opts.c@1.523 +106 -106
NTP_4_2_8P4
ntpq/ntpq-opts.h@1.521 +3 -3
NTP_4_2_8P4
ntpq/ntpq.1ntpqman@1.334 +3 -3
NTP_4_2_8P4
ntpq/ntpq.1ntpqmdoc@1.334 +2 -2
NTP_4_2_8P4
ntpq/ntpq.html@1.172 +132 -155
NTP_4_2_8P4
ntpq/ntpq.man.in@1.334 +3 -3
NTP_4_2_8P4
ntpq/ntpq.mdoc.in@1.334 +2 -2
NTP_4_2_8P4
ntpsnmpd/invoke-ntpsnmpd.texi@1.501 +2 -2
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd-opts.c@1.519 +68 -68
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd-opts.h@1.518 +3 -3
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.330 +3 -3
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.330 +2 -2
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd.html@1.170 +10 -14
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd.man.in@1.330 +3 -3
NTP_4_2_8P4
ntpsnmpd/ntpsnmpd.mdoc.in@1.330 +2 -2
NTP_4_2_8P4
packageinfo.sh@1.520 +3 -3
NTP_4_2_8P4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.91 +3 -3
NTP_4_2_8P4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.92 +2 -2
NTP_4_2_8P4
scripts/calc_tickadj/calc_tickadj.html@1.93 +30 -42
NTP_4_2_8P4
scripts/calc_tickadj/calc_tickadj.man.in@1.90 +3 -3
NTP_4_2_8P4
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.92 +2 -2
NTP_4_2_8P4
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.95 +1 -1
NTP_4_2_8P4
scripts/invoke-plot_summary.texi@1.112 +2 -2
NTP_4_2_8P4
scripts/invoke-summary.texi@1.112 +2 -2
NTP_4_2_8P4
scripts/ntp-wait/invoke-ntp-wait.texi@1.322 +2 -2
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait-opts@1.58 +2 -2
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.319 +3 -3
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.320 +2 -2
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait.html@1.339 +41 -59
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait.man.in@1.319 +3 -3
NTP_4_2_8P4
scripts/ntp-wait/ntp-wait.mdoc.in@1.320 +2 -2
NTP_4_2_8P4
scripts/ntpsweep/invoke-ntpsweep.texi@1.110 +2 -2
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep-opts@1.60 +2 -2
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.98 +3 -3
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.98 +2 -2
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep.html@1.111 +46 -57
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep.man.in@1.98 +3 -3
NTP_4_2_8P4
scripts/ntpsweep/ntpsweep.mdoc.in@1.99 +2 -2
NTP_4_2_8P4
scripts/ntptrace/invoke-ntptrace.texi@1.111 +2 -2
NTP_4_2_8P4
scripts/ntptrace/ntptrace-opts@1.60 +2 -2
NTP_4_2_8P4
scripts/ntptrace/ntptrace.1ntptraceman@1.98 +3 -3
NTP_4_2_8P4
scripts/ntptrace/ntptrace.1ntptracemdoc@1.99 +2 -2
NTP_4_2_8P4
scripts/ntptrace/ntptrace.html@1.112 +38 -47
NTP_4_2_8P4
scripts/ntptrace/ntptrace.man.in@1.98 +3 -3
NTP_4_2_8P4
scripts/ntptrace/ntptrace.mdoc.in@1.100 +2 -2
NTP_4_2_8P4
scripts/plot_summary-opts@1.60 +2 -2
NTP_4_2_8P4
scripts/plot_summary.1plot_summaryman@1.110 +3 -3
NTP_4_2_8P4
scripts/plot_summary.1plot_summarymdoc@1.110 +2 -2
NTP_4_2_8P4
scripts/plot_summary.html@1.113 +40 -58
NTP_4_2_8P4
scripts/plot_summary.man.in@1.110 +3 -3
NTP_4_2_8P4
scripts/plot_summary.mdoc.in@1.110 +2 -2
NTP_4_2_8P4
scripts/summary-opts@1.60 +2 -2
NTP_4_2_8P4
scripts/summary.1summaryman@1.110 +3 -3
NTP_4_2_8P4
scripts/summary.1summarymdoc@1.110 +2 -2
NTP_4_2_8P4
scripts/summary.html@1.113 +37 -49
NTP_4_2_8P4
scripts/summary.man.in@1.110 +3 -3
NTP_4_2_8P4
scripts/summary.mdoc.in@1.110 +2 -2
NTP_4_2_8P4
scripts/update-leap/invoke-update-leap.texi@1.11 +1 -1
NTP_4_2_8P4
scripts/update-leap/update-leap-opts@1.11 +2 -2
NTP_4_2_8P4
scripts/update-leap/update-leap.1update-leapman@1.11 +3 -3
NTP_4_2_8P4
scripts/update-leap/update-leap.1update-leapmdoc@1.11 +2 -2
NTP_4_2_8P4
scripts/update-leap/update-leap.html@1.11 +48 -72
NTP_4_2_8P4
scripts/update-leap/update-leap.man.in@1.11 +3 -3
NTP_4_2_8P4
scripts/update-leap/update-leap.mdoc.in@1.11 +2 -2
NTP_4_2_8P4
sntp/invoke-sntp.texi@1.499 +2 -2
NTP_4_2_8P4
sntp/sntp-opts.c@1.518 +159 -159
NTP_4_2_8P4
sntp/sntp-opts.h@1.516 +3 -3
NTP_4_2_8P4
sntp/sntp.1sntpman@1.334 +3 -3
NTP_4_2_8P4
sntp/sntp.1sntpmdoc@1.334 +2 -2
NTP_4_2_8P4
sntp/sntp.html@1.514 +111 -135
NTP_4_2_8P4
sntp/sntp.man.in@1.334 +3 -3
NTP_4_2_8P4
sntp/sntp.mdoc.in@1.334 +2 -2
NTP_4_2_8P4
util/invoke-ntp-keygen.texi@1.502 +2 -2
NTP_4_2_8P4
util/ntp-keygen-opts.c@1.520 +173 -173
NTP_4_2_8P4
util/ntp-keygen-opts.h@1.518 +3 -3
NTP_4_2_8P4
util/ntp-keygen.1ntp-keygenman@1.330 +3 -3
NTP_4_2_8P4
util/ntp-keygen.1ntp-keygenmdoc@1.330 +2 -2
NTP_4_2_8P4
util/ntp-keygen.html@1.176 +157 -216
NTP_4_2_8P4
util/ntp-keygen.man.in@1.330 +3 -3
NTP_4_2_8P4
util/ntp-keygen.mdoc.in@1.330 +2 -2
NTP_4_2_8P4
ChangeSet@1.3576, 2015-10-21 11:58:26-04:00, stenn@deacon.udel.edu
4.2.8p4
packageinfo.sh@1.519 +1 -1
4.2.8p4
ChangeSet@1.3575, 2015-10-21 15:35:31+00:00, stenn@psp-deb1.ntp.org
Update severity information
NEWS@1.150 +2 -2
Update severity information
ChangeSet@1.3574, 2015-10-20 08:00:43+00:00, stenn@psp-deb1.ntp.org
Update CVEs
NEWS@1.149 +16 -16
Update CVEs
ChangeSet@1.3558.8.1, 2015-10-17 23:19:57+02:00, jnperlin@hydra.localnet
[Bug 2945] Zero Origin Timestamp Bypass
ChangeLog@1.1743.8.1 +2 -0
[Bug 2945] Zero Origin Timestamp Bypass
ntpd/ntp_proto.c@1.364.2.1 +9 -1
[Bug 2945] Zero Origin Timestamp Bypass
- in basic mode 'aorg' is cleared to indicate a response has been received. So a reply has to be dropped
when it either does not match the origin timestamp OR the origin time stamp is zero.
ChangeSet@1.3558.7.1, 2015-10-17 21:15:39+02:00, jnperlin@hydra.localnet
[Bug 2948] Potential Infinite Loop in ntpq and ntpdc
ChangeLog@1.1743.7.1 +2 -0
[Bug 2948] Potential Infinite Loop in ntpq and ntpdc
ntpdc/ntpdc.c@1.105 +20 -1
[Bug 2948] Potential Infinite Loop in ntpq and ntpdc
- check timeout between request and valid response(s) instead of *any* incoming data
ntpq/ntpq.c@1.161.2.1 +22 -2
[Bug 2948] Potential Infinite Loop in ntpq and ntpdc
- check timeout between request and valid response(s) instead of *any* incoming data
ChangeSet@1.3573, 2015-10-17 06:28:49+00:00, stenn@psp-deb1.ntp.org
ntp-4.2.8p4-sec-RC2
NEWS@1.148 +336 -4
ntp-4.2.8p4-sec-RC2
ntpd/invoke-ntp.conf.texi@1.192 +1 -1
ntp-4.2.8p4-sec-RC2
ntpd/invoke-ntp.keys.texi@1.184 +1 -1
ntp-4.2.8p4-sec-RC2
ntpd/invoke-ntpd.texi@1.501 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntp.conf.5man@1.226 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntp.conf.5mdoc@1.226 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntp.conf.html@1.180 +107 -94
ntp-4.2.8p4-sec-RC2
ntpd/ntp.conf.man.in@1.226 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntp.conf.mdoc.in@1.226 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntp.keys.5man@1.218 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntp.keys.5mdoc@1.218 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntp.keys.html@1.180 +33 -21
ntp-4.2.8p4-sec-RC2
ntpd/ntp.keys.man.in@1.218 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntp.keys.mdoc.in@1.218 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntpd-opts.c@1.523 +245 -245
ntp-4.2.8p4-sec-RC2
ntpd/ntpd-opts.h@1.522 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntpd.1ntpdman@1.330 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntpd.1ntpdmdoc@1.330 +2 -2
ntp-4.2.8p4-sec-RC2
ntpd/ntpd.html@1.174 +186 -142
ntp-4.2.8p4-sec-RC2
ntpd/ntpd.man.in@1.330 +3 -3
ntp-4.2.8p4-sec-RC2
ntpd/ntpd.mdoc.in@1.330 +2 -2
ntp-4.2.8p4-sec-RC2
ntpdc/invoke-ntpdc.texi@1.498 +2 -2
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc-opts.c@1.516 +107 -107
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc-opts.h@1.515 +3 -3
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc.1ntpdcman@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc.1ntpdcmdoc@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc.html@1.342 +95 -75
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc.man.in@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
ntpdc/ntpdc.mdoc.in@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
ntpq/invoke-ntpq.texi@1.505 +2 -2
ntp-4.2.8p4-sec-RC2
ntpq/ntpq-opts.c@1.522 +106 -106
ntp-4.2.8p4-sec-RC2
ntpq/ntpq-opts.h@1.520 +3 -3
ntp-4.2.8p4-sec-RC2
ntpq/ntpq.1ntpqman@1.333 +3 -3
ntp-4.2.8p4-sec-RC2
ntpq/ntpq.1ntpqmdoc@1.333 +2 -2
ntp-4.2.8p4-sec-RC2
ntpq/ntpq.html@1.171 +155 -132
ntp-4.2.8p4-sec-RC2
ntpq/ntpq.man.in@1.333 +3 -3
ntp-4.2.8p4-sec-RC2
ntpq/ntpq.mdoc.in@1.333 +2 -2
ntp-4.2.8p4-sec-RC2
ntpsnmpd/invoke-ntpsnmpd.texi@1.500 +2 -2
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd-opts.c@1.518 +68 -68
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd-opts.h@1.517 +3 -3
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd.html@1.169 +14 -10
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd.man.in@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
ntpsnmpd/ntpsnmpd.mdoc.in@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
packageinfo.sh@1.518 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.90 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.91 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/calc_tickadj.html@1.92 +42 -30
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/calc_tickadj.man.in@1.89 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.91 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.94 +1 -1
ntp-4.2.8p4-sec-RC2
scripts/invoke-plot_summary.texi@1.111 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/invoke-summary.texi@1.111 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/invoke-ntp-wait.texi@1.321 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait-opts@1.57 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.318 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.319 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait.html@1.338 +59 -41
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait.man.in@1.318 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntp-wait/ntp-wait.mdoc.in@1.319 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/invoke-ntpsweep.texi@1.109 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep-opts@1.59 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.97 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.97 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep.html@1.110 +57 -46
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep.man.in@1.97 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntpsweep/ntpsweep.mdoc.in@1.98 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/invoke-ntptrace.texi@1.110 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace-opts@1.59 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace.1ntptraceman@1.97 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.98 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace.html@1.111 +47 -38
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace.man.in@1.97 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/ntptrace/ntptrace.mdoc.in@1.99 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/plot_summary-opts@1.59 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/plot_summary.1plot_summaryman@1.109 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/plot_summary.1plot_summarymdoc@1.109 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/plot_summary.html@1.112 +58 -40
ntp-4.2.8p4-sec-RC2
scripts/plot_summary.man.in@1.109 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/plot_summary.mdoc.in@1.109 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/summary-opts@1.59 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/summary.1summaryman@1.109 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/summary.1summarymdoc@1.109 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/summary.html@1.112 +49 -37
ntp-4.2.8p4-sec-RC2
scripts/summary.man.in@1.109 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/summary.mdoc.in@1.109 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/update-leap/invoke-update-leap.texi@1.10 +1 -1
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap-opts@1.10 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap.1update-leapman@1.10 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap.1update-leapmdoc@1.10 +2 -2
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap.html@1.10 +72 -48
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap.man.in@1.10 +3 -3
ntp-4.2.8p4-sec-RC2
scripts/update-leap/update-leap.mdoc.in@1.10 +2 -2
ntp-4.2.8p4-sec-RC2
sntp/invoke-sntp.texi@1.498 +2 -2
ntp-4.2.8p4-sec-RC2
sntp/sntp-opts.c@1.517 +159 -159
ntp-4.2.8p4-sec-RC2
sntp/sntp-opts.h@1.515 +3 -3
ntp-4.2.8p4-sec-RC2
sntp/sntp.1sntpman@1.333 +3 -3
ntp-4.2.8p4-sec-RC2
sntp/sntp.1sntpmdoc@1.333 +2 -2
ntp-4.2.8p4-sec-RC2
sntp/sntp.html@1.513 +135 -111
ntp-4.2.8p4-sec-RC2
sntp/sntp.man.in@1.333 +3 -3
ntp-4.2.8p4-sec-RC2
sntp/sntp.mdoc.in@1.333 +2 -2
ntp-4.2.8p4-sec-RC2
util/invoke-ntp-keygen.texi@1.501 +2 -2
ntp-4.2.8p4-sec-RC2
util/ntp-keygen-opts.c@1.519 +173 -173
ntp-4.2.8p4-sec-RC2
util/ntp-keygen-opts.h@1.517 +3 -3
ntp-4.2.8p4-sec-RC2
util/ntp-keygen.1ntp-keygenman@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
util/ntp-keygen.1ntp-keygenmdoc@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
util/ntp-keygen.html@1.175 +216 -157
ntp-4.2.8p4-sec-RC2
util/ntp-keygen.man.in@1.329 +3 -3
ntp-4.2.8p4-sec-RC2
util/ntp-keygen.mdoc.in@1.329 +2 -2
ntp-4.2.8p4-sec-RC2
ChangeSet@1.3572, 2015-10-17 03:10:01+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1756 +1 -5
cleanup
ChangeSet@1.3571, 2015-10-17 01:39:22+00:00, stenn@psp-deb1.ntp.org
[Sec 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
ChangeLog@1.1755 +4 -1
[Sec 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
ChangeSet@1.3558.6.2, 2015-10-13 23:31:28+02:00, jnperlin@hydra.localnet
[Bug 2938] ntpq saveconfig command allows dangerous characters in filenames.
- make sure the file does not exist (no overwrite allowed)
- ensure text mode where applicable (windows)
ntpd/ntp_control.c@1.203.1.2 +17 -3
[Bug 2938] ntpq saveconfig command allows dangerous characters in filenames.
- make sure the file does not exist (no overwrite allowed)
- ensure text mode where applicable (windows)
ChangeSet@1.3558.6.1, 2015-10-12 08:18:56+02:00, jnperlin@hydra.localnet
[Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
ChangeLog@1.1743.6.1 +3 -0
[Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
ntpd/ntp_control.c@1.203.1.1 +161 -37
[Bug 2938] ntpq saveconfig command allows dangerous characters in filenames
- added function to check safe file names ([_A-Za-z0-9][-+._A-Za-z0-9]*)
- checked for truncation, too, not only overrun safey
ChangeSet@1.3558.5.1, 2015-10-11 14:12:31+02:00, jnperlin@hydra.localnet
[Bug 2939] reslist NULL pointer dereference
[Bug 2940] Stack exhaustion in recursive traversal of restriction list
-- these two where fixed together --
ChangeLog@1.1743.5.1 +4 -0
[Bug 2939] reslist NULL pointer dereference
[Bug 2940] Stack exhaustion in recursive traversal of restriction list
ntpd/ntp_request.c@1.113.1.1 +127 -39
[Bug 2939] reslist NULL pointer dereference
[Bug 2940] Stack exhaustion in recursive traversal of restriction list
- use iteration and a scratch pad stack to do the list reversal; deep recusrsion can be dangerous in C
- properly terminate processing when 'more_pkt()' indicates packet full
- check the return value of 'more_pkt()' when used in iterations, or trash it explicitely
- fixed uint32_t vs. u_long clash that would cause security problems on big-endian 64bit machines
ChangeSet@1.3558.4.1, 2015-10-11 09:32:40+02:00, jnperlin@hydra.localnet
[Bug 2937] (NTPQ) nextvar() missing length check
ChangeLog@1.1743.4.1 +2 -0
[Bug 2937] (NTPQ) nextvar() missing length check
ntpq/ntpq.c@1.161.1.1 +2 -0
[Bug 2937] (NTPQ) nextvar() missing length check
ChangeSet@1.3558.3.3, 2015-10-11 08:10:20+02:00, jnperlin@hydra.localnet
[Bug 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
ChangeLog@1.1743.3.3 +3 -0
[Bug 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
ntpd/ntp_proto.c@1.364.1.1 +18 -0
[Bug 2941] NAK to the Future: Symmetric association authentication bypass via crypto-NAK
ChangeSet@1.3558.3.2, 2015-10-06 06:25:48-04:00, stenn@deacon.udel.edu
NTP_4_2_8P4_RC1
TAG: NTP_4_2_8P4_RC1
ChangeLog@1.1743.3.2 +1 -0
NTP_4_2_8P4_RC1
ntpd/invoke-ntp.conf.texi@1.191 +1 -1
NTP_4_2_8P4_RC1
ntpd/invoke-ntp.keys.texi@1.183 +1 -1
NTP_4_2_8P4_RC1
ntpd/invoke-ntpd.texi@1.500 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.conf.5man@1.225 +3 -3
NTP_4_2_8P4_RC1
ntpd/ntp.conf.5mdoc@1.225 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.conf.html@1.179 +1196 -1524
NTP_4_2_8P4_RC1
ntpd/ntp.conf.man.in@1.225 +3 -3
NTP_4_2_8P4_RC1
ntpd/ntp.conf.mdoc.in@1.225 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.keys.5man@1.217 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.keys.5mdoc@1.217 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.keys.html@1.179 +1 -1
NTP_4_2_8P4_RC1
ntpd/ntp.keys.man.in@1.217 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntp.keys.mdoc.in@1.217 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntpd-opts.c@1.522 +245 -245
NTP_4_2_8P4_RC1
ntpd/ntpd-opts.h@1.521 +3 -3
NTP_4_2_8P4_RC1
ntpd/ntpd.1ntpdman@1.329 +8 -4
NTP_4_2_8P4_RC1
ntpd/ntpd.1ntpdmdoc@1.329 +7 -3
NTP_4_2_8P4_RC1
ntpd/ntpd.html@1.173 +2 -2
NTP_4_2_8P4_RC1
ntpd/ntpd.man.in@1.329 +8 -4
NTP_4_2_8P4_RC1
ntpd/ntpd.mdoc.in@1.329 +7 -3
NTP_4_2_8P4_RC1
ntpdc/invoke-ntpdc.texi@1.497 +2 -2
NTP_4_2_8P4_RC1
ntpdc/ntpdc-opts.c@1.515 +107 -107
NTP_4_2_8P4_RC1
ntpdc/ntpdc-opts.h@1.514 +3 -3
NTP_4_2_8P4_RC1
ntpdc/ntpdc.1ntpdcman@1.328 +3 -3
NTP_4_2_8P4_RC1
ntpdc/ntpdc.1ntpdcmdoc@1.328 +2 -2
NTP_4_2_8P4_RC1
ntpdc/ntpdc.html@1.341 +2 -2
NTP_4_2_8P4_RC1
ntpdc/ntpdc.man.in@1.328 +3 -3
NTP_4_2_8P4_RC1
ntpdc/ntpdc.mdoc.in@1.328 +2 -2
NTP_4_2_8P4_RC1
ntpq/invoke-ntpq.texi@1.504 +2 -2
NTP_4_2_8P4_RC1
ntpq/ntpq-opts.c@1.521 +106 -106
NTP_4_2_8P4_RC1
ntpq/ntpq-opts.h@1.519 +3 -3
NTP_4_2_8P4_RC1
ntpq/ntpq.1ntpqman@1.332 +3 -3
NTP_4_2_8P4_RC1
ntpq/ntpq.1ntpqmdoc@1.332 +2 -2
NTP_4_2_8P4_RC1
ntpq/ntpq.html@1.170 +2 -2
NTP_4_2_8P4_RC1
ntpq/ntpq.man.in@1.332 +3 -3
NTP_4_2_8P4_RC1
ntpq/ntpq.mdoc.in@1.332 +2 -2
NTP_4_2_8P4_RC1
ntpsnmpd/invoke-ntpsnmpd.texi@1.499 +2 -2
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd-opts.c@1.517 +68 -68
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd-opts.h@1.516 +3 -3
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.328 +3 -3
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.328 +2 -2
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd.html@1.168 +1 -1
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd.man.in@1.328 +3 -3
NTP_4_2_8P4_RC1
ntpsnmpd/ntpsnmpd.mdoc.in@1.328 +2 -2
NTP_4_2_8P4_RC1
packageinfo.sh@1.517 +2 -2
NTP_4_2_8P4_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.89 +3 -3
NTP_4_2_8P4_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.90 +2 -2
NTP_4_2_8P4_RC1
scripts/calc_tickadj/calc_tickadj.html@1.91 +1 -1
NTP_4_2_8P4_RC1
scripts/calc_tickadj/calc_tickadj.man.in@1.88 +3 -3
NTP_4_2_8P4_RC1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.90 +2 -2
NTP_4_2_8P4_RC1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.93 +1 -1
NTP_4_2_8P4_RC1
scripts/invoke-plot_summary.texi@1.110 +2 -2
NTP_4_2_8P4_RC1
scripts/invoke-summary.texi@1.110 +2 -2
NTP_4_2_8P4_RC1
scripts/ntp-wait/invoke-ntp-wait.texi@1.320 +2 -2
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait-opts@1.56 +2 -2
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.317 +3 -3
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.318 +2 -2
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait.html@1.337 +2 -2
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait.man.in@1.317 +3 -3
NTP_4_2_8P4_RC1
scripts/ntp-wait/ntp-wait.mdoc.in@1.318 +2 -2
NTP_4_2_8P4_RC1
scripts/ntpsweep/invoke-ntpsweep.texi@1.108 +2 -2
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep-opts@1.58 +2 -2
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.96 +3 -3
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.96 +2 -2
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep.html@1.109 +2 -2
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep.man.in@1.96 +3 -3
NTP_4_2_8P4_RC1
scripts/ntpsweep/ntpsweep.mdoc.in@1.97 +2 -2
NTP_4_2_8P4_RC1
scripts/ntptrace/invoke-ntptrace.texi@1.109 +2 -2
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace-opts@1.58 +2 -2
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace.1ntptraceman@1.96 +3 -3
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.97 +2 -2
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace.html@1.110 +2 -2
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace.man.in@1.96 +3 -3
NTP_4_2_8P4_RC1
scripts/ntptrace/ntptrace.mdoc.in@1.98 +2 -2
NTP_4_2_8P4_RC1
scripts/plot_summary-opts@1.58 +2 -2
NTP_4_2_8P4_RC1
scripts/plot_summary.1plot_summaryman@1.108 +3 -3
NTP_4_2_8P4_RC1
scripts/plot_summary.1plot_summarymdoc@1.108 +2 -2
NTP_4_2_8P4_RC1
scripts/plot_summary.html@1.111 +2 -2
NTP_4_2_8P4_RC1
scripts/plot_summary.man.in@1.108 +3 -3
NTP_4_2_8P4_RC1
scripts/plot_summary.mdoc.in@1.108 +2 -2
NTP_4_2_8P4_RC1
scripts/summary-opts@1.58 +2 -2
NTP_4_2_8P4_RC1
scripts/summary.1summaryman@1.108 +3 -3
NTP_4_2_8P4_RC1
scripts/summary.1summarymdoc@1.108 +2 -2
NTP_4_2_8P4_RC1
scripts/summary.html@1.111 +2 -2
NTP_4_2_8P4_RC1
scripts/summary.man.in@1.108 +3 -3
NTP_4_2_8P4_RC1
scripts/summary.mdoc.in@1.108 +2 -2
NTP_4_2_8P4_RC1
scripts/update-leap/invoke-update-leap.texi@1.9 +1 -1
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap-opts@1.9 +2 -2
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap.1update-leapman@1.9 +3 -3
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap.1update-leapmdoc@1.9 +2 -2
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap.html@1.9 +1 -1
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap.man.in@1.9 +3 -3
NTP_4_2_8P4_RC1
scripts/update-leap/update-leap.mdoc.in@1.9 +2 -2
NTP_4_2_8P4_RC1
sntp/invoke-sntp.texi@1.497 +2 -2
NTP_4_2_8P4_RC1
sntp/sntp-opts.c@1.516 +159 -159
NTP_4_2_8P4_RC1
sntp/sntp-opts.h@1.514 +3 -3
NTP_4_2_8P4_RC1
sntp/sntp.1sntpman@1.332 +3 -3
NTP_4_2_8P4_RC1
sntp/sntp.1sntpmdoc@1.332 +2 -2
NTP_4_2_8P4_RC1
sntp/sntp.html@1.512 +2 -2
NTP_4_2_8P4_RC1
sntp/sntp.man.in@1.332 +3 -3
NTP_4_2_8P4_RC1
sntp/sntp.mdoc.in@1.332 +2 -2
NTP_4_2_8P4_RC1
util/invoke-ntp-keygen.texi@1.500 +2 -2
NTP_4_2_8P4_RC1
util/ntp-keygen-opts.c@1.518 +173 -173
NTP_4_2_8P4_RC1
util/ntp-keygen-opts.h@1.516 +3 -3
NTP_4_2_8P4_RC1
util/ntp-keygen.1ntp-keygenman@1.328 +3 -3
NTP_4_2_8P4_RC1
util/ntp-keygen.1ntp-keygenmdoc@1.328 +2 -2
NTP_4_2_8P4_RC1
util/ntp-keygen.html@1.174 +2 -2
NTP_4_2_8P4_RC1
util/ntp-keygen.man.in@1.328 +3 -3
NTP_4_2_8P4_RC1
util/ntp-keygen.mdoc.in@1.328 +2 -2
NTP_4_2_8P4_RC1
ChangeSet@1.3558.3.1, 2015-10-06 05:40:23-04:00, stenn@deacon.udel.edu
Prepare for 4.2.8p4-RC1
ChangeLog@1.1743.3.1 +1 -0
Prepare for 4.2.8p4-RC1
NEWS@1.147 +143 -4
Prepare for 4.2.8p4-RC1
packageinfo.sh@1.516 +1 -1
Prepare for 4.2.8p4-RC1
ChangeSet@1.3568, 2015-10-06 08:51:27+00:00, stenn@psp-deb1.ntp.org
[Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL on some bogus values. Harlan Stenn.
ChangeLog@1.1752 +2 -0
[Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL on some [Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL on some bogus values. Harlan Stenn.
libntp/decodenetnum.c@1.18 +4 -1
[Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL on some [Sec 2922] decodenetnum() will ASSERT botch instead of returning FAIL on some bogus values. Harlan Stenn.
ChangeSet@1.3567, 2015-10-06 08:02:23+00:00, stenn@psp-deb1.ntp.org
Log incoming packets that fail TEST2. Harlan Stenn.
ChangeLog@1.1751 +1 -1
Log incoming packets that fail TEST2. Harlan Stenn.
ntpd/ntp_proto.c@1.367 +7 -1
Log incoming packets that fail TEST2. Harlan Stenn.
ChangeSet@1.3566, 2015-10-06 07:47:24+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1750 +2 -1
cleanup
ntpd/ntp_proto.c@1.366 +113 -95
cleanup
ChangeSet@1.3564, 2015-10-06 03:56:29+00:00, stenn@psp-deb1.ntp.org
[Sec 2921] TALOS-CAN-0065: password length memory corruption. JPerlinger.
ChangeLog@1.1748 +1 -0
[Sec 2921] TALOS-CAN-0065: password length memory corruption. JPerlinger.
Fixed as part of [Sec 2916] TALOS-CAN-0054: memory corruption in password store. JPerlinger.
ChangeSet@1.3562, 2015-10-05 21:11:21+00:00, stenn@psp-deb1.ntp.org
typo
libntp/authreadkeys.c@1.22 +1 -1
typo
ChangeSet@1.3552.9.2, 2015-10-05 11:11:54+00:00, stenn@psp-deb1.ntp.org
2909 is a security bug
ChangeLog@1.1739.5.2 +1 -1
2909 is a security bug
ChangeSet@1.3558.2.2, 2015-10-05 11:03:39+00:00, stenn@psp-deb1.ntp.org
2902 is a security bug
ChangeLog@1.1743.2.2 +2 -2
2902 is a security bug
ChangeSet@1.3558.1.4, 2015-10-05 10:49:30+00:00, stenn@psp-deb1.ntp.org
Update the ChangeLog for 2899
ChangeLog@1.1743.1.4 +1 -1
Update the ChangeLog for 2899
ChangeSet@1.3552.4.2, 2015-10-05 10:32:02+00:00, stenn@psp-deb1.ntp.org
typos
ntpd/ntp_crypto.c@1.183 +4 -4
typos
ChangeSet@1.3558.1.2, 2015-10-05 06:26:46+00:00, stenn@psp-deb1.ntp.org
[Bug 2912] no munlockall() under Windows. David Taylor, Harlan Stenn.
ChangeLog@1.1743.1.2 +1 -0
[Bug 2912] no munlockall() under Windows. David Taylor, Harlan Stenn.
ntpd/ntp_config.c@1.335 +4 -0
[Bug 2912] no munlockall() under Windows. David Taylor, Harlan Stenn.
ChangeSet@1.3561, 2015-10-03 09:08:20+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
ChangeLog@1.1746 +2 -0
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
include/ntp_stdlib.h@1.79 +1 -0
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
- add 'mvsyslog()' function to make wrapping calls to syslog easier
include/ntp_syslog.h@1.9 +1 -0
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
- add 'mvsyslog()' function to make wrapping calls to syslog easier
libntp/authreadkeys.c@1.21 +71 -18
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
- Avoid endless loop by logging only the first 5 errors explicitely, counting the next 10 silently, and aborting
the parsing of the file with proper diagnostic when more than 15 errors where encountered.
libntp/msyslog.c@1.53 +12 -0
[TALOS-CAN-0055] Infinite loop if extended logging enabled and the logfile and keyfile are the same
- add 'mvsyslog()' function to make wrapping calls to syslog easier
ChangeSet@1.3558.1.1, 2015-10-01 03:27:35-04:00, stenn@deacon.udel.edu
build system tweaks. Harlan Stenn.
ChangeLog@1.1743.1.1 +2 -1
build system tweaks. Harlan Stenn.
Makefile.am@1.134 +1 -1
build system tweaks. Harlan Stenn.
sntp/m4/ntp_problemtests.m4@1.3 +14 -14
build system tweaks. Harlan Stenn.
ChangeSet@1.3560, 2015-09-30 22:47:45+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0062] prevent directory traversal for VMS, too, when using 'saveconfig' command.
ChangeLog@1.1745 +2 -0
[TALOS-CAN-0062] prevent directory traversal for VMS, too, when using 'saveconfig' command.
ntpd/ntp_control.c@1.204 +25 -9
[TALOS-CAN-0062] prevent directory traversal for VMS, too, when using 'saveconfig' command.
ChangeSet@1.3559, 2015-09-30 21:55:09+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0064] signed/unsiged clash could lead to buffer overun
BitKeeper/etc/ignore@1.89 +4 -0
keep cscope files away from repo
ChangeLog@1.1744 +2 -0
[TALOS-CAN-0064] signed/unsiged clash could lead to buffer overun
ntpd/ntp_io.c@1.408 +9 -6
[TALOS-CAN-0064] signed/unsiged clash could lead to buffer overun
ChangeSet@1.3552.11.4, 2015-09-30 20:15:13+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0063] avoid buffer overrun in ntpq
ChangeLog@1.1739.7.3 +1 -0
[TALOS-CAN-0063] avoid buffer overrun in ntpq
ntpq/ntpq.c@1.162 +6 -1
[TALOS-CAN-0063] avoid buffer overrun in ntpq
ChangeSet@1.3552.11.3, 2015-09-30 18:44:18+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0054] memory corruption
- make sure there's *always* a new buffer for storing the key again
libntp/authkeys.c@1.27 +9 -5
[TALOS-CAN-0054] memory corruption
- make sure there's *always* a new buffer for storing the key again
ChangeSet@1.3552.1.32, 2015-09-30 07:40:52+00:00, stenn@psp-deb1.ntp.org
formatting cleanup
ChangeLog@1.1739.1.18 +1 -1
formatting cleanup
ChangeSet@1.3552.12.2, 2015-09-30 06:45:59+00:00, stenn@psp-deb1.ntp.org
Implement --disable-problem-tests (off by default). Harlan Stenn.
ChangeLog@1.1739.8.1 +1 -0
Implement --disable-problem-tests (off by default). Harlan Stenn.
sntp/m4/ntp_problemtests.m4@1.2 +20 -6
Implement --disable-problem-tests (off by default). Harlan Stenn.
ChangeSet@1.3552.12.1, 2015-09-30 06:11:05+00:00, stenn@psp-deb1.ntp.org
whitespace cleanup
ntpd/ntp_io.c@1.407 +13 -13
whitespace cleanup
ChangeSet@1.3552.11.2, 2015-09-29 23:13:13+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0054] memory corruption in password store
ChangeLog@1.1739.7.2 +1 -0
[TALOS-CAN-0054] memory corruption in password store
libntp/authkeys.c@1.26 +4 -0
[TALOS-CAN-0054] memory corruption in password store
- make sure deallocated pointers are NULLed and new storage is allocated on demand
ChangeSet@1.3552.11.1, 2015-09-29 22:00:10+02:00, jnperlin@hydra.localnet
[TALOS-CAN-0052] crash by loop counter underrun.
ChangeLog@1.1739.7.1 +1 -0
[TALOS-CAN-0052] crash by loop counter underrun.
ntpd/ntp_request.c@1.114 +7 -3
[TALOS-CAN-0052] crash by loop counter underrun.
- add missing reload of loop counter
ChangeSet@1.3552.10.2, 2015-09-29 20:34:05+02:00, jnperlin@hydra.localnet
[Bug 2902] configuration directives "pidfile" and "driftfile" should be local-only.
ChangeLog@1.1739.6.2 +2 -0
[Bug 2902] configuration directives "pidfile" and "driftfile" should be local-only.
ntpd/ntp_parser.c@1.99 +235 -226
[Bug 2902] configuration directives "pidfile" and "driftfile" should be local-only.
- update bison-generated files
ntpd/ntp_parser.h@1.64 +3 -5
[Bug 2902] configuration directives "pidfile" and "driftfile" should be local-only.
- update bison-generated files
ntpd/ntp_parser.y@1.89 +26 -15
[Bug 2902] configuration directives "pidfile" and "driftfile" should be local-only.
- applied patch from Miroslav Lichvar, plus minor cosmetic changes
ChangeSet@1.3552.10.1, 2015-09-29 06:10:38-04:00, stenn@pogo.udel.edu
Disable certain test programs on certain platforms. Harlan Stenn.
ChangeLog@1.1739.6.1 +1 -0
Disable certain test programs on certain platforms. Harlan Stenn.
configure.ac@1.602 +2 -0
Disable certain test programs on certain platforms. Harlan Stenn.
sntp/m4/ntp_problemtests.m4@1.1 +42 -0
BitKeeper file /pogo/users/stenn/ntp-stable/sntp/m4/ntp_problemtests.m4
sntp/m4/ntp_problemtests.m4@1.0 +0 -0
tests/ntpd/Makefile.am@1.28 +14 -3
Disable certain test programs on certain platforms. Harlan Stenn.
ChangeSet@1.3552.9.1, 2015-09-28 18:22:06+02:00, jnperlin@hydra.localnet
[Bug 2909] - Slow memory leak in CRYPTO_ASSOC
- added missing call to 'free()' in ntp_crypto.c.
ChangeLog@1.1739.5.1 +1 -0
[Bug 2909] - Slow memory leak in CRYPTO_ASSOC
- added missing call to 'free()' in ntp_crypto.c.
ntpd/ntp_crypto.c@1.181.1.1 +1 -0
[Bug 2909] - Slow memory leak in CRYPTO_ASSOC
- added missing call to 'free()' in ntp_crypto.c.
ChangeSet@1.3556, 2015-09-27 12:52:27+02:00, jnperlin@hydra.localnet
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/buftvtots.c@1.5 +7 -7
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/calendar.c@1.9 +45 -35
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/clocktime.c@1.8 +16 -16
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/hextolfp.c@1.9 +9 -9
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/lfptostr.c@1.7 +14 -14
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/prettydate.c@1.4 +1 -1
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/strtolfp.c@1.6 +3 -3
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/tstotv.c@1.4 +3 -3
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/tvtots.c@1.6 +10 -10
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
tests/libntp/uglydate.c@1.8 +1 -1
[Bug2888] Fixed compiler warnings, converted C++ comments to C comments
ChangeSet@1.3552.8.1, 2015-09-27 02:30:13+00:00, mayer@psp-deb1.ntp.org
Drop invalid packet before checking KoD. Check for all KoD's
ChangeLog@1.1739.4.1 +1 -0
Drop invalid packet before checking KoD. Check for all KoD's
ntpd/ntp_proto.c@1.365 +66 -9
Drop invalid packet before checking KoD. Check for all KoD's
ChangeSet@1.3552.1.29, 2015-09-26 13:17:13+00:00, perlinger@psp-deb1.ntp.org
[bug2332] Create & cancel a dummy thread to warm-up the pthread runtime
instead of linking against libgcc_s on Linux targets
ChangeLog@1.1739.1.15 +3 -0
[Bug2332](reopened) fixed
ntpd/ntpd.c@1.165 +74 -0
[bug2332] Create & cancel a dummy thread to warm-up the pthread runtime
sntp/m4/ntp_libntp.m4@1.32 +0 -14
[bug2332] Remove the forced link against 'libgcc_s' since it breaks other targets
ChangeSet@1.3552.7.6, 2015-09-25 06:51:35+00:00, stenn@psp-deb1.ntp.org
gcc on older HPUX may need +allowdups. Harlan Stenn.
sntp/m4/os_cflags.m4@1.12 +1 -1
gcc on older HPUX may need +allowdups. Harlan Stenn.
ChangeSet@1.3552.7.5, 2015-09-25 04:21:37+00:00, stenn@psp-deb1.ntp.org
Adding missing MCAST protection. Harlan Stenn.
ChangeLog@1.1739.1.14 +1 -0
Adding missing MCAST protection. Harlan Stenn.
ntpd/ntp_io.c@1.406 +2 -0
Adding missing MCAST protection. Harlan Stenn.
ChangeSet@1.3552.7.4, 2015-09-25 04:13:23+00:00, stenn@psp-deb1.ntp.org
gcc on older HPUX may need +allowdups. Harlan Stenn.
ChangeLog@1.1739.1.13 +1 -0
gcc on older HPUX may need +allowdups. Harlan Stenn.
sntp/m4/os_cflags.m4@1.11 +32 -2
gcc on older HPUX may need +allowdups. Harlan Stenn.
ChangeSet@1.3552.7.3, 2015-09-24 11:27:07+00:00, stenn@psp-deb1.ntp.org
More updates for bug 2817. Harlan Stenn.
ntpd/ntpd.c@1.164 +1 -1
More updates for bug 2817. Harlan Stenn.
ChangeSet@1.3552.7.2, 2015-09-24 10:27:51+00:00, stenn@psp-deb1.ntp.org
More updates for bug 2817. Harlan Stenn.
ntpd/ntpd.c@1.163 +6 -3
More updates for bug 2817. Harlan Stenn.
ChangeSet@1.3552.7.1, 2015-09-24 05:44:53+00:00, stenn@psp-deb1.ntp.org
Fix bugs in tests/ntpd/ntp_prio_q.c. Harlan Stenn.
ChangeLog@1.1739.1.12 +1 -0
Fix bugs in tests/ntpd/ntp_prio_q.c. Harlan Stenn.
tests/ntpd/ntp_prio_q.c@1.2 +8 -7
Fix bugs in tests/ntpd/ntp_prio_q.c. Harlan Stenn.
ChangeSet@1.3552.1.23, 2015-09-23 07:49:24-04:00, stenn@deacon.udel.edu
More updates for bug 2817. Harlan Stenn.
sntp/m4/ntp_rlimit.m4@1.5 +5 -5
More updates for bug 2817. Harlan Stenn.
ChangeSet@1.3552.1.22, 2015-09-23 10:29:51+00:00, stenn@psp-deb1.ntp.org
More updates for bug 2817. Harlan Stenn.
ChangeLog@1.1739.1.11 +1 -0
More updates for bug 2817. Harlan Stenn.
html/miscopt.html@1.83 +2 -2
More updates for bug 2817. Harlan Stenn.
include/ntp_config.h@1.83 +2 -2
More updates for bug 2817. Harlan Stenn.
ntpd/invoke-ntp.conf.texi@1.190 +8 -5
More updates for bug 2817. Harlan Stenn.
ntpd/ntp.conf.5man@1.224 +9 -6
More updates for bug 2817. Harlan Stenn.
ntpd/ntp.conf.5mdoc@1.224 +9 -6
More updates for bug 2817. Harlan Stenn.
ntpd/ntp.conf.def@1.20 +6 -3
More updates for bug 2817. Harlan Stenn.
ntpd/ntp.conf.man.in@1.224 +9 -6
More updates for bug 2817. Harlan Stenn.
ntpd/ntp.conf.mdoc.in@1.224 +9 -6
More updates for bug 2817. Harlan Stenn.
ntpd/ntp_config.c@1.334 +26 -4
More updates for bug 2817. Harlan Stenn.
ntpd/ntpd.c@1.162 +1 -1
More updates for bug 2817. Harlan Stenn.
sntp/m4/ntp_rlimit.m4@1.4 +2 -2
More updates for bug 2817. Harlan Stenn.
ChangeSet@1.3552.1.21, 2015-09-21 10:53:44+00:00, stenn@psp-deb1.ntp.org
Update the patch for bug 2817. Harlan Stenn.
ChangeLog@1.1739.1.10 +1 -0
Update the patch for bug 2817. Harlan Stenn.
configure.ac@1.601 +0 -54
Update the patch for bug 2817. Harlan Stenn.
sntp/m4/ntp_rlimit.m4@1.3 +57 -2
Update the patch for bug 2817. Harlan Stenn.
ChangeSet@1.3552.1.20, 2015-09-21 10:30:35+00:00, stenn@psp-deb1.ntp.org
Clean trailing whitespace in tests/ntpd/Makefile.am. Harlan Stenn.
ChangeLog@1.1739.1.9 +1 -0
Clean trailing whitespace in tests/ntpd/Makefile.am. Harlan Stenn.
tests/ntpd/Makefile.am@1.27 +5 -5
Clean trailing whitespace in tests/ntpd/Makefile.am. Harlan Stenn.
ChangeSet@1.3552.1.19, 2015-09-21 08:09:33+00:00, stenn@psp-deb1.ntp.org
Fix progname definition in unity runner scripts. Harlan Stenn.
ChangeLog@1.1739.1.8 +1 -0
Fix progname definition in unity runner scripts. Harlan Stenn.
sntp/tests/run-packetProcessing.c@1.9 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
sntp/tests/run-t-log.c@1.3 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
sntp/unity/auto/generate_test_runner.rb@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-a_md5encrypt.c@1.14 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-atoint.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-atouint.c@1.9 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-authkeys.c@1.11 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-buftvtots.c@1.6 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-calendar.c@1.8.1.1 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-caljulian.c@1.13 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-caltontp.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-calyearstart.c@1.7 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-clocktime.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-decodenetnum.c@1.9 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-hextoint.c@1.9 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-hextolfp.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-humandate.c@1.6 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-lfpfunc.c@1.17 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-lfptostr.c@1.7 +12 -12
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-modetoa.c@1.11 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-msyslog.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-netof.c@1.7 +2 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-numtoa.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-numtohost.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-octtoint.c@1.7 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-prettydate.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-recvbuff.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-refidsmear.c@1.6 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-refnumtoa.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-sfptostr.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-socktoa.c@1.12 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-ssl_init.c@1.9 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-statestr.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-strtolfp.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-timespecops.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-timevalops.c@1.12 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-tstotv.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-tvtots.c@1.6 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-uglydate.c@1.10 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-vi64ops.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/libntp/run-ymd2yd.c@1.11 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpd/run-leapsec.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpd/run-ntp_prio_q.c@1.4 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpd/run-rc_cmdlength.c@1.3 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpd/run-t-ntp_scanner.c@1.5 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpd/run-t-ntp_signd.c@1.8 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
tests/ntpq/run-t-ntpq.c@1.3 +1 -1
Fix progname definition in unity runner scripts. Harlan Stenn.
ChangeSet@1.3552.1.18, 2015-09-21 08:06:14+00:00, stenn@psp-deb1.ntp.org
Pthread autoconf macro cleanup. Harlan Stenn.
ChangeLog@1.1739.1.7 +1 -0
Pthread autoconf macro cleanup. Harlan Stenn.
sntp/m4/ntp_libevent.m4@1.15 +15 -19
Pthread autoconf macro cleanup. Harlan Stenn.
sntp/m4/ntp_libntp.m4@1.31 +5 -2
Pthread autoconf macro cleanup. Harlan Stenn.
sntp/m4/openldap-thread-check.m4@1.7 +6 -0
Pthread autoconf macro cleanup. Harlan Stenn.
ChangeSet@1.3552.1.16, 2015-09-17 11:09:07+00:00, stenn@psp-deb1.ntp.org
Avoid spurious SCCS get
ntpd/Makefile.am@1.134 +3 -0
Avoid spurious SCCS get
ChangeSet@1.3552.6.3, 2015-09-16 11:10:41+00:00, stenn@psp-deb1.ntp.org
Cleanup various test Makefile.am files. Harlan Stenn.
ChangeLog@1.1739.1.6 +1 -0
Cleanup various test Makefile.am files. Harlan Stenn.
sntp/tests/Makefile.am@1.64.1.3 +5 -5
Cleanup various test Makefile.am files. Harlan Stenn.
tests/libntp/Makefile.am@1.93 +23 -23
Cleanup various test Makefile.am files. Harlan Stenn.
tests/ntpd/Makefile.am@1.22.1.3 +7 -12
Cleanup various test Makefile.am files. Harlan Stenn.
tests/ntpq/Makefile.am@1.5.1.1 +3 -10
Cleanup various test Makefile.am files. Harlan Stenn.
ChangeSet@1.3552.6.2, 2015-09-15 10:44:48+00:00, stenn@psp-deb1.ntp.org
Unit test dist cleanup. Harlan Stenn
ChangeLog@1.1739.1.5 +1 -0
Unit test dist cleanup. Harlan Stenn
sntp/configure.ac@1.82 +1 -0
Unit test dist cleanup. Harlan Stenn
sntp/tests/Makefile.am@1.64.1.2 +2 -0
Unit test dist cleanup. Harlan Stenn
tests/Makefile.am@1.17.1.1 +1 -0
Unit test dist cleanup. Harlan Stenn
tests/ntpd/Makefile.am@1.22.1.2 +0 -9
Unit test dist cleanup. Harlan Stenn
ChangeSet@1.3552.5.6, 2015-09-15 07:45:39+00:00, stenn@psp-deb1.ntp.org
[Bug 2906] make check needs better support for pthreads. Harlan Stenn.
sntp/m4/ntp_libevent.m4@1.14 +23 -0
[Bug 2906] make check needs better support for pthreads. Harlan Stenn.
ChangeSet@1.3552.5.5, 2015-09-15 07:12:08+00:00, stenn@psp-deb1.ntp.org
documentation notes
sntp/m4/openldap-thread-check.m4@1.6 +3 -0
documentation notes
ChangeSet@1.3552.5.4, 2015-09-14 06:36:37+00:00, stenn@psp-deb1.ntp.org
[Bug 2906] "make check" needs better support for pthreads
ChangeLog@1.1739.3.4 +1 -0
[Bug 2906] "make check" needs better support for pthreads
sntp/m4/ntp_libevent.m4@1.13 +2 -0
[Bug 2906] "make check" needs better support for pthreads
sntp/tests/Makefile.am@1.62.2.1 +5 -0
[Bug 2906] "make check" needs better support for pthreads
tests/libntp/Makefile.am@1.90.1.1 +12 -12
[Bug 2906] "make check" needs better support for pthreads
tests/ntpd/Makefile.am@1.12.3.1 +4 -2
[Bug 2906] "make check" needs better support for pthreads
ChangeSet@1.3552.5.3, 2015-09-14 05:50:02+00:00, stenn@psp-deb1.ntp.org
[Bug 2907] dist* build targets require our libevent/ to be enabled. HStenn.
ChangeLog@1.1739.3.3 +1 -0
[Bug 2907] dist* build targets require our libevent/ to be enabled. HStenn.
sntp/Makefile.am@1.86.1.1 +7 -4
[Bug 2907] dist* build targets require our libevent/ to be enabled. HStenn.
ChangeSet@1.3552.5.2, 2015-09-13 22:11:31+00:00, stenn@psp-deb1.ntp.org
Autoconf cleanup
ChangeLog@1.1739.3.2 +1 -0
Autoconf cleanup
configure.ac@1.598.1.1 +1 -0
Autoconf cleanup
ChangeSet@1.3552.5.1, 2015-09-13 22:10:03+00:00, stenn@psp-deb1.ntp.org
Update the NEWS file
ChangeLog@1.1739.3.1 +1 -0
Update the NEWS file
NEWS@1.146 +14 -0
Update the NEWS file
ChangeSet@1.3552.1.15, 2015-08-20 17:13:37+02:00, viperus@ubuntu.(none)
t-ntp_scanner.c:
Rename: tests/ntpd/ntp_scanner.c -> tests/ntpd/t-ntp_scanner.c
new static functions tested
run-t-ntp_scanner.c:
Rename: tests/ntpd/run-ntp_scanner.c -> tests/ntpd/run-t-ntp_scanner.c
Makefile.am:
updates required for include *.c to work
run-t-ntp_scanner.c:
update
tests/ntpd/Makefile.am@1.25 +6 -5
updates required for include *.c to work
tests/ntpd/run-t-ntp_scanner.c@1.4 +18 -7
update
tests/ntpd/run-t-ntp_scanner.c@1.3 +0 -0
Rename: tests/ntpd/run-ntp_scanner.c -> tests/ntpd/run-t-ntp_scanner.c
tests/ntpd/t-ntp_scanner.c@1.5 +73 -2
new static functions tested
tests/ntpd/t-ntp_scanner.c@1.4 +0 -0
Rename: tests/ntpd/ntp_scanner.c -> tests/ntpd/t-ntp_scanner.c
ChangeSet@1.3552.1.14, 2015-08-20 16:35:29+02:00, viperus@ubuntu.(none)
t-ntpq.c:
disabled for now, very trick to test static functions.
run-t-ntpq.c:
update
ntp_scanner.c:
added new test
Makefile.am:
added more include dirs
tests/ntpd/ntp_scanner.c@1.3 +11 -3
added new test
tests/ntpq/Makefile.am@1.7 +2 -3
added more include dirs
tests/ntpq/run-t-ntpq.c@1.2 +1 -2
update
tests/ntpq/t-ntpq.c@1.3 +25 -2
disabled for now, very trick to test static functions.
ChangeSet@1.3552.1.13, 2015-08-20 10:15:12+02:00, viperus@ubuntu.(none)
http-server.c:
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
Many files:
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/sample/http-server.c@1.12 +6 -2
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/bench_httpclient.c@1.8 +5 -1
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/regress.c@1.8 +6 -2
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/regress_dns.c@1.10 +6 -5
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/regress_http.c@1.10 +8 -4
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/regress_minheap.c@1.5 +2 -1
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/test-ratelim.c@1.11 +6 -2
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
sntp/libevent/test/test-time.c@1.7 +2 -1
reverted emalloc (and similar) to malloc + added checks if malloc is NULL, because emalloc is not linked here.
ChangeSet@1.3552.1.12, 2015-08-20 01:10:57+02:00, viperus@ubuntu.(none)
Makefile.am:
added 2 more temp files to CLEANFILES and DISTCLEAN, because it prevented make distcheck from finishing properly
pathfind.c:
reverted emalloc to malloc with if(result == NULL)... because sntp/ doesn't link libntp...probably for a reason unknown to me.
sntp/libopts/compat/pathfind.c@1.13 +17 -6
reverted emalloc to malloc with if(result == NULL)... because sntp/ doesn't link libntp...probably for a reason unknown to me.
sntp/tests/Makefile.am@1.65 +4 -0
added 2 more temp files to CLEANFILES and DISTCLEAN, because it prevented make distcheck from finishing properly
ChangeSet@1.3552.1.11, 2015-08-20 01:04:40+02:00, viperus@ubuntu.(none)
run-packetProcessing.c:
manually updated due to char / const char progname issues when autogenerating
Makefile.am:
re-enabled ntpq dir
sntp/tests/run-packetProcessing.c@1.8 +1 -1
manually updated due to char / const char progname issues when autogenerating
tests/Makefile.am@1.18 +1 -0
re-enabled ntpq dir
ChangeSet@1.3552.1.10, 2015-08-20 00:23:42+02:00, viperus@ubuntu.(none)
machines.c:
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
Many files:
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
libntp/machines.c@1.26 +3 -3
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
ntpd/refclock_palisade.c@1.43 +2 -2
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
ntpq/ntpq.c@1.161 +7 -7
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/sample/http-server.c@1.11 +2 -2
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/bench_httpclient.c@1.7 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/regress.c@1.7 +2 -2
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/regress_dns.c@1.9 +4 -4
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/regress_http.c@1.9 +3 -3
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/regress_minheap.c@1.4 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/test-ratelim.c@1.10 +2 -2
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libevent/test/test-time.c@1.6 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/libopts/compat/pathfind.c@1.12 +5 -5
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/tests/fileHandlingTest.c@1.3 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
sntp/tests/packetProcessing.c@1.8 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
tests/libntp/a_md5encrypt.c@1.12 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
tests/libntp/calendar.c@1.6.1.1 +4 -4
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
tests/libntp/caljulian.c@1.10 +1 -1
Fixing bug 2898, replacing malloc with emalloc, calloc with emalloc_zero, strdup with estrup etc.
ChangeSet@1.3552.1.9, 2015-08-17 13:56:23+02:00, viperus@ubuntu.(none)
Makefile.am:
fixed minor typo which caused me a lot of headache
t-ntp_signd.c:
added a new test
run-t-ntp_signd.c:
autogen update
Makefile.am:
removed unnecessary CFLAG
t-ntp_signd.c:
minor update
tests/ntpd/Makefile.am@1.24 +2 -1
fixed minor typo which caused me a lot of headache
tests/ntpd/Makefile.am@1.23 +0 -3
removed unnecessary CFLAG
tests/ntpd/run-t-ntp_signd.c@1.7 +10 -5
autogen update
tests/ntpd/t-ntp_signd.c@1.10 +23 -14
added a new test
tests/ntpd/t-ntp_signd.c@1.9 +10 -3
minor update
ChangeSet@1.3552.1.8, 2015-08-17 12:21:45+02:00, viperus@ubuntu.(none)
run-t-ntp_signd.c:
added more tests manually
tests/ntpd/run-t-ntp_signd.c@1.6 +2 -1
added more tests manually
tests/ntpd/t-ntp_signd.c@1.8 +0 -1
ChangeSet@1.3552.1.7, 2015-08-17 12:15:56+02:00, viperus@ubuntu.(none)
t-ntp_signd.c:
adding more tests , added mocked functinos section
tests/ntpd/t-ntp_signd.c@1.7 +34 -0
adding more tests , added mocked functinos section
ChangeSet@1.3552.1.6, 2015-08-17 11:28:21+02:00, viperus@ubuntu.(none)
t-ntp_signd.c:
new tests added
run-t-ntp_signd.c:
I had some issues with bk and this file
t-ntp_signd.c:
basic mocking concept added. connect() is mocked, and always returns 1
tests/ntpd/run-t-ntp_signd.c@1.5 +4 -2
I had some issues with bk and this file
tests/ntpd/t-ntp_signd.c@1.6 +13 -9
basic mocking concept added. connect() is mocked, and always returns 1
tests/ntpd/t-ntp_signd.c@1.5 +22 -2
new tests added
ChangeSet@1.3552.4.1, 2015-08-17 07:54:01+02:00, jnperlin@hydra.(none)
CVE-2014-9297
ChangeLog@1.1739.2.1 +1 -0
CVE-2014-9297
ntpd/ntp_crypto.c@1.182 +78 -27
CVE-2014-9297: buffer overrun checks
ChangeSet@1.3552.3.1, 2015-08-14 12:05:44+02:00, viperus@ubuntu.(none)
Makefile.am:
removed unnecessary CFLAGS
tests/ntpq/Makefile.am@1.6 +0 -5
removed unnecessary CFLAGS
ChangeSet@1.3552.1.4, 2015-08-14 08:24:21+00:00, stenn@psp-at1.ntp.org
Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
ChangeLog@1.1739.1.3 +1 -0
Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
ntpd/ntp_timer.c@1.92 +6 -0
Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
ntpd/ntpd.c@1.161 +0 -6
Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
ChangeSet@1.3552.1.3, 2015-08-10 13:15:13+02:00, viperus@ubuntu.(none)
run-ntp_util.c:
new file, I guess?
Makefile.am:
changes to harlan's makefile after merge
run-ntp_prio_q.c:
hopefully, fixes stuff. Why is this here? Did harlan pull something from tfendrich?
tests/ntpd/Makefile.am@1.22 +13 -13
changes to harlan's makefile after merge
tests/ntpd/run-ntp_prio_q.c@1.3 +1 -1
hopefully, fixes stuff. Why is this here? Did harlan pull something from tfendrich?
tests/ntpd/run-ntp_util.c@1.1 +60 -0
new file, I guess?
tests/ntpd/run-ntp_util.c@1.0 +0 -0
ChangeSet@1.3552.2.1, 2015-08-10 09:50:16+00:00, stenn@psp-at1.ntp.org
Retire google test - phase I. Harlan Stenn.
BitKeeper/deleted/07/g_packetHandling.cpp~2e07085e82bde6c@1.2 +0 -0
Delete: sntp/tests/g_packetHandling.cpp
BitKeeper/deleted/09/tvtots.cpp~c58754a7b62dde1c@1.9 +0 -0
Delete: tests/libntp/g_tvtots.cpp
BitKeeper/deleted/0a/sntptest.h~c408c7764b75cd4f@1.7 +0 -0
Delete: sntp/tests/g_sntptest.h
BitKeeper/deleted/0a/utilities.cpp~2657edd0f94e49eb@1.12 +0 -0
Delete: sntp/tests/g_utilities.cpp
BitKeeper/deleted/0c/buftvtots.cpp~eababa3e59583108@1.6 +0 -0
Delete: tests/libntp/g_buftvtots.cpp
BitKeeper/deleted/0f/uglydate.cpp~a0fdfbbfdc636411@1.5 +0 -0
Delete: tests/libntp/g_uglydate.cpp
BitKeeper/deleted/10/sfptostr.cpp~cef5595e4f89eac8@1.4 +0 -0
Delete: tests/libntp/g_sfptostr.cpp
BitKeeper/deleted/13/g_lfptostr.cpp~386d730e91bb76de@1.3 +0 -0
Delete: tests/libntp/g_lfptostr.cpp
BitKeeper/deleted/14/humandate.cpp~c3b455ca717b631a@1.5 +0 -0
Delete: tests/libntp/g_humandate.cpp
BitKeeper/deleted/15/g_nameresolution.cpp~23956912aa26e0b9@1.2 +0 -0
Delete: sntp/tests/g_nameresolution.cpp
BitKeeper/deleted/17/a_md5encrypt.cpp~1013ff09a55a7336@1.8 +0 -0
Delete: tests/libntp/g_a_md5encrypt.cpp
BitKeeper/deleted/1c/crypto.cpp~77bbd0102246a5@1.7 +0 -0
Delete: sntp/tests/g_crypto.cpp
BitKeeper/deleted/24/atoint.cpp~533534d530ae4081@1.5 +0 -0
Delete: tests/libntp/g_atoint.cpp
BitKeeper/deleted/29/networking.cpp~a6f1b3f0b76192c9@1.11 +0 -0
Delete: sntp/tests/g_networking.cpp
BitKeeper/deleted/29/refnumtoa.cpp~ed3c5e075503bdf4@1.5 +0 -0
Delete: tests/libntp/g_refnumtoa.cpp
BitKeeper/deleted/2d/libntptest.h~1990ef7fb70295d6@1.6 +0 -0
Delete: tests/libntp/g_libntptest.h
BitKeeper/deleted/30/g_recvbuff.cpp~7b0d3114520a0616@1.3 +0 -0
Delete: tests/libntp/g_recvbuff.cpp
BitKeeper/deleted/30/main.cpp~62ec7f38f7d49413@1.10 +0 -0
Delete: sntp/tests_main.cpp
BitKeeper/deleted/37/statestr.cpp~65497a98bac68a52@1.5 +0 -0
Delete: tests/libntp/g_statestr.cpp
BitKeeper/deleted/3b/tvalops.cpp~fa0bb1554d1d08d4@1.11 +0 -0
Delete: tests/libntp/g_timevalops.cpp
BitKeeper/deleted/3c/g_octtoint.cpp~8124d76dd2b395e5@1.3 +0 -0
Delete: tests/libntp/g_octtoint.cpp
BitKeeper/deleted/3f/calendar.cpp~72447c9b8c0deced@1.4 +0 -0
Delete: tests/libntp/g_calendar.cpp
BitKeeper/deleted/4e/g_hextolfp.cpp~ba8561698c15b354@1.3 +0 -0
Delete: tests/libntp/g_hextolfp.cpp
BitKeeper/deleted/57/ntpdtest.h~25bdfa3eeda7b121@1.3 +0 -0
Delete: tests/ntpd/g_ntpdtest.h
BitKeeper/deleted/5b/sockaddrtest.h~4bf7e82961607bf0@1.6 +0 -0
Delete: tests/libntp/g_sockaddrtest.h
BitKeeper/deleted/5f/authkeys.cpp~24496a9d93173937@1.10 +0 -0
Delete: tests/libntp/g_authkeys.cpp
BitKeeper/deleted/62/g_strtolfp.cpp~5a50a9b282094e7f@1.3 +0 -0
Delete: tests/libntp/g_strtolfp.cpp
BitKeeper/deleted/77/lfpfunc.cpp~9ed51f8dc31368eb@1.5 +0 -0
Delete: tests/libntp/g_lfpfunc.cpp
BitKeeper/deleted/82/clocktime.cpp~7dd85c09c049ffd4@1.7 +0 -0
Delete: tests/libntp/g_clocktime.cpp
BitKeeper/deleted/8b/atouint.cpp~43abc72d64a1857a@1.4 +0 -0
Delete: tests/libntp/g_atouint.cpp
BitKeeper/deleted/8b/leapsec.cpp~11be64d438063292@1.17 +0 -0
Delete: tests/ntpd/g_leapsec.cpp
BitKeeper/deleted/93/g_vi64ops.cpp~e023cb72bff45261@1.3 +0 -0
Delete: tests/libntp/g_vi64ops.cpp
BitKeeper/deleted/96/numtoa.cpp~b3b85b1ebc36fc2b@1.5 +0 -0
Delete: tests/libntp/g_numtoa.cpp
BitKeeper/deleted/98/g_tstotv.cpp~37896736f73c48b0@1.3 +0 -0
Delete: tests/libntp/g_tstotv.cpp
BitKeeper/deleted/9a/packetProcessing.cpp~4822a1d49ca16be5@1.8 +0 -0
Delete: sntp/tests/g_packetProcessing.cpp
BitKeeper/deleted/9c/kodDatabase.cpp~f9244577ca9f0aa9@1.6 +0 -0
Delete: sntp/tests/g_kodDatabase.cpp
BitKeeper/deleted/a4/g_msyslog.cpp~ec51c9e8395b3e4b@1.3 +0 -0
Delete: tests/libntp/g_msyslog.cpp
BitKeeper/deleted/ae/lfptest.h~a452179b90fdedaa@1.8 +0 -0
Delete: tests/libntp/g_lfptest.h
BitKeeper/deleted/af/calyearstart.cpp~586f44f58a75b25e@1.6 +0 -0
Delete: tests/libntp/g_calyearstart.cpp
BitKeeper/deleted/b2/ntpdtest.cpp~d4e605db974f754d@1.4 +0 -0
Delete: tests/ntpd/g_ntpdtest.cpp
BitKeeper/deleted/b3/timestructs.cpp~2bc53cc52f6599d5@1.7 +0 -0
Delete: tests/libntp/g_timestructs.cpp
BitKeeper/deleted/c1/ssl_init.cpp~81ce47bbb0e4fbbc@1.6 +0 -0
Delete: tests/libntp/g_ssl_init.cpp
BitKeeper/deleted/c3/modetoa.cpp~50f2955120b0ed6f@1.4 +0 -0
Delete: tests/libntp/g_modetoa.cpp
BitKeeper/deleted/c6/kodFile.cpp~c593859a65c8e9e3@1.11 +0 -0
Delete: sntp/tests/g_kodFile.cpp
BitKeeper/deleted/c9/main.h~44cc5c4040b89c30@1.9 +0 -0
Delete: sntp/tests_main.h
BitKeeper/deleted/ce/timestructs.h~a7213e57006326f@1.6 +0 -0
Delete: tests/libntp/g_timestructs.h
BitKeeper/deleted/cf/libntptest.cpp~fb911e064fe18517@1.6 +0 -0
Delete: tests/libntp/g_libntptest.cpp
BitKeeper/deleted/d0/g_caltontp.cpp~ea2471ca2734873a@1.3 +0 -0
Delete: tests/libntp/g_caltontp.cpp
BitKeeper/deleted/d8/hextoint.cpp~78aeb35b2f896bed@1.6 +0 -0
Delete: tests/libntp/g_hextoint.cpp
BitKeeper/deleted/dd/keyFile.cpp~7ca67d971ffc97ae@1.9 +0 -0
Delete: sntp/tests/g_keyFile.cpp
BitKeeper/deleted/e0/g_socktoa.cpp~9f28a4451c7f0c1a@1.3 +0 -0
Delete: tests/libntp/g_socktoa.cpp
BitKeeper/deleted/eb/g_prettydate.cpp~7800800c1dbf9688@1.3 +0 -0
Delete: tests/libntp/g_prettydate.cpp
BitKeeper/deleted/ee/caljulian.cpp~4c368703107f888@1.8 +0 -0
Delete: tests/libntp/g_caljulian.cpp
BitKeeper/deleted/ef/fileHandlingTest.h~212fb01783c1dfd7@1.7 +0 -0
Delete: sntp/tests/g_fileHandlingTest.h
BitKeeper/deleted/f6/g_decodenetnum.cpp~5b151a58bf8417a2@1.3 +0 -0
Delete: tests/libntp/g_decodenetnum.cpp
BitKeeper/deleted/f8/g_netof.cpp~a772fe4f2f1b84e8@1.3 +0 -0
Delete: tests/libntp/g_netof.cpp
BitKeeper/deleted/fa/tspecops.cpp~fabae81f65cd8134@1.11 +0 -0
Delete: tests/libntp/g_timespecops.cpp
BitKeeper/deleted/fd/ymd2yd.cpp~eeb76d1d2a534b6@1.4 +0 -0
Delete: tests/libntp/g_ymd2yd.cpp
BitKeeper/deleted/ff/numtohost.cpp~c346ee31ae5ffefe@1.4 +0 -0
Delete: tests/libntp/g_numtohost.cpp
ChangeLog@1.1739.1.2 +1 -1
Retire google test - phase I. Harlan Stenn.
ChangeLog@1.1739.1.1 +1 -0
Retire google test - phase I
sntp/Makefile.am@1.87 +0 -1
Retire google test - phase I. Harlan Stenn.
sntp/tests/Makefile.am@1.62.1.1 +15 -28
Retire google test - phase I. Harlan Stenn.
tests/Makefile.am@1.12.1.1 +0 -13
Retire google test - phase I. Harlan Stenn.
tests/libntp/Makefile.am@1.91 +0 -63
Retire google test - phase I. Harlan Stenn.
tests/ntpd/Makefile.am@1.12.2.1 +32 -50
Retire google test - phase I. Harlan Stenn.
tests/sandbox/Makefile.am@1.7 +14 -5
Retire google test - phase I. Harlan Stenn.
ChangeSet@1.3548.1.16, 2015-08-07 08:07:50+02:00, viperus@ubuntu.(none)
Makefile.am:
re-added ntpq, works now
run-t-ntpq.c:
added
Makefile.am:
minor cleanup
configure.ac:
added ntpq dir
configure.ac@1.599 +1 -0
added ntpq dir
tests/Makefile.am@1.16 +2 -0
re-added ntpq, works now
tests/ntpq/Makefile.am@1.5 +0 -1
minor cleanup
tests/ntpq/run-t-ntpq.c@1.1 +55 -0
added
tests/ntpq/run-t-ntpq.c@1.0 +0 -0
ChangeSet@1.3548.1.15, 2015-08-06 21:42:18+02:00, viperus@ubuntu.(none)
Makefile.am:
removed ntpq becuase it doesnt work?!
tests/Makefile.am@1.15 +0 -2
removed ntpq becuase it doesnt work?!
ChangeSet@1.3548.1.14, 2015-08-06 21:03:10+02:00, viperus@ubuntu.(none)
Makefile.am:
adding new Makefile
minor change
Makefile.am, t-ntpq.c:
update
tests/Makefile.am@1.14 +1 -0
update
tests/ntpq/Makefile.am@1.4 +3 -1
minor change
tests/ntpq/Makefile.am@1.3 +6 -15
adding new Makefile
tests/ntpq/t-ntpq.c@1.2 +1 -1
update
ChangeSet@1.3548.1.13, 2015-08-06 20:41:02+02:00, viperus@ubuntu.(none)
socktoa.c:
fixed. Tests are skipped when you do ./build --disable-ipv6
t-ntpq.c:
new test file
decodenetnum.c:
fixed. Tests are skipped when you do ./build --disable-ipv6
Makefile.am:
changes
run-t-log.c:
updated
sntp/tests/run-t-log.c@1.2 +4 -3
updated
tests/libntp/decodenetnum.c@1.9 +3 -3
fixed. Tests are skipped when you do ./build --disable-ipv6
tests/libntp/socktoa.c@1.9 +2 -2
fixed. Tests are skipped when you do ./build --disable-ipv6
tests/ntpq/Makefile.am@1.2 +8 -37
changes
tests/ntpq/t-ntpq.c@1.1 +14 -0
new test file
tests/ntpq/t-ntpq.c@1.0 +0 -0
ChangeSet@1.3548.1.12, 2015-08-06 20:24:05+02:00, viperus@ubuntu.(none)
log.c:
modified to allow calling of multiple atexit(cleanup_log) without causing a segfault.
t-log.c:
minor cleanup, fixes, stuff works (in combination with updated log.c)
sntp/log.c@1.24 +15 -6
modified to allow calling of multiple atexit(cleanup_log) without causing a segfault.
sntp/tests/t-log.c@1.2 +13 -11
minor cleanup, fixes, stuff works (in combination with updated log.c)
ChangeSet@1.3548.1.11, 2015-08-06 10:27:35+02:00, viperus@ubuntu.(none)
Makefile.am:
small fix
socktoa.c, run-decodenetnum.c:
update
decodenetnum.c:
Minor changes due to the autogenerated ruby script
run-socktoa.c:
Minor changes due to the autogenerated ruby script
tests/libntp/decodenetnum.c@1.8 +22 -6
Minor changes due to the autogenerated ruby script
tests/libntp/run-decodenetnum.c@1.8 +4 -5
update
tests/libntp/run-socktoa.c@1.11 +7 -7
Minor changes due to the autogenerated ruby script
tests/libntp/socktoa.c@1.8 +22 -6
update
tests/ntpd/Makefile.am@1.20 +0 -1
small fix
ChangeSet@1.3548.1.10, 2015-08-05 16:53:22+02:00, viperus@ubuntu.(none)
Makefile.am:
new file
added ntpq dir
added a new test, test-log
t-log.c:
removed the 2nd test because only one open_logfile per program can be used (segfault otherwise)
run-t-log.c:
new file, HAS ISSUES WITH CONST CHAR *progname.
sntp/tests/Makefile.am@1.63 +11 -0
added a new test, test-log
sntp/tests/run-t-log.c@1.1 +56 -0
new file, HAS ISSUES WITH CONST CHAR *progname.
sntp/tests/run-t-log.c@1.0 +0 -0
sntp/tests/t-log.c@1.1 +66 -0
removed the 2nd test because only one open_logfile per program can be used (segfault otherwise)
sntp/tests/t-log.c@1.0 +0 -0
tests/Makefile.am@1.13 +2 -0
added ntpq dir
tests/ntpq/Makefile.am@1.1 +146 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/ntpq/Makefile.am
tests/ntpq/Makefile.am@1.0 +0 -0
ChangeSet@1.3554, 2015-08-03 20:59:21+02:00, jnperlin@nemesis.localnet
[Bug 2888] streamline calendar functions
- MSVC compilation issue
libntp/ntp_calendar.c@1.17 +3 -1
[Bug 2888] streamline calendar functions
- 'uint' not known with MSVC; use u_int instead
ChangeSet@1.3529.4.1, 2015-08-03 20:34:01+02:00, jnperlin@hydra.(none)
[Bug 2888] streamline calendar functions.
ChangeLog@1.1725.2.1 +1 -1
[Bug 2888] streamline calendar functions.
include/ntp_calendar.h@1.18 +13 -0
[Bug 2888] streamline calendar functions.
libntp/ntp_calendar.c@1.16 +495 -321
[Bug 2888] streamline calendar functions.
- reduce number of divisions for gregorian calendar
- rewrite divisions to use explicit 2's complement calculation via unsigned types
- avoid branches in calculations where possible
tests/libntp/calendar.c@1.7 +211 -132
[Bug 2888] streamline calendar functions.
- added tests for ISO8601 week calendar
- streamlined string formatting
- converted struct-by-value to struct-by-pointer in several cases
- fixed prototypes
tests/libntp/run-calendar.c@1.9 +19 -11
[Bug 2888] streamline calendar functions.
- update of test runner
ChangeSet@1.3548.1.9, 2015-08-03 11:43:07+02:00, viperus@ubuntu.(none)
Makefile.am:
changed signdT -> t-ntp_signd. All tests files will from now on be named t-name.c , where name.c is the name of the tested file.
run-ntp_signdT.c~8aba306cc0dcbfc:
Delete: tests/ntpd/run-ntp_signdT.c
run-t-ntp_signd.c:
Rename: tests/ntpd/run-ntp_signd.c -> tests/ntpd/run-t-ntp_signd.c
t-ntp_signd.c:
Rename: tests/ntpd/ntp_signdT.c -> tests/ntpd/t-ntp_signd.c
BitKeeper/deleted/3a/run-ntp_signdT.c~8aba306cc0dcbfc@1.3 +0 -0
Delete: tests/ntpd/run-ntp_signdT.c
tests/ntpd/Makefile.am@1.19 +17 -17
changed signdT -> t-ntp_signd. All tests files will from now on be named t-name.c , where name.c is the name of the tested file.
tests/ntpd/run-t-ntp_signd.c@1.4 +0 -0
Rename: tests/ntpd/run-ntp_signd.c -> tests/ntpd/run-t-ntp_signd.c
tests/ntpd/t-ntp_signd.c@1.4 +0 -0
Rename: tests/ntpd/ntp_signdT.c -> tests/ntpd/t-ntp_signd.c
ChangeSet@1.3548.1.8, 2015-08-03 08:48:00+00:00, viperus@psp-deb1.ntp.org
Makefile.am:
minor fixes, trying to link on psp-deb1
tests/ntpd/Makefile.am@1.18 +3 -4
minor fixes, trying to link on psp-deb1
ChangeSet@1.3548.1.7, 2015-08-03 10:36:05+02:00, viperus@ubuntu.(none)
ntp_signdT.c:
added extern, hopefully, it will work
tests/ntpd/ntp_signdT.c@1.3 +1 -1
added extern, hopefully, it will work
ChangeSet@1.3548.1.6, 2015-08-03 10:18:52+02:00, viperus@ubuntu.(none)
Makefile.am:
added rc_cmdlength.o
tests/ntpd/Makefile.am@1.17 +1 -0
added rc_cmdlength.o
ChangeSet@1.3548.1.5, 2015-08-03 10:14:12+02:00, viperus@ubuntu.(none)
Makefile.am:
minor fix
tests/ntpd/Makefile.am@1.16 +1 -1
minor fix
ChangeSet@1.3547.1.1, 2015-08-03 12:30:29+05:30, loki@dadasgift.(none)
ntp_util.c:
new file
tests/libntp/decodenetnum.c@1.7 +7 -1
tests/libntp/socktoa.c@1.7 +8 -1
tests/ntpd/Makefile.am@1.12.1.1 +23 -0
tests/ntpd/ntp_util.c@1.1 +74 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/ntpd/ntp_util.c
tests/ntpd/ntp_util.c@1.0 +0 -0
ChangeSet@1.3548.1.3, 2015-08-03 08:51:53+02:00, viperus@ubuntu.(none)
ntp_signd.c~736d4c4a37ef4b86:
Delete: tests/ntpd/ntp_signd.c
BitKeeper/deleted/7f/ntp_signd.c~736d4c4a37ef4b86@1.3 +0 -0
Delete: tests/ntpd/ntp_signd.c
ChangeSet@1.3552, 2015-08-03 08:16:57+02:00, jnperlin@nemesis.localnet
[Bug 2889] ntp-dev-4.3.67 does not build on Windows
ChangeLog@1.1739 +1 -0
[Bug 2889] ntp-dev-4.3.67 does not build on Windows
libntp/msyslog.c@1.52 +2 -2
[Bug 2889] ntp-dev-4.3.67 does not build on Windows
- fixed a Windows-specific const clash in string processing
ChangeSet@1.3548.1.2, 2015-08-01 22:40:51+02:00, viperus@ubuntu.(none)
ntp_signdT.c:
MUST ADD #define HAVE_NTP_NAME above the #include "ntp_NAME.c"
Makefile.am:
Added test ntp_singd again, renamed it to ntp_signdT (including the original ntp_signd.c doesn't work if you have 2 files with the same name).
I included the original ntp_signd.c, so static functions can be tested.
Additional .o objects had to be added for everyhting to work.
run-ntp_signdT.c:
autogenerated
tests/ntpd/Makefile.am@1.14 +7 -2
Added test ntp_singd again, renamed it to ntp_signdT (including the original ntp_signd.c doesn't work if you have 2 files with the same name).
I included the original ntp_signd.c, so static functions can be tested.
Additional .o objects had to be added for everyhting to work.
tests/ntpd/ntp_signdT.c@1.2 +17 -2
MUST ADD #define HAVE_NTP_NAME above the #include "ntp_NAME.c"
tests/ntpd/run-ntp_signdT.c@1.2 +2 -2
autogenerated
ChangeSet@1.3548.1.1, 2015-08-01 20:49:22+02:00, viperus@ubuntu.(none)
Makefile.am:
added ntp_signdT
ntp_signdT.c, run-ntp_signdT.c:
new file
tests/ntpd/Makefile.am@1.13 +11 -9
added ntp_signdT
tests/ntpd/ntp_signdT.c@1.1 +28 -0
new file
tests/ntpd/ntp_signdT.c@1.0 +0 -0
tests/ntpd/run-ntp_signdT.c@1.1 +58 -0
new file
tests/ntpd/run-ntp_signdT.c@1.0 +0 -0
ChangeSet@1.3549.1.1, 2015-07-31 07:58:11+00:00, stenn@psp-at1.ntp.org
[Bug 2890] Ignore ENOBUFS on routing netlink socket. Konstantin Khlebnikov.
ChangeLog@1.1736.1.1 +1 -0
[Bug 2890] Ignore ENOBUFS on routing netlink socket. Konstantin Khlebnikov.
ntpd/ntp_io.c@1.405 +9 -4
[Bug 2890] Ignore ENOBUFS on routing netlink socket. Konstantin Khlebnikov.
ChangeSet@1.3550, 2015-07-29 22:50:29+02:00, jnperlin@hydra.(none)
Bug 2821: minor build issues: fixed refclock_gpsdjson.c
ChangeLog@1.1737 +1 -0
Bug 2821: minor build issues: fixed refclock_gpsdjson.c
ntpd/refclock_gpsdjson.c@1.23 +9 -9
Bug 2821: minor build issues: fixed refclock_gpsdjson.c
- 'isprint()' is called with u_char argument
- unified 'unsigned char' and 'u_char' to 'u_char'
ChangeSet@1.3549, 2015-07-29 10:04:53+00:00, stenn@psp-at1.ntp.org
ChangeLog cleanup
ChangeLog@1.1736 +5 -3
ChangeLog cleanup
ChangeSet@1.3548, 2015-07-29 12:01:10+02:00, viperus@ubuntu.(none)
ChangeLog:
updated ChangeLog
ChangeLog@1.1735 +3 -1
updated ChangeLog
ChangeSet@1.3529.3.1, 2015-07-29 13:18:47+05:30, loki@dadasgift.(none)
ntp_util
tests/ntpd/Makefile.am@1.6.2.1 +13 -10
ChangeSet@1.3545, 2015-07-28 09:37:25+00:00, stenn@psp-at1.ntp.org
update tests/libntp/run-socktoa.c
tests/libntp/run-socktoa.c@1.8.1.1 +6 -6
update tests/libntp/run-socktoa.c
ChangeSet@1.3544, 2015-07-28 09:36:24+00:00, stenn@psp-at1.ntp.org
Typo fix for GCC warning suppression. Harlan Stenn.
ChangeLog@1.1734 +1 -0
Typo fix for GCC warning suppression. Harlan Stenn.
ntpd/ntp_config.c@1.333 +5 -5
Typo fix for GCC warning suppression. Harlan Stenn.
ntpd/ntp_proto.c@1.364 +1 -1
Typo fix for GCC warning suppression. Harlan Stenn.
ChangeSet@1.3529.1.18, 2015-07-27 19:46:25+02:00, viperus@ubuntu.(none)
Many files:
update
run-leapsec.c:
minor change
run-ntp_scanner.c, run-decodenetnum.c:
update
ntp_scanner.c:
Added more tests
lfptest.h:
minor move after merge with lokesh
Makefile.am:
Merge
tests/libntp/lfptest.h@1.5.1.2 +0 -16
minor move after merge with lokesh
tests/libntp/run-decodenetnum.c@1.7 +1 -0
update
tests/libntp/run-lfptostr.c@1.6 +11 -11
update
tests/libntp/run-netof.c@1.6 +0 -1
update
tests/libntp/run-socktoa.c@1.9 +6 -6
update
tests/ntpd/Makefile.am@1.6.1.4 +8 -3
Merge
tests/ntpd/ntp_scanner.c@1.2 +30 -2
Added more tests
tests/ntpd/run-leapsec.c@1.4 +9 -3
minor change
tests/ntpd/run-ntp_scanner.c@1.2 +7 -1
update
tests/ntpd/run-ntp_signd.c@1.3 +2 -2
update
tests/ntpd/run-rc_cmdlength.c@1.2 +8 -3
update
ChangeSet@1.3543, 2015-07-27 04:11:08+00:00, stenn@psp-at1.ntp.org
[Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn
ChangeLog@1.1733 +1 -0
[Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn
ntpd/ntp.conf.def@1.19 +1 -1
[Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn
ntpd/ntpd-opts.def@1.13 +5 -1
[Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn
ChangeSet@1.3542, 2015-07-27 03:16:04+00:00, stenn@psp-at1.ntp.org
[Bug 2625] Deprecate flag1 in local refclock. Hal Murray, Harlan Stenn.
ChangeLog@1.1732 +1 -0
[Bug 2625] Deprecate flag1 in local refclock. Hal Murray, Harlan Stenn.
ntpd/refclock_local.c@1.21 +2 -16
[Bug 2625] Deprecate flag1 in local refclock. Hal Murray, Harlan Stenn.
ChangeSet@1.3540, 2015-07-27 00:07:00+00:00, tflendrich@psp-at1.ntp.org
ChangeLog:
updated with info about progname and ntp_restrict.c
ChangeLog@1.1730 +4 -0
updated with info about progname and ntp_restrict.c
ChangeSet@1.3529.2.1, 2015-07-26 22:04:07+00:00, stenn@psp-at1.ntp.org
[Bug 2817] Stop locking ntpd into memory by default under Linux. H.Stenn.
ChangeLog@1.1725.1.8 +1 -0
[Bug 2817] Stop locking ntpd into memory by default under Linux. H.Stenn.
sntp/m4/ntp_rlimit.m4@1.2 +5 -1
[Bug 2817] Stop locking ntpd into memory by default under Linux. H.Stenn.
ChangeSet@1.3529.1.17, 2015-07-26 21:48:29+02:00, viperus@ubuntu.(none)
run-ntp_scanner.c, ntp_scanner.c:
new file
tests/ntpd/ntp_scanner.c@1.1 +29 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/ntpd/ntp_scanner.c
tests/ntpd/ntp_scanner.c@1.0 +0 -0
tests/ntpd/run-ntp_scanner.c@1.1 +55 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/ntpd/run-ntp_scanner.c
tests/ntpd/run-ntp_scanner.c@1.0 +0 -0
ChangeSet@1.3529.1.16, 2015-07-26 21:34:45+02:00, viperus@ubuntu.(none)
tests/ntpd/Makefile.am@1.6.1.3 +20 -1
tests/ntpd/ntp_signd.c@1.2 +3 -1
tests/ntpd/run-ntp_signd.c@1.2 +9 -3
ChangeSet@1.3529.1.14, 2015-07-26 07:23:22+00:00, stenn@psp-at1.ntp.org
update tests/sec-2853/run-sec-2853.
tests/sec-2853/run-sec-2853.c@1.3.1.1 +4 -5
update
ChangeSet@1.3529.1.13, 2015-07-26 07:14:53+00:00, stenn@psp-at1.ntp.org
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
ChangeLog@1.1725.1.7 +1 -0
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
sntp/tests/Makefile.am@1.62 +4 -0
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
tests/libntp/Makefile.am@1.85.1.4 +4 -0
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
tests/ntpd/Makefile.am@1.4.1.1 +4 -0
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
tests/sandbox/Makefile.am@1.6 +4 -0
Add std_unity_tests to various Makefile.am files. Harlan Stenn.
ChangeSet@1.3529.1.12, 2015-07-26 06:43:54+00:00, stenn@psp-at1.ntp.org
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
NEWS@1.145 +10 -0
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ChangeSet@1.3529.1.11, 2015-07-26 06:37:30+00:00, stenn@psp-at1.ntp.org
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ChangeLog@1.1725.1.6 +1 -0
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
html/decode.html@1.26 +2 -2
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
html/stats.html@1.4 +24 -24
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
include/ntp_control.h@1.59 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
libntp/statestr.c@1.28 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/invoke-ntp.conf.texi@1.189 +2 -2
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.5man@1.223 +4 -4
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.5mdoc@1.223 +3 -3
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.def@1.18 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.html@1.178 +1522 -1191
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.man.in@1.223 +4 -4
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp.conf.mdoc.in@1.223 +3 -3
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp_loopfilter.c@1.185 +4 -4
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpd/ntp_proto.c@1.363 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpq/libntpq.h@1.10 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ntpq/ntpq-subs.c@1.111 +1 -1
[Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
ChangeSet@1.3537, 2015-07-25 18:08:16+02:00, tomek@tomek-n56vz.(none)
Changed "char * progname;" variable to be "char const * progname;", so now it is consistent
Many files:
changed a variable to be const
autogenerated
adjtimed/adjtimed.c@1.5 +1 -1
changed a variable to be const
clockstuff/chutest.c@1.7 +1 -1
changed a variable to be const
clockstuff/propdelay.c@1.8 +1 -1
changed a variable to be const
libntp/msyslog.c@1.51 +3 -3
changed a variable to be const
libntp/ntp_lineedit.c@1.13 +1 -1
changed a variable to be const
ntpdate/ntpdate.c@1.94 +1 -1
changed a variable to be const
ntpdc/ntpdc.c@1.104 +1 -1
changed a variable to be const
ntpq/ntpq.c@1.160 +1 -1
changed a variable to be const
sntp/log.c@1.23 +1 -1
changed a variable to be const
sntp/log.h@1.12 +1 -1
changed a variable to be const
sntp/tests/run-crypto.c@1.6 +1 -1
autogenerated
sntp/tests/run-keyFile.c@1.9 +1 -1
autogenerated
sntp/tests/run-kodDatabase.c@1.7 +1 -1
autogenerated
sntp/tests/run-kodFile.c@1.7 +1 -1
autogenerated
sntp/tests/run-networking.c@1.3 +1 -1
autogenerated
sntp/tests/run-packetHandling.c@1.6 +1 -1
autogenerated
sntp/tests/run-packetProcessing.c@1.7 +1 -1
autogenerated
sntp/tests/run-utilities.c@1.6 +1 -1
autogenerated
tests/ntpd/run-ntp_restrict.c@1.4 +1 -1
autogenerated
tests/sandbox/run-modetoa.c@1.3 +7 -4
autogenerated
tests/sandbox/run-uglydate.c@1.3 +9 -4
autogenerated
tests/sandbox/run-ut-2803.c@1.2 +7 -4
autogenerated
util/ntp-keygen.c@1.106 +1 -1
changed a variable to be const
util/ntptime.c@1.27 +1 -1
changed a variable to be const
ChangeSet@1.3529.1.10, 2015-07-25 16:54:29+02:00, viperus@ubuntu.(none)
Many files:
added declarations
lfpfunc.c:
adding declarations, reorganizing
Many files:
adding declarations
update
run-clocktime.c:
update
clocktime.c:
adding declarations
socktoa.c:
added declarations
tests/libntp/clocktime.c@1.7 +1 -0
adding declarations
tests/libntp/lfpfunc.c@1.13 +28 -7
adding declarations, reorganizing
tests/libntp/netof.c@1.3.1.1 +8 -0
adding declarations
tests/libntp/numtoa.c@1.6 +2 -0
adding declarations
tests/libntp/numtohost.c@1.5 +2 -0
adding declarations
tests/libntp/octtoint.c@1.3.1.1 +10 -0
adding declarations
tests/libntp/prettydate.c@1.3 +3 -0
adding declarations
tests/libntp/recvbuff.c@1.5 +4 -0
adding declarations
tests/libntp/refidsmear.c@1.5 +6 -3
adding declarations
tests/libntp/refnumtoa.c@1.5 +4 -0
adding declarations
tests/libntp/run-clocktime.c@1.9 +1 -1
update
tests/libntp/run-lfpfunc.c@1.16 +9 -9
update
tests/libntp/run-netof.c@1.5 +4 -4
update
tests/libntp/run-numtoa.c@1.9 +2 -2
update
tests/libntp/run-numtohost.c@1.9 +1 -1
update
tests/libntp/run-octtoint.c@1.6 +7 -7
update
tests/libntp/run-prettydate.c@1.4 +1 -1
update
tests/libntp/run-recvbuff.c@1.4 +3 -3
update
tests/libntp/run-refidsmear.c@1.5 +1 -1
update
tests/libntp/run-refnumtoa.c@1.7 +2 -2
update
tests/libntp/run-sfptostr.c@1.4 +7 -7
update
tests/libntp/run-socktoa.c@1.8 +6 -6
update
tests/libntp/run-ssl_init.c@1.8 +5 -5
update
tests/libntp/run-statestr.c@1.9 +4 -4
update
tests/libntp/run-strtolfp.c@1.4 +6 -6
update
tests/libntp/run-timespecops.c@1.9 +28 -28
update
tests/libntp/run-timevalops.c@1.11 +28 -28
update
tests/libntp/run-tstotv.c@1.4 +3 -3
update
tests/libntp/run-tvtots.c@1.5 +3 -3
update
tests/libntp/run-vi64ops.c@1.7 +3 -3
update
tests/libntp/run-ymd2yd.c@1.10 +4 -4
update
tests/libntp/sfptostr.c@1.3 +10 -0
update
tests/libntp/sockaddrtest.c@1.2 +1 -0
update
tests/libntp/socktoa.c@1.3.1.1 +6 -0
added declarations
tests/libntp/ssl_init.c@1.8 +6 -0
added declarations
tests/libntp/statestr.c@1.5 +4 -0
added declarations
tests/libntp/strtolfp.c@1.2.1.1 +9 -0
added declarations
tests/libntp/timespecops.c@1.8 +40 -1
added declarations
tests/libntp/timevalops.c@1.11 +37 -1
added declarations
tests/libntp/tstotv.c@1.3 +5 -0
added declarations
tests/libntp/tvtots.c@1.5 +3 -0
added declarations
tests/libntp/vi64ops.c@1.6 +6 -0
added declarations
tests/libntp/ymd2yd.c@1.6 +5 -0
added declarations
ChangeSet@1.3536, 2015-07-25 02:08:32+02:00, tomek@tomek-n56vz.(none)
run-ntp_restrict.c:
autogenerated, but modified manually...
Makefile.am:
removed something not longer in use
ntp_restrict.c:
added another test
run-ntp_restrict.c, run-ntp_prio_q.c, run-sec-2853.c, run-bug-2803.c:
autogenerated
tests/bug-2803/run-bug-2803.c@1.8 +8 -4
autogenerated
tests/ntpd/Makefile.am@1.9 +0 -3
removed something not longer in use
tests/ntpd/ntp_restrict.c@1.2 +17 -4
added another test
tests/ntpd/run-ntp_prio_q.c@1.2 +9 -4
autogenerated
tests/ntpd/run-ntp_restrict.c@1.3 +1 -1
autogenerated, but modified manually...
tests/ntpd/run-ntp_restrict.c@1.2 +8 -4
autogenerated
tests/sec-2853/run-sec-2853.c@1.4 +5 -6
autogenerated
ChangeSet@1.3529.1.9, 2015-07-24 18:38:05+02:00, viperus@ubuntu.(none)
calendar.c:
added function declarations + minor comment fixes
Many files:
added declarations
updated
run-buftvtots.c, run-calendar.c:
update
lfptest.c:
added #include
buftvtots.c:
added function declarations
caljulian.c:
added declarations
run-caljulian.c:
updated
tests/libntp/buftvtots.c@1.4 +4 -0
added function declarations
tests/libntp/calendar.c@1.6 +42 -18
added function declarations + minor comment fixes
tests/libntp/caljulian.c@1.9 +10 -0
added declarations
tests/libntp/caltontp.c@1.3 +5 -0
added declarations
tests/libntp/calyearstart.c@1.4 +5 -0
added declarations
tests/libntp/clocktime.c@1.6 +11 -0
added declarations
tests/libntp/decodenetnum.c@1.3.1.1 +7 -0
added declarations
tests/libntp/hextoint.c@1.4 +6 -0
added declarations
tests/libntp/hextolfp.c@1.5.1.1 +7 -0
added declarations
tests/libntp/humandate.c@1.5 +4 -0
added declarations
tests/libntp/lfpfunc.c@1.12 +13 -0
added declarations
tests/libntp/lfptest.c@1.2 +1 -0
added #include
tests/libntp/lfptostr.c@1.3.1.1 +15 -0
added declarations
tests/libntp/modetoa.c@1.7 +3 -0
added declarations
tests/libntp/msyslog.c@1.6 +10 -0
added declarations
tests/libntp/run-buftvtots.c@1.5 +10 -10
update
tests/libntp/run-calendar.c@1.8 +11 -11
update
tests/libntp/run-caljulian.c@1.12 +4 -4
updated
tests/libntp/run-caltontp.c@1.4 +4 -4
updated
tests/libntp/run-calyearstart.c@1.6 +3 -3
updated
tests/libntp/run-clocktime.c@1.8 +8 -8
updated
tests/libntp/run-decodenetnum.c@1.6 +6 -6
updated
tests/libntp/run-hextoint.c@1.8 +5 -5
updated
tests/libntp/run-hextolfp.c@1.7 +6 -6
updated
tests/libntp/run-humandate.c@1.5 +2 -2
updated
tests/libntp/run-lfpfunc.c@1.15 +9 -9
updated
tests/libntp/run-lfptostr.c@1.5 +10 -10
updated
tests/libntp/run-modetoa.c@1.10 +2 -2
updated
tests/libntp/run-msyslog.c@1.7 +8 -8
updated
ChangeSet@1.3523.2.7, 2015-07-24 12:01:24+05:30, loki@dadasgift.(none)
ntp signd testing
tests/ntpd/ntp_signd.c@1.1 +24 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/ntpd/ntp_signd.c
tests/ntpd/ntp_signd.c@1.0 +0 -0
ChangeSet@1.3523.2.6, 2015-07-24 11:55:00+05:30, loki@dadasgift.(none)
ntp_signd test changes
tests/ntpd/Makefile.am@1.6.1.1 +21 -0
tests/ntpd/run-ntp_signd.c@1.1 +52 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/ntpd/run-ntp_signd.c
tests/ntpd/run-ntp_signd.c@1.0 +0 -0
ChangeSet@1.3535, 2015-07-23 19:19:08+02:00, tomek@tomek-n56vz.(none)
Wrote tests for ntpd/ntp_restrict.c
ntp_restrict.c, run-ntp_restrict.c:
new file
Makefile.am:
added ntp_restrict.c test
ntp_restrict.c:
added assertions (I prefer them to a segfault)
ntpd/ntp_restrict.c@1.39 +6 -0
added assertions (I prefer them to a segfault)
tests/ntpd/Makefile.am@1.8 +25 -0
added ntp_restrict.c test
tests/ntpd/ntp_restrict.c@1.1 +185 -0
BitKeeper file /home/tomek/ntp/ntpd_tests/ntp-stable-unity/tests/ntpd/ntp_restrict.c
tests/ntpd/ntp_restrict.c@1.0 +0 -0
tests/ntpd/run-ntp_restrict.c@1.1 +64 -0
BitKeeper file /home/tomek/ntp/ntpd_tests/ntp-stable-unity/tests/ntpd/run-ntp_restrict.c
tests/ntpd/run-ntp_restrict.c@1.0 +0 -0
ChangeSet@1.3529.1.8, 2015-07-23 18:37:16+02:00, viperus@ubuntu.(none)
reduced number of warnings in sntp/tests/
sntp/tests/crypto.c@1.9 +6 -0
added declarations for tests
sntp/tests/fileHandlingTest.c@1.2 +1 -1
commented out unnecessary array
sntp/tests/keyFile.c@1.7 +4 -0
added declarations for tests
sntp/tests/kodDatabase.c@1.7 +6 -0
added declarations for tests
sntp/tests/kodFile.c@1.8 +8 -0
added declarations for tests
sntp/tests/nameresolution.c@1.2 +3 -0
added declarations for tests
sntp/tests/packetHandling.c@1.5 +13 -0
added declarations for tests
sntp/tests/packetProcessing.c@1.7 +24 -0
added declarations for tests
sntp/tests/run-crypto.c@1.5 +5 -5
added declarations for tests
sntp/tests/run-keyFile.c@1.8 +4 -4
updated
sntp/tests/run-kodDatabase.c@1.6 +5 -5
updated
sntp/tests/run-kodFile.c@1.6 +6 -6
updated
sntp/tests/run-packetHandling.c@1.5 +10 -10
updated
sntp/tests/run-packetProcessing.c@1.6 +18 -18
updated
sntp/tests/run-utilities.c@1.5 +7 -7
updated
sntp/tests/utilities.c@1.4 +12 -0
added declarations for tests
ChangeSet@1.3529.1.7, 2015-07-22 20:09:39+02:00, viperus@ubuntu.(none)
Updated unity ruby testRunner generator with mark's latest fixes. Modified tests/libntp/Makefile.am and sntp/tests/Makefile.am accordingly. Also, split some .h files into .h and .c because they contained declarations and definitions which caused error in the newly generated test runners. Started fixing some warnings. We can add both declarations and defitions in a single test.c file without any issues now. Autogenerated tests will be run in order of the declarations in the test file.
sntp/tests/Makefile.am@1.61 +4 -0
New ruby generator script required some changes. Removed some definitions form header files and created their own .c files.
sntp/tests/crypto.c@1.8 +2 -0
started adding declarations at the top of the file
sntp/tests/fileHandlingTest.c@1.1 +74 -0
new file. Contains definitions from fileHandlingTest.h.in
sntp/tests/fileHandlingTest.c@1.0 +0 -0
sntp/tests/fileHandlingTest.h.in@1.14 +7 -46
changes stuff a bit, to work with the updated ruby generator
sntp/tests/keyFile.c@1.6 +4 -0
added declarations to avoid warnings
sntp/tests/run-crypto.c@1.4 +12 -9
updated autogenerated code
sntp/tests/run-keyFile.c@1.7 +12 -8
updated autogenerated code
sntp/tests/run-kodDatabase.c@1.5 +9 -3
updated autogenerated code
sntp/tests/run-kodFile.c@1.5 +7 -3
updated autogenerated code
sntp/tests/run-networking.c@1.2 +5 -2
updated autogenerated code
sntp/tests/run-packetHandling.c@1.4 +11 -3
updated autogenerated code
sntp/tests/run-packetProcessing.c@1.5 +6 -3
updated autogenerated code
sntp/tests/run-utilities.c@1.4 +8 -3
updated autogenerated code
sntp/tests/sntptest.c@1.1 +33 -0
definitions placed from .h to .c
sntp/tests/sntptest.c@1.0 +0 -0
sntp/tests/sntptest.h@1.6 +0 -29
added sntptest.c and put definitions in it.
sntp/unity/auto/generate_test_runner.rb@1.9 +3 -3
some changes were needed after mark's update to work better with NTP
sntp/unity/auto/generate_test_runner.rb@1.8 +209 -110
updated the ruby script with new stuff from Mark
sntp/unity/auto/parseOutput.rb@1.1 +191 -0
mark's new file from the update
sntp/unity/auto/parseOutput.rb@1.0 +0 -0
sntp/unity/auto/type_sanitizer.rb@1.1 +8 -0
mark's new file from the update
sntp/unity/auto/type_sanitizer.rb@1.0 +0 -0
sntp/unity/auto/unity_test_summary.py@1.1 +135 -0
mark's new file from the update
sntp/unity/auto/unity_test_summary.py@1.0 +0 -0
sntp/unity/auto/unity_test_summary.rb@1.3 +48 -25
added Marks new changes
tests/libntp/Makefile.am@1.85.1.3 +7 -0
New ruby generator script required some changes. Removed some definitions form header files and created their own .c files.
tests/libntp/a_md5encrypt.c@1.11 +8 -0
added declarations
tests/libntp/atoint.c@1.4 +9 -0
added declarations
tests/libntp/atouint.c@1.5 +8 -0
added declarations
tests/libntp/authkeys.c@1.10 +17 -6
added declarations
tests/libntp/lfptest.c@1.1 +10 -0
new file, contains definitions from lfptest.h
tests/libntp/lfptest.c@1.0 +0 -0
tests/libntp/lfptest.h@1.4.1.3 +2 -8
split to .h and .c which now contains definitions
tests/libntp/run-a_md5encrypt.c@1.13 +9 -7
autogenerated file update
tests/libntp/run-atoint.c@1.7 +10 -7
autogenerated file update
tests/libntp/run-atouint.c@1.8 +10 -7
autogenerated file update
tests/libntp/run-authkeys.c@1.10 +12 -9
autogenerated file update
tests/libntp/run-buftvtots.c@1.4 +8 -3
autogenerated file update
tests/libntp/run-calendar.c@1.7 +6 -3
autogenerated file update
tests/libntp/run-caljulian.c@1.11 +7 -3
autogenerated file update
tests/libntp/run-caltontp.c@1.3 +4 -3
autogenerated file update
tests/libntp/run-calyearstart.c@1.5 +6 -3
autogenerated file update
tests/libntp/run-clocktime.c@1.7 +6 -3
autogenerated file update
tests/libntp/run-decodenetnum.c@1.5 +5 -3
autogenerated file update
tests/libntp/run-hextoint.c@1.7 +6 -2
autogenerated file update
tests/libntp/run-hextolfp.c@1.6 +6 -3
autogenerated file update
tests/libntp/run-humandate.c@1.4 +5 -3
autogenerated file update
tests/libntp/run-lfpfunc.c@1.14 +7 -3
autogenerated file update
tests/libntp/run-lfptostr.c@1.4 +5 -3
autogenerated file update
tests/libntp/run-modetoa.c@1.9 +4 -3
autogenerated file update
tests/libntp/run-msyslog.c@1.6 +4 -3
autogenerated file update
tests/libntp/run-netof.c@1.4 +6 -3
autogenerated file update
tests/libntp/run-numtoa.c@1.8 +5 -3
autogenerated file update
tests/libntp/run-numtohost.c@1.8 +5 -3
autogenerated file update
tests/libntp/run-octtoint.c@1.5 +4 -2
autogenerated file update
tests/libntp/run-prettydate.c@1.3 +6 -2
autogenerated file update
tests/libntp/run-recvbuff.c@1.3 +4 -2
autogenerated file update
tests/libntp/run-refidsmear.c@1.4 +7 -3
autogenerated file update
tests/libntp/run-refnumtoa.c@1.6 +5 -3
autogenerated file update
tests/libntp/run-sfptostr.c@1.3 +4 -3
autogenerated file update
tests/libntp/run-socktoa.c@1.7 +6 -2
autogenerated file update
tests/libntp/run-ssl_init.c@1.7 +4 -3
autogenerated file update
tests/libntp/run-statestr.c@1.8 +6 -3
autogenerated file update
tests/libntp/run-strtolfp.c@1.3 +6 -2
autogenerated file update
tests/libntp/run-timespecops.c@1.8 +8 -3
autogenerated file update
tests/libntp/run-timevalops.c@1.10 +7 -3
autogenerated file update
tests/libntp/run-tstotv.c@1.3 +5 -2
autogenerated file update
tests/libntp/run-tvtots.c@1.4 +6 -3
autogenerated file update
tests/libntp/run-uglydate.c@1.9 +6 -4
autogenerated file update
tests/libntp/run-vi64ops.c@1.6 +5 -3
autogenerated file update
tests/libntp/run-ymd2yd.c@1.9 +4 -3
autogenerated file update
tests/libntp/sockaddrtest.c@1.1 +50 -0
New file created by splitting sockaddrtest.h.
tests/libntp/sockaddrtest.c@1.0 +0 -0
tests/libntp/sockaddrtest.h@1.6 +4 -45
removed definitions and placed them in sockaddrtest.c
tests/libntp/uglydate.c@1.7 +1 -0
added some declarations to test the new generator. Unfinished
ChangeSet@1.3523.3.18, 2015-07-21 06:47:23+00:00, stenn@psp-deb1.ntp.org
[Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
ChangeLog@1.1708.1.19 +1 -0
[Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
ntpd/ntp_parser.c@1.98 +1141 -1381
[Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
ntpd/ntp_parser.h@1.63 +216 -230
[Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
ntpd/ntp_parser.y@1.88 +1 -1
[Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
ChangeSet@1.3523.3.17, 2015-07-20 07:32:09+00:00, stenn@psp-at1.ntp.org
ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr). Harlan Stenn.
ChangeLog@1.1708.1.18 +1 -0
ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr). Harlan Stenn.
ntpd/ntp_peer.c@1.158 +2 -0
ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr). Harlan Stenn.
ChangeSet@1.3523.3.16, 2015-07-20 07:20:04+00:00, stenn@psp-at1.ntp.org
[Bug 2849] Systems with more than one default route may never synchronize. Brian Utterback.
ChangeLog@1.1708.1.17 +3 -0
[Bug 2849] Systems with more than one default route may never synchronize. Brian Utterback.
ntpd/ntp_peer.c@1.157 +7 -3
[Bug 2849] Systems with more than one default route may never synchronize. Brian Utterback.
ChangeSet@1.3523.3.15, 2015-07-20 06:38:37+00:00, stenn@psp-at1.ntp.org
util/ntptime.c: initialization nit. Harlan Stenn.
ChangeLog@1.1708.1.16 +1 -0
util/ntptime.c: initialization nit. Harlan Stenn.
util/ntptime.c@1.26 +1 -1
util/ntptime.c: initialization nit. Harlan Stenn.
ChangeSet@1.3523.3.14, 2015-07-19 21:49:06-04:00, stenn@deacon.udel.edu
Typo
ChangeLog@1.1708.1.15 +1 -1
Typo
ChangeSet@1.3523.3.13, 2015-07-19 21:46:59-04:00, stenn@deacon.udel.edu
libntp/icom.c: Typos fix. Harlan Stenn.
ChangeLog@1.1708.1.14 +1 -0
libntp/icom.c: Typos fix. Harlan Stenn.
libntp/icom.c@1.20 +1 -1
libntp/icom.c: Typos fix. Harlan Stenn.
ChangeSet@1.3523.3.12, 2015-07-19 05:37:40+00:00, stenn@psp-at1.ntp.org
Code cleanup. Harlan Stenn.
ChangeLog@1.1708.1.13 +1 -0
Code cleanup. Harlan Stenn.
include/Makefile.am@1.52 +1 -0
Code cleanup. Harlan Stenn.
include/rc_cmdlength.h@1.1 +2 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable/include/rc_cmdlength.h
include/rc_cmdlength.h@1.0 +0 -0
libntp/audio.c@1.36 +8 -5
Code cleanup. Harlan Stenn.
libntp/icom.c@1.19 +23 -7
Code cleanup. Harlan Stenn.
libntp/ntp_worker.c@1.5 +1 -1
Code cleanup. Harlan Stenn.
ntpd/ntp_config.c@1.332 +10 -0
Code cleanup. Harlan Stenn.
ntpd/ntp_control.c@1.203 +1 -2
Code cleanup. Harlan Stenn.
ntpd/ntp_crypto.c@1.181 +1 -1
Code cleanup. Harlan Stenn.
ntpd/ntp_monitor.c@1.44 +4 -0
Code cleanup. Harlan Stenn.
ntpd/ntp_peer.c@1.156 +1 -0
Code cleanup. Harlan Stenn.
ntpd/ntp_proto.c@1.362 +3 -1
Code cleanup. Harlan Stenn.
ntpd/ntp_restrict.c@1.38 +4 -0
Code cleanup. Harlan Stenn.
ntpd/rc_cmdlength.c@1.2 +1 -0
Code cleanup. Harlan Stenn.
ntpd/refclock_arc.c@1.33 +1 -1
Code cleanup. Harlan Stenn.
ntpd/refclock_chu.c@1.57 +1 -1
Code cleanup. Harlan Stenn.
ntpd/refclock_nmea.c@1.78 +4 -3
Code cleanup. Harlan Stenn.
ntpd/refclock_parse.c@1.81 +3 -0
Code cleanup. Harlan Stenn.
ntpd/refclock_wwv.c@1.80 +4 -2
Code cleanup. Harlan Stenn.
ntpq/ntpq.c@1.159 +0 -1
Code cleanup. Harlan Stenn.
sntp/networking.c@1.66 +1 -1
Code cleanup. Harlan Stenn.
tests/sec-2853/run-sec-2853.c@1.3 +2 -2
Code cleanup. Harlan Stenn.
tests/sec-2853/sec-2853.c@1.5 +2 -2
Code cleanup. Harlan Stenn.
util/ntp-keygen.c@1.105 +2 -2
Code cleanup. Harlan Stenn.
ChangeSet@1.3523.3.11, 2015-07-16 07:37:32+00:00, stenn@psp-at1.ntp.org
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ChangeLog@1.1708.1.12 +1 -0
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
include/ntp_assert.h@1.9 +0 -4
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
include/ntp_lists.h@1.15 +3 -3
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/atolfp.c@1.6 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/caljulian.c@1.16 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/caltontp.c@1.7 +8 -8
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/decodenetnum.c@1.17 +3 -3
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/msyslog.c@1.50 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/ntp_intres.c@1.99 +12 -12
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/ntp_rfc2553.c@1.48 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/prettydate.c@1.20 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/recvbuff.c@1.40 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/socket.c@1.10 +2 -2
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
libntp/socktohost.c@1.15 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_config.c@1.331 +7 -8
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_control.c@1.202 +18 -18
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_crypto.c@1.180 +14 -14
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_io.c@1.404 +15 -15
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_monitor.c@1.43 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_peer.c@1.155 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_refclock.c@1.120 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpd/ntp_restrict.c@1.37 +9 -9
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpdc/ntpdc.c@1.103 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ntpq/ntpq-subs.c@1.110 +7 -7
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ports/winnt/libntp/termios.c@1.31 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ports/winnt/ntpd/nt_clockstuff.c@1.66 +1 -1
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ports/winnt/ntpd/ntp_iocompletionport.c@1.71 +7 -8
Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
ChangeSet@1.3523.3.10, 2015-07-13 04:28:29+00:00, stenn@psp-at1.ntp.org
[Bug 2823] ntpsweep with recursive peers option doesn't work. H.Stenn.
ChangeLog@1.1708.1.11 +1 -0
[Bug 2823] ntpsweep with recursive peers option doesn't work. H.Stenn.
scripts/ntpsweep/ntpsweep.in@1.9 +2 -1
[Bug 2823] ntpsweep with recursive peers option doesn't work. H.Stenn.
ChangeSet@1.3523.3.9, 2015-07-13 04:18:36+00:00, stenn@psp-at1.ntp.org
scripts/lib/NTP/Util.pm: stratum output is version-dependent. Harlan Stenn.
ChangeLog@1.1708.1.10 +1 -0
scripts/lib/NTP/Util.pm: stratum output is version-dependent. Harlan Stenn.
scripts/lib/NTP/Util.pm@1.5 +8 -1
scripts/lib/NTP/Util.pm: stratum output is version-dependent. Harlan Stenn.
ChangeSet@1.3531, 2015-07-13 04:21:50+02:00, tomek@tomek-n56vz.(none)
wrote tests for ntpd/ntp_prio_q.c
Makefile.am:
added ntp_prio_q.c
ntp_prio_q.c, run-ntp_prio_q.c:
new file
ChangeLog:
added info about the test of ntpd/ntp_prio_q.c
ChangeLog@1.1726 +1 -0
added info about the test of ntpd/ntp_prio_q.c
tests/ntpd/Makefile.am@1.7 +28 -0
added ntp_prio_q.c
tests/ntpd/ntp_prio_q.c@1.1 +261 -0
BitKeeper file /home/tomek/ntp/ntpd_tests/ntp-stable-unity/tests/ntpd/ntp_prio_q.c
tests/ntpd/ntp_prio_q.c@1.0 +0 -0
tests/ntpd/run-ntp_prio_q.c@1.1 +64 -0
BitKeeper file /home/tomek/ntp/ntpd_tests/ntp-stable-unity/tests/ntpd/run-ntp_prio_q.c
tests/ntpd/run-ntp_prio_q.c@1.0 +0 -0
ChangeSet@1.3523.2.5, 2015-07-12 22:59:46+05:30, loki@dadasgift.(none)
rc_cmdlength test
tests/ntpd/rc_cmdlength.c@1.2 +20 -4
tests/ntpd/run-rc_cmdlength.c@1.1 +52 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/ntpd/run-rc_cmdlength.c
tests/ntpd/run-rc_cmdlength.c@1.0 +0 -0
ChangeSet@1.3523.3.8, 2015-07-11 19:20:33-04:00, stenn@deacon.udel.edu
br-flock: --enable-local-libevent. Harlan Stenn.
ChangeLog@1.1708.1.9 +1 -0
br-flock: --enable-local-libevent. Harlan Stenn.
br-flock@1.17 +1 -1
br-flock: --enable-local-libevent. Harlan Stenn.
ChangeSet@1.3523.3.7, 2015-07-11 18:46:20-04:00, stenn@deacon.udel.edu
[Bug 2875] libevent is improperly bundled in the tarball
Makefile.am@1.133 +1 -1
[Bug 2875] libevent is improperly bundled in the tarball
ChangeSet@1.3523.4.1, 2015-07-11 20:28:26+00:00, stenn@psp-at1.ntp.org
[Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS. libevent must be configured for the distribution targets. Harlan Stenn.
ChangeLog@1.1708.2.1 +2 -0
[Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS. libevent must be configured for the distribution targets. Harlan Stenn.
sntp/Makefile.am@1.86 +13 -24
[Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS. libevent must be configured for the distribution targets. Harlan Stenn.
ChangeSet@1.3523.2.4, 2015-07-11 00:19:36+05:30, loki@dadasgift.(none)
rc_cmdlength testing
tests/ntpd/Makefile.am@1.6 +20 -0
tests/ntpd/rc_cmdlength.c@1.1 +22 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/ntpd/rc_cmdlength.c
tests/ntpd/rc_cmdlength.c@1.0 +0 -0
ChangeSet@1.3523.3.5, 2015-07-09 09:03:46+00:00, stenn@psp-at1.ntp.org
tests/libntp/test_caltontp needs -lpthread. Harlan Stenn.
ChangeLog@1.1708.1.7 +1 -0
tests/libntp/test_caltontp needs -lpthread. Harlan Stenn.
tests/libntp/Makefile.am@1.85.1.2 +5 -0
tests/libntp/test_caltontp needs -lpthread. Harlan Stenn.
ChangeSet@1.3523.3.4, 2015-07-09 03:42:45-04:00, stenn@deacon.udel.edu
Don't build sntp/libevent/sample/. Harlan Stenn.
ChangeLog@1.1708.1.6 +1 -0
Don't build sntp/libevent/sample/. Harlan Stenn.
sntp/libevent/Makefile.am@1.14 +1 -1
Don't build sntp/libevent/sample/. Harlan Stenn.
ChangeSet@1.3523.3.3, 2015-07-09 06:06:50+00:00, stenn@psp-at1.ntp.org
Phase 1 deprecation of google test in tests/libntp/. Harlan Stenn.
ChangeLog@1.1708.1.5 +1 -0
Phase 1 deprecation of google test in tests/libntp/. Harlan Stenn.
tests/libntp/Makefile.am@1.85.1.1 +113 -408
Phase 1 deprecation of google test in tests/libntp/. Harlan Stenn.
ChangeSet@1.3527, 2015-07-09 04:25:01+02:00, tomek@tomek-n56vz.(none)
lfptest.h:
now it uses NTP's conventions
ChangeLog:
add info about lfptest.h
test-libntp.c:
fixed formatting
sockaddrtest.h:
formatting fix
kodDatabase.c:
formatting, adding const, adding a missing library
ChangeLog:
added info about timespecops.c
kodFile.c:
formatting, changes to usage of unity macros to get better print messages, cleanup
crypto.c, lfptest.h:
cleanup
ChangeLog:
add info about test-libntp.c
timespecops.c:
further formatting changes
ChangeLog:
added info about timevalops.c
fileHandlingTest.h.in:
fixed buffer overflow problem and fixed one function that previously did nothing
timevalops.c:
fixed the order of includes, deleted unnecessary
packetProcessing.c:
formatting, sprintf->snprintf
packetHandling.c:
formatting, using better unity functions, using proper unity functions, deleting unused variable
keyFile.c:
formatting, using proper unity's macros
ChangeLog:
fileHandlingTest.h info
updating with info about sockaddrtest.h
timespecops.c:
forgot to delete one comment
ChangeLog:
added info about my code review changes in sntp/tests/
kodDatabase.c:
missed something in formatting
sntptest.h:
formatting
Many files:
autogenerated
kodDatabase.c:
added a header. now it's windows compliant too!
fileHandlingTest.h.in:
formatting, deleted unnecessary prints
timespecops.c:
fixed formatting, fixed the order of includes,
removed unnecessary comments, cleanup
utilities.c:
the order of includes, formatting, removing unnecessary comments, using proper unity assertions
ChangeLog@1.1723 +2 -1
fileHandlingTest.h info
ChangeLog@1.1722 +17 -0
added info about my code review changes in sntp/tests/
ChangeLog@1.1721 +1 -0
add info about test-libntp.c
ChangeLog@1.1720 +2 -0
updating with info about sockaddrtest.h
ChangeLog@1.1719 +1 -0
add info about lfptest.h
ChangeLog@1.1718 +2 -0
added info about timevalops.c
ChangeLog@1.1717 +3 -1
added info about timespecops.c
sntp/tests/crypto.c@1.7 +14 -8
cleanup
sntp/tests/fileHandlingTest.h.in@1.13 +6 -6
fixed buffer overflow problem and fixed one function that previously did nothing
sntp/tests/fileHandlingTest.h.in@1.12 +13 -39
formatting, deleted unnecessary prints
sntp/tests/keyFile.c@1.5 +33 -24
formatting, using proper unity's macros
sntp/tests/kodDatabase.c@1.6 +1 -1
added a header. now it's windows compliant too!
sntp/tests/kodDatabase.c@1.5 +1 -2
missed something in formatting
sntp/tests/kodDatabase.c@1.4 +39 -31
formatting, adding const, adding a missing library
sntp/tests/kodFile.c@1.7 +34 -32
formatting, changes to usage of unity macros to get better print messages, cleanup
sntp/tests/packetHandling.c@1.4 +46 -31
formatting, using better unity functions, using proper unity functions, deleting unused variable
sntp/tests/packetProcessing.c@1.6 +67 -25
formatting, sprintf->snprintf
sntp/tests/run-crypto.c@1.3 +6 -6
autogenerated
sntp/tests/run-keyFile.c@1.6 +5 -5
autogenerated
sntp/tests/run-kodDatabase.c@1.4 +5 -5
autogenerated
sntp/tests/run-kodDatabase.c@1.3 +4 -4
autogenerated
sntp/tests/run-kodFile.c@1.4 +5 -5
autogenerated
sntp/tests/run-packetHandling.c@1.3 +10 -10
autogenerated
sntp/tests/run-packetProcessing.c@1.4 +18 -18
autogenerated
sntp/tests/run-utilities.c@1.3 +7 -7
autogenerated
sntp/tests/sntptest.h@1.5 +9 -3
formatting
sntp/tests/utilities.c@1.3 +38 -20
the order of includes, formatting, removing unnecessary comments, using proper unity assertions
tests/libntp/lfptest.h@1.4.1.2 +2 -3
now it uses NTP's conventions
tests/libntp/lfptest.h@1.4.1.1 +7 -16
cleanup
tests/libntp/run-timespecops.c@1.5.1.3 +28 -28
autogenerated
tests/libntp/run-timespecops.c@1.5.1.2 +28 -28
autogenerated
tests/libntp/run-timespecops.c@1.5.1.1 +28 -28
autogenerated
tests/libntp/run-timevalops.c@1.7.1.1 +28 -28
autogenerated
tests/libntp/sockaddrtest.h@1.5 +6 -5
formatting fix
tests/libntp/test-libntp.c@1.10 +6 -11
fixed formatting
tests/libntp/timespecops.c@1.5.1.3 +7 -6
further formatting changes
tests/libntp/timespecops.c@1.5.1.2 +0 -1
forgot to delete one comment
tests/libntp/timespecops.c@1.5.1.1 +129 -85
fixed formatting, fixed the order of includes,
removed unnecessary comments, cleanup
tests/libntp/timevalops.c@1.8.1.1 +137 -87
fixed the order of includes, deleted unnecessary
ChangeSet@1.3523.3.2, 2015-07-07 01:27:49+00:00, stenn@psp-at1.ntp.org
sntp/unity/unity.c: Clean up a printf(). Harlan Stenn
ChangeLog@1.1708.1.4 +1 -0
sntp/unity/unity.c: Clean up a printf(). Harlan Stenn
sntp/unity/unity.c@1.3 +1 -3
sntp/unity/unity.c: Clean up a printf(). Harlan Stenn
ChangeSet@1.3523.3.1, 2015-07-07 01:21:36+00:00, stenn@psp-at1.ntp.org
[Bug 2873] libevent should not include .deps/ in the tarball. H.Stenn
ChangeLog@1.1708.1.3 +1 -0
[Bug 2873] libevent should not include .deps/ in the tarball. H.Stenn
sntp/Makefile.am@1.85 +1 -1
[Bug 2873] libevent should not include .deps/ in the tarball. H.Stenn
ChangeSet@1.3523.2.2, 2015-07-06 20:30:39+05:30, loki@dadasgift.(none)
code review changes
tests/libntp/lfptest.h@1.5 +7 -6
tests/libntp/strtolfp.c@1.3 +20 -19
ChangeSet@1.3514.1.2, 2015-07-06 19:55:50+05:30, loki@dadasgift.(none)
Code review changes
tests/libntp/decodenetnum.c@1.2.1.1 +13 -9
tests/libntp/hextolfp.c@1.4.1.1 +0 -1
tests/libntp/lfptostr.c@1.2.1.1 +23 -12
tests/libntp/netof.c@1.4 +9 -6
tests/libntp/octtoint.c@1.4 +14 -7
tests/libntp/socktoa.c@1.4 +16 -13
ChangeSet@1.3523.1.3, 2015-07-06 08:37:13+00:00, stenn@psp-at1.ntp.org
[Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
ChangeLog@1.1708.1.2 +1 -0
[Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
sntp/tests/Makefile.am@1.60 +0 -1
[Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
ChangeSet@1.3523.1.2, 2015-07-06 08:31:19+00:00, stenn@psp-at1.ntp.org
update tests/libntp/run-lfpfunc.c
tests/libntp/run-lfpfunc.c@1.13 +9 -9
update
ChangeSet@1.3523.1.1, 2015-07-06 05:48:25+00:00, stenn@psp-at1.ntp.org
sntp/unity/Makefile.am: fix some broken paths. Harlan Stenn.
ChangeLog@1.1708.1.1 +1 -0
sntp/unity/Makefile.am: fix some broken paths. Harlan Stenn.
sntp/tests/Makefile.am@1.59 +4 -4
sntp/unity/Makefile.am: fix some broken paths. Harlan Stenn.
ChangeSet@1.3524, 2015-07-05 23:58:57+02:00, tomek@tomek-n56vz.(none)
vi64ops.c:
deleted a comment
ymd2yd.c:
fixed formatting, deleted empty setUp() and tearDown()
ssl_init.c:
fixed formatting
ChangeLog:
updated the changes to vi64ops.c
vi64ops.c:
fixed formatting (trailing spaces, the order of includes, return type of a function in a new line)
ChangeLog:
info about tvtots.c
ymd2yd.c:
removed an include
ChangeLog:
info about ymd2yd.c
uglydate.c:
removed an unnecessary include
ChangeLog:
info about uglydate.c
statestr.c:
deleted unnecessary empty functions, fixed formatting, removed an unnecessary include
ChangeLog:
info about vi64ops.c
tvtots.c:
fixed a bug, fixed formatting
Many files:
autogenerated
ChangeLog@1.1714 +2 -3
info about ymd2yd.c
ChangeLog@1.1713 +2 -0
info about ymd2yd.c
ChangeLog@1.1712 +2 -1
updated the changes to vi64ops.c
ChangeLog@1.1711 +1 -0
info about vi64ops.c
ChangeLog@1.1710 +1 -0
info about uglydate.c
ChangeLog@1.1709 +4 -0
info about tvtots.c
tests/libntp/run-ssl_init.c@1.6 +5 -5
autogenerated
tests/libntp/run-statestr.c@1.7 +5 -4
autogenerated
tests/libntp/run-tvtots.c@1.3 +4 -3
autogenerated
tests/libntp/run-uglydate.c@1.8 +2 -1
autogenerated
tests/libntp/run-vi64ops.c@1.5 +3 -3
autogenerated
tests/libntp/run-ymd2yd.c@1.8 +4 -4
autogenerated
tests/libntp/run-ymd2yd.c@1.7 +5 -4
autogenerated
tests/libntp/ssl_init.c@1.7 +11 -6
fixed formatting
tests/libntp/statestr.c@1.4 +12 -15
deleted unnecessary empty functions, fixed formatting, removed an unnecessary include
tests/libntp/tvtots.c@1.4 +12 -5
fixed a bug, fixed formatting
tests/libntp/uglydate.c@1.6 +0 -1
removed an unnecessary include
tests/libntp/vi64ops.c@1.5 +1 -1
deleted a comment
tests/libntp/vi64ops.c@1.4 +17 -14
fixed formatting (trailing spaces, the order of includes, return type of a function in a new line)
tests/libntp/ymd2yd.c@1.5 +0 -1
removed an include
tests/libntp/ymd2yd.c@1.4 +14 -16
fixed formatting, deleted empty setUp() and tearDown()
ChangeSet@1.3523, 2015-07-05 18:41:36+02:00, tomek@tomek-n56vz.(none)
refnumtoa.c:
fixed formatting
numtoa.c:
remove unnecessary empty functions, fix formatting
lfpfunc.c:
remove unnecessary include, remove old comments, fix formatting, cleanup
numtohost.c:
added const, fixed formatting
lfptostr.c:
fix formatting, delete an include
lfpfunc.c:
removed an endline
ChangeLog:
update with new changes to numtoa.c
numtoa.c:
added "const"
ChangeLog:
changes with numtohost.c
added changes to lfpfunc.c
add info about numtoa.c
updated with modetoa.c changes
add info about lfptostr.c
msyslog.c, modetoa.c:
fix formatting
Many files:
autogenerated
ChangeLog:
add info about msyslog.c
lfpfunc.c:
added spaces after the commas
ChangeLog:
updated info about refnumtoa.c
ChangeLog@1.1708 +1 -0
updated info about refnumtoa.c
ChangeLog@1.1707 +1 -0
changes with numtohost.c
ChangeLog@1.1706 +2 -2
update with new changes to numtoa.c
ChangeLog@1.1705 +2 -0
add info about numtoa.c
ChangeLog@1.1704 +1 -0
add info about msyslog.c
ChangeLog@1.1703 +1 -0
updated with modetoa.c changes
ChangeLog@1.1702 +3 -1
add info about lfptostr.c
ChangeLog@1.1701 +2 -0
added changes to lfpfunc.c
tests/libntp/lfpfunc.c@1.11 +0 -2
removed an endline
tests/libntp/lfpfunc.c@1.10 +55 -55
added spaces after the commas
tests/libntp/lfpfunc.c@1.9 +100 -188
remove unnecessary include, remove old comments, fix formatting, cleanup
tests/libntp/lfptostr.c@1.3 +20 -13
fix formatting, delete an include
tests/libntp/modetoa.c@1.6 +5 -5
fix formatting
tests/libntp/msyslog.c@1.5 +11 -2
fix formatting
tests/libntp/numtoa.c@1.5 +3 -3
added "const"
tests/libntp/numtoa.c@1.4 +12 -20
remove unnecessary empty functions, fix formatting
tests/libntp/numtohost.c@1.4 +3 -4
added const, fixed formatting
tests/libntp/refnumtoa.c@1.4 +10 -12
fixed formatting
tests/libntp/run-lfpfunc.c@1.12 +9 -9
autogenerated
tests/libntp/run-lfptostr.c@1.3 +11 -10
autogenerated
tests/libntp/run-modetoa.c@1.8 +2 -1
autogenerated
tests/libntp/run-msyslog.c@1.5 +8 -8
autogenerated
tests/libntp/run-numtoa.c@1.7 +3 -2
autogenerated
tests/libntp/run-numtohost.c@1.7 +1 -0
autogenerated
tests/libntp/run-refnumtoa.c@1.5 +1 -1
autogenerated
ChangeSet@1.3514.2.2, 2015-07-04 21:58:49+00:00, stenn@psp-at1.ntp.org
sntp/libevent/evconfig-private.h: remove generated filefrom SCM. H.Stenn.
BitKeeper/deleted/42/evconfig-private.h~c311ed41afa56d3b@1.2 +0 -0
Delete: sntp/libevent/evconfig-private.h
ChangeLog@1.1695.1.2 +1 -0
sntp/libevent/evconfig-private.h: remove generated filefrom SCM. H.Stenn.
ChangeSet@1.3514.2.1, 2015-07-04 21:44:33+00:00, stenn@psp-at1.ntp.org
sntp/unity/unity_config.h: Distribute it. Harlan Stenn.
ChangeLog@1.1695.1.1 +1 -0
sntp/unity/unity_config.h: Distribute it. Harlan Stenn.
sntp/unity/Makefile.am@1.6.1.1 +1 -0
sntp/unity/unity_config.h: Distribute it. Harlan Stenn.
ChangeSet@1.3513.1.1, 2015-07-04 23:32:08+02:00, viperus@ubuntu.(none)
timevalops.c:
added timevaltoa() and fixed the printfs
timespecops.c:
added timespectoa() and fixed the printfs
tests/libntp/run-timespecops.c@1.6 +28 -28
tests/libntp/run-timevalops.c@1.8 +28 -28
tests/libntp/timespecops.c@1.6 +58 -1
added timespectoa() and fixed the printfs
tests/libntp/timevalops.c@1.9 +53 -1
added timevaltoa() and fixed the printfs
ChangeSet@1.3520, 2015-07-04 14:10:34+00:00, tflendrich@psp-deb1.ntp.org
ChangeLog:
updated my changes
ChangeLog@1.1698 +1 -0
updated my changs
ChangeSet@1.3519, 2015-07-04 15:41:50+02:00, tomek@tomek-n56vz.(none)
ChangeLog:
updated to match my changes
ChangeLog@1.1697 +3 -3
updated to match my changes
ChangeSet@1.3518, 2015-07-04 15:39:51+02:00, tomek@tomek-n56vz.(none)
humandate.c:
reordered code so that it is C90-compilant, renamed variables so that they are different that function names, fixed formatting to match NTP's convention
hextolfp.c:
removed a trailing endline, changed formatting to match NTP's convention,
decodenetnum.c:
changed the order of imports, removed an unnecessary import, removed a trailing space, changed the return type from a function to be in a new line
run-humandate.c, run-hextolfp.c, run-decodenetnum.c:
autogenerated
tests/libntp/decodenetnum.c@1.3 +16 -11
changed the order of imports, removed an unnecessary import, removed a trailing space, changed the return type from a function to be in a new line
tests/libntp/hextolfp.c@1.5 +12 -7
removed a trailing endline, changed formatting to match NTP's convention,
tests/libntp/humandate.c@1.4 +11 -9
reordered code so that it is C90-compilant, renamed variables so that they are different that function names, fixed formatting to match NTP's convention
tests/libntp/run-decodenetnum.c@1.4 +5 -5
autogenerated
tests/libntp/run-hextolfp.c@1.5 +6 -6
autogenerated
tests/libntp/run-humandate.c@1.3 +3 -2
autogenerated
ChangeSet@1.3517, 2015-07-04 12:38:08+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
adding a forgotten header, so that "make distcheck" works
sntp/unity/Makefile.am@1.7 +1 -0
adding a forgotten header, so that "make distcheck" works
ChangeSet@1.3516, 2015-07-04 11:55:26+00:00, tflendrich@psp-deb1.ntp.org
ChangeLog:
updated with my changes
ChangeLog@1.1696 +4 -0
updated with my changes
ChangeSet@1.3499.1.1, 2015-07-04 13:39:28+02:00, tomek@tomek-n56vz.(none)
buftvtots.c:
fix formatting, declarations before code (C90)
authkeys.c:
fixed formatting, removed unnecessary comment
calendar.c:
further cleanup: deleted unnecessary comments, made first declaration, then code
clocktime.c:
removed comments, fixed formatting
a_md5encrypt.c:
fix formatting, add (void) as argument to a function etc
caltontp.c:
fixed the order of #includes
run-buftvtots.c, run-a_md5encrypt.c:
adding autogenerated file
calendar.c:
deleted comments, fixed formatting, used snprintf instead of sprintf, change variable names to be meaningful,
caljulian.c:
changed sprintf to snprintf, fixed formatting etc
a_md5encrypt.c:
changed to first declaration, then code (C90 compatibility)
Many files:
autogenerated
authkeys.c:
further changes of formatting
tests/libntp/a_md5encrypt.c@1.9 +8 -3
changed to first declaration, then code (C90 compatibility)
tests/libntp/a_md5encrypt.c@1.8 +17 -21
fix formatting, add (void) as argument to a function etc
tests/libntp/authkeys.c@1.8 +20 -10
further changes of formatting
tests/libntp/authkeys.c@1.7 +5 -11
fixed formatting, removed unnecessary comment
tests/libntp/buftvtots.c@1.2 +10 -7
fix formatting, declarations before code (C90)
tests/libntp/calendar.c@1.4 +12 -7
further cleanup: deleted unnecessary comments, made first declaration, then code
tests/libntp/calendar.c@1.3 +121 -114
deleted comments, fixed formatting, used snprintf instead of sprintf, change variable names to be meaningful,
tests/libntp/caljulian.c@1.7 +41 -39
changed sprintf to snprintf, fixed formatting etc
tests/libntp/caltontp.c@1.2 +1 -1
fixed the order of #includes
tests/libntp/clocktime.c@1.4 +24 -15
removed comments, fixed formatting
tests/libntp/run-a_md5encrypt.c@1.11 +4 -4
adding autogenerated file
tests/libntp/run-a_md5encrypt.c@1.10 +10 -10
adding autogenerated file
tests/libntp/run-authkeys.c@1.8 +6 -5
autogenerated
tests/libntp/run-buftvtots.c@1.2 +9 -8
adding autogenerated file
tests/libntp/run-calendar.c@1.5 +10 -10
autogenerated
tests/libntp/run-calendar.c@1.4 +22 -21
autogenerated
tests/libntp/run-caljulian.c@1.9 +7 -7
autogenerated
tests/libntp/run-caltontp.c@1.2 +1 -0
autogenerated
tests/libntp/run-clocktime.c@1.5 +17 -16
autogenerated
ChangeSet@1.3514, 2015-07-04 10:24:57+00:00, viperus@psp-at1.ntp.org
cleanup
ChangeLog@1.1695 +2 -3
cleanup
ChangeSet@1.3512, 2015-07-04 12:19:42+02:00, viperus@ubuntu.(none)
fixes to unsigned printing in timespecops.c and timevalops.c
tests/libntp/timespecops.c@1.5 +1 -1
tests/libntp/timevalops.c@1.8 +1 -1
ChangeSet@1.3511, 2015-07-04 12:15:31+02:00, viperus@ubuntu.(none)
ChangeLog:
added my changes
timespecops.c:
many fixes, better printfs etc.
minor fixes to printf, formatting, etc.
timevalops.c:
minor fixes to printf, formatting, etc.
ChangeLog@1.1692.1.1 +3 -0
added my changes
tests/libntp/run-timespecops.c@1.5 +28 -28
tests/libntp/run-timevalops.c@1.7 +28 -28
tests/libntp/timespecops.c@1.4 +7 -13
many fixes, better printfs etc.
minor fixes to printf, formatting, etc.
tests/libntp/timevalops.c@1.7 +5 -9
minor fixes to printf, formatting, etc.
ChangeSet@1.3509.1.1, 2015-07-04 09:34:18+00:00, stenn@psp-at1.ntp.org
[Bug 2866] segmentation fault at initgroups(). Harlan Stenn.
ChangeLog@1.1693 +1 -0
[Bug 2866] segmentation fault at initgroups(). Harlan Stenn.
ntpd/ntpd.c@1.160 +11 -4
[Bug 2866] segmentation fault at initgroups(). Harlan Stenn.
ChangeSet@1.3510, 2015-07-04 11:27:04+02:00, viperus@ubuntu.(none)
sockaddrtest.h:
fully converted some tricky cout to printf (af_inet, sockaddr etc.)
tests/libntp/sockaddrtest.h@1.4 +3 -7
fully converted some tricky cout to printf (af_inet, sockaddr etc.)
ChangeSet@1.3505.1.3, 2015-07-04 09:19:48+00:00, stenn@psp-at1.ntp.org
sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris. Harlan Stenn.
ChangeLog@1.1690.1.2 +1 -0
sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris. Harlan Stenn.
sntp/unity/unity_internals.h@1.4 +6 -6
sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris. Harlan Stenn.
ChangeSet@1.3505.1.2, 2015-07-04 09:16:51+00:00, stenn@psp-at1.ntp.org
sntp/unity/unity_config.h: handle stdint.h. Harlan Stenn.
ChangeLog@1.1690.1.1 +1 -0
sntp/unity/unity_config.h: handle stdint.h. Harlan Stenn.
sntp/unity/unity_config.h@1.2 +4 -0
sntp/unity/unity_config.h: handle stdint.h. Harlan Stenn.
ChangeSet@1.3508, 2015-07-04 09:11:47+00:00, stenn@psp-at1.ntp.org
tests/{libntp,ntpd} function parameter cleanup from Damir
ChangeLog@1.1691 +2 -0
tests/{libntp,ntpd} function parameter cleanup from Damir
ChangeSet@1.3505.1.1, 2015-07-04 08:56:15+00:00, stenn@psp-at1.ntp.org
Update sntp/tests/run-crypto.c
sntp/tests/run-crypto.c@1.2 +6 -6
Update sntp/tests/run-crypto.c
ChangeSet@1.3504.1.2, 2015-07-04 10:38:08+02:00, viperus@ubuntu.(none)
minor fixes, adding void, cleanup...
tests/libntp/a_md5encrypt.c@1.7.1.1 +5 -5
tests/libntp/atouint.c@1.4 +5 -5
tests/libntp/authkeys.c@1.6.1.1 +6 -6
tests/libntp/buftvtots.c@1.1.1.1 +4 -4
tests/libntp/calendar.c@1.2.1.1 +27 -32
tests/libntp/caljulian.c@1.6.1.1 +6 -8
tests/libntp/calyearstart.c@1.3 +6 -6
tests/libntp/clocktime.c@1.3.1.1 +10 -10
tests/libntp/lfpfunc.c@1.8 +9 -10
tests/libntp/lfptest.h@1.4 +2 -0
tests/libntp/msyslog.c@1.4 +0 -1
tests/libntp/refnumtoa.c@1.3 +2 -2
tests/libntp/run-a_md5encrypt.c@1.9.1.1 +5 -5
tests/libntp/run-atouint.c@1.7 +6 -5
tests/libntp/run-authkeys.c@1.7.1.1 +7 -6
tests/libntp/run-buftvtots.c@1.1.1.1 +5 -4
tests/libntp/run-calendar.c@1.3.1.1 +23 -22
tests/libntp/run-caljulian.c@1.8.1.1 +8 -8
tests/libntp/run-calyearstart.c@1.4 +4 -3
tests/libntp/run-clocktime.c@1.4.1.1 +9 -8
tests/libntp/run-lfpfunc.c@1.11 +17 -17
tests/libntp/run-msyslog.c@1.4 +8 -8
tests/libntp/run-refidsmear.c@1.3 +1 -1
tests/libntp/run-refnumtoa.c@1.4 +3 -2
tests/libntp/run-ssl_init.c@1.5 +6 -5
tests/libntp/run-timespecops.c@1.4 +29 -28
tests/libntp/run-timevalops.c@1.6 +29 -28
tests/libntp/run-vi64ops.c@1.4 +6 -6
tests/libntp/ssl_init.c@1.6 +5 -5
tests/libntp/timespecops.c@1.3 +28 -28
tests/libntp/timevalops.c@1.6 +37 -37
tests/libntp/vi64ops.c@1.3 +10 -11
ChangeSet@1.3504.1.1, 2015-07-04 10:08:41+02:00, viperus@ubuntu.(none)
minor warning fixes, adding voids etc.
tests/ntpd/leapsec.c@1.3 +40 -45
tests/ntpd/run-leapsec.c@1.3 +66 -66
ChangeSet@1.3505, 2015-07-04 08:08:23+00:00, stenn@psp-at1.ntp.org
sntp/tests/ function parameter list cleanup. Damir Tomi\xc4\x87.
ChangeLog@1.1690 +1 -0
sntp/tests/ function parameter list cleanup. Damir Tomi\xc4\x87.
ChangeSet@1.3504, 2015-07-04 09:49:26+02:00, viperus@ubuntu.(none)
minor warning fixes like adding void etc.
sntp/tests/crypto.c@1.6 +1 -0
sntp/tests/keyFile.c@1.4 +5 -5
sntp/tests/kodDatabase.c@1.3 +5 -5
sntp/tests/kodFile.c@1.6 +8 -8
sntp/tests/packetProcessing.c@1.5 +2 -2
sntp/tests/run-keyFile.c@1.5 +6 -5
sntp/tests/run-kodDatabase.c@1.2 +6 -5
sntp/tests/run-kodFile.c@1.3 +7 -6
sntp/tests/run-utilities.c@1.2 +14 -14
sntp/tests/sntptest.h@1.4 +6 -3
sntp/tests/utilities.c@1.2 +7 -9
ChangeSet@1.3503, 2015-07-04 07:25:15+00:00, stenn@psp-at1.ntp.org
top_srcdir can change based on ntp v. sntp. Harlan Stenn.
ChangeLog@1.1689 +1 -0
top_srcdir can change based on ntp v. sntp. Harlan Stenn.
sntp/tests/Makefile.am@1.58 +1 -1
top_srcdir can change based on ntp v. sntp. Harlan Stenn.
ChangeSet@1.3502, 2015-07-04 00:44:41-04:00, stenn@deacon.udel.edu
On some versions of HP-UX, inttypes.h does not include stdint.h. H.Stenn.
ChangeLog@1.1688 +1 -0
On some versions of HP-UX, inttypes.h does not include stdint.h. H.Stenn.
include/ntp_types.h@1.35 +2 -1
On some versions of HP-UX, inttypes.h does not include stdint.h. H.Stenn.
ChangeSet@1.3501, 2015-07-04 03:49:10+00:00, stenn@psp-at1.ntp.org
Phase 1 deprecation of google test in sntp/tests/. Harlan Stenn.
ChangeLog@1.1687 +1 -0
Phase 1 deprecation of google test in sntp/tests/. Harlan Stenn.
sntp/tests/Makefile.am@1.57 +20 -97
Phase 1 deprecation of google test in sntp/tests/. Harlan Stenn.
ChangeSet@1.3500, 2015-07-03 20:30:06+00:00, stenn@psp-fb1.ntp.org
tests/ntpd/g_leapsec.cpp typo fix. Harlan Stenn.
ChangeLog@1.1686 +1 -0
tests/ntpd/g_leapsec.cpp typo fix. Harlan Stenn.
tests/ntpd/g_leapsec.cpp@1.16 +1 -1
tests/ntpd/g_leapsec.cpp typo fix. Harlan Stenn.
ChangeSet@1.3498, 2015-07-03 19:27:53+00:00, stenn@psp-at1.ntp.org
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
ChangeLog@1.1685 +1 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
sntp/tests/Makefile.am@1.56 +4 -2
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
sntp/unity/Makefile.am@1.6 +1 -1
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
sntp/unity/unity_config.h@1.1 +8 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_config.h
sntp/unity/unity_config.h@1.0 +0 -0
tests/bug-2803/Makefile.am@1.13 +2 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
tests/libntp/Makefile.am@1.83.1.1 +2 -4
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
tests/ntpd/Makefile.am@1.1.1.1 +2 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
tests/sandbox/Makefile.am@1.5 +2 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
tests/sandbox/smeartest.c@1.3.1.3 +12 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
tests/sec-2853/Makefile.am@1.3 +2 -0
Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
ChangeSet@1.3497, 2015-07-03 09:30:02+00:00, stenn@psp-at1.ntp.org
libntp/emalloc.c: Remove explicit include of stdint.h. Harlan Stenn.
ChangeLog@1.1684 +1 -0
libntp/emalloc.c: Remove explicit include of stdint.h. Harlan Stenn.
libntp/emalloc.c@1.19 +0 -2
libntp/emalloc.c: Remove explicit include of stdint.h. Harlan Stenn.
ChangeSet@1.3492.1.3, 2015-07-02 09:34:06+00:00, stenn@psp-at1.ntp.org
Fix ChangeLog
ChangeLog@1.1680.1.2 +3 -1
Fix ChangeLog
ChangeSet@1.3495, 2015-07-02 09:32:14+00:00, stenn@psp-at1.ntp.org
Fix ChangeLog
ChangeLog@1.1682 +3 -1
Fix ChangeLog
ChangeSet@1.3473.1.23, 2015-07-01 10:06:49+02:00, viperus@ubuntu.(none)
leapsec.c:
added include to fix everything, yey!
Makefile.am:
changed the order of libntp.a and libntpd.a, stuff builds now
tests/ntpd/Makefile.am@1.3 +11 -9
changed the order of libntp.a and libntpd.a, stuff builds now
tests/ntpd/leapsec.c@1.2 +8 -4
added include to fix everything, yey!
tests/ntpd/run-leapsec.c@1.2 +33 -33
ChangeSet@1.3473.1.22, 2015-07-01 09:31:35+02:00, viperus@ubuntu.(none)
g_leapsec.cpp:
Rename: tests/ntpd/leapsec.cpp -> tests/ntpd/g_leapsec.cpp
run-leapsec.c, leapsec.c:
new file
Makefile.am:
added /tests/ntpd/ dir
unity tests
removed a comment line
g_ntpdtest.h:
Rename: tests/ntpd/ntpdtest.h -> tests/ntpd/g_ntpdtest.h
Makefile.am:
added support for unity tests
test-libntp.h:
added new headers
g_ntpdtest.cpp:
minor change in the header name
Rename: tests/ntpd/ntpdtest.cpp -> tests/ntpd/g_ntpdtest.cpp
tests/Makefile.am@1.9.1.1 +6 -5
added /tests/ntpd/ dir
unity tests
tests/libntp/Makefile.am@1.84 +0 -1
removed a comment line
tests/libntp/test-libntp.h@1.7 +5 -0
added new headers
tests/ntpd/Makefile.am@1.2 +62 -6
added support for unity tests
tests/ntpd/g_leapsec.cpp@1.15 +0 -0
Rename: tests/ntpd/leapsec.cpp -> tests/ntpd/g_leapsec.cpp
tests/ntpd/g_ntpdtest.cpp@1.3 +1 -1
minor change in the header name
tests/ntpd/g_ntpdtest.cpp@1.2 +0 -0
Rename: tests/ntpd/ntpdtest.cpp -> tests/ntpd/g_ntpdtest.cpp
tests/ntpd/g_ntpdtest.h@1.2 +0 -0
Rename: tests/ntpd/ntpdtest.h -> tests/ntpd/g_ntpdtest.h
tests/ntpd/leapsec.c@1.1 +1230 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/ntpd/leapsec.c
tests/ntpd/leapsec.c@1.0 +0 -0
tests/ntpd/run-leapsec.c@1.1 +116 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/ntpd/run-leapsec.c
tests/ntpd/run-leapsec.c@1.0 +0 -0
ChangeSet@1.3492.2.1, 2015-07-01 03:11:28-04:00, stenn@deacon.udel.edu
Update the repo's description and contact email
BitKeeper/etc/config@1.11 +2 -2
Update the repo's description and contact email
ChangeSet@1.3492.1.1, 2015-07-01 08:53:24+02:00, jnperlin@hydra.(none)
[Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'
ChangeLog@1.1680.1.1 +1 -0
[Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'
ntpd/ntp_control.c@1.201 +5 -2
[Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'
make sure 'ctl_var' table matches indices (CS_LEAPSMEAR* is unconditionally defined and affects AUTOKEY vars)
ChangeSet@1.3493, 2015-07-01 08:40:44+02:00, jnperlin@nemesis.localnet
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fixed project files. (tested with VS2008 and VS2013)
ChangeLog@1.1681 +1 -0
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fix project files. (tested with VS2008 and VS2013)
ports/winnt/vs2005/ntpd.vcproj@1.20 +22 -0
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fixed project files. (UNTESTED!)
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.49 +4 -0
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fixed project files. (tested)
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.7 +1 -0
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fixed project files. (tested)
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.5 +3 -0
[Bug 2864] 4.2.8p3 fails to compile on Windows.
fixed project files. (tested)
ChangeSet@1.3492, 2015-06-29 16:52:34-04:00, stenn@deacon.udel.edu
Makefile.in should not be checked in
BitKeeper/deleted/bd/Makefile.in~a06c74c485656b20@1.3 +0 -0
Delete: tests/sec-2853/Makefile.in
ChangeSet@1.3491, 2015-06-29 16:34:44-04:00, stenn@deacon.udel.edu
NTP_4_2_8P3
TAG: NTP_4_2_8P3
ChangeLog@1.1680 +1 -0
NTP_4_2_8P3
ntpd/invoke-ntp.conf.texi@1.188 +1 -1
NTP_4_2_8P3
ntpd/invoke-ntp.keys.texi@1.182 +1 -1
NTP_4_2_8P3
ntpd/invoke-ntpd.texi@1.499 +2 -2
NTP_4_2_8P3
ntpd/ntp.conf.5man@1.222 +3 -3
NTP_4_2_8P3
ntpd/ntp.conf.5mdoc@1.222 +1 -1
NTP_4_2_8P3
ntpd/ntp.conf.html@1.177 +15 -1
NTP_4_2_8P3
ntpd/ntp.conf.man.in@1.222 +3 -3
NTP_4_2_8P3
ntpd/ntp.conf.mdoc.in@1.222 +1 -1
NTP_4_2_8P3
ntpd/ntp.keys.5man@1.216 +2 -2
NTP_4_2_8P3
ntpd/ntp.keys.5mdoc@1.216 +2 -2
NTP_4_2_8P3
ntpd/ntp.keys.html@1.178 +1 -1
NTP_4_2_8P3
ntpd/ntp.keys.man.in@1.216 +2 -2
NTP_4_2_8P3
ntpd/ntp.keys.mdoc.in@1.216 +2 -2
NTP_4_2_8P3
ntpd/ntpd-opts.c@1.521 +245 -245
NTP_4_2_8P3
ntpd/ntpd-opts.h@1.520 +3 -3
NTP_4_2_8P3
ntpd/ntpd.1ntpdman@1.328 +3 -3
NTP_4_2_8P3
ntpd/ntpd.1ntpdmdoc@1.328 +2 -2
NTP_4_2_8P3
ntpd/ntpd.html@1.172 +2 -2
NTP_4_2_8P3
ntpd/ntpd.man.in@1.328 +3 -3
NTP_4_2_8P3
ntpd/ntpd.mdoc.in@1.328 +2 -2
NTP_4_2_8P3
ntpdc/invoke-ntpdc.texi@1.496 +2 -2
NTP_4_2_8P3
ntpdc/ntpdc-opts.c@1.514 +107 -107
NTP_4_2_8P3
ntpdc/ntpdc-opts.h@1.513 +3 -3
NTP_4_2_8P3
ntpdc/ntpdc.1ntpdcman@1.327 +3 -3
NTP_4_2_8P3
ntpdc/ntpdc.1ntpdcmdoc@1.327 +2 -2
NTP_4_2_8P3
ntpdc/ntpdc.html@1.340 +2 -2
NTP_4_2_8P3
ntpdc/ntpdc.man.in@1.327 +3 -3
NTP_4_2_8P3
ntpdc/ntpdc.mdoc.in@1.327 +2 -2
NTP_4_2_8P3
ntpq/invoke-ntpq.texi@1.503 +2 -2
NTP_4_2_8P3
ntpq/ntpq-opts.c@1.520 +106 -106
NTP_4_2_8P3
ntpq/ntpq-opts.h@1.518 +3 -3
NTP_4_2_8P3
ntpq/ntpq.1ntpqman@1.331 +3 -3
NTP_4_2_8P3
ntpq/ntpq.1ntpqmdoc@1.331 +2 -2
NTP_4_2_8P3
ntpq/ntpq.html@1.169 +2 -2
NTP_4_2_8P3
ntpq/ntpq.man.in@1.331 +3 -3
NTP_4_2_8P3
ntpq/ntpq.mdoc.in@1.331 +2 -2
NTP_4_2_8P3
ntpsnmpd/invoke-ntpsnmpd.texi@1.498 +2 -2
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd-opts.c@1.516 +68 -68
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd-opts.h@1.515 +3 -3
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.327 +3 -3
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.327 +2 -2
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd.html@1.167 +1 -1
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd.man.in@1.327 +3 -3
NTP_4_2_8P3
ntpsnmpd/ntpsnmpd.mdoc.in@1.327 +2 -2
NTP_4_2_8P3
packageinfo.sh@1.515 +2 -2
NTP_4_2_8P3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.88 +3 -3
NTP_4_2_8P3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.89 +2 -2
NTP_4_2_8P3
scripts/calc_tickadj/calc_tickadj.html@1.90 +1 -1
NTP_4_2_8P3
scripts/calc_tickadj/calc_tickadj.man.in@1.87 +3 -3
NTP_4_2_8P3
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.89 +2 -2
NTP_4_2_8P3
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.92 +1 -1
NTP_4_2_8P3
scripts/invoke-plot_summary.texi@1.109 +2 -2
NTP_4_2_8P3
scripts/invoke-summary.texi@1.109 +2 -2
NTP_4_2_8P3
scripts/ntp-wait/invoke-ntp-wait.texi@1.319 +2 -2
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait-opts@1.55 +2 -2
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.316 +3 -3
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.317 +2 -2
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait.html@1.336 +2 -2
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait.man.in@1.316 +3 -3
NTP_4_2_8P3
scripts/ntp-wait/ntp-wait.mdoc.in@1.317 +2 -2
NTP_4_2_8P3
scripts/ntpsweep/invoke-ntpsweep.texi@1.107 +2 -2
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep-opts@1.57 +2 -2
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.95 +3 -3
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.95 +2 -2
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep.html@1.108 +2 -2
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep.man.in@1.95 +3 -3
NTP_4_2_8P3
scripts/ntpsweep/ntpsweep.mdoc.in@1.96 +2 -2
NTP_4_2_8P3
scripts/ntptrace/invoke-ntptrace.texi@1.108 +2 -2
NTP_4_2_8P3
scripts/ntptrace/ntptrace-opts@1.57 +2 -2
NTP_4_2_8P3
scripts/ntptrace/ntptrace.1ntptraceman@1.95 +3 -3
NTP_4_2_8P3
scripts/ntptrace/ntptrace.1ntptracemdoc@1.96 +2 -2
NTP_4_2_8P3
scripts/ntptrace/ntptrace.html@1.109 +2 -2
NTP_4_2_8P3
scripts/ntptrace/ntptrace.man.in@1.95 +3 -3
NTP_4_2_8P3
scripts/ntptrace/ntptrace.mdoc.in@1.97 +2 -2
NTP_4_2_8P3
scripts/plot_summary-opts@1.57 +2 -2
NTP_4_2_8P3
scripts/plot_summary.1plot_summaryman@1.107 +3 -3
NTP_4_2_8P3
scripts/plot_summary.1plot_summarymdoc@1.107 +2 -2
NTP_4_2_8P3
scripts/plot_summary.html@1.110 +2 -2
NTP_4_2_8P3
scripts/plot_summary.man.in@1.107 +3 -3
NTP_4_2_8P3
scripts/plot_summary.mdoc.in@1.107 +2 -2
NTP_4_2_8P3
scripts/summary-opts@1.57 +2 -2
NTP_4_2_8P3
scripts/summary.1summaryman@1.107 +3 -3
NTP_4_2_8P3
scripts/summary.1summarymdoc@1.107 +2 -2
NTP_4_2_8P3
scripts/summary.html@1.110 +2 -2
NTP_4_2_8P3
scripts/summary.man.in@1.107 +3 -3
NTP_4_2_8P3
scripts/summary.mdoc.in@1.107 +2 -2
NTP_4_2_8P3
scripts/update-leap/invoke-update-leap.texi@1.8 +1 -1
NTP_4_2_8P3
scripts/update-leap/update-leap-opts@1.8 +2 -2
NTP_4_2_8P3
scripts/update-leap/update-leap.1update-leapman@1.8 +3 -3
NTP_4_2_8P3
scripts/update-leap/update-leap.1update-leapmdoc@1.8 +2 -2
NTP_4_2_8P3
scripts/update-leap/update-leap.html@1.8 +1 -1
NTP_4_2_8P3
scripts/update-leap/update-leap.man.in@1.8 +3 -3
NTP_4_2_8P3
scripts/update-leap/update-leap.mdoc.in@1.8 +2 -2
NTP_4_2_8P3
sntp/invoke-sntp.texi@1.496 +2 -2
NTP_4_2_8P3
sntp/sntp-opts.c@1.515 +159 -159
NTP_4_2_8P3
sntp/sntp-opts.h@1.513 +3 -3
NTP_4_2_8P3
sntp/sntp.1sntpman@1.331 +3 -3
NTP_4_2_8P3
sntp/sntp.1sntpmdoc@1.331 +2 -2
NTP_4_2_8P3
sntp/sntp.html@1.511 +2 -2
NTP_4_2_8P3
sntp/sntp.man.in@1.331 +3 -3
NTP_4_2_8P3
sntp/sntp.mdoc.in@1.331 +2 -2
NTP_4_2_8P3
util/invoke-ntp-keygen.texi@1.499 +2 -2
NTP_4_2_8P3
util/ntp-keygen-opts.c@1.517 +173 -173
NTP_4_2_8P3
util/ntp-keygen-opts.h@1.515 +3 -3
NTP_4_2_8P3
util/ntp-keygen.1ntp-keygenman@1.327 +3 -3
NTP_4_2_8P3
util/ntp-keygen.1ntp-keygenmdoc@1.327 +2 -2
NTP_4_2_8P3
util/ntp-keygen.html@1.173 +2 -2
NTP_4_2_8P3
util/ntp-keygen.man.in@1.327 +3 -3
NTP_4_2_8P3
util/ntp-keygen.mdoc.in@1.327 +2 -2
NTP_4_2_8P3
ChangeSet@1.3490, 2015-06-29 16:11:13-04:00, stenn@deacon.udel.edu
Release ntp-4.2.8p3
packageinfo.sh@1.514 +1 -1
Release ntp-4.2.8p3
ChangeSet@1.3489, 2015-06-29 19:33:22+00:00, stenn@psp-at1.ntp.org
NEWS file update for bug 2853
NEWS@1.144 +18 -3
NEWS file update for bug 2853
ChangeSet@1.3473.1.21, 2015-06-29 20:33:15+02:00, viperus@ubuntu.(none)
a_md5encrypt.c:
minor change to memory compare, suggested by Tomasz
tests/libntp/a_md5encrypt.c@1.7 +2 -1
minor change to memory compare, suggested by Tomasz
tests/libntp/run-a_md5encrypt.c@1.9 +5 -4
ChangeSet@1.3473.3.23, 2015-06-29 06:00:52+00:00, stenn@psp-at1.ntp.org
html/miscopt.html: Document leapsmearinterval, other cleanup. Harlan Stenn.
ChangeLog@1.1666.1.19 +1 -0
html/miscopt.html: Document leapsmearinterval, other cleanup. Harlan Stenn.
html/miscopt.html@1.82 +18 -15
html/miscopt.html: Document leapsmearinterval, other cleanup. Harlan Stenn.
ChangeSet@1.3473.3.22, 2015-06-29 05:28:47+00:00, stenn@psp-at1.ntp.org
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ChangeLog@1.1666.1.18 +1 -0
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/invoke-ntp.conf.texi@1.187 +17 -1
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/ntp.conf.5man@1.221 +21 -3
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/ntp.conf.5mdoc@1.221 +18 -2
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/ntp.conf.def@1.17 +16 -0
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/ntp.conf.man.in@1.221 +21 -3
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ntpd/ntp.conf.mdoc.in@1.221 +18 -2
ntpd/ntp.conf.def: Document DSCP and leapsmearinterval. Harlan Stenn.
ChangeSet@1.3486, 2015-06-29 03:39:39+00:00, stenn@psp-at1.ntp.org
Updated entry for Sec 2853
ChangeLog@1.1677 +2 -1
Updated entry for Sec 2853
ChangeSet@1.3473.4.2, 2015-06-29 04:57:16+02:00, tomek@tomek-n56vz.(none)
ChangeLog:
moved a change to the proper place
ChangeLog@1.1666.2.2 +1 -1
moved a change to the proper place
ChangeSet@1.3473.4.1, 2015-06-29 04:50:55+02:00, tomek@tomek-n56vz.(none)
ChangeLog:
updated my changes
msyslog.c:
fixed a gcc warning
run-msyslog.c:
checking in the autogenerated file
ChangeLog@1.1666.2.1 +4 -0
updated my changes
tests/libntp/msyslog.c@1.3 +2 -2
fixed a gcc warning
tests/libntp/run-msyslog.c@1.3 +1 -0
checking in the autogenerated file
ChangeSet@1.3473.3.20, 2015-06-29 01:16:44+00:00, stenn@psp-at1.ntp.org
[Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
ChangeLog@1.1666.1.16 +1 -0
[Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
NEWS@1.143 +1 -0
[Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
ntpq/ntpq-subs.c@1.109 +1 -1
[Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
ChangeSet@1.3473.3.19, 2015-06-29 01:13:38+00:00, stenn@psp-at1.ntp.org
Update the NEWS file with info about README.leapsmear
NEWS@1.142 +2 -1
Update the NEWS file with info about README.leapsmear
ChangeSet@1.3473.3.18, 2015-06-29 00:10:53+00:00, stenn@psp-at1.ntp.org
README.leapsmear edited. Harlan Stenn.
ChangeLog@1.1666.1.15 +1 -0
README.leapsmear edited. Harlan Stenn.
README.leapsmear@1.2 +240 -75
README.leapsmear edited. Harlan Stenn.
ChangeSet@1.3473.3.17, 2015-06-28 21:20:27+00:00, stenn@psp-at1.ntp.org
README.leapsmear added. Martin Burnicki.
ChangeLog@1.1666.1.14 +1 -0
README.leapsmear added. Martin Burnicki.
Makefile.am@1.132 +1 -0
README.leapsmear added. Martin Burnicki.
README.leapsmear@1.1 +107 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable/README.leapsmear
README.leapsmear@1.0 +0 -0
ChangeSet@1.3473.3.16, 2015-06-27 23:05:51-04:00, stenn@deacon.udel.edu
[Bug 2846] Report 'unsynchronized' status during the leap second. Fixed in Martin's changes to Bug 2855. Martin Burnicki.
ChangeLog@1.1666.1.13 +2 -0
[Bug 2846] Report 'unsynchronized' status during the leap second. Fixed in Martin's changes to Bug 2855. Martin Burnicki.
ChangeSet@1.3473.3.15, 2015-06-27 21:34:55+00:00, stenn@psp-at1.ntp.org
NEWS file update
NEWS@1.141 +12 -0
NEWS file update
ChangeSet@1.3473.3.14, 2015-06-27 19:25:39+00:00, stenn@psp-at1.ntp.org
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
ChangeLog@1.1666.1.12 +4 -0
[Bug 1060] Buffer overruns in libparse/clk_rawdcf.c. Helge Oldach.
include/parse.h@1.13 +3 -3
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
libparse/clk_meinberg.c@1.15 +2 -2
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
libparse/clk_rawdcf.c@1.22 +100 -12
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
libparse/clk_schmid.c@1.14 +2 -2
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
ntpd/refclock_parse.c@1.80 +4 -4
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
parseutil/dcfd.c@1.29 +1 -1
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
parseutil/testdcf.c@1.11 +1 -1
[Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
ChangeSet@1.3473.3.13, 2015-06-27 05:21:56-04:00, stenn@deacon.udel.edu
NTP_4_2_8P3_RC3
TAG: NTP_4_2_8P3_RC3
ChangeLog@1.1666.1.11 +1 -0
NTP_4_2_8P3_RC3
ntpd/invoke-ntp.conf.texi@1.186 +1 -1
NTP_4_2_8P3_RC3
ntpd/invoke-ntp.keys.texi@1.181 +1 -1
NTP_4_2_8P3_RC3
ntpd/invoke-ntpd.texi@1.498 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.conf.5man@1.220 +3 -3
NTP_4_2_8P3_RC3
ntpd/ntp.conf.5mdoc@1.220 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.conf.html@1.176 +1 -1
NTP_4_2_8P3_RC3
ntpd/ntp.conf.man.in@1.220 +3 -3
NTP_4_2_8P3_RC3
ntpd/ntp.conf.mdoc.in@1.220 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.keys.5man@1.215 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.keys.5mdoc@1.215 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.keys.html@1.177 +1 -1
NTP_4_2_8P3_RC3
ntpd/ntp.keys.man.in@1.215 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntp.keys.mdoc.in@1.215 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntpd-opts.c@1.520 +7 -7
NTP_4_2_8P3_RC3
ntpd/ntpd-opts.h@1.519 +3 -3
NTP_4_2_8P3_RC3
ntpd/ntpd.1ntpdman@1.327 +3 -3
NTP_4_2_8P3_RC3
ntpd/ntpd.1ntpdmdoc@1.327 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntpd.html@1.171 +2 -2
NTP_4_2_8P3_RC3
ntpd/ntpd.man.in@1.327 +3 -3
NTP_4_2_8P3_RC3
ntpd/ntpd.mdoc.in@1.327 +2 -2
NTP_4_2_8P3_RC3
ntpdc/invoke-ntpdc.texi@1.495 +2 -2
NTP_4_2_8P3_RC3
ntpdc/ntpdc-opts.c@1.513 +7 -7
NTP_4_2_8P3_RC3
ntpdc/ntpdc-opts.h@1.512 +3 -3
NTP_4_2_8P3_RC3
ntpdc/ntpdc.1ntpdcman@1.326 +3 -3
NTP_4_2_8P3_RC3
ntpdc/ntpdc.1ntpdcmdoc@1.326 +2 -2
NTP_4_2_8P3_RC3
ntpdc/ntpdc.html@1.339 +2 -2
NTP_4_2_8P3_RC3
ntpdc/ntpdc.man.in@1.326 +3 -3
NTP_4_2_8P3_RC3
ntpdc/ntpdc.mdoc.in@1.326 +2 -2
NTP_4_2_8P3_RC3
ntpq/invoke-ntpq.texi@1.502 +2 -2
NTP_4_2_8P3_RC3
ntpq/ntpq-opts.c@1.519 +7 -7
NTP_4_2_8P3_RC3
ntpq/ntpq-opts.h@1.517 +3 -3
NTP_4_2_8P3_RC3
ntpq/ntpq.1ntpqman@1.330 +3 -3
NTP_4_2_8P3_RC3
ntpq/ntpq.1ntpqmdoc@1.330 +2 -2
NTP_4_2_8P3_RC3
ntpq/ntpq.html@1.168 +2 -2
NTP_4_2_8P3_RC3
ntpq/ntpq.man.in@1.330 +3 -3
NTP_4_2_8P3_RC3
ntpq/ntpq.mdoc.in@1.330 +2 -2
NTP_4_2_8P3_RC3
ntpsnmpd/invoke-ntpsnmpd.texi@1.497 +2 -2
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd-opts.c@1.515 +7 -7
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd-opts.h@1.514 +3 -3
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.326 +3 -3
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.326 +2 -2
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd.html@1.166 +1 -1
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd.man.in@1.326 +3 -3
NTP_4_2_8P3_RC3
ntpsnmpd/ntpsnmpd.mdoc.in@1.326 +2 -2
NTP_4_2_8P3_RC3
packageinfo.sh@1.513 +1 -1
NTP_4_2_8P3_RC3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.87 +3 -3
NTP_4_2_8P3_RC3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.88 +2 -2
NTP_4_2_8P3_RC3
scripts/calc_tickadj/calc_tickadj.html@1.89 +1 -1
NTP_4_2_8P3_RC3
scripts/calc_tickadj/calc_tickadj.man.in@1.86 +3 -3
NTP_4_2_8P3_RC3
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.88 +2 -2
NTP_4_2_8P3_RC3
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.91 +1 -1
NTP_4_2_8P3_RC3
scripts/invoke-plot_summary.texi@1.108 +2 -2
NTP_4_2_8P3_RC3
scripts/invoke-summary.texi@1.108 +2 -2
NTP_4_2_8P3_RC3
scripts/ntp-wait/invoke-ntp-wait.texi@1.318 +2 -2
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait-opts@1.54 +2 -2
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.315 +3 -3
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.316 +2 -2
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait.html@1.335 +2 -2
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait.man.in@1.315 +3 -3
NTP_4_2_8P3_RC3
scripts/ntp-wait/ntp-wait.mdoc.in@1.316 +2 -2
NTP_4_2_8P3_RC3
scripts/ntpsweep/invoke-ntpsweep.texi@1.106 +2 -2
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep-opts@1.56 +2 -2
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.94 +3 -3
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.94 +2 -2
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep.html@1.107 +2 -2
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep.man.in@1.94 +3 -3
NTP_4_2_8P3_RC3
scripts/ntpsweep/ntpsweep.mdoc.in@1.95 +2 -2
NTP_4_2_8P3_RC3
scripts/ntptrace/invoke-ntptrace.texi@1.107 +2 -2
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace-opts@1.56 +2 -2
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace.1ntptraceman@1.94 +3 -3
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace.1ntptracemdoc@1.95 +2 -2
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace.html@1.108 +2 -2
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace.man.in@1.94 +3 -3
NTP_4_2_8P3_RC3
scripts/ntptrace/ntptrace.mdoc.in@1.96 +2 -2
NTP_4_2_8P3_RC3
scripts/plot_summary-opts@1.56 +2 -2
NTP_4_2_8P3_RC3
scripts/plot_summary.1plot_summaryman@1.106 +3 -3
NTP_4_2_8P3_RC3
scripts/plot_summary.1plot_summarymdoc@1.106 +2 -2
NTP_4_2_8P3_RC3
scripts/plot_summary.html@1.109 +2 -2
NTP_4_2_8P3_RC3
scripts/plot_summary.man.in@1.106 +3 -3
NTP_4_2_8P3_RC3
scripts/plot_summary.mdoc.in@1.106 +2 -2
NTP_4_2_8P3_RC3
scripts/summary-opts@1.56 +2 -2
NTP_4_2_8P3_RC3
scripts/summary.1summaryman@1.106 +3 -3
NTP_4_2_8P3_RC3
scripts/summary.1summarymdoc@1.106 +2 -2
NTP_4_2_8P3_RC3
scripts/summary.html@1.109 +2 -2
NTP_4_2_8P3_RC3
scripts/summary.man.in@1.106 +3 -3
NTP_4_2_8P3_RC3
scripts/summary.mdoc.in@1.106 +2 -2
NTP_4_2_8P3_RC3
scripts/update-leap/invoke-update-leap.texi@1.7 +1 -1
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap-opts@1.7 +2 -2
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap.1update-leapman@1.7 +3 -3
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap.1update-leapmdoc@1.7 +2 -2
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap.html@1.7 +51 -2
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap.man.in@1.7 +3 -3
NTP_4_2_8P3_RC3
scripts/update-leap/update-leap.mdoc.in@1.7 +2 -2
NTP_4_2_8P3_RC3
sntp/invoke-sntp.texi@1.495 +2 -2
NTP_4_2_8P3_RC3
sntp/sntp-opts.c@1.514 +7 -7
NTP_4_2_8P3_RC3
sntp/sntp-opts.h@1.512 +3 -3
NTP_4_2_8P3_RC3
sntp/sntp.1sntpman@1.330 +3 -3
NTP_4_2_8P3_RC3
sntp/sntp.1sntpmdoc@1.330 +2 -2
NTP_4_2_8P3_RC3
sntp/sntp.html@1.510 +2 -2
NTP_4_2_8P3_RC3
sntp/sntp.man.in@1.330 +3 -3
NTP_4_2_8P3_RC3
sntp/sntp.mdoc.in@1.330 +2 -2
NTP_4_2_8P3_RC3
util/invoke-ntp-keygen.texi@1.498 +2 -2
NTP_4_2_8P3_RC3
util/ntp-keygen-opts.c@1.516 +7 -7
NTP_4_2_8P3_RC3
util/ntp-keygen-opts.h@1.514 +3 -3
NTP_4_2_8P3_RC3
util/ntp-keygen.1ntp-keygenman@1.326 +3 -3
NTP_4_2_8P3_RC3
util/ntp-keygen.1ntp-keygenmdoc@1.326 +2 -2
NTP_4_2_8P3_RC3
util/ntp-keygen.html@1.172 +2 -2
NTP_4_2_8P3_RC3
util/ntp-keygen.man.in@1.326 +3 -3
NTP_4_2_8P3_RC3
util/ntp-keygen.mdoc.in@1.326 +2 -2
NTP_4_2_8P3_RC3
ChangeSet@1.3473.3.12, 2015-06-27 04:45:02-04:00, stenn@deacon.udel.edu
Update the NEWS file for 4.2.8p3-RC3
NEWS@1.140 +26 -0
Update the NEWS file for 4.2.8p3-RC3
ChangeSet@1.3473.3.11, 2015-06-27 04:20:07-04:00, stenn@deacon.udel.edu
html/drivers/driver22.html: typo fix. Harlan Stenn.
ChangeLog@1.1666.1.10 +1 -0
html/drivers/driver22.html: typo fix. Harlan Stenn.
html/drivers/driver22.html@1.23 +1 -1
html/drivers/driver22.html: typo fix. Harlan Stenn.
ChangeSet@1.3473.3.10, 2015-06-27 02:22:09-04:00, stenn@deacon.udel.edu
[Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
ChangeLog@1.1666.1.9 +1 -0
[Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
configure.ac@1.596.1.1 +9 -0
[Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
sntp/m4/ntp_libntp.m4@1.30 +9 -0
[Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
ChangeSet@1.3473.3.9, 2015-06-27 01:58:07-04:00, stenn@deacon.udel.edu
[Bug 2856] ntpd should wait() on terminated child processes. Paul Green.
ChangeLog@1.1666.1.8 +1 -0
[Bug 2856] ntpd should wait() on terminated child processes. Paul Green.
libntp/work_fork.c@1.14 +23 -4
[Bug 2856] ntpd should wait() on terminated child processes. Paul Green.
ChangeSet@1.3473.3.8, 2015-06-27 05:12:21+00:00, stenn@psp-at1.ntp.org
[Bug 2855] Report leap smear in the REFID. Harlan Stenn.
ChangeLog@1.1666.1.7 +1 -0
[Bug 2855] Report leap smear in the REFID. Harlan Stenn.
ntpd/ntp_proto.c@1.361 +8 -2
[Bug 2855] Report leap smear in the REFID. Harlan Stenn.
ChangeSet@1.3473.3.7, 2015-06-27 04:53:42+00:00, stenn@psp-at1.ntp.org
refidsmear test cleanup. Tomasz Flendrich.
ChangeLog@1.1666.1.6 +1 -0
refidsmear test cleanup. Tomasz Flendrich.
tests/libntp/refidsmear.c@1.4 +4 -5
refidsmear test cleanup. Tomasz Flendrich.
ChangeSet@1.3473.3.6, 2015-06-27 06:44:17+02:00, tomek@tomek-n56vz.(none)
refidsmear.c:
moved assertions to proper places
tests/libntp/refidsmear.c@1.3 +4 -2
moved assertions to proper places
ChangeSet@1.3473.3.5, 2015-06-27 04:46:21+02:00, tomek@tomek-n56vz.(none)
run-refidsmear.c:
updated autogenerated file
refidsmear.c:
added the assertions and a nice message if a test fails
tests/libntp/refidsmear.c@1.2 +22 -9
added the assertions and a nice message if a test fails
tests/libntp/run-refidsmear.c@1.2 +1 -1
updated autogenerated file
ChangeSet@1.3473.3.4, 2015-06-27 01:16:47+00:00, stenn@psp-at1.ntp.org
refidsmear function support and tests. Harlan Stenn.
ChangeLog@1.1666.1.5 +1 -0
refidsmear function support and tests. Harlan Stenn.
include/Makefile.am@1.51 +1 -0
refidsmear function support and tests. Harlan Stenn.
include/refidsmear.h@1.1 +3 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/include/refidsmear.h
include/refidsmear.h@1.0 +0 -0
libntp/Makefile.am@1.76 +1 -0
refidsmear function support and tests. Harlan Stenn.
libntp/refidsmear.c@1.1 +58 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/libntp/refidsmear.c
libntp/refidsmear.c@1.0 +0 -0
tests/libntp/Makefile.am@1.83 +439 -378
refidsmear function support and tests. Harlan Stenn.
tests/libntp/refidsmear.c@1.1 +127 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/libntp/refidsmear.c
tests/libntp/refidsmear.c@1.0 +0 -0
tests/libntp/run-refidsmear.c@1.1 +52 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/libntp/run-refidsmear.c
tests/libntp/run-refidsmear.c@1.0 +0 -0
ChangeSet@1.3473.3.3, 2015-06-26 22:45:16+00:00, stenn@psp-at1.ntp.org
tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
ChangeLog@1.1666.1.4 +1 -0
tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
ChangeSet@1.3473.3.2, 2015-06-26 20:10:51+00:00, stenn@psp-at1.ntp.org
smeartest.c fixes from Harlan
tests/sandbox/smeartest.c@1.3.1.2 +52 -1
smeartest.c fixes from Harlan
ChangeSet@1.3473.3.1, 2015-06-26 18:43:39+00:00, stenn@psp-at1.ntp.org
smeartest.c fixes from Juergen, Damir, and Harlan
tests/sandbox/smeartest.c@1.3.1.1 +26 -17
smeartest.c fixes from Juergen, Damir, and Harlan
ChangeSet@1.3473.1.18, 2015-06-26 15:17:10+02:00, viperus@ubuntu.(none)
smeartest.c:
maybed fixed both funtions, needs checking!!!
tests/sandbox/smeartest.c@1.4 +69 -26
maybed fixed both funtions, needs checking!!!
ChangeSet@1.3473.1.17, 2015-06-26 11:24:43+00:00, stenn@psp-at1.ntp.org
smeartest.c - Harlan Stenn
tests/sandbox/smeartest.c@1.3 +2 -2
smeartest.c - Harlan Stenn
ChangeSet@1.3473.1.16, 2015-06-26 11:20:59+00:00, stenn@psp-at1.ntp.org
smeartest.c - Harlan Stenn
tests/sandbox/smeartest.c@1.2 +4 -0
smeartest.c - Harlan Stenn
ChangeSet@1.3473.1.15, 2015-06-26 10:58:41+00:00, stenn@psp-at1.ntp.org
smeartest.c - Harlan Stenn
tests/sandbox/Makefile.am@1.4 +1 -1
smeartest.c - Harlan Stenn
tests/sandbox/smeartest.c@1.1 +104 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/smeartest.c
tests/sandbox/smeartest.c@1.0 +0 -0
ChangeSet@1.3473.1.14, 2015-06-25 18:22:10+00:00, stenn@psp-at1.ntp.org
sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested something that was only in the 4.2.6 sntp. Harlan Stenn.
ChangeLog@1.1666.1.3 +18 -8
sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested something that was only in the 4.2.6 sntp. Harlan Stenn.
sntp/tests/Makefile.am@1.55 +4 -2
sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested something that was only in the 4.2.6 sntp. Harlan Stenn.
ChangeSet@1.3473.1.13, 2015-06-25 16:34:19+02:00, viperus@ubuntu.(none)
packetProcessing.c:
fixed SetUp() -> setUp() and TearDown() -> tearDown() which seemed to work because of extern functions
sntp/tests/packetProcessing.c@1.4 +11 -11
fixed SetUp() -> setUp() and TearDown() -> tearDown() which seemed to work because of extern functions
sntp/tests/run-packetProcessing.c@1.3 +6 -6
ChangeSet@1.3473.1.12, 2015-06-25 16:08:41+02:00, viperus@ubuntu.(none)
packetHandling.c:
put init_lib() every time. Unlike init_auth(), works every time in setUp() without causing segfault
added init_lib() in setUp(), so now stuff works!
sntp/tests/packetHandling.c@1.3 +2 -2
put init_lib() every time. Unlike init_auth(), works every time in setUp() without causing segfault
sntp/tests/packetHandling.c@1.2 +19 -5
added init_lib() in setUp(), so now stuff works!
sntp/tests/run-packetHandling.c@1.2 +10 -10
ChangeSet@1.3473.1.11, 2015-06-25 14:21:11+02:00, viperus@ubuntu.(none)
sntptest.h:
added sntptest_destroy()
packetProcessing.c:
added a bunch of snptest_destroy()
sntp/tests/packetProcessing.c@1.3 +14 -6
added a bunch of snptest_destroy()
sntp/tests/run-packetProcessing.c@1.2 +18 -18
sntp/tests/sntptest.h@1.3 +4 -5
added sntptest_destroy()
ChangeSet@1.3473.1.10, 2015-06-25 12:16:34+02:00, viperus@ubuntu.(none)
nameresolution.cpp~a54f29b6c06a0baf:
Delete: sntp/tests/nameresolution.cpp
BitKeeper/deleted/a0/nameresolution.cpp~a54f29b6c06a0baf@1.3 +0 -0
Delete: sntp/tests/nameresolution.cpp
ChangeSet@1.3473.1.9, 2015-06-25 12:15:27+02:00, viperus@ubuntu.(none)
run-packetProcessing.c:
new file
packetHandling.cpp~39b5af94c298eb8c:
Delete: sntp/tests/packetHandling.cpp
Makefile.am:
merged lokesh and tomasz work
BitKeeper/deleted/f3/packetHandling.cpp~39b5af94c298eb8c@1.12 +0 -0
Delete: sntp/tests/packetHandling.cpp
sntp/tests/Makefile.am@1.54 +6 -6
merged lokesh and tomasz work
sntp/tests/run-packetProcessing.c@1.1 +86 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-packetProcessing.c
sntp/tests/run-packetProcessing.c@1.0 +0 -0
ChangeSet@1.3473.1.7, 2015-06-25 11:39:39+02:00, tomek@tomek-n56vz.(none)
Makefile.am:
added pocketProcessing.c
sntp/tests/Makefile.am@1.52 +33 -15
added pocketProcessing.c
ChangeSet@1.3473.2.1, 2015-06-25 11:32:47+02:00, tomek@tomek-n56vz.(none)
packetProcessing.c:
new file
g_packetProcessing.cpp:
Rename: sntp/tests/packetProcessing.cpp -> sntp/tests/g_packetProcessing.cpp
packetProcessing.c:
fixed array size, so that it doesn't crash on 64bit integer
sntp/tests/g_packetProcessing.cpp@1.7 +0 -0
Rename: sntp/tests/packetProcessing.cpp -> sntp/tests/g_packetProcessing.cpp
sntp/tests/packetProcessing.c@1.2 +1 -1
fixed array size, so that it doesn't crash on 64bit integer
sntp/tests/packetProcessing.c@1.1 +331 -0
BitKeeper file /home/tomek/ntp/packetProcessing/ntp-stable-unity/sntp/tests/packetProcessing.c
sntp/tests/packetProcessing.c@1.0 +0 -0
ChangeSet@1.3473.1.5, 2015-06-25 10:10:48+02:00, viperus@ubuntu.(none)
lfpfunc.c:
replaced TEST_ASSERT_EQUAL_MEMORY(&a,&b,sizeof(a)) with TEST_ASSERT_EQUAL_l_fp(a,b). It's safer this way, because structs can be compared even if they aren't initiated with memset (due to padding bytes)
tests/libntp/lfpfunc.c@1.7 +25 -8
replaced TEST_ASSERT_EQUAL_MEMORY(&a,&b,sizeof(a)) with TEST_ASSERT_EQUAL_l_fp(a,b). It's safer this way, because structs can be compared even if they aren't initiated with memset (due to padding bytes)
tests/libntp/run-lfpfunc.c@1.10 +10 -9
ChangeSet@1.3473.1.4, 2015-06-25 09:38:11+02:00, viperus@ubuntu.(none)
ChangeLog:
added my changes
ChangeLog@1.1666.1.2 +8 -0
added my changes
ChangeSet@1.3458.2.1, 2015-06-25 07:21:48+00:00, viperus@psp-fb1.ntp.org
g_crypto.cpp:
Rename: sntp/tests/crypto.cpp -> sntp/tests/g_crypto.cpp
g_crypto.cpp~cb769256579f1186:
Delete: sntp/tests/g_crypto.cpp
BitKeeper/deleted/aa/g_crypto.cpp~cb769256579f1186@1.2, stenn@psp-at1.ntp.org +0 -0
Delete: sntp/tests/g_crypto.cpp
sntp/tests/g_crypto.cpp@1.6, stenn@psp-at1.ntp.org +0 -0
Rename: sntp/tests/crypto.cpp -> sntp/tests/g_crypto.cpp
ChangeSet@1.3473.1.2, 2015-06-25 09:19:32+02:00, viperus@ubuntu.(none)
Makefile.am:
minor fix for buildin libunity.a
minor fix for building libunity.a
crypto.c~1ed7d1829a6a73e5:
Delete: sntp/tests/crypto.c
crypto.c:
Rename: BitKeeper/deleted/23/crypto.c~1ed7d1829a6a73e5 -> sntp/tests/crypto.c
bug-2803.c:
function now returns x instead of 0
sntp/tests/crypto.c@1.5 +0 -0
Rename: BitKeeper/deleted/23/crypto.c~1ed7d1829a6a73e5 -> sntp/tests/crypto.c
BitKeeper/deleted/23/crypto.c~1ed7d1829a6a73e5@1.4 +0 -0
Delete: sntp/tests/crypto.c
tests/bug-2803/Makefile.am@1.12 +1 -1
minor fix for building libunity.a
tests/bug-2803/bug-2803.c@1.9 +7 -7
function now returns x instead of 0
tests/libntp/Makefile.am@1.82 +1 -1
minor fix for buildin libunity.a
tests/libntp/run-sfptostr.c@1.2 +1 -0
ChangeSet@1.3479, 2015-06-25 04:26:18+00:00, stenn@psp-at1.ntp.org
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
tests/sec-2853/sec-2853.c@1.4 +4 -6
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ChangeSet@1.3473.1.1, 2015-06-25 04:10:56+00:00, stenn@psp-at1.ntp.org
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ChangeLog@1.1666.1.1 +3 -0
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/keyword-gen-utd@1.26 +1 -1
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/keyword-gen.c@1.32 +0 -2
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/ntp_keyword.h@1.28 +446 -433
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/ntp_parser.c@1.97 +1397 -1147
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/ntp_parser.h@1.62 +230 -216
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ntpd/ntp_parser.y@1.87 +5 -0
[Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
ChangeSet@1.3478, 2015-06-25 02:48:14+00:00, stenn@psp-at1.ntp.org
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
tests/sec-2853/run-sec-2853.c@1.2 +2 -2
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
tests/sec-2853/sec-2853.c@1.3 +0 -2
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ChangeSet@1.3477, 2015-06-25 02:43:46+00:00, stenn@psp-at1.ntp.org
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
tests/sec-2853/sec-2853.c@1.2 +58 -2
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ChangeSet@1.3476, 2015-06-25 02:29:11+00:00, stenn@psp-at1.ntp.org
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ChangeLog@1.1670 +1 -0
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ntpd/Makefile.am@1.133 +1 -0
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ntpd/ntp_control.c@1.200 +2 -29
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ntpd/rc_cmdlength.c@1.1 +35 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2853/ntpd/rc_cmdlength.c
ntpd/rc_cmdlength.c@1.0 +0 -0
tests/sec-2853/Makefile.am@1.2 +9 -3
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
tests/sec-2853/Makefile.in@1.2 +513 -161
[Sec 2853] Initial work on tests/sec-2853/. Harlan Stenn.
ChangeSet@1.3475, 2015-06-24 10:59:01-07:00, harlan@hms-mbp11.pfcs.com
[Sec 2853] FICORA #829967. Juergen Perlinger, Harlan Stenn.
ChangeLog@1.1669 +1 -1
[Sec 2853] FICORA #829967. Juergen Perlinger, Harlan Stenn.
ChangeLog@1.1668 +3 -1
merge cleanup
configure.ac@1.597 +1 -0
[Sec 2853] FICORA #829967. Juergen Perlinger, Harlan Stenn.
tests/Makefile.am@1.10 +2 -0
[Sec 2853] FICORA #829967. Juergen Perlinger, Harlan Stenn.
tests/sec-2853/Makefile.am@1.1 +72 -0
BitKeeper file /Users/harlan/src/ntp-stable-2853/tests/sec-2853/Makefile.am
tests/sec-2853/Makefile.am@1.0 +0 -0
tests/sec-2853/Makefile.in@1.1 +918 -0
BitKeeper file /Users/harlan/src/ntp-stable-2853/tests/sec-2853/Makefile.in
tests/sec-2853/Makefile.in@1.0 +0 -0
tests/sec-2853/run-sec-2853.c@1.1 +54 -0
BitKeeper file /Users/harlan/src/ntp-stable-2853/tests/sec-2853/run-sec-2853.c
tests/sec-2853/run-sec-2853.c@1.0 +0 -0
tests/sec-2853/sec-2853.c@1.1 +68 -0
BitKeeper file /Users/harlan/src/ntp-stable-2853/tests/sec-2853/sec-2853.c
tests/sec-2853/sec-2853.c@1.0 +0 -0
ChangeSet@1.3473, 2015-06-24 11:06:56-04:00, stenn@deacon.udel.edu
NTP_4_2_8P3_RC2
TAG: NTP_4_2_8P3_RC2
ChangeLog@1.1666 +1 -0
NTP_4_2_8P3_RC2
ntpd/invoke-ntp.conf.texi@1.185 +1 -1
NTP_4_2_8P3_RC2
ntpd/invoke-ntp.keys.texi@1.180 +1 -1
NTP_4_2_8P3_RC2
ntpd/invoke-ntpd.texi@1.497 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntp.conf.5man@1.219 +76 -76
NTP_4_2_8P3_RC2
ntpd/ntp.conf.5mdoc@1.219 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntp.conf.html@1.175 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntp.conf.man.in@1.219 +76 -76
NTP_4_2_8P3_RC2
ntpd/ntp.conf.mdoc.in@1.219 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntp.keys.5man@1.214 +11 -11
NTP_4_2_8P3_RC2
ntpd/ntp.keys.5mdoc@1.214 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntp.keys.html@1.176 +1 -1
NTP_4_2_8P3_RC2
ntpd/ntp.keys.man.in@1.214 +11 -11
NTP_4_2_8P3_RC2
ntpd/ntp.keys.mdoc.in@1.214 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntpd-opts.c@1.519 +7 -7
NTP_4_2_8P3_RC2
ntpd/ntpd-opts.h@1.518 +3 -3
NTP_4_2_8P3_RC2
ntpd/ntpd.1ntpdman@1.326 +30 -30
NTP_4_2_8P3_RC2
ntpd/ntpd.1ntpdmdoc@1.326 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntpd.html@1.170 +2 -2
NTP_4_2_8P3_RC2
ntpd/ntpd.man.in@1.326 +30 -30
NTP_4_2_8P3_RC2
ntpd/ntpd.mdoc.in@1.326 +2 -2
NTP_4_2_8P3_RC2
ntpdc/invoke-ntpdc.texi@1.494 +2 -2
NTP_4_2_8P3_RC2
ntpdc/ntpdc-opts.c@1.512 +7 -7
NTP_4_2_8P3_RC2
ntpdc/ntpdc-opts.h@1.511 +3 -3
NTP_4_2_8P3_RC2
ntpdc/ntpdc.1ntpdcman@1.325 +16 -16
NTP_4_2_8P3_RC2
ntpdc/ntpdc.1ntpdcmdoc@1.325 +2 -2
NTP_4_2_8P3_RC2
ntpdc/ntpdc.html@1.338 +2 -2
NTP_4_2_8P3_RC2
ntpdc/ntpdc.man.in@1.325 +16 -16
NTP_4_2_8P3_RC2
ntpdc/ntpdc.mdoc.in@1.325 +2 -2
NTP_4_2_8P3_RC2
ntpq/invoke-ntpq.texi@1.501 +2 -2
NTP_4_2_8P3_RC2
ntpq/ntpq-opts.c@1.518 +7 -7
NTP_4_2_8P3_RC2
ntpq/ntpq-opts.h@1.516 +3 -3
NTP_4_2_8P3_RC2
ntpq/ntpq.1ntpqman@1.329 +3 -3
NTP_4_2_8P3_RC2
ntpq/ntpq.1ntpqmdoc@1.329 +2 -2
NTP_4_2_8P3_RC2
ntpq/ntpq.html@1.167 +14 -4
NTP_4_2_8P3_RC2
ntpq/ntpq.man.in@1.329 +3 -3
NTP_4_2_8P3_RC2
ntpq/ntpq.mdoc.in@1.329 +2 -2
NTP_4_2_8P3_RC2
ntpsnmpd/invoke-ntpsnmpd.texi@1.496 +2 -2
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd-opts.c@1.514 +7 -7
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd-opts.h@1.513 +3 -3
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.325 +5 -5
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.325 +2 -2
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd.html@1.165 +1 -1
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd.man.in@1.325 +5 -5
NTP_4_2_8P3_RC2
ntpsnmpd/ntpsnmpd.mdoc.in@1.325 +2 -2
NTP_4_2_8P3_RC2
packageinfo.sh@1.512 +1 -1
NTP_4_2_8P3_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.86 +3 -3
NTP_4_2_8P3_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.87 +2 -2
NTP_4_2_8P3_RC2
scripts/calc_tickadj/calc_tickadj.html@1.88 +1 -1
NTP_4_2_8P3_RC2
scripts/calc_tickadj/calc_tickadj.man.in@1.85 +3 -3
NTP_4_2_8P3_RC2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.87 +2 -2
NTP_4_2_8P3_RC2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.90 +1 -1
NTP_4_2_8P3_RC2
scripts/invoke-plot_summary.texi@1.107 +2 -2
NTP_4_2_8P3_RC2
scripts/invoke-summary.texi@1.107 +2 -2
NTP_4_2_8P3_RC2
scripts/ntp-wait/invoke-ntp-wait.texi@1.317 +2 -2
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait-opts@1.53 +2 -2
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.314 +5 -5
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.315 +2 -2
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait.html@1.334 +2 -2
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait.man.in@1.314 +5 -5
NTP_4_2_8P3_RC2
scripts/ntp-wait/ntp-wait.mdoc.in@1.315 +2 -2
NTP_4_2_8P3_RC2
scripts/ntpsweep/invoke-ntpsweep.texi@1.105 +2 -2
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep-opts@1.55 +2 -2
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.93 +3 -3
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.93 +2 -2
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep.html@1.106 +2 -2
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep.man.in@1.93 +3 -3
NTP_4_2_8P3_RC2
scripts/ntpsweep/ntpsweep.mdoc.in@1.94 +2 -2
NTP_4_2_8P3_RC2
scripts/ntptrace/invoke-ntptrace.texi@1.106 +2 -2
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace-opts@1.55 +2 -2
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace.1ntptraceman@1.93 +3 -3
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.94 +2 -2
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace.html@1.107 +2 -2
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace.man.in@1.93 +3 -3
NTP_4_2_8P3_RC2
scripts/ntptrace/ntptrace.mdoc.in@1.95 +2 -2
NTP_4_2_8P3_RC2
scripts/plot_summary-opts@1.55 +2 -2
NTP_4_2_8P3_RC2
scripts/plot_summary.1plot_summaryman@1.105 +3 -3
NTP_4_2_8P3_RC2
scripts/plot_summary.1plot_summarymdoc@1.105 +2 -2
NTP_4_2_8P3_RC2
scripts/plot_summary.html@1.108 +2 -2
NTP_4_2_8P3_RC2
scripts/plot_summary.man.in@1.105 +3 -3
NTP_4_2_8P3_RC2
scripts/plot_summary.mdoc.in@1.105 +2 -2
NTP_4_2_8P3_RC2
scripts/summary-opts@1.55 +2 -2
NTP_4_2_8P3_RC2
scripts/summary.1summaryman@1.105 +3 -3
NTP_4_2_8P3_RC2
scripts/summary.1summarymdoc@1.105 +2 -2
NTP_4_2_8P3_RC2
scripts/summary.html@1.108 +2 -2
NTP_4_2_8P3_RC2
scripts/summary.man.in@1.105 +3 -3
NTP_4_2_8P3_RC2
scripts/summary.mdoc.in@1.105 +2 -2
NTP_4_2_8P3_RC2
scripts/update-leap/invoke-update-leap.texi@1.6 +51 -2
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap-opts@1.6 +2 -2
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap.1update-leapman@1.6 +4 -4
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap.1update-leapmdoc@1.6 +2 -2
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap.html@1.6 +1 -1
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap.man.in@1.6 +4 -4
NTP_4_2_8P3_RC2
scripts/update-leap/update-leap.mdoc.in@1.6 +2 -2
NTP_4_2_8P3_RC2
sntp/invoke-sntp.texi@1.494 +2 -2
NTP_4_2_8P3_RC2
sntp/sntp-opts.c@1.513 +7 -7
NTP_4_2_8P3_RC2
sntp/sntp-opts.h@1.511 +3 -3
NTP_4_2_8P3_RC2
sntp/sntp.1sntpman@1.329 +7 -7
NTP_4_2_8P3_RC2
sntp/sntp.1sntpmdoc@1.329 +2 -2
NTP_4_2_8P3_RC2
sntp/sntp.html@1.509 +2 -2
NTP_4_2_8P3_RC2
sntp/sntp.man.in@1.329 +7 -7
NTP_4_2_8P3_RC2
sntp/sntp.mdoc.in@1.329 +2 -2
NTP_4_2_8P3_RC2
util/invoke-ntp-keygen.texi@1.497 +2 -2
NTP_4_2_8P3_RC2
util/ntp-keygen-opts.c@1.515 +7 -7
NTP_4_2_8P3_RC2
util/ntp-keygen-opts.h@1.513 +3 -3
NTP_4_2_8P3_RC2
util/ntp-keygen.1ntp-keygenman@1.325 +18 -18
NTP_4_2_8P3_RC2
util/ntp-keygen.1ntp-keygenmdoc@1.325 +2 -2
NTP_4_2_8P3_RC2
util/ntp-keygen.html@1.171 +2 -2
NTP_4_2_8P3_RC2
util/ntp-keygen.man.in@1.325 +18 -18
NTP_4_2_8P3_RC2
util/ntp-keygen.mdoc.in@1.325 +2 -2
NTP_4_2_8P3_RC2
ChangeSet@1.3472, 2015-06-24 10:25:48-04:00, stenn@deacon.udel.edu
automake-1.15 cleanup for sntp/tests/fileHandlingTest.h.in . Harlan Stenn.
ChangeLog@1.1665 +1 -0
automake-1.15 cleanup for sntp/tests/fileHandlingTest.h.in . Harlan Stenn.
sntp/tests/fileHandlingTest.h.in@1.11 +3 -3
automake-1.15 cleanup for sntp/tests/fileHandlingTest.h.in . Harlan Stenn.
ChangeSet@1.3471, 2015-06-24 10:22:13-04:00, stenn@deacon.udel.edu
[Bug 2855] leap smear cleanup. Harlan Stenn.
ChangeLog@1.1664 +1 -0
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/complete.conf.in@1.30 +1 -1
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/keyword-gen-utd@1.25 +1 -1
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/ntp_keyword.h@1.27 +433 -446
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/ntp_parser.c@1.96 +147 -147
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/ntp_parser.h@1.61 +4 -4
[Bug 2855] leap smear cleanup. Harlan Stenn.
ntpd/ntp_proto.c@1.360 +1 -1
[Bug 2855] leap smear cleanup. Harlan Stenn.
ChangeSet@1.3470, 2015-06-24 10:17:03-04:00, stenn@deacon.udel.edu
Cleanup for ntp-4.2.3p8-RC2
ChangeLog@1.1663 +1 -1
Cleanup for ntp-4.2.3p8-RC2
NEWS@1.139 +35 -1
Cleanup for ntp-4.2.3p8-RC2
configure.ac@1.596 +3 -1
Cleanup for ntp-4.2.3p8-RC2
ChangeSet@1.3469, 2015-06-24 11:25:11+00:00, stenn@psp-at1.ntp.org
[Bug 2855] Implement conditional leap smear code. Martin Burnicki.
ChangeLog@1.1662 +1 -1
[Bug 2855] Implement conditional leap smear code. Martin Burnicki.
ChangeSet@1.3466.1.1, 2015-06-24 09:18:52+02:00, jnperlin@hydra.(none)
Bug 2853 - FICORA #829967
ChangeLog@1.1660.1.1 +1 -0
Bug 2853 - FICORA #829967
ntpd/ntp_control.c@1.196.1.1 +56 -21
Bug 2853 - FICORA #829967
ChangeSet@1.3458.1.3, 2015-06-23 12:56:23+05:30, loki@dadasgift.(none)
PacketHandling test changes
sntp/tests/Makefile.am@1.50.1.3 +11 -11
sntp/tests/g_packetHandling.cpp@1.1 +264 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/g_packetHandling.cpp
sntp/tests/g_packetHandling.cpp@1.0 +0 -0
sntp/tests/packetHandling.c@1.1 +260 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/packetHandling.c
sntp/tests/packetHandling.c@1.0 +0 -0
sntp/tests/run-packetHandling.c@1.1 +70 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/run-packetHandling.c
sntp/tests/run-packetHandling.c@1.0 +0 -0
ChangeSet@1.3468, 2015-06-22 17:31:28+02:00, martin@pc-martin.(none)
[Bug 2855] Implement conditional leap smear feature.
ChangeLog@1.1661 +1 -0
[Bug 2855] Implement conditional leap smear feature.
include/ntpd.h@1.191 +3 -0
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/keyword-gen.c@1.31 +2 -0
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_config.c@1.330 +2 -0
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_control.c@1.198 +4 -0
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_io.c@1.403 +8 -1
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_leapsec.h@1.14 +5 -0
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_proto.c@1.359 +30 -2
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ntpd/ntp_timer.c@1.91 +21 -12
Protected leap smearing code by preprocessor symbol LEAP_SMEAR.
ChangeSet@1.3466, 2015-06-22 07:45:39+00:00, stenn@psp-at1.ntp.org
Initial support for experimental leap smear code. Harlan Stenn.
ChangeLog@1.1660 +1 -0
Initial support for experimental leap smear code. Harlan Stenn.
configure.ac@1.595 +21 -0
Initial support for experimental leap smear code. Harlan Stenn.
ChangeSet@1.3458.1.2, 2015-06-22 13:06:53+05:30, loki@dadasgift.(none)
Nameresolution test
sntp/tests/Makefile.am@1.50.1.2 +20 -0
sntp/tests/g_nameresolution.cpp@1.1 +171 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/g_nameresolution.cpp
sntp/tests/g_nameresolution.cpp@1.0 +0 -0
sntp/tests/nameresolution.c@1.1 +162 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/nameresolution.c
sntp/tests/nameresolution.c@1.0 +0 -0
sntp/tests/run-nameresolution.c@1.1 +51 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/run-nameresolution.c
sntp/tests/run-nameresolution.c@1.0 +0 -0
ChangeSet@1.3453.1.3, 2015-06-22 12:56:31+05:30, loki@dadasgift.(none)
Makefile changes
sntp/tests/Makefile.am@1.48.1.1 +20 -0
ChangeSet@1.3465, 2015-06-22 06:50:39+00:00, stenn@psp-at1.ntp.org
Regenerate some unity test runners to declare resetTest()
tests/libntp/run-caljulian.c@1.8 +1 -0
Regenerate some unity test runners to declare resetTest()
tests/libntp/run-decodenetnum.c@1.3 +1 -0
Regenerate some unity test runners to declare resetTest()
tests/libntp/run-hextolfp.c@1.4 +1 -0
Regenerate some unity test runners to declare resetTest()
tests/libntp/run-netof.c@1.3 +1 -0
Regenerate some unity test runners to declare resetTest()
tests/libntp/run-vi64ops.c@1.3 +1 -0
Regenerate some unity test runners to declare resetTest()
ChangeSet@1.3464, 2015-06-21 05:15:32+00:00, stenn@psp-at1.ntp.org
Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
ChangeLog@1.1659 +1 -0
Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
sntp/configure.ac@1.81 +1 -0
Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
sntp/tests/fileHandlingTest.h.in@1.10 +3 -11
Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
sntp/tests/fileHandlingTest.h.in@1.9, stenn@psp-fb1.ntp.org +0 -0
Rename: sntp/tests/fileHandlingTest.h -> sntp/tests/fileHandlingTest.h.in
ChangeSet@1.3463, 2015-06-20 23:18:33+00:00, stenn@psp-at1.ntp.org
[Bug 2852] 'make check' can't find unity.h. Hal Murray.
ChangeLog@1.1658 +1 -0
[Bug 2852] 'make check' can't find unity.h. Hal Murray.
ChangeSet@1.3462, 2015-06-20 23:12:10+00:00, stenn@psp-at1.ntp.org
[Bug 2854] Missing brace in libntp/strdup.c. Masanari Iida.
ChangeLog@1.1657 +1 -0
[Bug 2854] Missing brace in libntp/strdup.c. Masanari Iida.
libntp/strdup.c@1.9 +9 -10
[Bug 2854] Missing brace in libntp/strdup.c. Masanari Iida.
ChangeSet@1.3461, 2015-06-20 22:41:34+00:00, stenn@psp-at1.ntp.org
gtest->Unity cleanup
sntp/tests/Makefile.am@1.51 +10 -6
gtest->Unity cleanup
sntp/tests_main.cpp@1.9 +4 -0
gtest->Unity cleanup
tests/libntp/g_buftvtots.cpp@1.5 +1 -1
gtest->Unity cleanup
tests/libntp/g_decodenetnum.cpp@1.2 +1 -1
gtest->Unity cleanup
tests/libntp/g_hextolfp.cpp@1.2 +1 -1
gtest->Unity cleanup
tests/libntp/g_netof.cpp@1.2 +1 -1
gtest->Unity cleanup
tests/libntp/g_socktoa.cpp@1.2 +1 -1
gtest->Unity cleanup
tests/libntp/g_strtolfp.cpp@1.2 +1 -1
gtest->Unity cleanup
tests/libntp/g_tvtots.cpp@1.8 +1 -1
gtest->Unity cleanup
ChangeSet@1.3460, 2015-06-20 21:41:29+00:00, stenn@psp-at1.ntp.org
re-apply lost typo fix
sntp/tests/g_crypto.cpp@1.1.1.1 +1 -1
re-apply lost typo fix
ChangeSet@1.3458, 2015-06-20 14:32:03+02:00, viperus@ubuntu.(none)
run-crypto.c:
new file
Makefile.am:
minor rearrange
crypto.c:
minor fix with #define, now works even without openSSL
sntp/tests/Makefile.am@1.50 +16 -18
minor rearrange
sntp/tests/crypto.c@1.3 +11 -4
minor fix with #define, now works even without openSSL
sntp/tests/run-crypto.c@1.1 +62 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-crypto.c
sntp/tests/run-crypto.c@1.0 +0 -0
ChangeSet@1.3456, 2015-06-20 14:14:57+02:00, viperus@ubuntu.(none)
Makefile.am:
added a few more test files to cleanfiles
g_utilities.cpp:
Rename: sntp/tests/utilities.cpp -> sntp/tests/g_utilities.cpp
bug-2803.h~e9cdd024b7db50f6:
Delete: tests/bug-2803/bug-2803.h
Many files:
new file
Makefile.am:
added utilities test, fixed a minor bug with CLEANFILES var
generate_test_runner.rb:
for now, I'm giving up on removing functions that are written twice (because of declaraion and defintion). That regex is difficult because ruby script splits with newline, ; and { and }. I just added declaration for resetTest, to avoid warnings
BitKeeper/deleted/4b/bug-2803.h~e9cdd024b7db50f6@1.2 +0 -0
Delete: tests/bug-2803/bug-2803.h
sntp/tests/Makefile.am@1.46.1.2 +1 -1
added a few more test files to cleanfiles
sntp/tests/Makefile.am@1.46.1.1 +50 -32
added utilities test, fixed a minor bug with CLEANFILES var
sntp/tests/data/debug-output-lfp-bin@1.1 +3 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/debug-output-lfp-bin
sntp/tests/data/debug-output-lfp-bin@1.0 +0 -0
sntp/tests/data/debug-output-lfp-dec@1.1 +3 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/debug-output-lfp-dec
sntp/tests/data/debug-output-lfp-dec@1.0 +0 -0
sntp/tests/data/debug-output-pkt@1.1 +8 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/debug-output-pkt
sntp/tests/data/debug-output-pkt@1.0 +0 -0
sntp/tests/g_utilities.cpp@1.11 +0 -0
Rename: sntp/tests/utilities.cpp -> sntp/tests/g_utilities.cpp
sntp/tests/run-utilities.c@1.1 +64 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-utilities.c
sntp/tests/run-utilities.c@1.0 +0 -0
sntp/tests/utilities.c@1.1 +177 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/utilities.c
sntp/tests/utilities.c@1.0 +0 -0
sntp/unity/auto/generate_test_runner.rb@1.5.1.1 +1 -0
for now, I'm giving up on removing functions that are written twice (because of declaraion and defintion). That regex is difficult because ruby script splits with newline, ; and { and }. I just added declaration for resetTest, to avoid warnings
tests/bug-2803/bug-2803.c@1.8 +1 -1
tests/bug-2803/bug-2803.c@1.7 +4 -1
tests/bug-2803/run-bug-2803.c@1.7 +3 -2
ChangeSet@1.3453.1.2, 2015-06-20 16:11:49+05:30, loki@dadasgift.(none)
Crypto test file
sntp/tests/Makefile.am@1.48 +19 -1
sntp/tests/crypto.c@1.2 +1 -1
ChangeSet@1.3452.1.1, 2015-06-20 09:07:37+00:00, stenn@psp-at1.ntp.org
typo
sntp/unity/auto/colour_prompt.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/colour_reporter.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/generate_config.yml@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/generate_module.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/generate_test_runner.rb@1.6 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/test_file_filter.rb@1.2 +0 -0
Change mode to -rw-rw-r--
sntp/unity/auto/unity_test_summary.rb@1.2 +0 -0
Change mode to -rw-rw-r--
tests/libntp/sfptostr.c@1.2 +1 -1
typo
ChangeSet@1.3455, 2015-06-20 10:10:34+02:00, viperus@ubuntu.(none)
bug-2803.h:
new file
bug-2803.c:
removed declarations, and put them into bug-2803.h
tests/bug-2803/bug-2803.c@1.6 +1 -4
removed declarations, and put them into bug-2803.h
tests/bug-2803/bug-2803.h@1.1 +14 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/bug-2803/bug-2803.h
tests/bug-2803/bug-2803.h@1.0 +0 -0
tests/bug-2803/run-bug-2803.c@1.6 +1 -3
ChangeSet@1.3454, 2015-06-20 09:57:06+02:00, viperus@ubuntu.(none)
testcalshims.c~f84485d2b13cef55:
Delete: tests/libntp/testcalshims.c
testcalshims.h~5612fd527e4d6de9:
Delete: tests/libntp/testcalshims.h
BitKeeper/deleted/3e/testcalshims.c~f84485d2b13cef55@1.5 +0 -0
Delete: tests/libntp/testcalshims.c
BitKeeper/deleted/ac/testcalshims.h~5612fd527e4d6de9@1.5 +0 -0
Delete: tests/libntp/testcalshims.h
ChangeSet@1.3453, 2015-06-20 09:19:13+02:00, viperus@ubuntu.(none)
run-buftvtots.c, buftvtots.c:
new file
Makefile.am:
minor fix to the alphabetic list
added buftvtots
tests/libntp/Makefile.am@1.80 +2 -2
minor fix to the alphabetic list
tests/libntp/Makefile.am@1.79 +26 -6
added buftvtots
tests/libntp/buftvtots.c@1.1 +78 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/buftvtots.c
tests/libntp/buftvtots.c@1.0 +0 -0
tests/libntp/run-buftvtots.c@1.1 +57 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-buftvtots.c
tests/libntp/run-buftvtots.c@1.0 +0 -0
ChangeSet@1.3452, 2015-06-20 04:02:48+00:00, stenn@psp-at1.ntp.org
unity cleanup
sntp/tests/utilities.cpp@1.10 +5 -5
unity cleanup
ChangeSet@1.3451, 2015-06-20 04:00:43+00:00, stenn@psp-at1.ntp.org
tests/libntp cleanup for Unity
tests/libntp/Makefile.am@1.78 +7 -7
tests/libntp cleanup for Unity
tests/libntp/clocktime.c@1.3 +1 -5
tests/libntp cleanup for Unity
tests/libntp/decodenetnum.c@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_a_md5encrypt.cpp@1.7 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_atoint.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_atouint.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_authkeys.cpp@1.9 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_buftvtots.cpp@1.4, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/buftvtots.cpp -> tests/libntp/g_buftvtots.cpp
tests/libntp/g_calendar.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_caljulian.cpp@1.7 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_caltontp.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_calyearstart.cpp@1.5 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_clocktime.cpp@1.6 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_hextoint.cpp@1.5 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_humandate.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_lfpfunc.cpp@1.4 +2 -2
tests/libntp cleanup for Unity
tests/libntp/g_lfptest.h@1.7 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_lfptest.h@1.6, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/lfptest.h -> tests/libntp/g_lfptest.h
tests/libntp/g_lfptostr.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_libntptest.cpp@1.5 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_libntptest.cpp@1.4, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/libntptest.cpp -> tests/libntp/g_libntptest.cpp
tests/libntp/g_libntptest.h@1.5, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/libntptest.h -> tests/libntp/g_libntptest.h
tests/libntp/g_modetoa.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_msyslog.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_numtoa.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_numtohost.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_octtoint.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_prettydate.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_recvbuff.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_refnumtoa.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_sfptostr.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_sockaddrtest.h@1.5 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_sockaddrtest.h@1.4, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/sockaddrtest.h -> tests/libntp/g_sockaddrtest.h
tests/libntp/g_ssl_init.cpp@1.5 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_statestr.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_timespecops.cpp@1.10 +2 -2
tests/libntp cleanup for Unity
tests/libntp/g_timestructs.cpp@1.6 +2 -2
tests/libntp cleanup for Unity
tests/libntp/g_timestructs.cpp@1.5, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/timestructs.cpp -> tests/libntp/g_timestructs.cpp
tests/libntp/g_timestructs.h@1.5, stenn@psp-fb1.ntp.org +0 -0
Rename: tests/libntp/timestructs.h -> tests/libntp/g_timestructs.h
tests/libntp/g_timevalops.cpp@1.10 +2 -2
tests/libntp cleanup for Unity
tests/libntp/g_tstotv.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_uglydate.cpp@1.4 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_vi64ops.cpp@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/g_ymd2yd.cpp@1.3 +1 -1
tests/libntp cleanup for Unity
tests/libntp/hextolfp.c@1.4 +3 -1
tests/libntp cleanup for Unity
tests/libntp/humandate.c@1.3 +3 -2
tests/libntp cleanup for Unity
tests/libntp/lfpfunc.c@1.6 +0 -2
tests/libntp cleanup for Unity
tests/libntp/lfptest.h@1.3 +0 -0
Rename: tests/libntp/c_lfptest.h -> tests/libntp/lfptest.h
tests/libntp/lfptostr.c@1.2 +2 -1
tests/libntp cleanup for Unity
tests/libntp/msyslog.c@1.2 +2 -3
tests/libntp cleanup for Unity
tests/libntp/netof.c@1.3 +4 -4
tests/libntp cleanup for Unity
tests/libntp/octtoint.c@1.3 +1 -3
tests/libntp cleanup for Unity
tests/libntp/prettydate.c@1.2 +2 -1
tests/libntp cleanup for Unity
tests/libntp/recvbuff.c@1.4 +3 -4
tests/libntp cleanup for Unity
tests/libntp/refnumtoa.c@1.2 +1 -0
tests/libntp cleanup for Unity
tests/libntp/run-clocktime.c@1.4 +8 -8
tests/libntp cleanup for Unity
tests/libntp/run-hextolfp.c@1.3 +6 -6
tests/libntp cleanup for Unity
tests/libntp/run-humandate.c@1.2 +2 -2
tests/libntp cleanup for Unity
tests/libntp/run-lfpfunc.c@1.9 +9 -9
tests/libntp cleanup for Unity
tests/libntp/run-lfptostr.c@1.2 +11 -11
tests/libntp cleanup for Unity
tests/libntp/run-msyslog.c@1.2 +8 -8
tests/libntp cleanup for Unity
tests/libntp/run-octtoint.c@1.4 +7 -7
tests/libntp cleanup for Unity
tests/libntp/run-prettydate.c@1.2 +1 -1
tests/libntp cleanup for Unity
tests/libntp/run-recvbuff.c@1.2 +3 -3
tests/libntp cleanup for Unity
tests/libntp/run-refnumtoa.c@1.3 +2 -2
tests/libntp cleanup for Unity
tests/libntp/run-socktoa.c@1.6 +6 -6
tests/libntp cleanup for Unity
tests/libntp/run-ssl_init.c@1.4 +5 -5
tests/libntp cleanup for Unity
tests/libntp/run-strtolfp.c@1.2 +7 -7
tests/libntp cleanup for Unity
tests/libntp/run-timespecops.c@1.3 +28 -28
tests/libntp cleanup for Unity
tests/libntp/run-timevalops.c@1.5 +28 -28
tests/libntp cleanup for Unity
tests/libntp/run-tstotv.c@1.2 +3 -3
tests/libntp cleanup for Unity
tests/libntp/run-tvtots.c@1.2 +3 -3
tests/libntp cleanup for Unity
tests/libntp/run-uglydate.c@1.7 +1 -1
tests/libntp cleanup for Unity
tests/libntp/sockaddrtest.h@1.3 +0 -0
Rename: tests/libntp/c_sockaddrtest.h -> tests/libntp/sockaddrtest.h
tests/libntp/socktoa.c@1.3 +3 -1
tests/libntp cleanup for Unity
tests/libntp/ssl_init.c@1.5 +2 -1
tests/libntp cleanup for Unity
tests/libntp/strtolfp.c@1.2 +3 -1
tests/libntp cleanup for Unity
tests/libntp/test-libntp.c@1.9 +1 -0
tests/libntp cleanup for Unity
tests/libntp/testcalshims.h@1.4 +0 -3
tests/libntp cleanup for Unity
tests/libntp/timespecops.c@1.2 +0 -1
tests/libntp cleanup for Unity
tests/libntp/timestructs.c@1.2 +0 -0
Rename: tests/libntp/c_timestructs.c -> tests/libntp/timestructs.c
tests/libntp/timestructs.h@1.2 +0 -0
Rename: tests/libntp/c_timestructs.h -> tests/libntp/timestructs.h
tests/libntp/timevalops.c@1.5 +2 -4
tests/libntp cleanup for Unity
tests/libntp/tstotv.c@1.2 +3 -1
tests/libntp cleanup for Unity
tests/libntp/tvtots.c@1.3 +3 -2
tests/libntp cleanup for Unity
tests/libntp/uglydate.c@1.5 +1 -0
tests/libntp cleanup for Unity
tests/libntp/vi64ops.c@1.2 +2 -2
tests/libntp cleanup for Unity
ChangeSet@1.3450, 2015-06-20 02:39:45+00:00, stenn@psp-fb1.ntp.org
Unity cleanup of sntp/tests/
sntp/tests/Makefile.am@1.46 +4 -3
Unity cleanup of sntp/tests/
sntp/tests/crypto.cpp@1.5 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/fileHandlingTest.h@1.8 +8 -7
Unity cleanup of sntp/tests/
sntp/tests/fileHandlingTest.h@1.7 +0 -0
Rename: sntp/tests/c_fileHandlingTest.h -> sntp/tests/fileHandlingTest.h
sntp/tests/g_fileHandlingTest.h@1.6 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/g_fileHandlingTest.h@1.5 +0 -0
Rename: sntp/tests/fileHandlingTest.h -> sntp/tests/g_fileHandlingTest.h
sntp/tests/g_keyFile.cpp@1.8 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/g_kodDatabase.cpp@1.5 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/g_kodFile.cpp@1.10 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/g_networking.cpp@1.10 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/g_sntptest.h@1.6 +0 -0
Rename: sntp/tests/sntptest.h -> sntp/tests/g_sntptest.h
sntp/tests/keyFile.c@1.3 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/kodDatabase.c@1.2 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/kodFile.c@1.5 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/nameresolution.cpp@1.2 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/networking.c@1.3 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/packetHandling.cpp@1.11 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/packetProcessing.cpp@1.6 +1 -1
Unity cleanup of sntp/tests/
sntp/tests/run-keyFile.c@1.4 +0 -1
Unity cleanup of sntp/tests/
sntp/tests/sntptest.h@1.2 +0 -0
Rename: sntp/tests/c_sntptest.h -> sntp/tests/sntptest.h
sntp/tests/utilities.cpp@1.9 +2 -2
Unity cleanup of sntp/tests/
ChangeSet@1.3449, 2015-06-20 01:25:54+00:00, stenn@psp-fb1.ntp.org
Remove obsolete gtest files
BitKeeper/deleted/03/atolfp.cpp~4b2bfa141cb6e704@1.10, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/strtolfp.cpp
BitKeeper/deleted/11/octtoint.cpp~50548df6cb56ca39@1.3, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/octtoint.cpp
BitKeeper/deleted/1e/lfptostr.cpp~fc33022cca22f4a0@1.4, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/lfptostr.cpp
BitKeeper/deleted/29/netof.cpp~ce09accf46a3055c@1.2, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/netof.cpp
BitKeeper/deleted/36/hextolfp.cpp~bdb41862b8a92a90@1.6, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/hextolfp.cpp
BitKeeper/deleted/c0/decodenetnum.cpp~eb55b950b046942f@1.3, stenn@psp-at1.ntp.org +0 -0
Delete: tests/libntp/decodenetnum.cpp
ChangeSet@1.3447, 2015-06-20 00:57:57+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
dashes are now lined up
tests/libntp/Makefile.am@1.77 +9 -9
dashes are now lined up
ChangeSet@1.3445.1.1, 2015-06-20 00:57:43+00:00, stenn@psp-at1.ntp.org
sntp/tests/Makefile.am cleanup
sntp/tests/Makefile.am@1.45 +41 -37
sntp/tests/Makefile.am cleanup
ChangeSet@1.3446, 2015-06-20 00:55:15+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
changed the indent from spaces to tabs
tests/libntp/Makefile.am@1.76 +5 -5
changed the indent from spaces to tabs
ChangeSet@1.3445, 2015-06-19 23:49:56+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
added a missing "-lpthread"
tests/libntp/Makefile.am@1.75 +1 -0
added a missing "-lpthread"
ChangeSet@1.3444, 2015-06-19 23:34:57+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
fixed the merge
tests/libntp/Makefile.am@1.74 +1 -0
fixed the merge
ChangeSet@1.3429.3.3, 2015-06-20 00:33:19+02:00, tomek@tomek-n56vz.(none)
converted humandate from gtest to unity
tests/libntp/Makefile.am@1.68.3.3 +20 -1
added humandate.c
tests/libntp/g_humandate.cpp@1.3 +0 -0
Rename: tests/libntp/humandate.cpp -> tests/libntp/g_humandate.cpp
tests/libntp/humandate.c@1.2 +25 -31
tests/libntp/humandate.c@1.1 +41 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/humandate.c
tests/libntp/humandate.c@1.0 +0 -0
tests/libntp/run-humandate.c@1.1 +53 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/run-humandate.c
tests/libntp/run-humandate.c@1.0 +0 -0
tests/libntp/run-sfptostr.c@1.1 +65 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/run-sfptostr.c
tests/libntp/run-sfptostr.c@1.0 +0 -0
ChangeSet@1.3442, 2015-06-19 23:52:11+02:00, viperus@ubuntu.(none)
kodFile.c:
removed debug printfs
sntp/tests/kodFile.c@1.4 +7 -7
removed debug printfs
ChangeSet@1.3441, 2015-06-19 23:15:36+02:00, viperus@ubuntu.(none)
Makefile.am:
added some clean and distclean stuff
c_fileHandlingTest.h:
added more debug printfs
kodFile.c:
changed CreatePath so new files are written in a writeable directory
sntp/tests/Makefile.am@1.43 +2 -1
added some clean and distclean stuff
sntp/tests/c_fileHandlingTest.h@1.6 +1 -1
added more debug printfs
sntp/tests/kodFile.c@1.3 +7 -4
changed CreatePath so new files are written in a writeable directory
sntp/tests/run-kodFile.c@1.2 +2 -2
ChangeSet@1.3429.3.2, 2015-06-19 23:07:51+02:00, tomek@tomek-n56vz.(none)
converted sfptostr from GTest to Unity
sntp/tests/Makefile.am@1.40.3.1 +1 -1
makefile now works if someone has gtest
sntp/tests/g_keyFile.cpp@1.4.2.1 +0 -0
Rename: sntp/tests/keyFile.cpp -> sntp/tests/g_keyFile.cpp
tests/libntp/Makefile.am@1.68.3.2 +21 -1
added sfptostr.c
tests/libntp/g_sfptostr.cpp@1.2 +0 -0
Rename: tests/libntp/sfptostr.cpp -> tests/libntp/g_sfptostr.cpp
tests/libntp/sfptostr.c@1.1 +73 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/sfptostr.c
tests/libntp/sfptostr.c@1.0 +0 -0
ChangeSet@1.3429.3.1, 2015-06-19 22:31:16+02:00, tomek@tomek-n56vz.(none)
converted tvtots from gtest to unity
tests/libntp/Makefile.am@1.68.3.1 +21 -1
added tvtots.c
tests/libntp/g_tvtots.cpp@1.7 +0 -0
Rename: tests/libntp/tvtots.cpp -> tests/libntp/g_tvtots.cpp
tests/libntp/run-tvtots.c@1.1 +55 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/run-tvtots.c
tests/libntp/run-tvtots.c@1.0 +0 -0
tests/libntp/tvtots.c@1.2 +53 -0
converted to unity
tests/libntp/tvtots.c@1.1 +0 -0
BitKeeper file /home/tomek/ntp/kod/head/ntp-stable-unity/tests/libntp/tvtots.c
tests/libntp/tvtots.c@1.0 +0 -0
ChangeSet@1.3429.1.9, 2015-06-19 18:00:35+00:00, tflendrich@psp-deb1.ntp.org
bring back two files that were wrongfully removed
tests/libntp/test-libntp.c@1.8 +0 -0
Rename: BitKeeper/deleted/a4/test-libntp.c~4efce7533d11e808 -> tests/libntp/test-libntp.c
tests/libntp/test-libntp.h@1.6 +0 -0
Rename: BitKeeper/deleted/01/test-libntp.h~c19218ad555ac21 -> tests/libntp/test-libntp.h
ChangeSet@1.3439, 2015-06-19 17:51:30+02:00, viperus@ubuntu.(none)
c_fileHandlingTest.h:
added new cases with strcpy(path,....)
run-strtolfp.c, run-lfptostr.c:
new file
sntp/tests/c_fileHandlingTest.h@1.5 +4 -1
added new cases with strcpy(path,....)
tests/libntp/run-lfptostr.c@1.1 +71 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-lfptostr.c
tests/libntp/run-lfptostr.c@1.0 +0 -0
tests/libntp/run-strtolfp.c@1.1 +63 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-strtolfp.c
tests/libntp/run-strtolfp.c@1.0 +0 -0
ChangeSet@1.3429.2.2, 2015-06-19 20:24:45+05:30, loki@dadasgift.(none)
Test - crypto.c from sntp
sntp/tests/Makefile.am@1.40.2.1 +20 -1
sntp/tests/crypto.c@1.1 +127 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/crypto.c
sntp/tests/crypto.c@1.0 +0 -0
sntp/tests/g_crypto.cpp@1.1 +129 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/sntp/tests/g_crypto.cpp
sntp/tests/g_crypto.cpp@1.0 +0 -0
ChangeSet@1.3413.3.4, 2015-06-19 16:06:35+02:00, martin@pc-martin.(none)
More support for smeared leap seconds.
include/ntpd.h@1.190 +2 -0
More support for smeared leap seconds.
ntpd/ntp_config.c@1.329 +1 -0
More support for smeared leap seconds.
ntpd/ntp_control.c@1.197 +18 -1
More support for smeared leap seconds.
ntpd/ntp_leapsec.h@1.13 +1 -0
More support for smeared leap seconds.
ntpd/ntp_proto.c@1.358 +33 -14
More support for smeared leap seconds.
ntpd/ntp_timer.c@1.90 +40 -10
More support for smeared leap seconds.
ChangeSet@1.3435.1.1, 2015-06-19 13:51:57+00:00, viperus@psp-at1.ntp.org
c_fileHandlingTest.h:
added debug printfs, changed path value
kodFile.c:
added debug printfs
sntp/tests/c_fileHandlingTest.h@1.4 +1 -1
added debug printfs, changed path value
sntp/tests/kodFile.c@1.2 +3 -3
added debug printfs
ChangeSet@1.3436, 2015-06-19 15:42:41+02:00, viperus@ubuntu.(none)
kod-output-single, kod-output-blank, kod-output-multiple:
new file
sntp/tests/data/kod-output-blank@1.1 +0 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/kod-output-blank
sntp/tests/data/kod-output-blank@1.0 +0 -0
sntp/tests/data/kod-output-multiple@1.1 +3 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/kod-output-multiple
sntp/tests/data/kod-output-multiple@1.0 +0 -0
sntp/tests/data/kod-output-single@1.1 +1 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/data/kod-output-single
sntp/tests/data/kod-output-single@1.0 +0 -0
ChangeSet@1.3435, 2015-06-19 13:58:37+02:00, viperus@ubuntu.(none)
c_fileHandlingTest.h:
added different paths depening on the build dir, maybe this will work on freebsd
run-keyFile.c:
slight change
sntp/tests/c_fileHandlingTest.h@1.3 +16 -2
added different paths depening on the build dir, maybe this will work on freebsd
sntp/tests/run-keyFile.c@1.3 +1 -0
slight change
ChangeSet@1.3413.3.3, 2015-06-19 08:20:49+00:00, burnicki@psp-deb1.ntp.org
Updates by Harlan.
ntpd/complete.conf.in@1.29 +1 -0
Updates by Harlan.
ntpd/ntp_parser.c@1.95 +1511 -1563
Updates by Harlan.
ntpd/ntp_parser.h@1.60 +230 -220
Updates by Harlan.
ChangeSet@1.3429.1.8, 2015-06-19 07:03:32+00:00, tflendrich@psp-at1.ntp.org
removed generated files that are not longer used
BitKeeper/deleted/01/test-libntp.h~c19218ad555ac21@1.5 +0 -0
Delete: tests/libntp/test-libntp.h
BitKeeper/deleted/17/test-msyslog.c~36cfb2ff59dd5e9@1.2 +0 -0
Delete: tests/libntp/test-msyslog.c
BitKeeper/deleted/2a/test-recvbuff.c~1bf5e94672c41f5@1.2 +0 -0
Delete: tests/libntp/test-recvbuff.c
BitKeeper/deleted/67/test-tstotv.c~3117fe865385504e@1.2 +0 -0
Delete: tests/libntp/test-tstotv.c
BitKeeper/deleted/6f/test-ssl_init.c~2c5bc2112c1aaf15@1.2 +0 -0
Delete: tests/libntp/test-ssl_init.c
BitKeeper/deleted/91/test-vi64ops.c~3812d64e36653bf4@1.2 +0 -0
Delete: tests/libntp/test-vi64ops.c
BitKeeper/deleted/a4/test-libntp.c~4efce7533d11e808@1.7 +0 -0
Delete: tests/libntp/test-libntp.c
BitKeeper/deleted/b9/test-prettydate.c~ce9792d7bb10506b@1.2 +0 -0
Delete: tests/libntp/test-prettydate.c
BitKeeper/deleted/bb/test-caltontp.c~8cc124d6c538f1cb@1.2 +0 -0
Delete: tests/libntp/test-caltontp.c
ChangeSet@1.3429.1.7, 2015-06-19 06:43:05+00:00, tflendrich@psp-at1.ntp.org
deleted old, unused generated files
BitKeeper/deleted/27/run-test-prettydate.c~93d1bdc762261643@1.2 +0 -0
Delete: tests/libntp/run-test-prettydate.c
BitKeeper/deleted/31/run-test-vi64ops.c~ddc8f15be90f476c@1.2 +0 -0
Delete: tests/libntp/run-test-vi64ops.c
BitKeeper/deleted/40/run-test-ssl_init.c~7ed3e3db79be5452@1.2 +0 -0
Delete: tests/libntp/run-test-ssl_init.c
BitKeeper/deleted/55/run-test-caltontp.c~989b072c54cd2ccd@1.2 +0 -0
Delete: tests/libntp/run-test-caltontp.c
BitKeeper/deleted/67/run-test-tstotv.c~48cf1897ca453301@1.2 +0 -0
Delete: tests/libntp/run-test-tstotv.c
BitKeeper/deleted/9f/run-test-msyslog.c~fb1907a46fb63895@1.2 +0 -0
Delete: tests/libntp/run-test-msyslog.c
BitKeeper/deleted/bc/run-test-recvbuff.c~cf87735b269fb6c2@1.2 +0 -0
Delete: tests/libntp/run-test-recvbuff.c
ChangeSet@1.3413.1.3, 2015-06-19 12:04:49+05:30, loki@dadasgift.(none)
lfptostr & strtolfp tests
tests/libntp/Makefile.am@1.64.1.3 +38 -2
ChangeSet@1.3429.1.6, 2015-06-19 06:20:32+00:00, tflendrich@psp-deb1.ntp.org
added autogenerated files
tests/libntp/run-caltontp.c@1.1 +57 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/run-caltontp.c
tests/libntp/run-caltontp.c@1.0 +0 -0
tests/libntp/run-msyslog.c@1.1 +65 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/run-msyslog.c
tests/libntp/run-msyslog.c@1.0 +0 -0
tests/libntp/run-prettydate.c@1.1 +51 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/run-prettydate.c
tests/libntp/run-prettydate.c@1.0 +0 -0
tests/libntp/run-recvbuff.c@1.1 +55 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/run-recvbuff.c
tests/libntp/run-recvbuff.c@1.0 +0 -0
tests/libntp/run-tstotv.c@1.1 +55 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/run-tstotv.c
tests/libntp/run-tstotv.c@1.0 +0 -0
tests/libntp/test-caltontp.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-caltontp.c
tests/libntp/test-caltontp.c@1.0 +0 -0
tests/libntp/test-msyslog.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-msyslog.c
tests/libntp/test-msyslog.c@1.0 +0 -0
tests/libntp/test-prettydate.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-prettydate.c
tests/libntp/test-prettydate.c@1.0 +0 -0
tests/libntp/test-recvbuff.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-recvbuff.c
tests/libntp/test-recvbuff.c@1.0 +0 -0
tests/libntp/test-ssl_init.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-ssl_init.c
tests/libntp/test-ssl_init.c@1.0 +0 -0
tests/libntp/test-tstotv.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-tstotv.c
tests/libntp/test-tstotv.c@1.0 +0 -0
tests/libntp/test-vi64ops.c@1.1 +0 -0
BitKeeper file /home/tflendrich/develpment/harlans/ntp-stable-unity/tests/libntp/test-vi64ops.c
tests/libntp/test-vi64ops.c@1.0 +0 -0
ChangeSet@1.3429.1.5, 2015-06-19 07:09:46+02:00, tomek@tomek-n56vz.(none)
recvbuff.c:
removed testcalshims.h
tests/libntp/recvbuff.c@1.3 +2 -2
removed testcalshims.h
ChangeSet@1.3429.1.4, 2015-06-19 04:16:11+00:00, tflendrich@psp-deb1.ntp.org
Makefile.am:
added -lpthread
tests/libntp/Makefile.am@1.71 +1 -0
added -lpthread
ChangeSet@1.3429.1.3, 2015-06-19 05:59:58+02:00, tomek@tomek-n56vz.(none)
fixed a makefile: it didn't work if we had gtest enabled
sntp/tests/Makefile.am@1.40.1.1 +2 -2
sntp/tests/g_keyFile.cpp@1.4.1.1 +0 -0
Rename: sntp/tests/keyFile.cpp -> sntp/tests/g_keyFile.cpp
tests/libntp/Makefile.am@1.70 +106 -11
ChangeSet@1.3434, 2015-06-19 03:25:54+02:00, viperus@ubuntu.(none)
tests/libntp/run-caljulian.c@1.7 +4 -4
ChangeSet@1.3433, 2015-06-19 03:13:24+02:00, viperus@ubuntu.(none)
g_kodFile.cpp:
Rename: sntp/tests/kodFile.cpp -> sntp/tests/g_kodFile.cpp
g_keyFile.cpp:
Rename: sntp/tests/keyFile.cpp -> sntp/tests/g_keyFile.cpp
run-kodFile.c, kodFile.c:
new file
Makefile.am:
replaced ../version.c with $(top_builddir)/version.c. Converted new test.
c_fileHandlingTest.h:
converted all functions from C++ to C
keyFile.c:
uncommented all functions, 90% converted
sntp/tests/Makefile.am@1.41 +26 -4
replaced ../version.c with $(top_builddir)/version.c. Converted new test.
sntp/tests/c_fileHandlingTest.h@1.2 +53 -26
converted all functions from C++ to C
sntp/tests/g_keyFile.cpp@1.5 +0 -0
Rename: sntp/tests/keyFile.cpp -> sntp/tests/g_keyFile.cpp
sntp/tests/g_kodFile.cpp@1.9 +0 -0
Rename: sntp/tests/kodFile.cpp -> sntp/tests/g_kodFile.cpp
sntp/tests/keyFile.c@1.2 +51 -47
uncommented all functions, 90% converted
sntp/tests/kodFile.c@1.1 +142 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/kodFile.c
sntp/tests/kodFile.c@1.0 +0 -0
sntp/tests/run-keyFile.c@1.2 +10 -0
sntp/tests/run-kodFile.c@1.1 +61 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-kodFile.c
sntp/tests/run-kodFile.c@1.0 +0 -0
ChangeSet@1.3432, 2015-06-18 23:33:19+02:00, viperus@ubuntu.(none)
caljulian.c:
replacing malloc.h with "ntp_stdlib.h"
tests/libntp/caljulian.c@1.6 +3 -1
replacing malloc.h with "ntp_stdlib.h"
ChangeSet@1.3413.3.2, 2015-06-18 18:05:44+02:00, martin@pc-martin.(none)
Started to support leap smear.
include/ntpd.h@1.189 +1 -0
Started to support leap smear.
ntpd/keyword-gen-utd@1.24 +1 -1
Started to support leap smear.
ntpd/keyword-gen.c@1.30 +17 -16
Started to support leap smear.
ntpd/ntp_config.c@1.328 +5 -1
Started to support leap smear.
ntpd/ntp_io.c@1.402 +2 -1
Started to support leap smear.
ntpd/ntp_keyword.h@1.26 +670 -656
Started to support leap smear.
ntpd/ntp_leapsec.h@1.12 +12 -0
Started to support leap smear.
ntpd/ntp_parser.c@1.94 +2031 -1971
Started to support leap smear.
ntpd/ntp_parser.h@1.59 +339 -345
Started to support leap smear.
ntpd/ntp_parser.y@1.86 +51 -46
Started to support leap smear.
ntpd/ntp_proto.c@1.357 +35 -2
Started to support leap smear.
ntpd/ntp_timer.c@1.89 +55 -9
Started to support leap smear.
ChangeSet@1.3413.3.1, 2015-06-18 16:45:21+02:00, martin@pc-martin.(none)
Removed trailing whitespace.
ntpd/ntp_leapsec.c@1.22 +17 -17
Removed trailing whitespace.
ntpd/ntp_leapsec.h@1.11 +2 -2
Removed trailing whitespace.
ntpd/ntp_timer.c@1.88 +6 -6
Removed trailing whitespace.
ChangeSet@1.3429.1.1, 2015-06-18 08:48:31+00:00, stenn@psp-at1.ntp.org
typo
sntp/tests/Makefile.am@1.40 +1 -1
typo
ChangeSet@1.3429, 2015-06-18 08:34:39+00:00, stenn@psp-at1.ntp.org
sntp/tests/networking.c build fixes
sntp/tests/Makefile.am@1.39 +2 -1
sntp/tests/networking.c build fixes
ChangeSet@1.3427.1.2, 2015-06-18 10:21:18+02:00, viperus@ubuntu.(none)
caljulian.c:
included malloc.h to avoid implicit declaration
tests/libntp/caljulian.c@1.5 +1 -0
included malloc.h to avoid implicit declaration
tests/libntp/run-caljulian.c@1.6 +4 -4
ChangeSet@1.3427.1.1, 2015-06-18 10:09:02+02:00, viperus@ubuntu.(none)
ssl_init.c:
fixing a test bug with #ifdef OPENSSL
tests/libntp/run-ssl_init.c@1.1.1.1 +2 -0
tests/libntp/ssl_init.c@1.2.1.1 +5 -2
fixing a test bug with #ifdef OPENSSL
ChangeSet@1.3428, 2015-06-18 08:05:23+00:00, stenn@psp-at1.ntp.org
Unity ssl_init typo fix
tests/libntp/run-ssl_init.c@1.2 +2 -0
Unity ssl_init typo fix
tests/libntp/ssl_init.c@1.3 +1 -1
Unity ssl_init typo fix
ChangeSet@1.3427, 2015-06-18 07:55:11+00:00, stenn@psp-at1.ntp.org
Unity update to sntp/Makefile.am
sntp/Makefile.am@1.84 +0 -2
Unity update to sntp/Makefile.am
ChangeSet@1.3426, 2015-06-18 07:49:21+00:00, stenn@psp-at1.ntp.org
Unity cleanup
BitKeeper/deleted/46/run-test-keyFile.c~4bf68803bc8e2c40@1.2 +0 -0
Delete: sntp/tests/run-test-keyFile.c
BitKeeper/deleted/56/run-test-kodDatabase.c~d8bb8b62b1e08d30@1.2 +0 -0
Delete: sntp/tests/run-test-kodDatabase.c
BitKeeper/deleted/fc/run-test-networking.c~b2cd2d50f3d83a90@1.2 +0 -0
Delete: sntp/tests/run-test-networking.c
sntp/tests/Makefile.am@1.38 +19 -17
Unity cleanup
ChangeSet@1.3425, 2015-06-18 09:06:24+02:00, viperus@ubuntu.(none)
removing duplicate file
BitKeeper/deleted/61/socktoa.cpp~151e8671c6e040ac@1.3 +0 -0
Delete: tests/libntp/socktoa.cpp
ChangeSet@1.3424, 2015-06-18 09:04:46+02:00, viperus@ubuntu.(none)
run-keyFile.c, run-networking.c, run-kodDatabase.c:
new file
Makefile.am:
hopefully fixing bug-2852
sntp/tests/run-keyFile.c@1.1 +49 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-keyFile.c
sntp/tests/run-keyFile.c@1.0 +0 -0
sntp/tests/run-kodDatabase.c@1.1 +59 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-kodDatabase.c
sntp/tests/run-kodDatabase.c@1.0 +0 -0
sntp/tests/run-networking.c@1.1 +49 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-networking.c
sntp/tests/run-networking.c@1.0 +0 -0
tests/libntp/Makefile.am@1.68 +1 -1
hopefully fixing bug-2852
ChangeSet@1.3423, 2015-06-17 19:45:59+02:00, viperus@ubuntu.(none)
clocktime.c:
fixed the warning about implicit declaration, because mike_t said so, and mike_t is a wizard XD
bug-2803.c:
added declarations at the top of the file to fix warnings
tests/bug-2803/bug-2803.c@1.5 +4 -1
added declarations at the top of the file to fix warnings
tests/bug-2803/run-bug-2803.c@1.5 +4 -2
tests/libntp/clocktime.c@1.2 +6 -0
fixed the warning about implicit declaration, because mike_t said so, and mike_t is a wizard XD
tests/libntp/run-clocktime.c@1.3 +8 -8
ChangeSet@1.3422, 2015-06-17 13:26:20+02:00, viperus@ubuntu.(none)
Makefile.am:
minor cleanup
sntp/tests/Makefile.am@1.37 +2 -2
minor cleanup
ChangeSet@1.3421, 2015-06-17 13:17:39+02:00, viperus@ubuntu.(none)
run-ssl_init.c:
new file
ssl_init.c:
fix for minor #else warning
Makefile.am:
modified /sntp/tests/Makefile.am so it is consistent to harlans /tests/libntp/Makefile.am changes, including the run-test-* -> run-*
fixed the stuff I broke with automerge XD
sntp/tests/Makefile.am@1.36 +18 -17
modified /sntp/tests/Makefile.am so it is consistent to harlans /tests/libntp/Makefile.am changes, including the run-test-* -> run-*
tests/libntp/Makefile.am@1.67 +15 -9
fixed the stuff I broke with automerge XD
tests/libntp/run-ssl_init.c@1.1 +57 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-ssl_init.c
tests/libntp/run-ssl_init.c@1.0 +0 -0
tests/libntp/ssl_init.c@1.2 +2 -1
fix for minor #else warning
ChangeSet@1.3413.2.1, 2015-06-17 15:12:46+05:30, loki@dadasgift.(none)
Changes for <lfptostr> & <strtolfp> tests
tests/libntp/Makefile.am@1.64.2.1 +41 -3
tests/libntp/g_lfptostr.cpp@1.1 +103 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_lfptostr.cpp
tests/libntp/g_lfptostr.cpp@1.0 +0 -0
tests/libntp/g_strtolfp.cpp@1.1 +107 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_strtolfp.cpp
tests/libntp/g_strtolfp.cpp@1.0 +0 -0
tests/libntp/lfptostr.c@1.1 +102 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/lfptostr.c
tests/libntp/lfptostr.c@1.0 +0 -0
tests/libntp/strtolfp.c@1.1 +112 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/strtolfp.c
tests/libntp/strtolfp.c@1.0 +0 -0
ChangeSet@1.3419, 2015-06-17 11:30:50+02:00, viperus@ubuntu.(none)
Many files:
new file
Makefile.am:
removed keyFile test from check_Programs for now
sntp/tests/Makefile.am@1.35 +19 -2
removed keyFile test from check_Programs for now
sntp/tests/c_fileHandlingTest.h@1.1 +63 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/c_fileHandlingTest.h
sntp/tests/c_fileHandlingTest.h@1.0 +0 -0
sntp/tests/keyFile.c@1.1 +136 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/keyFile.c
sntp/tests/keyFile.c@1.0 +0 -0
sntp/tests/kodDatabase.c@1.1 +126 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/kodDatabase.c
sntp/tests/kodDatabase.c@1.0 +0 -0
sntp/tests/run-test-keyFile.c@1.1 +49 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-test-keyFile.c
sntp/tests/run-test-keyFile.c@1.0 +0 -0
sntp/tests/run-test-kodDatabase.c@1.1 +59 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-test-kodDatabase.c
sntp/tests/run-test-kodDatabase.c@1.0 +0 -0
ChangeSet@1.3418, 2015-06-17 11:03:42+02:00, viperus@ubuntu.(none)
g_kodDatabase.cpp:
Rename: sntp/tests/kodDatabase.cpp -> sntp/tests/g_kodDatabase.cpp
g_networking.cpp:
Rename: sntp/tests/networking.cpp -> sntp/tests/g_networking.cpp
Makefile.am:
renamed *.cpp files to g_*.cpp
sntp/tests/Makefile.am@1.34 +2 -2
renamed *.cpp files to g_*.cpp
sntp/tests/g_kodDatabase.cpp@1.4 +0 -0
Rename: sntp/tests/kodDatabase.cpp -> sntp/tests/g_kodDatabase.cpp
sntp/tests/g_networking.cpp@1.9 +0 -0
Rename: sntp/tests/networking.cpp -> sntp/tests/g_networking.cpp
ChangeSet@1.3417, 2015-06-17 10:59:42+02:00, viperus@ubuntu.(none)
Makefile.am:
builds another test
added ../version.c so kodDatabase builds. Should be done via a rule, needs fixing!
added c_fileHandlingTest.h to noinst_HEADERS
GTEST_AVAILABLE check moved into /sntp/tests/Makefile.am so unity tests can be run
sntp/Makefile.am@1.83 +2 -2
GTEST_AVAILABLE check moved into /sntp/tests/Makefile.am so unity tests can be run
sntp/tests/Makefile.am@1.33 +7 -5
added ../version.c so kodDatabase builds. Should be done via a rule, needs fixing!
sntp/tests/Makefile.am@1.32 +21 -1
builds another test
sntp/tests/Makefile.am@1.31 +1 -0
added c_fileHandlingTest.h to noinst_HEADERS
ChangeSet@1.3413.1.1, 2015-06-17 04:05:10-04:00, stenn@deacon.udel.edu
clean up unity test names
BitKeeper/deleted/b6/Makefile-~7d9ad3536b5db654@1.2 +0 -0
Delete: tests/bug-2803/Makefile-
BitKeeper/deleted/b8/test-2803.c~ba74ad843e357700@1.2 +0 -0
Delete: tests/bug-2803/test-2803.c
bootstrap@1.49 +2 -2
clean up unity test names
tests/bug-2803/Makefile.am@1.11 +3 -3
clean up unity test names
tests/bug-2803/bug-2803.c@1.4 +0 -0
Rename: tests/bug-2803/ut-2803.c -> tests/bug-2803/bug-2803.c
tests/libntp/Makefile.am@1.64.1.1 +194 -194
clean up unity test names
tests/libntp/run-a_md5encrypt.c@1.8 +0 -0
Rename: tests/libntp/run-test-a_md5encrypt.c -> tests/libntp/run-a_md5encrypt.c
tests/libntp/run-atoint.c@1.6 +0 -0
Rename: tests/libntp/run-test-atoint.c -> tests/libntp/run-atoint.c
tests/libntp/run-atouint.c@1.6 +0 -0
Rename: tests/libntp/run-test-atouint.c -> tests/libntp/run-atouint.c
tests/libntp/run-authkeys.c@1.7 +0 -0
Rename: tests/libntp/run-test-authkeys.c -> tests/libntp/run-authkeys.c
tests/libntp/run-calendar.c@1.3 +0 -0
Rename: tests/libntp/run-test-calendar.c -> tests/libntp/run-calendar.c
tests/libntp/run-caljulian.c@1.5 +0 -0
Rename: tests/libntp/run-test-caljulian.c -> tests/libntp/run-caljulian.c
tests/libntp/run-calyearstart.c@1.3 +0 -0
Rename: tests/libntp/run-test-calyearstart.c -> tests/libntp/run-calyearstart.c
tests/libntp/run-clocktime.c@1.2 +0 -0
Rename: tests/libntp/run-test-clocktime.c -> tests/libntp/run-clocktime.c
tests/libntp/run-decodenetnum.c@1.2 +0 -0
Rename: tests/libntp/run-test-decodenetnum.c -> tests/libntp/run-decodenetnum.c
tests/libntp/run-hextoint.c@1.6 +0 -0
Rename: tests/libntp/run-test-hextoint.c -> tests/libntp/run-hextoint.c
tests/libntp/run-hextolfp.c@1.2 +0 -0
Rename: tests/libntp/run-test-hextolfp.c -> tests/libntp/run-hextolfp.c
tests/libntp/run-lfpfunc.c@1.8 +0 -0
Rename: tests/libntp/run-test-lfpfunc.c -> tests/libntp/run-lfpfunc.c
tests/libntp/run-modetoa.c@1.7 +0 -0
Rename: tests/libntp/run-test-modetoa.c -> tests/libntp/run-modetoa.c
tests/libntp/run-netof.c@1.2 +0 -0
Rename: tests/libntp/run-test-netof.c -> tests/libntp/run-netof.c
tests/libntp/run-numtoa.c@1.6 +0 -0
Rename: tests/libntp/run-test-numtoa.c -> tests/libntp/run-numtoa.c
tests/libntp/run-numtohost.c@1.6 +0 -0
Rename: tests/libntp/run-test-numtohost.c -> tests/libntp/run-numtohost.c
tests/libntp/run-octtoint.c@1.3 +0 -0
Rename: tests/libntp/run-test-octtoint.c -> tests/libntp/run-octtoint.c
tests/libntp/run-refnumtoa.c@1.2 +0 -0
Rename: tests/libntp/run-test-refnumtoa.c -> tests/libntp/run-refnumtoa.c
tests/libntp/run-socktoa.c@1.2.1.1 +0 -0
Rename: tests/libntp/run-test-socktoa.c -> tests/libntp/run-socktoa.c
tests/libntp/run-statestr.c@1.6 +0 -0
Rename: tests/libntp/run-test-statestr.c -> tests/libntp/run-statestr.c
tests/libntp/run-timespecops.c@1.2 +0 -0
Rename: tests/libntp/run-test-timespecops.c -> tests/libntp/run-timespecops.c
tests/libntp/run-timevalops.c@1.4 +0 -0
Rename: tests/libntp/run-test-timevalops.c -> tests/libntp/run-timevalops.c
tests/libntp/run-uglydate.c@1.6 +0 -0
Rename: tests/libntp/run-test-uglydate.c -> tests/libntp/run-uglydate.c
tests/libntp/run-vi64ops.c@1.2 +0 -0
Rename: tests/libntp/run-test-vi64ops.c -> tests/libntp/run-vi64ops.c
tests/libntp/run-ymd2yd.c@1.6 +0 -0
Rename: tests/libntp/run-test-ymd2yd.c -> tests/libntp/run-ymd2yd.c
tests/sandbox/Makefile.am@1.3 +19 -20
clean up unity test names
tests/sandbox/run-modetoa.c@1.2 +0 -0
Rename: tests/sandbox/run-second-test.c -> tests/sandbox/run-modetoa.c
tests/sandbox/run-uglydate.c@1.2 +0 -0
Rename: tests/sandbox/run-first-test.c -> tests/sandbox/run-uglydate.c
ChangeSet@1.3416, 2015-06-17 09:35:55+02:00, viperus@ubuntu.(none)
run-test-networking.c, c_sntptest.h:
new file
networking.c:
added c_sntptest.h include
Makefile.am:
modified so Makefile.am runs unity tests and gtests
sntp/tests/Makefile.am@1.30 +24 -9
modified so Makefile.am runs unity tests and gtests
sntp/tests/c_sntptest.h@1.1 +32 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/c_sntptest.h
sntp/tests/c_sntptest.h@1.0 +0 -0
sntp/tests/networking.c@1.2 +4 -1
added c_sntptest.h include
sntp/tests/run-test-networking.c@1.1 +49 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/run-test-networking.c
sntp/tests/run-test-networking.c@1.0 +0 -0
ChangeSet@1.3415, 2015-06-17 08:47:17+02:00, viperus@ubuntu.(none)
networking.c:
new file
Makefile.am:
started adding unity test framework support
sntp/tests/Makefile.am@1.29 +36 -1
started adding unity test framework support
sntp/tests/networking.c@1.1 +4 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/sntp/tests/networking.c
sntp/tests/networking.c@1.0 +0 -0
ChangeSet@1.3414, 2015-06-17 07:45:38+02:00, viperus@ubuntu.(none)
ssl_init.c, run-test-ssl_init.c:
new file
Makefile.am:
added ssl-init.c building
g_ssl_init.cpp:
Rename: tests/libntp/ssl_init.cpp -> tests/libntp/g_ssl_init.cpp
tests/libntp/Makefile.am@1.65 +21 -2
added ssl-init.c building
tests/libntp/g_ssl_init.cpp@1.4 +0 -0
Rename: tests/libntp/ssl_init.cpp -> tests/libntp/g_ssl_init.cpp
tests/libntp/run-test-socktoa.c@1.3 +1 -1
tests/libntp/run-test-ssl_init.c@1.1 +57 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-ssl_init.c
tests/libntp/run-test-ssl_init.c@1.0 +0 -0
tests/libntp/ssl_init.c@1.1 +53 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/ssl_init.c
tests/libntp/ssl_init.c@1.0 +0 -0
ChangeSet@1.3413, 2015-06-16 18:48:26+02:00, viperus@ubuntu.(none)
socktoa.c:
added new function which replaces EXPECT_NE from gtest
tests/libntp/run-test-socktoa.c@1.2 +1 -1
tests/libntp/socktoa.c@1.2 +4 -0
added new function which replaces EXPECT_NE from gtest
ChangeSet@1.3412, 2015-06-16 18:29:22+02:00, viperus@ubuntu.(none)
forgot to rename old .cpp file
tests/libntp/g_timespecops.cpp@1.9 +0 -0
Rename: tests/libntp/timespecops.cpp -> tests/libntp/g_timespecops.cpp
ChangeSet@1.3411, 2015-06-16 18:26:31+02:00, viperus@ubuntu.(none)
timespecops.c : 95% done, lacks printf error messages. Contains 2 unity_helper functions which should be moved ot unity_helper.h
tests/libntp/Makefile.am@1.64 +19 -1
tests/libntp/run-test-timespecops.c@1.1 +105 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-timespecops.c
tests/libntp/run-test-timespecops.c@1.0 +0 -0
tests/libntp/run-test-timevalops.c@1.3 +5 -1
tests/libntp/timespecops.c@1.1 +588 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/timespecops.c
tests/libntp/timespecops.c@1.0 +0 -0
tests/libntp/timevalops.c@1.4 +9 -9
forgot to uncomment a few converted functions
ChangeSet@1.3410, 2015-06-16 16:45:06+02:00, viperus@ubuntu.(none)
timevalops.c:
95% done, a few printfs in case of an error have to be converted
tests/libntp/run-test-timevalops.c@1.2 +32 -20
tests/libntp/timevalops.c@1.3 +81 -45
95% done, a few printfs in case of an error have to be converted
ChangeSet@1.3409, 2015-06-16 15:33:51+02:00, viperus@ubuntu.(none)
timevalops.c:
replaced TEST_ASSERT_EQUAL_INT64 with TEST_ASSERT_EQUAL() (TEST_ASSER_EQUAL_INT() also autodetects 32 bit or 64 bit long int, which time_t uses)
tests/libntp/timevalops.c@1.2 +1 -1
replaced TEST_ASSERT_EQUAL_INT64 with TEST_ASSERT_EQUAL() (TEST_ASSER_EQUAL_INT() also autodetects 32 bit or 64 bit long int, which time_t uses)
ChangeSet@1.3408, 2015-06-16 12:46:58+02:00, viperus@ubuntu.(none)
Makefile.am:
added building timevalops.c
run-test-timevalops.c, timevalops.c:
new file
lfpfunc.c:
removed sstream
g_timevalops.cpp:
Rename: tests/libntp/timevalops.cpp -> tests/libntp/g_timevalops.cpp
tests/libntp/Makefile.am@1.63 +20 -1
added building timevalops.c
tests/libntp/g_timevalops.cpp@1.9 +0 -0
Rename: tests/libntp/timevalops.cpp -> tests/libntp/g_timevalops.cpp
tests/libntp/lfpfunc.c@1.5 +1 -2
removed sstream
tests/libntp/run-test-lfpfunc.c@1.7 +9 -9
tests/libntp/run-test-timevalops.c@1.1 +89 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-timevalops.c
tests/libntp/run-test-timevalops.c@1.0 +0 -0
tests/libntp/timevalops.c@1.1 +564 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/timevalops.c
tests/libntp/timevalops.c@1.0 +0 -0
ChangeSet@1.3407, 2015-06-16 01:29:44+02:00, viperus@ubuntu.(none)
Makefile.am:
added -lpthread to decodenetnum_LDADD. Temporary solution, until I get an answer from jnperlin
tests/libntp/Makefile.am@1.62 +1 -0
added -lpthread to decodenetnum_LDADD. Temporary solution, until I get an answer from jnperlin
ChangeSet@1.3406, 2015-06-16 00:54:42+02:00, viperus@ubuntu.(none)
c_sockaddrtest.h:
removed stuff like 1==1 with TRUE. Also added cin cout stuff, should be replaced b
Many files:
new file
Makefile.am:
fixes to Lokesh-Damir merge, added new .h to noinst_SOURCES
c_lfptest.h:
put the static vars back in here, removed them from hextolfp.c, because more files will need them.
hextolfp.c:
removed static consts, placed them in c_lpftest.h
octtoint.c:
removed outdates testcalshims.h, replaced with required includes
tests/libntp/Makefile.am@1.61 +62 -45
fixes to Lokesh-Damir merge, added new .h to noinst_SOURCES
tests/libntp/c_lfptest.h@1.2 +15 -2
put the static vars back in here, removed them from hextolfp.c, because more files will need them.
tests/libntp/c_sockaddrtest.h@1.2 +14 -6
removed stuff like 1==1 with TRUE. Also added cin cout stuff, should be replaced b
tests/libntp/hextolfp.c@1.3 +0 -7
removed static consts, placed them in c_lpftest.h
tests/libntp/octtoint.c@1.2 +4 -1
removed outdates testcalshims.h, replaced with required includes
tests/libntp/run-test-decodenetnum.c@1.1 +61 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-decodenetnum.c
tests/libntp/run-test-decodenetnum.c@1.0 +0 -0
tests/libntp/run-test-hextolfp.c@1.1 +61 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-hextolfp.c
tests/libntp/run-test-hextolfp.c@1.0 +0 -0
tests/libntp/run-test-netof.c@1.1 +57 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-netof.c
tests/libntp/run-test-netof.c@1.0 +0 -0
tests/libntp/run-test-octtoint.c@1.2 +11 -8
tests/libntp/run-test-socktoa.c@1.1 +61 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-socktoa.c
tests/libntp/run-test-socktoa.c@1.0 +0 -0
ChangeSet@1.3383.1.7, 2015-06-15 23:53:38+05:30, loki@dadasgift.(none)
Changes wrt to <socktoa> test
tests/libntp/Makefile.am@1.59 +27 -8
tests/libntp/g_socktoa.cpp@1.1 +100 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_socktoa.cpp
tests/libntp/g_socktoa.cpp@1.0 +0 -0
tests/libntp/socktoa.c@1.1 +103 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/socktoa.c
tests/libntp/socktoa.c@1.0 +0 -0
ChangeSet@1.3383.1.6, 2015-06-15 11:59:18+05:30, loki@dadasgift.(none)
Changes for <decodenetnum> test
tests/libntp/Makefile.am@1.58 +16 -3
tests/libntp/decodenetnum.c@1.1 +96 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/decodenetnum.c
tests/libntp/decodenetnum.c@1.0 +0 -0
tests/libntp/g_decodenetnum.cpp@1.1 +93 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_decodenetnum.cpp
tests/libntp/g_decodenetnum.cpp@1.0 +0 -0
ChangeSet@1.3383.1.5, 2015-06-15 11:21:38+05:30, loki@dadasgift.(none)
Changes wrt to <hextolfp> test
tests/libntp/c_lfptest.h@1.1 +17 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/c_lfptest.h
tests/libntp/c_lfptest.h@1.0 +0 -0
tests/libntp/hextolfp.c@1.2 +24 -17
tests/libntp/lfptest.h@1.5 +0 -23
ChangeSet@1.3383.1.4, 2015-06-15 11:05:04+05:30, loki@dadasgift.(none)
Changes for <netof> tests
tests/libntp/c_sockaddrtest.h@1.1 +49 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/c_sockaddrtest.h
tests/libntp/c_sockaddrtest.h@1.0 +0 -0
tests/libntp/netof.c@1.2 +1 -1
tests/libntp/sockaddrtest.h@1.3 +0 -52
ChangeSet@1.3391.1.6, 2015-06-15 01:34:31+02:00, tomek@tomek-n56vz.(none)
Makefile.am:
fixed double definition of something
tests/libntp/Makefile.am@1.54.3.3 +0 -6
fixed double definition of something
ChangeSet@1.3391.1.5, 2015-06-15 01:12:49+02:00, tomek@tomek-n56vz.(none)
Makefile.am:
missing backslashes added
tests/libntp/Makefile.am@1.54.3.2 +10 -10
missing backslashes added
ChangeSet@1.3391.1.4, 2015-06-15 00:51:33+02:00, tomek@tomek-n56vz.(none)
vi64ops.c:
used a simpler assertion
tests/libntp/vi64ops.c@1.2 +6 -6
used a simpler assertion
ChangeSet@1.3391.1.3, 2015-06-15 00:49:59+02:00, tomek@tomek-n56vz.(none)
used TEST_ASSERT_NULL instead of ASSERT_TRUE(ptr == NULL) in test/libntp/recvbuff.c
tests/libntp/recvbuff.c@1.2 +1 -1
ChangeSet@1.3391.1.2, 2015-06-15 00:45:57+02:00, tomek@tomek-n56vz.(none)
edited a makefile in test/libntp to build those tests
tests/libntp/Makefile.am@1.54.3.1 +108 -7
ChangeSet@1.3391.1.1, 2015-06-15 00:42:12+02:00, tomek@tomek-n56vz.(none)
converted a bunch of test from GTest to Unity in test/libntp/
BitKeeper/deleted/5b/msyslog.c~2253255e7e9701a2@1.2 +0 -0
Delete: tests/libntp/msyslog.c
tests/libntp/msyslog.c@1.1 +137 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/msyslog.c
tests/libntp/msyslog.c@1.0 +0 -0
BitKeeper/deleted/5e/prettydate.cpp~f50578082d92e04@1.4 +0 -0
Delete: tests/libntp/prettydate.cpp
BitKeeper/deleted/8d/tstotv.cpp~44f3d9a5f5de991@1.3 +0 -0
Delete: tests/libntp/tstotv.cpp
BitKeeper/deleted/a9/recvbuff.cpp~64ef3a6926361d4@1.2 +0 -0
Delete: tests/libntp/recvbuff.cpp
BitKeeper/deleted/bb/caltontp.cpp~625109d015181aab@1.2 +0 -0
Delete: tests/libntp/caltontp.cpp
BitKeeper/deleted/d2/vi64ops.cpp~8587c242374ab4ce@1.1.1.1 +0 -0
Delete: tests/libntp/vi64ops.cpp
BitKeeper/deleted/e2/msyslog.cpp~439edfb748fb30dd@1.4 +0 -0
Delete: tests/libntp/msyslog.cpp
tests/libntp/caltontp.c@1.1 +48 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/caltontp.c
tests/libntp/caltontp.c@1.0 +0 -0
tests/libntp/g_caltontp.cpp@1.1 +49 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_caltontp.cpp
tests/libntp/g_caltontp.cpp@1.0 +0 -0
tests/libntp/g_msyslog.cpp@1.1 +137 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_msyslog.cpp
tests/libntp/g_msyslog.cpp@1.0 +0 -0
tests/libntp/g_prettydate.cpp@1.1 +16 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_prettydate.cpp
tests/libntp/g_prettydate.cpp@1.0 +0 -0
tests/libntp/g_recvbuff.cpp@1.1 +38 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_recvbuff.cpp
tests/libntp/g_recvbuff.cpp@1.0 +0 -0
tests/libntp/g_tstotv.cpp@1.1 +57 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_tstotv.cpp
tests/libntp/g_tstotv.cpp@1.0 +0 -0
tests/libntp/g_vi64ops.cpp@1.1 +64 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/g_vi64ops.cpp
tests/libntp/g_vi64ops.cpp@1.0 +0 -0
tests/libntp/msyslog.c@1.1 +137 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/msyslog.c
tests/libntp/msyslog.c@1.0 +0 -0
tests/libntp/prettydate.c@1.1 +16 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/prettydate.c
tests/libntp/prettydate.c@1.0 +0 -0
tests/libntp/recvbuff.c@1.1 +43 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/recvbuff.c
tests/libntp/recvbuff.c@1.0 +0 -0
tests/libntp/run-test-caltontp.c@1.1 +57 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-caltontp.c
tests/libntp/run-test-caltontp.c@1.0 +0 -0
tests/libntp/run-test-msyslog.c@1.1 +65 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-msyslog.c
tests/libntp/run-test-msyslog.c@1.0 +0 -0
tests/libntp/run-test-prettydate.c@1.1 +51 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-prettydate.c
tests/libntp/run-test-prettydate.c@1.0 +0 -0
tests/libntp/run-test-recvbuff.c@1.1 +55 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-recvbuff.c
tests/libntp/run-test-recvbuff.c@1.0 +0 -0
tests/libntp/run-test-tstotv.c@1.1 +55 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-tstotv.c
tests/libntp/run-test-tstotv.c@1.0 +0 -0
tests/libntp/run-test-vi64ops.c@1.1 +55 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/run-test-vi64ops.c
tests/libntp/run-test-vi64ops.c@1.0 +0 -0
tests/libntp/tstotv.c@1.1 +42 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/tstotv.c
tests/libntp/tstotv.c@1.0 +0 -0
tests/libntp/vi64ops.c@1.1 +52 -0
BitKeeper file /home/tomek/ntp/kod/harlans/ntp-stable-unity/tests/libntp/vi64ops.c
tests/libntp/vi64ops.c@1.0 +0 -0
ChangeSet@1.3404, 2015-06-14 19:01:51+02:00, viperus@ubuntu.(none)
Makefile.am:
added -lpthread to test_caljuliaj_LDADD, because it's not in $(PTHREAD_LIBS)
tests/libntp/Makefile.am@1.54.1.9 +1 -0
added -lpthread to test_caljuliaj_LDADD, because it's not in $(PTHREAD_LIBS)
ChangeSet@1.3403, 2015-06-14 18:42:02+02:00, viperus@ubuntu.(none)
Makefile.am:
added test-libntp.h in noinst_HEADERS, otherwise you can't build make distcheck on my ubuntu
tests/libntp/Makefile.am@1.54.1.8 +1 -0
added test-libntp.h in noinst_HEADERS, otherwise you can't build make distcheck on my ubuntu
ChangeSet@1.3402, 2015-06-14 18:34:38+02:00, viperus@ubuntu.(none)
testlibntp.c:
Rename: tests/libntp/test-libntp.c -> tests/libntp/testlibntp.c
testlibntp.h:
Rename: tests/libntp/test-libntp.h -> tests/libntp/testlibntp.h
test-libntp.h:
Rename: tests/libntp/testlibntp.h -> tests/libntp/test-libntp.h
test-libntp.c:
Rename: tests/libntp/testlibntp.c -> tests/libntp/test-libntp.c
tests/libntp/test-libntp.c@1.6 +0 -0
Rename: tests/libntp/testlibntp.c -> tests/libntp/test-libntp.c
tests/libntp/testlibntp.c@1.5 +0 -0
Rename: tests/libntp/test-libntp.c -> tests/libntp/testlibntp.c
tests/libntp/test-libntp.h@1.4 +0 -0
Rename: tests/libntp/testlibntp.h -> tests/libntp/test-libntp.h
tests/libntp/testlibntp.h@1.3 +0 -0
Rename: tests/libntp/test-libntp.h -> tests/libntp/testlibntp.h
ChangeSet@1.3401, 2015-06-14 16:17:06+00:00, viperus@psp-deb1.ntp.org
Makefile.am:
removed the folder /unity-framework/
Makefile.am@1.131 +0 -1
removed the folder /unity-framework/
ChangeSet@1.3400, 2015-06-14 16:14:29+00:00, viperus@psp-deb1.ntp.org
ProductionCode.h~fac233823798db21:
Delete: tests/unity-framework/ProductionCode.h
TestProductionCode.c~4b9dea2fdb531435:
Delete: tests/unity-framework/TestProductionCode.c
TestProductionCode_Runner.c~41a4ba4b8da8c72e:
Delete: tests/unity-framework/TestProductionCode_Runner.c
ProductionCode.c~2c2bc4c32341b018:
Delete: tests/unity-framework/ProductionCode.c
BitKeeper/deleted/87/TestProductionCode.c~4b9dea2fdb531435@1.2 +0 -0
Delete: tests/unity-framework/TestProductionCode.c
BitKeeper/deleted/88/ProductionCode.h~fac233823798db21@1.2 +0 -0
Delete: tests/unity-framework/ProductionCode.h
BitKeeper/deleted/ae/ProductionCode.c~2c2bc4c32341b018@1.2 +0 -0
Delete: tests/unity-framework/ProductionCode.c
BitKeeper/deleted/af/TestProductionCode_Runner.c~41a4ba4b8da8c72e@1.2 +0 -0
Delete: tests/unity-framework/TestProductionCode_Runner.c
ChangeSet@1.3383.1.3, 2015-06-14 20:28:01+05:30, loki@dadasgift.(none)
Files related to <netof> test
tests/libntp/Makefile.am@1.57 +19 -2
tests/libntp/sockaddrtest.h@1.2 +53 -0
ChangeSet@1.3383.1.2, 2015-06-14 20:26:51+05:30, loki@dadasgift.(none)
Files related to <netof> test
tests/libntp/g_netof.cpp@1.1 +69 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_netof.cpp
tests/libntp/g_netof.cpp@1.0 +0 -0
tests/libntp/netof.c@1.1 +74 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/netof.c
tests/libntp/netof.c@1.0 +0 -0
ChangeSet@1.3399, 2015-06-14 12:22:39+00:00, viperus@psp-at1.ntp.org
g_calendar.cpp:
Rename: tests/libntp/calendar.cpp -> tests/libntp/g_calendar.cpp
Makefile.am:
renamed calendar.cpp to g_calendar.cpp, reflecting changes in Makefile.am
tests/libntp/Makefile.am@1.54.1.7 +2 -1
renamed calendar.cpp to g_calendar.cpp, reflecting changes in Makefile.am
tests/libntp/g_calendar.cpp@1.2 +0 -0
Rename: tests/libntp/calendar.cpp -> tests/libntp/g_calendar.cpp
ChangeSet@1.3398, 2015-06-14 11:56:02+02:00, viperus@ubuntu.(none)
bug-2803.h~388af97e65bf386e:
Delete: tests/bug-2803/bug-2803.h
TestProductionCode_Runner.c~1dd6cbb7f125c42a:
Delete: tests/bug-2803/TestProductionCode_Runner.c
bug-2803.c~75ddf194e9fda1b8:
Delete: tests/bug-2803/bug-2803.c
Makefile.am:
removed outdated files
ut-2803.c:
merged with bug-2803.c|h, they are obsolete now
BitKeeper/deleted/52/bug-2803.h~388af97e65bf386e@1.2 +0 -0
Delete: tests/bug-2803/bug-2803.h
BitKeeper/deleted/e9/TestProductionCode_Runner.c~1dd6cbb7f125c42a@1.3 +0 -0
Delete: tests/bug-2803/TestProductionCode_Runner.c
tests/bug-2803/TestProductionCode_Runner.c@1.2 +9 -25
BitKeeper/deleted/f4/bug-2803.c~75ddf194e9fda1b8@1.4 +0 -0
Delete: tests/bug-2803/bug-2803.c
tests/bug-2803/Makefile.am@1.10 +0 -2
removed outdated files
tests/bug-2803/run-bug-2803.c@1.4 +1 -1
tests/bug-2803/ut-2803.c@1.3 +100 -10
merged with bug-2803.c|h, they are obsolete now
ChangeSet@1.3397, 2015-06-14 11:34:05+02:00, viperus@ubuntu.(none)
calendar.c:
forgot to return 2 functions
tests/libntp/calendar.c@1.2 +3 -18
forgot to return 2 functions
tests/libntp/run-test-calendar.c@1.2 +11 -11
ChangeSet@1.3396, 2015-06-14 11:26:43+02:00, viperus@ubuntu.(none)
caljulian.c:
removed an unnecessary printf
run-test-calendar.c, calendar.c:
new file
Makefile.am:
now builds calendar.c as well
tests/libntp/Makefile.am@1.54.1.6 +23 -0
now builds calendar.c as well
tests/libntp/calendar.c@1.1 +431 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/calendar.c
tests/libntp/calendar.c@1.0 +0 -0
tests/libntp/caljulian.c@1.4 +0 -1
removed an unnecessary printf
tests/libntp/run-test-calendar.c@1.1 +71 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-calendar.c
tests/libntp/run-test-calendar.c@1.0 +0 -0
tests/libntp/run-test-caljulian.c@1.4 +4 -4
ChangeSet@1.3395, 2015-06-14 10:24:54+02:00, viperus@ubuntu.(none)
Makefile.am:
removed run-test-libntp.c, unncecessary
run-test-libntp.c~b495db21713a6587:
Delete: tests/libntp/run-test-libntp.c
BitKeeper/deleted/78/run-test-libntp.c~b495db21713a6587@1.3 +0 -0
Delete: tests/libntp/run-test-libntp.c
tests/libntp/Makefile.am@1.54.1.5 +0 -1
removed run-test-libntp.c, unncecessary
tests/libntp/run-test-caljulian.c@1.3 +4 -4
ChangeSet@1.3394, 2015-06-14 10:05:45+02:00, viperus@ubuntu.(none)
caljulian.c:
minor cleanup
Makefile.am:
mereged with Harlan's Makefile.am@1.55 version.
tests/libntp/Makefile.am@1.54.1.4 +162 -134
mereged with Harlan's Makefile.am@1.55 version.
tests/libntp/caljulian.c@1.3 +2 -9
minor cleanup
ChangeSet@1.3393, 2015-06-14 08:29:55+02:00, viperus@ubuntu.(none)
caljulian.c:
fixed printf in case of an error
tests/libntp/caljulian.c@1.2 +24 -4
fixed printf in case of an error
tests/libntp/run-test-caljulian.c@1.2 +4 -4
ChangeSet@1.3391, 2015-06-14 05:15:48+00:00, stenn@psp-at1.ntp.org
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq-subs.c@1.108 +5 -4
[Bug 2778] Implement "apeers" ntpq command to include associd
ChangeSet@1.3390, 2015-06-14 03:18:13+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1656 +1 -1
merge cleanup
ChangeSet@1.3388, 2015-06-14 00:10:48+00:00, stenn@psp-at1.ntp.org
Unity updates
bootstrap@1.48 +30 -13
Unity updates
tests/libntp/Makefile.am@1.54.1.2 +133 -148
Unity updates
tests/libntp/a_md5encrypt.c@1.6 +17 -15
Unity updates
tests/libntp/run-test-a_md5encrypt.c@1.7 +5 -5
Unity updates
ChangeSet@1.3386.1.4, 2015-06-14 01:42:05+02:00, viperus@ubuntu.(none)
forgot to rename the .cpp file
tests/libntp/g_caljulian.cpp@1.6 +0 -0
Rename: tests/libntp/caljulian.cpp -> tests/libntp/g_caljulian.cpp
ChangeSet@1.3386.1.3, 2015-06-14 01:40:35+02:00, viperus@ubuntu.(none)
Many files:
new file
calyearstart.c:
removed the functions from here, put them in test-libntp.c
Makefile.am:
adding support for new tests
g_calyearstart.cpp:
Rename: tests/libntp/calyearstart.cpp -> tests/libntp/g_calyearstart.cpp
g_clocktime.cpp:
Rename: tests/libntp/clocktime.cpp -> tests/libntp/g_clocktime.cpp
test-libntp.h:
added headers for new functions
test-libntp.c:
moved the functions which 3 tests use into this file
run-test-calyearstart.c:
minor update
tests/libntp/Makefile.am@1.54.2.3 +57 -12
adding support for new tests
tests/libntp/caljulian.c@1.1 +101 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/caljulian.c
tests/libntp/caljulian.c@1.0 +0 -0
tests/libntp/calyearstart.c@1.2 +2 -19
removed the functions from here, put them in test-libntp.c
tests/libntp/calyearstart.c@1.1 +61 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/calyearstart.c
tests/libntp/calyearstart.c@1.0 +0 -0
tests/libntp/clocktime.c@1.1 +199 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/clocktime.c
tests/libntp/clocktime.c@1.0 +0 -0
tests/libntp/g_calyearstart.cpp@1.4 +0 -0
Rename: tests/libntp/calyearstart.cpp -> tests/libntp/g_calyearstart.cpp
tests/libntp/g_clocktime.cpp@1.5 +0 -0
Rename: tests/libntp/clocktime.cpp -> tests/libntp/g_clocktime.cpp
tests/libntp/run-test-caljulian.c@1.1 +57 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-caljulian.c
tests/libntp/run-test-caljulian.c@1.0 +0 -0
tests/libntp/run-test-calyearstart.c@1.2 +3 -3
minor update
tests/libntp/run-test-calyearstart.c@1.1 +55 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-calyearstart.c
tests/libntp/run-test-calyearstart.c@1.0 +0 -0
tests/libntp/run-test-clocktime.c@1.1 +65 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-clocktime.c
tests/libntp/run-test-clocktime.c@1.0 +0 -0
tests/libntp/test-libntp.c@1.4 +14 -22
moved the functions which 3 tests use into this file
tests/libntp/test-libntp.h@1.2 +3 -6
added headers for new functions
ChangeSet@1.3386.1.2, 2015-06-14 00:20:14+02:00, viperus@ubuntu.(none)
Makefile.am:
added refnumtoa.c
run-test-vi64ops.c, refnumtoa.c, run-test-refnumtoa.c:
new file
g_refnumtoa.cpp:
Rename: tests/libntp/refnumtoa.cpp -> tests/libntp/g_refnumtoa.cpp
tests/libntp/Makefile.am@1.54.2.2 +19 -2
added refnumtoa.c
tests/libntp/g_refnumtoa.cpp@1.3 +0 -0
Rename: tests/libntp/refnumtoa.cpp -> tests/libntp/g_refnumtoa.cpp
tests/libntp/refnumtoa.c@1.1 +63 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/refnumtoa.c
tests/libntp/refnumtoa.c@1.0 +0 -0
tests/libntp/run-test-refnumtoa.c@1.1 +53 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-refnumtoa.c
tests/libntp/run-test-refnumtoa.c@1.0 +0 -0
tests/libntp/run-test-vi64ops.c@1.1 +55 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-vi64ops.c
tests/libntp/run-test-vi64ops.c@1.0 +0 -0
ChangeSet@1.3386.1.1, 2015-06-13 23:35:39+02:00, viperus@ubuntu.(none)
vi64ops.c:
new file
Makefile.am:
added stuff related to vi64ops.c
g_vi64ops.cpp:
Rename: tests/libntp/vi64ops.cpp -> tests/libntp/g_vi64ops.cpp
tests/libntp/Makefile.am@1.54.2.1 +23 -2
added stuff related to vi64ops.c
tests/libntp/g_vi64ops.cpp@1.2 +0 -0
Rename: tests/libntp/vi64ops.cpp -> tests/libntp/g_vi64ops.cpp
tests/libntp/vi64ops.c@1.1 +72 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/vi64ops.c
tests/libntp/vi64ops.c@1.0 +0 -0
ChangeSet@1.3387, 2015-06-13 18:35:19+00:00, stenn@psp-at1.ntp.org
Makefile.am unity-related cleanup
tests/bug-2803/run-bug-2803.c@1.3 +5 -2
template update
tests/libntp/Makefile.am@1.54.1.1 +148 -133
Makefile.am unity-related cleanup
ChangeSet@1.3385, 2015-06-13 05:28:57-04:00, stenn@deacon.udel.edu
unity notes
NEWS@1.138 +8 -1
unity notes
ChangeSet@1.3384, 2015-06-13 05:16:11-04:00, stenn@deacon.udel.edu
Note that Unity requires ruby, if tests change
ChangeLog@1.1653 +1 -0
Note that Unity requires ruby, if tests change
ChangeSet@1.3370.1.3, 2015-06-13 14:42:51+05:30, loki@dadasgift.(none)
hextolfp test converted to unity
tests/libntp/Makefile.am@1.56 +19 -2
tests/libntp/g_hextolfp.cpp@1.1 +58 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_hextolfp.cpp
tests/libntp/g_hextolfp.cpp@1.0 +0 -0
tests/libntp/hextolfp.c@1.1 +61 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/hextolfp.c
tests/libntp/hextolfp.c@1.0 +0 -0
tests/libntp/lfptest.h@1.4 +25 -1
ChangeSet@1.3383, 2015-06-13 02:47:12+00:00, stenn@psp-fb1.ntp.org
testcalshims.h cleanup
tests/libntp/a_md5encrypt.c@1.5 +1 -5
testcalshims.h cleanup
tests/libntp/atoint.c@1.3 +4 -1
testcalshims.h cleanup
tests/libntp/atouint.c@1.3 +4 -2
testcalshims.h cleanup
tests/libntp/authkeys.c@1.6 +5 -3
testcalshims.h cleanup
tests/libntp/hextoint.c@1.3 +5 -3
testcalshims.h cleanup
tests/libntp/lfpfunc.c@1.4 +4 -13
testcalshims.h cleanup
tests/libntp/modetoa.c@1.5 +5 -5
testcalshims.h cleanup
tests/libntp/numtoa.c@1.3 +5 -2
testcalshims.h cleanup
tests/libntp/numtohost.c@1.3 +4 -2
testcalshims.h cleanup
tests/libntp/run-test-a_md5encrypt.c@1.6 +5 -5
testcalshims.h cleanup
tests/libntp/run-test-atoint.c@1.5 +6 -6
testcalshims.h cleanup
tests/libntp/run-test-atouint.c@1.5 +5 -5
testcalshims.h cleanup
tests/libntp/run-test-authkeys.c@1.6 +6 -6
testcalshims.h cleanup
tests/libntp/run-test-hextoint.c@1.5 +5 -5
testcalshims.h cleanup
tests/libntp/run-test-lfpfunc.c@1.6 +9 -9
testcalshims.h cleanup
tests/libntp/run-test-numtoa.c@1.5 +2 -2
testcalshims.h cleanup
tests/libntp/run-test-numtohost.c@1.5 +1 -1
testcalshims.h cleanup
tests/libntp/run-test-statestr.c@1.5 +4 -4
testcalshims.h cleanup
tests/libntp/run-test-ymd2yd.c@1.5 +4 -4
testcalshims.h cleanup
tests/libntp/statestr.c@1.3 +6 -5
testcalshims.h cleanup
tests/libntp/testcalshims.c@1.4 +4 -1
testcalshims.h cleanup
tests/libntp/uglydate.c@1.4 +4 -4
testcalshims.h cleanup
tests/libntp/ymd2yd.c@1.3 +5 -1
testcalshims.h cleanup
ChangeSet@1.3370.1.2, 2015-06-12 16:39:36+05:30, loki@dadasgift.(none)
Makefile.am modified for octotint.c file
tests/libntp/Makefile.am@1.55 +20 -2
ChangeSet@1.3382, 2015-06-12 10:53:55+00:00, stenn@psp-fb1.ntp.org
md5encrypt tests need current_time
tests/libntp/a_md5encrypt.c@1.4 +2 -0
md5encrypt tests need current_time
tests/libntp/run-test-a_md5encrypt.c@1.5 +5 -5
md5encrypt tests need current_time
ChangeSet@1.3370.1.1, 2015-06-12 15:50:51+05:30, loki@dadasgift.(none)
octtoint.cpp converted to unity framework
tests/libntp/g_octtoint.cpp@1.1 +57 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/g_octtoint.cpp
tests/libntp/g_octtoint.cpp@1.0 +0 -0
tests/libntp/octtoint.c@1.1 +63 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/octtoint.c
tests/libntp/octtoint.c@1.0 +0 -0
tests/libntp/run-test-octtoint.c@1.1 +60 -0
BitKeeper file /home/loki/ntp_gsoc/2_damir_code/ntp-stable-unity/tests/libntp/run-test-octtoint.c
tests/libntp/run-test-octtoint.c@1.0 +0 -0
ChangeSet@1.3345.1.11, 2015-06-12 10:14:37+00:00, stenn@psp-at1.ntp.org
sntp/unity/Makefile.am: Use default AUTOMAKE_OPTIONS
sntp/unity/Makefile.am@1.3.1.1 +1 -1
sntp/unity/Makefile.am: Use default AUTOMAKE_OPTIONS
ChangeSet@1.3379, 2015-06-12 09:58:12+00:00, stenn@psp-at1.ntp.org
EOL cleanup
sntp/unity/unity_internals.h@1.3 +4 -4
EOL cleanup
ChangeSet@1.3378, 2015-06-12 09:29:49+00:00, stenn@psp-at1.ntp.org
Distribute unity/auto/
sntp/Makefile.am@1.82 +1 -0
Distribute unity/auto/
ChangeSet@1.3377, 2015-06-12 11:27:01+02:00, viperus@ubuntu.(none)
authkeys.c:
added code which runs init_auth() only in the 1st setUp, prevents segfault
generate_test_runner.rb:
removed init_lib() and init_auth() from here. Put it into setUp() in the test, but it should be run only once
sntp/unity/auto/generate_test_runner.rb@1.5 +3 -2
removed init_lib() and init_auth() from here. Put it into setUp() in the test, but it should be run only once
tests/libntp/authkeys.c@1.5 +6 -2
added code which runs init_auth() only in the 1st setUp, prevents segfault
tests/libntp/run-test-a_md5encrypt.c@1.4 +0 -2
tests/libntp/run-test-atoint.c@1.4 +0 -2
tests/libntp/run-test-atouint.c@1.4 +0 -2
tests/libntp/run-test-authkeys.c@1.5 +6 -8
tests/libntp/run-test-hextoint.c@1.4 +0 -2
tests/libntp/run-test-lfpfunc.c@1.5 +0 -2
tests/libntp/run-test-modetoa.c@1.6 +0 -2
tests/libntp/run-test-numtoa.c@1.4 +0 -2
tests/libntp/run-test-numtohost.c@1.4 +0 -2
tests/libntp/run-test-statestr.c@1.4 +0 -2
tests/libntp/run-test-uglydate.c@1.5 +0 -2
tests/libntp/run-test-ymd2yd.c@1.4 +0 -2
ChangeSet@1.3376, 2015-06-12 11:14:36+02:00, viperus@ubuntu.(none)
test-libntp.c:
removed stuff that was placed elsewhere
tests/libntp/run-test-a_md5encrypt.c@1.3 +2 -0
tests/libntp/run-test-atoint.c@1.3 +2 -0
tests/libntp/run-test-atouint.c@1.3 +2 -0
tests/libntp/run-test-authkeys.c@1.4 +8 -8
tests/libntp/run-test-hextoint.c@1.3 +2 -0
tests/libntp/run-test-lfpfunc.c@1.4 +2 -0
tests/libntp/run-test-modetoa.c@1.5 +2 -0
tests/libntp/run-test-numtoa.c@1.3 +2 -0
tests/libntp/run-test-numtohost.c@1.3 +2 -0
tests/libntp/run-test-statestr.c@1.3 +2 -0
tests/libntp/run-test-uglydate.c@1.4 +2 -0
tests/libntp/run-test-ymd2yd.c@1.3 +2 -0
tests/libntp/test-libntp.c@1.3 +5 -3
removed stuff that was placed elsewhere
ChangeSet@1.3375, 2015-06-12 10:50:27+02:00, viperus@ubuntu.(none)
generate_test_runner.rb:
test runners main() will always call init_lib() and init_auth()
sntp/unity/auto/generate_test_runner.rb@1.4 +2 -1
test runners main() will always call init_lib() and init_auth()
tests/libntp/authkeys.c@1.4 +3 -1
ChangeSet@1.3374, 2015-06-12 10:37:47+02:00, viperus@ubuntu.(none)
updating autogenerated testrunners with progname = argv[0]
tests/libntp/run-test-a_md5encrypt.c@1.2 +9 -6
tests/libntp/run-test-atoint.c@1.2 +10 -7
tests/libntp/run-test-atouint.c@1.2 +9 -6
tests/libntp/run-test-authkeys.c@1.3 +6 -3
tests/libntp/run-test-hextoint.c@1.2 +9 -6
tests/libntp/run-test-lfpfunc.c@1.3 +15 -8
tests/libntp/run-test-modetoa.c@1.4 +6 -3
tests/libntp/run-test-numtoa.c@1.2 +6 -3
tests/libntp/run-test-numtohost.c@1.2 +5 -2
tests/libntp/run-test-statestr.c@1.2 +8 -5
tests/libntp/run-test-uglydate.c@1.3 +5 -2
tests/libntp/run-test-ymd2yd.c@1.2 +8 -5
ChangeSet@1.3373, 2015-06-12 10:33:08+02:00, viperus@ubuntu.(none)
testcalshims.h:
also removed progname and current_time var
testcalshims.c:
removed progname and current_time var
tests/libntp/authkeys.c@1.3 +3 -1
tests/libntp/testcalshims.c@1.3 +2 -2
removed progname and current_time var
tests/libntp/testcalshims.h@1.3 +2 -2
also removed progname and current_time var
ChangeSet@1.3372, 2015-06-12 10:14:36+02:00, viperus@ubuntu.(none)
generate_test_runner.rb:
Added progname = argv[0] in main() function of each runner.
sntp/unity/auto/generate_test_runner.rb@1.3 +8 -1
Added progname = argv[0] in main() function of each runner.
ChangeSet@1.3371, 2015-06-12 06:25:21+00:00, viperus@psp-at1.ntp.org
removed the outdated functions made purely for testing unity
tests/bug-2803/Makefile.am@1.9 +3 -3
tests/bug-2803/run-bug-2803.c@1.2 +4 -2
tests/bug-2803/ut-2803.c@1.2 +1 -12
ChangeSet@1.3369, 2015-06-11 23:00:26+02:00, viperus@ubuntu.(none)
manually merged a few lines in tests/bug-2803/Makefile.am
tests/bug-2803/Makefile.am@1.8 +6 -2
ChangeSet@1.3345.1.9, 2015-06-11 20:01:57+00:00, stenn@psp-at1.ntp.org
test/Makefile.am DIST_SUBDIRS cleanup
tests/Makefile.am@1.9 +7 -0
test/Makefile.am DIST_SUBDIRS cleanup
ChangeSet@1.3345.1.8, 2015-06-11 19:00:08+00:00, stenn@psp-at1.ntp.org
Fix a typo in tests/libntp/modetoa.c
tests/libntp/modetoa.c@1.1.1.1 +1 -1
Fix a typo in tests/libntp/modetoa.c
ChangeSet@1.3367, 2015-06-11 20:50:24+02:00, viperus@ubuntu.(none)
finished this test, changed TEST_ASSERT_DOUBLE_WITHIN(...) as jnperlin suggested
tests/libntp/lfpfunc.c@1.3 +158 -237
ChangeSet@1.3345.1.7, 2015-06-11 18:48:46+00:00, stenn@psp-at1.ntp.org
Updates to tests/libntp/
tests/libntp/run-test-libntp.c@1.2 +2 -2
Updates to tests/libntp/
tests/libntp/test-libntp.c@1.2 +9 -1
Updates to tests/libntp/
ChangeSet@1.3326.12.3, 2015-06-11 20:08:33+02:00, jnperlin@hydra.(none)
[Bug 2843] make check fails on 4.3.36
Fixed compiler warnings about numeric range overflow (The original topic was fixed in a byplay to bug#2830)
ChangeLog@1.1641.10.3 +3 -0
[Bug 2843] make check fails on 4.3.36
Fixed compiler warnings about numeric range overflow (The original topic was fixed in a byplay to bug#2830)
tests/ntpd/leapsec.cpp@1.14 +21 -21
[Bug 2843] make check fails on 4.3.36
Fixed compiler warnings about numeric range overflow (The original topic was fixed in a byplay to bug#2830)
ChangeSet@1.3345.1.6, 2015-06-11 17:55:32+00:00, stenn@psp-at1.ntp.org
tests/bug-2803/Makefile.am must distribute bug-2803.h
ChangeLog@1.1648.1.5 +1 -0
tests/bug-2803/Makefile.am must distribute bug-2803.h
tests/bug-2803/Makefile.am@1.7 +1 -0
tests/bug-2803/Makefile.am must distribute bug-2803.h
ChangeSet@1.3345.1.5, 2015-06-11 17:54:00+00:00, stenn@psp-at1.ntp.org
sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS
ChangeLog@1.1648.1.4 +1 -0
sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS
sntp/Makefile.am@1.81 +2 -1
sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS
ChangeSet@1.3326.12.2, 2015-06-10 22:23:44-04:00, stenn@deacon.udel.edu
Typo: Bug 2887 -> Bug 2778
ChangeLog@1.1641.10.2 +1 -1
Typo: Bug 2887 -> Bug 2778
ChangeSet@1.3366, 2015-06-10 13:09:48+02:00, viperus@ubuntu.(none)
minor change in testrunner
tests/libntp/run-test-lfpfunc.c@1.2 +9 -5
ChangeSet@1.3365, 2015-06-10 13:08:39+02:00, viperus@ubuntu.(none)
Makefile.am:
added -DUNITY_DOUBLE_INCLUDE to CFLAGS, so I don't get linker errors anymore (because asserting double is disabled by default in unity)
Makefile.am: (/tests/libntp/Makefile.am)
added -DUNITY.... to makefile when building lfpfunc.c. Maybe I should add -DUNITY... to CFLAGS_unity or something like that'
lfpfunc.c:
converted more tests
sntp/unity/Makefile.am@1.2.1.1 +4 -0
added -DUNITY_DOUBLE_INCLUDE to CFLAGS, so I don't get linker errors anymore (because asserting double is disabled by default in unity)
tests/libntp/Makefile.am@1.54 +2 -1
'added -DUNITY.... to makefile when building lfpfunc.c. Maybe I should add -DUNITY... to CFLAGS_unity or something like that'
tests/libntp/lfpfunc.c@1.2 +72 -80
'added -DUNITY.... to makefile when building lfpfunc.c. Maybe I should add -DUNITY... to CFLAGS_unity or somethign like that'
ChangeSet@1.3326.12.1, 2015-06-10 10:52:55+00:00, stenn@psp-at1.ntp.org
[Bug 2778] Implement "apeers" ntpq command to include associd
ChangeLog@1.1641.10.1 +1 -0
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/invoke-ntpq.texi@1.500 +11 -1
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq-opts.c@1.517 +1 -1
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq-opts.def@1.26 +8 -0
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq-opts.h@1.515 +1 -1
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq-subs.c@1.105.1.1 +140 -2
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq.1ntpqman@1.328 +15 -4
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq.1ntpqmdoc@1.328 +10 -2
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq.man.in@1.328 +15 -4
[Bug 2778] Implement "apeers" ntpq command to include associd
ntpq/ntpq.mdoc.in@1.328 +10 -2
[Bug 2778] Implement "apeers" ntpq command to include associd
ChangeSet@1.3364, 2015-06-10 10:21:01+02:00, viperus@ubuntu.(none)
Makefile.am:
Added LIBM in LDADD.
tests/libntp/Makefile.am@1.53 +30 -10
Added LIBM in LDADD.
ChangeSet@1.3326.7.16, 2015-06-09 23:58:56+02:00, jnperlin@nemesis.localnet
[Bug 2845] Harden memory allocation in ntpd
implement and use 'eallocarray(...)' where appropriate
ChangeLog@1.1641.7.12 +1 -0
[Bug 2845] Harden memory allocation in ntpd
implement and use 'eallocarray(...)' where appropriate
include/ntp_stdlib.h@1.78 +19 -10
[Bug 2845] Harden memory allocation in ntpd
add 'oreallocarray()' prototypes and the macros 'eallocarray' and 'ereallocarray'
use proper parentheses in allocation macro expansions
libntp/emalloc.c@1.18 +53 -0
[Bug 2845] Harden memory allocation in ntpd
add 'oreallocarry()' implementation
ntpd/ntp_config.c@1.327 +4 -3
[Bug 2845] Harden memory allocation in ntpd
use 'eallocarray(...)' where appropriate
ntpd/ntp_crypto.c@1.179 +2 -2
[Bug 2845] Harden memory allocation in ntpd
use 'eallocarray(...)' where appropriate
ntpd/ntp_monitor.c@1.42 +1 -1
[Bug 2845] Harden memory allocation in ntpd
use 'eallocarray(...)' where appropriate
ntpq/ntpq-subs.c@1.106 +1 -1
[Bug 2845] Harden memory allocation in ntpd
use 'eallocarray(...)' where appropriate
sntp/kod_management.c@1.33 +2 -2
[Bug 2845] Harden memory allocation in ntpd
use 'eallocarray(...)' where appropriate
ChangeSet@1.3363, 2015-06-08 10:29:19+02:00, viperus@ubuntu.(none)
added incomplete test for lfpfunc.c. Changes to makefile and created c_timestructs.c and .h, because timestructs.cpp is a big c++ wrapper. Slowly converting it all to C code
tests/libntp/c_timestructs.c@1.1 +155 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/c_timestructs.c
tests/libntp/c_timestructs.c@1.0 +0 -0
tests/libntp/c_timestructs.h@1.1 +213 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/c_timestructs.h
tests/libntp/c_timestructs.h@1.0 +0 -0
tests/libntp/g_lfpfunc.cpp@1.3 +0 -0
Rename: tests/libntp/lfpfunc.cpp -> tests/libntp/g_lfpfunc.cpp
tests/libntp/lfpfunc.c@1.1 +643 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/lfpfunc.c
tests/libntp/lfpfunc.c@1.0 +0 -0
tests/libntp/run-test-lfpfunc.c@1.1 +56 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-lfpfunc.c
tests/libntp/run-test-lfpfunc.c@1.0 +0 -0
ChangeSet@1.3326.7.15, 2015-06-07 21:20:28-04:00, stenn@deacon.udel.edu
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
ntpd/ntp_timer.c@1.87 +10 -0
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
ChangeSet@1.3326.7.14, 2015-06-07 23:11:26+02:00, jnperlin@hydra.(none)
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
- add changelog entry
- add ASSERTS to ntp_crypto.c for length of signature
ChangeLog@1.1641.7.11 +4 -0
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
- add missing entries
ntpd/ntp_crypto.c@1.178 +34 -11
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
- add asserts to signature length code
ChangeSet@1.3362, 2015-06-07 17:14:49+02:00, viperus@ubuntu.(none)
removed some spaces from Makefile.am, removed init_auth from setUp, because every test was calling it. Added init_auth inside run-test-authkeys.c. This is aproblem because I had to modify an autogenerated file!
tests/libntp/Makefile.am@1.52 +1 -4
tests/libntp/authkeys.c@1.2 +2 -0
tests/libntp/run-test-authkeys.c@1.2 +8 -6
ChangeSet@1.3361, 2015-06-07 13:22:51+00:00, viperus@psp-at1.ntp.org
loaded math lib for some tests so building works on psp-at1 and psp-fb1
tests/libntp/Makefile.am@1.51 +7 -1
ChangeSet@1.3360, 2015-06-07 15:09:23+02:00, viperus@ubuntu.(none)
re-enabled a_md5encrypt test
tests/libntp/Makefile.am@1.50 +1 -2
ChangeSet@1.3359, 2015-06-07 15:04:05+02:00, viperus@ubuntu.(none)
temporarily removed #test-a_md5encrypt due to log10, linking with math lib
tests/libntp/Makefile.am@1.49 +2 -1
ChangeSet@1.3358, 2015-06-07 14:39:28+02:00, viperus@ubuntu.(none)
added new includes in all files
tests/libntp/a_md5encrypt.c@1.3 +3 -3
tests/libntp/atoint.c@1.2 +1 -0
tests/libntp/atouint.c@1.2 +2 -1
tests/libntp/hextoint.c@1.2 +2 -1
tests/libntp/modetoa.c@1.3 +1 -0
tests/libntp/numtoa.c@1.2 +2 -1
tests/libntp/numtohost.c@1.2 +2 -1
tests/libntp/statestr.c@1.2 +2 -1
tests/libntp/uglydate.c@1.3 +1 -1
tests/libntp/ymd2yd.c@1.2 +1 -0
ChangeSet@1.3357, 2015-06-07 14:31:53+02:00, viperus@ubuntu.(none)
removed a minor makefile bug, put added new include in uglydate.c
tests/libntp/Makefile.am@1.48 +0 -1
tests/libntp/uglydate.c@1.2 +1 -0
ChangeSet@1.3356, 2015-06-07 11:37:45+02:00, viperus@ubuntu.(none)
for some reason this file isnt available on psp-deb1
tests/libntp/a_md5encrypt.c@1.2 +1 -0
ChangeSet@1.3326.11.2, 2015-06-07 11:25:17+02:00, jnperlin@hydra.(none)
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
- fix test case that got damaged by changes to TAI table limit logic
tests/ntpd/leapsec.cpp@1.13 +6 -2
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
- fix test case that got damaged by changes to TAI table limit logic
ChangeSet@1.3355, 2015-06-07 11:02:10+02:00, viperus@ubuntu.(none)
adding new test files and their runners
tests/libntp/a_md5encrypt.c@1.1 +98 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/a_md5encrypt.c
tests/libntp/a_md5encrypt.c@1.0 +0 -0
tests/libntp/atouint.c@1.1 +40 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/atouint.c
tests/libntp/atouint.c@1.0 +0 -0
tests/libntp/authkeys.c@1.1 +107 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/authkeys.c
tests/libntp/authkeys.c@1.0 +0 -0
tests/libntp/run-test-a_md5encrypt.c@1.1 +56 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-a_md5encrypt.c
tests/libntp/run-test-a_md5encrypt.c@1.0 +0 -0
tests/libntp/run-test-atouint.c@1.1 +56 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-atouint.c
tests/libntp/run-test-atouint.c@1.0 +0 -0
tests/libntp/run-test-authkeys.c@1.1 +58 -0
BitKeeper file /home/viperus/Desktop/ntp-stable-unity/tests/libntp/run-test-authkeys.c
tests/libntp/run-test-authkeys.c@1.0 +0 -0
ChangeSet@1.3353, 2015-06-07 10:51:34+02:00, viperus@ubuntu.(none)
forgot to ci a few files
tests/libntp/Makefile.am@1.47 +51 -4
tests/libntp/testcalshims.c@1.2 +7 -3
tests/libntp/testcalshims.h@1.2 +7 -3
ChangeSet@1.3352, 2015-06-07 10:30:09+02:00, viperus@ubuntu.(none)
modified testcalshims.h to suppoer md5encrypt.c and authkeys.c , added new tests, and modified Makefile.am
tests/libntp/g_a_md5encrypt.cpp@1.6 +0 -0
Rename: tests/libntp/a_md5encrypt.cpp -> tests/libntp/g_a_md5encrypt.cpp
tests/libntp/g_atouint.cpp@1.2 +0 -0
Rename: tests/libntp/atouint.cpp -> tests/libntp/g_atouint.cpp
tests/libntp/g_authkeys.cpp@1.8 +0 -0
Rename: tests/libntp/authkeys.cpp -> tests/libntp/g_authkeys.cpp
ChangeSet@1.3326.7.12, 2015-06-07 04:00:46-04:00, stenn@deacon.udel.edu
sntp/scripts/genLocInfo: treat raspbian as debian
ChangeLog@1.1641.7.10 +1 -0
sntp/scripts/genLocInfo: treat raspbian as debian
sntp/scripts/genLocInfo@1.18 +8 -0
sntp/scripts/genLocInfo: treat raspbian as debian
ChangeSet@1.3326.7.11, 2015-06-07 06:16:41+00:00, stenn@psp-at1.ntp.org
[Bug 2842] Bug in mdoc2man
ChangeLog@1.1641.7.9 +1 -0
[Bug 2842] Bug in mdoc2man
sntp/ag-tpl/Mdoc.pm@1.1 +542 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable/sntp/ag-tpl/Mdoc.pm
sntp/ag-tpl/Mdoc.pm@1.0 +0 -0
sntp/ag-tpl/mdoc2man@1.1 +219 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable/sntp/ag-tpl/mdoc2man
sntp/ag-tpl/mdoc2man@1.0 +0 -0
ChangeSet@1.3326.7.10, 2015-06-07 03:16:04+00:00, stenn@psp-fb1.ntp.org
[Bug 2836] DFC77 patches from Frank Kardel to make decoding more robust, and require 2 consecutive timestamps to be consistent
ChangeLog@1.1641.7.8 +2 -0
[Bug 2836] DFC77 patches from Frank Kardel to make decoding more robust, and require 2 consecutive timestamps to be consistent
libparse/clk_rawdcf.c@1.21 +6 -4
[Bug 2836] DFC77 patches from Frank Kardel to make decoding more robust, and require 2 consecutive timestamps to be consistent
libparse/parse.c@1.20 +2 -2
[Bug 2836] DFC77 patches from Frank Kardel to make decoding more robust, and require 2 consecutive timestamps to be consistent
ntpd/refclock_parse.c@1.79 +2 -0
[Bug 2836] DFC77 patches from Frank Kardel to make decoding more robust, and require 2 consecutive timestamps to be consistent
ChangeSet@1.3351, 2015-06-06 08:38:18+00:00, viperus@psp-deb1.ntp.org
adding new unity test files, changes to Makefile.am
tests/libntp/Makefile.am@1.46 +119 -15
tests/libntp/atoint.c@1.1 +47 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/atoint.c
tests/libntp/atoint.c@1.0 +0 -0
tests/libntp/g_atoint.cpp@1.3 +0 -0
Rename: tests/libntp/atoint.cpp -> tests/libntp/g_atoint.cpp
tests/libntp/g_hextoint.cpp@1.4 +0 -0
Rename: tests/libntp/hextoint.cpp -> tests/libntp/g_hextoint.cpp
tests/libntp/g_numtoa.cpp@1.3 +0 -0
Rename: tests/libntp/numtoa.cpp -> tests/libntp/g_numtoa.cpp
tests/libntp/g_numtohost.cpp@1.2 +0 -0
Rename: tests/libntp/numtohost.cpp -> tests/libntp/g_numtohost.cpp
tests/libntp/g_statestr.cpp@1.3 +1 -0
tests/libntp/g_statestr.cpp@1.2 +0 -0
Rename: tests/libntp/statestr.cpp -> tests/libntp/g_statestr.cpp
tests/libntp/g_ymd2yd.cpp@1.2 +0 -0
Rename: tests/libntp/ymd2yd.cpp -> tests/libntp/g_ymd2yd.cpp
tests/libntp/hextoint.c@1.1 +44 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/hextoint.c
tests/libntp/hextoint.c@1.0 +0 -0
tests/libntp/modetoa.c@1.2 +2 -3
tests/libntp/numtoa.c@1.1 +27 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/numtoa.c
tests/libntp/numtoa.c@1.0 +0 -0
tests/libntp/numtohost.c@1.1 +16 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/numtohost.c
tests/libntp/numtohost.c@1.0 +0 -0
tests/libntp/run-test-atoint.c@1.1 +58 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-atoint.c
tests/libntp/run-test-atoint.c@1.0 +0 -0
tests/libntp/run-test-hextoint.c@1.1 +56 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-hextoint.c
tests/libntp/run-test-hextoint.c@1.0 +0 -0
tests/libntp/run-test-modetoa.c@1.3 +1 -1
tests/libntp/run-test-numtoa.c@1.1 +50 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-numtoa.c
tests/libntp/run-test-numtoa.c@1.0 +0 -0
tests/libntp/run-test-numtohost.c@1.1 +48 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-numtohost.c
tests/libntp/run-test-numtohost.c@1.0 +0 -0
tests/libntp/run-test-statestr.c@1.1 +54 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-statestr.c
tests/libntp/run-test-statestr.c@1.0 +0 -0
tests/libntp/run-test-ymd2yd.c@1.1 +54 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-ymd2yd.c
tests/libntp/run-test-ymd2yd.c@1.0 +0 -0
tests/libntp/statestr.c@1.1 +34 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/statestr.c
tests/libntp/statestr.c@1.0 +0 -0
tests/libntp/ymd2yd.c@1.1 +30 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/ymd2yd.c
tests/libntp/ymd2yd.c@1.0 +0 -0
ChangeSet@1.3326.7.9, 2015-06-05 08:24:51+00:00, stenn@psp-at1.ntp.org
[Bug 2837] add test for DSCP to ntpd/complete.conf.in - from Hal Murray
ChangeLog@1.1641.7.7 +1 -0
[Bug 2837] add test for DSCP to ntpd/complete.conf.in - from Hal Murray
ntpd/complete.conf.in@1.28 +1 -0
[Bug 2837] add test for DSCP to ntpd/complete.conf.in - from Hal Murray
ChangeSet@1.3326.11.1, 2015-06-05 06:31:07+02:00, jnperlin@hydra.(none)
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
- trigger a possible autokey update on change of 'sys_tai'
include/ntpd.h@1.188 +1 -0
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
add 'crypto_update_taichange()': update autokey data after TAI change if possible
ntpd/ntp_crypto.c@1.177 +75 -113
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
- add 'crypto_update_taichange()': update autokey data after TAI change if possible
- fix potential problem with signature size
- use DPRINTF where possible
ntpd/ntp_timer.c@1.86 +7 -1
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
possibly update autokey data after 'sys_tai' changes
ChangeSet@1.3326.7.8, 2015-06-05 02:42:26+00:00, stenn@psp-at1.ntp.org
2830 fixes from Pearly
ChangeLog@1.1641.7.6 +3 -0
2830 fixes from Pearly
ChangeSet@1.3326.8.10, 2015-06-04 19:39:40+00:00, stenn@psp-at1.ntp.org
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ChangeLog@1.1641.8.9 +1 -0
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/invoke-ntp.conf.texi@1.184 +3 -3
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/ntp.conf.5man@1.218 +6 -6
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/ntp.conf.5mdoc@1.218 +4 -4
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/ntp.conf.def@1.16 +2 -2
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/ntp.conf.man.in@1.218 +6 -6
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ntpd/ntp.conf.mdoc.in@1.218 +4 -4
[Bug 2842] Glitch in ntp.conf.def documentation stanza
ChangeSet@1.3326.10.2, 2015-06-04 03:24:16-04:00, stenn@deacon.udel.edu
[Bug 2824] Convert update-leap to perl. (also see 2769)
configure.ac@1.588.1.1 +1 -0
[Bug 2824] Convert update-leap to perl. (also see 2769)
scripts/update-leap/update-leap.in@1.2 +2 -3
[Bug 2824] Convert update-leap to perl. (also see 2769)
ChangeSet@1.3326.10.1, 2015-06-04 03:21:27-04:00, stenn@deacon.udel.edu
[Bug 2837] Allow a configurable DSCP value
ntpd/keyword-gen-utd@1.23 +1 -1
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_keyword.h@1.25 +842 -838
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_parser.c@1.93 +1074 -1060
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_parser.h@1.58 +320 -318
[Bug 2837] Allow a configurable DSCP value
ChangeSet@1.3326.8.8, 2015-06-04 03:14:37+00:00, stenn@psp-fb1.ntp.org
Report select() debug messages at debug level 3 now
ChangeLog@1.1641.8.8 +1 -1
Report select() debug messages at debug level 3 now
ChangeSet@1.3326.8.7, 2015-06-03 17:04:21+02:00, martin@pc-martin.(none)
Increased the debug level at which a tiny debug message is printed.
ChangeLog@1.1641.8.7 +1 -0
Increased the debug level at which a tiny debug message is printed.
ntpd/ntp_io.c@1.399.1.2 +1 -1
Increased the debug level at which a tiny debug message is printed.
ChangeSet@1.3326.8.6, 2015-06-03 09:30:35+00:00, stenn@psp-at1.ntp.org
[Bug 2837] Allow a configurable DSCP value
ChangeLog@1.1641.8.6 +2 -1
[Bug 2837] Allow a configurable DSCP value
html/miscopt.html@1.81 +2 -0
[Bug 2837] Allow a configurable DSCP value
include/ntp_io.h@1.22 +1 -0
[Bug 2837] Allow a configurable DSCP value
ntpd/keyword-gen.c@1.29 +1 -0
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_config.c@1.326 +8 -1
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_io.c@1.399.1.1 +5 -5
[Bug 2837] Allow a configurable DSCP value
ntpd/ntp_parser.y@1.85 +13 -0
[Bug 2837] Allow a configurable DSCP value
ChangeSet@1.3326.8.5, 2015-06-03 03:46:57-04:00, stenn@deacon.udel.edu
ChangeLog cleanup
ChangeLog@1.1641.8.5 +2 -2
ChangeLog cleanup
ChangeSet@1.3326.8.3, 2015-06-03 05:39:07+00:00, stenn@psp-at1.ntp.org
ChangeLog order cleanup
ChangeLog@1.1641.8.3 +2 -2
ChangeLog order cleanup
ChangeSet@1.3326.9.2, 2015-06-03 01:07:20-04:00, stenn@deacon.udel.edu
update-leap conversion is bug 2824, not 2769
ChangeLog@1.1641.9.2 +1 -1
update-leap conversion is bug 2824, not 2769
ChangeSet@1.3326.7.6, 2015-06-02 09:11:10+02:00, jnperlin@hydra.(none)
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
fix a few bad ideas and missing links
ntpd/ntp_crypto.c@1.176 +34 -39
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
- fix the autokey TAI data block (initial value, never omit data)
ntpd/ntp_leapsec.c@1.21 +25 -16
Bug 2830 - ntpd doesn't always transfer the correct TAI offset via autokey
- loading the leap frame should always copy the data (not just after the close monitoring time)
- loading the table data via build time limit keeps the last 10 years before build data
- lstostr() should return 'const char*'
ChangeSet@1.3345.1.1, 2015-06-01 10:42:57+00:00, stenn@psp-fb1.ntp.org
add unity_fixture to the unity library
sntp/unity/Makefile.am@1.3 +9 -5
add unity_fixture to the unity library
sntp/unity/unity_fixture.c@1.1 +398 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_fixture.c
sntp/unity/unity_fixture.c@1.0 +0 -0
sntp/unity/unity_fixture.h@1.1 +86 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_fixture.h
sntp/unity/unity_fixture.h@1.0 +0 -0
sntp/unity/unity_fixture_internals.h@1.1 +44 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_fixture_internals.h
sntp/unity/unity_fixture_internals.h@1.0 +0 -0
sntp/unity/unity_fixture_malloc_overrides.h@1.1 +21 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_fixture_malloc_overrides.h
sntp/unity/unity_fixture_malloc_overrides.h@1.0 +0 -0
ChangeSet@1.3326.7.5, 2015-06-01 07:24:52+02:00, jnperlin@hydra.(none)
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTPD transfers the current TAI (instead of an announcement) now. This might still needed improvement.
ChangeLog@1.1641.7.4 +2 -3
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTPD transfers the current TAI (instead of an announcement) now. This might still needed improvement.
ntpd/ntp_crypto.c@1.175 +55 -34
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
transmit/receive the current leap era instead of of the latest announcement in autokey packets
ntpd/ntp_leapsec.c@1.20 +116 -1
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
Support adjustment of transmitting the current TAI offset via autokey.
Needs support to shift the table values in absence of fixed entries.
ntpd/ntp_leapsec.h@1.10 +42 -5
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
Support adjustment of transmitting the current TAI offset via autokey.
Needs support to shift the table values in absence of fixed entries.
tests/ntpd/leapsec.cpp@1.12 +82 -5
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
Test processing of TAI offset shifts as used by autokey
ChangeSet@1.3326.9.1, 2015-05-30 07:19:56+00:00, stenn@psp-fb1.ntp.org
[Bug 2769] Convert update-leap to perl
ChangeLog@1.1641.9.1 +3 -0
[Bug 2769] Convert update-leap to perl
scripts/update-leap/Makefile.am@1.4 +2 -1
[Bug 2769] Convert update-leap to perl
scripts/update-leap/update-leap.in@1.1 +425 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable/scripts/update-leap/update-leap.in
scripts/update-leap/update-leap.in@1.0 +0 -0
scripts/update-leap/update-leap.sh@1.2 +0 -0
Rename: scripts/update-leap/update-leap -> scripts/update-leap/update-leap.sh
ChangeSet@1.3350, 2015-05-27 09:51:28+00:00, viperus@psp-deb1.ntp.org
modified the ruby testRunner generator, so the test prints filesnames properly. ALSO, run-test-name.c files dont rebuild after I modify the ruby code
sntp/unity/auto/generate_test_runner.rb@1.2 +2 -1
tests/libntp/run-test-modetoa.c@1.2 +1 -1
tests/libntp/run-test-uglydate.c@1.2 +1 -1
ChangeSet@1.3349, 2015-05-27 08:40:02+00:00, viperus@psp-deb1.ntp.org
added run-testmodeto.c and run-test.uglydate.c
tests/libntp/run-test-modetoa.c@1.1 +50 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-modetoa.c
tests/libntp/run-test-modetoa.c@1.0 +0 -0
tests/libntp/run-test-uglydate.c@1.1 +48 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-uglydate.c
tests/libntp/run-test-uglydate.c@1.0 +0 -0
ChangeSet@1.3348, 2015-05-27 08:38:25+00:00, viperus@psp-deb1.ntp.org
modified makefile to work with multiple tests
tests/libntp/Makefile.am@1.45 +45 -6
ChangeSet@1.3347, 2015-05-26 10:15:06+00:00, viperus@psp-deb1.ntp.org
ut-2803.c:
Removed unncessary include.
tests/sandbox/ut-2803.c@1.3 +1 -1
Removed unncessary include.
ChangeSet@1.3346, 2015-05-26 10:11:49+00:00, viperus@psp-deb1.ntp.org
making better sandbox examples
tests/sandbox/Makefile.am@1.2 +22 -5
makefile now builds 3 seperate tests
tests/sandbox/ut-2803.c@1.2 +44 -5
added more test examples
ChangeSet@1.3345, 2015-05-26 09:36:31+00:00, viperus@psp-deb1.ntp.org
we want to build tests/libntp even if no GTEST
tests/Makefile.am@1.8 +8 -6
we want to build tests/libntp even if no GTEST
tests/libntp/Makefile.am@1.44 +6 -1
we want to build tests/libntp even if no GTEST
ChangeSet@1.3344, 2015-05-26 09:31:22+00:00, viperus@psp-deb1.ntp.org
added run-test-libntp.c
tests/libntp/run-test-libntp.c@1.1 +50 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/run-test-libntp.c
tests/libntp/run-test-libntp.c@1.0 +0 -0
ChangeSet@1.3343, 2015-05-26 09:23:18+00:00, viperus@psp-deb1.ntp.org
probably commited changes to tests/libntp/Makefile.am
tests/libntp/Makefile.am@1.43 +44 -11
modified makefile.
ChangeSet@1.3342, 2015-05-26 09:13:23+00:00, viperus@psp-deb1.ntp.org
added more files to libntp/ and added some autogenerated tests to sandbox so other people can see how do they lok like.
tests/libntp/g_modetoa.cpp@1.2 +0 -0
Rename: tests/libntp/modetoa.cpp -> tests/libntp/g_modetoa.cpp
tests/libntp/g_uglydate.cpp@1.3 +0 -0
Rename: tests/libntp/uglydate.cpp -> tests/libntp/g_uglydate.cpp
tests/libntp/modetoa.c@1.1 +20 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/modetoa.c
tests/libntp/modetoa.c@1.0 +0 -0
tests/libntp/test-libntp.c@1.1 +29 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/test-libntp.c
tests/libntp/test-libntp.c@1.0 +0 -0
tests/libntp/test-libntp.h@1.1 +6 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/test-libntp.h
tests/libntp/test-libntp.h@1.0 +0 -0
tests/libntp/testcalshims.c@1.1 +27 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/testcalshims.c
tests/libntp/testcalshims.c@1.0 +0 -0
tests/libntp/testcalshims.h@1.1 +9 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/testcalshims.h
tests/libntp/testcalshims.h@1.0 +0 -0
tests/libntp/uglydate.c@1.1 +16 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/libntp/uglydate.c
tests/libntp/uglydate.c@1.0 +0 -0
tests/sandbox/run-first-test.c@1.1 +48 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/sandbox/run-first-test.c
tests/sandbox/run-first-test.c@1.0 +0 -0
tests/sandbox/run-second-test.c@1.1 +50 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/sandbox/run-second-test.c
tests/sandbox/run-second-test.c@1.0 +0 -0
tests/sandbox/run-ut-2803.c@1.1 +58 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/sandbox/run-ut-2803.c
tests/sandbox/run-ut-2803.c@1.0 +0 -0
ChangeSet@1.3341, 2015-05-26 08:45:31+00:00, viperus@psp-deb1.ntp.org
added a few more files to sandbox/ , updated unity to print FAIL instead of Failure
tests/sandbox/modetoa.c@1.1 +20 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/sandbox/modetoa.c
tests/sandbox/modetoa.c@1.0 +0 -0
tests/sandbox/uglydate.c@1.1 +16 -0
BitKeeper file /home/viperus/ntp-stable-unity/tests/sandbox/uglydate.c
tests/sandbox/uglydate.c@1.0 +0 -0
ChangeSet@1.3340, 2015-05-19 10:24:10+00:00, stenn@psp-at1.ntp.org
Unity test framework fixes
configure.ac@1.592 +1 -1
Unity test framework fixes
sntp/configure.ac@1.80 +1 -1
Unity test framework fixes
sntp/m4/ntp_unitytest.m4@1.2 +1 -1
Unity test framework fixes
ChangeSet@1.3339, 2015-05-19 09:33:10+00:00, stenn@psp-deb1.ntp.org
Unity test framework fixes
ChangeLog@1.1648 +1 -0
Unity test framework fixes
configure.ac@1.591 +3 -0
Unity test framework fixes
sntp/configure.ac@1.79 +1 -0
Unity test framework fixes
sntp/m4/ntp_unitytest.m4@1.1, stenn@psp-at1.ntp.org +19 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/m4/ntp_unitytest.m4
sntp/m4/ntp_unitytest.m4@1.0, stenn@psp-at1.ntp.org +0 -0
ChangeSet@1.3338, 2015-05-19 07:22:21+00:00, stenn@psp-at1.ntp.org
Unity framework cleanup
tests/bug-2803/run-bug-2803.c@1.1 +46 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/run-bug-2803.c
tests/bug-2803/run-bug-2803.c@1.0 +0 -0
ChangeSet@1.3337, 2015-05-18 06:30:54+00:00, viperus@psp-deb1.ntp.org
tests/sandbox cleanup
BitKeeper/etc/ignore@1.88 +1 -0
added tests/sandbox/Makefile.in
ChangeSet@1.3336, 2015-05-18 06:29:35+00:00, viperus@psp-deb1.ntp.org
tests/sandbox cleanup
BitKeeper/deleted/8f/Makefile.in~199a99ee888869a7@1.2 +0 -0
Delete: tests/sandbox/Makefile.in
configure.ac@1.590 +1 -0
tests/sandbox cleanup
ChangeSet@1.3335, 2015-05-17 22:30:55+00:00, stenn@psp-at1.ntp.org
Created tests/sandbox/
tests/Makefile.am@1.7 +1 -0
Created tests/sandbox/
tests/sandbox/Makefile.am@1.1 +67 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/Makefile.am
tests/sandbox/Makefile.am@1.0 +0 -0
tests/sandbox/Makefile.in@1.1 +1258 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/Makefile.in
tests/sandbox/Makefile.in@1.0 +0 -0
tests/sandbox/bug-2803.c@1.1 +99 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/bug-2803.c
tests/sandbox/bug-2803.c@1.0 +0 -0
tests/sandbox/bug-2803.h@1.1 +1 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/bug-2803.h
tests/sandbox/bug-2803.h@1.0 +0 -0
tests/sandbox/run-bug-2803.c@1.1 +46 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/run-bug-2803.c
tests/sandbox/run-bug-2803.c@1.0 +0 -0
tests/sandbox/test-2803.c@1.1 +229 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/test-2803.c
tests/sandbox/test-2803.c@1.0 +0 -0
tests/sandbox/ut-2803.c@1.1 +41 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/sandbox/ut-2803.c
tests/sandbox/ut-2803.c@1.0 +0 -0
ChangeSet@1.3334, 2015-05-17 22:16:38+00:00, stenn@psp-at1.ntp.org
Unity framework improvements
sntp/unity/auto/colour_prompt.rb@1.1 +94 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/colour_prompt.rb
sntp/unity/auto/colour_prompt.rb@1.0 +0 -0
sntp/unity/auto/colour_reporter.rb@1.1 +39 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/colour_reporter.rb
sntp/unity/auto/colour_reporter.rb@1.0 +0 -0
sntp/unity/auto/generate_config.yml@1.1 +36 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/generate_config.yml
sntp/unity/auto/generate_config.yml@1.0 +0 -0
sntp/unity/auto/generate_module.rb@1.1 +202 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/generate_module.rb
sntp/unity/auto/generate_module.rb@1.0 +0 -0
sntp/unity/auto/generate_test_runner.rb@1.1 +298 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/generate_test_runner.rb
sntp/unity/auto/generate_test_runner.rb@1.0 +0 -0
sntp/unity/auto/runner_maybe.c@1.1 +52 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/runner_maybe.c
sntp/unity/auto/runner_maybe.c@1.0 +0 -0
sntp/unity/auto/test_file_filter.rb@1.1 +23 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/test_file_filter.rb
sntp/unity/auto/test_file_filter.rb@1.0 +0 -0
sntp/unity/auto/unity_test_summary.rb@1.1 +126 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/auto/unity_test_summary.rb
sntp/unity/auto/unity_test_summary.rb@1.0 +0 -0
sntp/unity/unity.c@1.2 +110 -5
Unity XFAIL patches from Damir Tomic
sntp/unity/unity_internals.h@1.2 +11 -0
Unity XFAIL patches from Damir Tomic
tests/bug-2803/Makefile.am@1.6 +1 -1
Unity cleanup
tests/bug-2803/Makefile.am@1.5 +6 -1
Unity cleanup
ChangeSet@1.3333, 2015-05-17 06:47:45+00:00, stenn@psp-at1.ntp.org
Initial support for PACKAGE_VERSION tests
ChangeLog@1.1647 +3 -0
Initial support for PACKAGE_VERSION tests
sntp/Makefile.am@1.80 +1 -1
Added libpkgver
sntp/libpkgver/colcomp.c@1.2 +2 -2
import typo fix
sntp/libpkgver/colcomp.c@1.1, stenn@psp-deb1.ntp.org +135 -0
BitKeeper file /home/stenn/ntp-stable-unity/sntp/libpkgver/colcomp.c
sntp/libpkgver/colcomp.c@1.0, stenn@psp-deb1.ntp.org +0 -0
sntp/libpkgver/pkgver.h@1.1, stenn@psp-deb1.ntp.org +19 -0
BitKeeper file /home/stenn/ntp-stable-unity/sntp/libpkgver/pkgver.h
sntp/libpkgver/pkgver.h@1.0, stenn@psp-deb1.ntp.org +0 -0
sntp/unity/Makefile.am@1.2 +1 -0
Added colcomp.c from libpkgver
ChangeSet@1.3332, 2015-05-16 08:58:44+00:00, stenn@psp-at1.ntp.org
Updates to bug-2803 tests
tests/bug-2803/Makefile.am@1.4 +4 -2
Updates to bug-2803 tests
tests/bug-2803/TestProductionCode_Runner.c@1.1 +55 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/TestProductionCode_Runner.c
tests/bug-2803/TestProductionCode_Runner.c@1.0 +0 -0
tests/bug-2803/bug-2803.c@1.3 +1 -1
Updates to bug-2803 tests
tests/bug-2803/bug-2803.h@1.1 +1 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/bug-2803.h
tests/bug-2803/bug-2803.h@1.0 +0 -0
tests/bug-2803/ut-2803.c@1.1 +41 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/ut-2803.c
tests/bug-2803/ut-2803.c@1.0 +0 -0
ChangeSet@1.3326.8.2, 2015-05-16 04:28:40+00:00, abe@psp-deb1.ntp.org
refclock.html, ChangeLog:
[Bug 2834] Correct a broken html tag in html/refclock.html
ChangeLog@1.1641.8.2 +1 -0
[Bug 2834] Correct a broken html tag in html/refclock.html
html/refclock.html@1.45 +1 -1
[Bug 2834] Correct a broken html tag in html/refclock.html
ChangeSet@1.3326.8.1, 2015-05-15 11:43:04+00:00, abe@psp-deb1.ntp.org
driver40.html, refclock_jjy.c, driver40-ja.html, ChangeLog:
refclock_jjy.c supports the TDC-300
ChangeLog@1.1641.8.1 +1 -0
refclock_jjy.c supports the TDC-300
html/drivers/driver40-ja.html@1.4 +62 -9
refclock_jjy.c supports the TDC-300
html/drivers/driver40.html@1.19 +62 -9
refclock_jjy.c supports the TDC-300
ntpd/refclock_jjy.c@1.29 +253 -1
refclock_jjy.c supports the TDC-300
ChangeSet@1.3326.7.4, 2015-05-14 17:08:20+02:00, jnperlin@hydra.(none)
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTP does *not* transfer the TAI offset, but a leap second announcement.
Handling of these announcements and stepping over leap seconds needed improvement.
ChangeLog@1.1641.7.3 +4 -0
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTP does *not* transfer the TAI offset, but a leap second announcement.
Handling of these announcements and stepping over leap seconds needed improvement.
ntpd/ntp_leapsec.c@1.19 +60 -26
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTP does *not* transfer the TAI offset, but a leap second announcement. This needed some more work:
- Extending the expiration date via autokey without a new transition did not work.
- Assuming a positive leap transition at the first leap second helps when starting without leap file.
- Stepping over a leapsecond should not trigger the leap second transition detection.
tests/ntpd/leapsec.cpp@1.11 +162 -4
[Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
Add/fix test cases to validate the changes to ntp_leapsec.c
ChangeSet@1.3326.7.3, 2015-05-12 04:35:09-04:00, stenn@deacon.udel.edu
NTP_4_2_8P3_RC1
TAG: NTP_4_2_8P3_RC1
ChangeLog@1.1641.7.2 +1 -0
NTP_4_2_8P3_RC1
ntpd/invoke-ntp.conf.texi@1.183 +1 -1
NTP_4_2_8P3_RC1
ntpd/invoke-ntp.keys.texi@1.179 +1 -1
NTP_4_2_8P3_RC1
ntpd/invoke-ntpd.texi@1.496 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.conf.5man@1.217 +3 -3
NTP_4_2_8P3_RC1
ntpd/ntp.conf.5mdoc@1.217 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.conf.html@1.174 +1 -1
NTP_4_2_8P3_RC1
ntpd/ntp.conf.man.in@1.217 +3 -3
NTP_4_2_8P3_RC1
ntpd/ntp.conf.mdoc.in@1.217 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.keys.5man@1.213 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.keys.5mdoc@1.213 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.keys.html@1.175 +1 -1
NTP_4_2_8P3_RC1
ntpd/ntp.keys.man.in@1.213 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntp.keys.mdoc.in@1.213 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntpd-opts.c@1.518 +268 -268
NTP_4_2_8P3_RC1
ntpd/ntpd-opts.h@1.517 +3 -3
NTP_4_2_8P3_RC1
ntpd/ntpd.1ntpdman@1.325 +3 -3
NTP_4_2_8P3_RC1
ntpd/ntpd.1ntpdmdoc@1.325 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntpd.html@1.169 +2 -2
NTP_4_2_8P3_RC1
ntpd/ntpd.man.in@1.325 +3 -3
NTP_4_2_8P3_RC1
ntpd/ntpd.mdoc.in@1.325 +2 -2
NTP_4_2_8P3_RC1
ntpdc/invoke-ntpdc.texi@1.493 +2 -2
NTP_4_2_8P3_RC1
ntpdc/ntpdc-opts.c@1.511 +130 -130
NTP_4_2_8P3_RC1
ntpdc/ntpdc-opts.h@1.510 +3 -3
NTP_4_2_8P3_RC1
ntpdc/ntpdc.1ntpdcman@1.324 +3 -3
NTP_4_2_8P3_RC1
ntpdc/ntpdc.1ntpdcmdoc@1.324 +2 -2
NTP_4_2_8P3_RC1
ntpdc/ntpdc.html@1.337 +2 -2
NTP_4_2_8P3_RC1
ntpdc/ntpdc.man.in@1.324 +3 -3
NTP_4_2_8P3_RC1
ntpdc/ntpdc.mdoc.in@1.324 +2 -2
NTP_4_2_8P3_RC1
ntpq/invoke-ntpq.texi@1.499 +5 -3
NTP_4_2_8P3_RC1
ntpq/ntpq-opts.c@1.516 +129 -129
NTP_4_2_8P3_RC1
ntpq/ntpq-opts.h@1.514 +3 -3
NTP_4_2_8P3_RC1
ntpq/ntpq.1ntpqman@1.327 +6 -4
NTP_4_2_8P3_RC1
ntpq/ntpq.1ntpqmdoc@1.327 +5 -3
NTP_4_2_8P3_RC1
ntpq/ntpq.html@1.166 +2 -2
NTP_4_2_8P3_RC1
ntpq/ntpq.man.in@1.327 +6 -4
NTP_4_2_8P3_RC1
ntpq/ntpq.mdoc.in@1.327 +5 -3
NTP_4_2_8P3_RC1
ntpsnmpd/invoke-ntpsnmpd.texi@1.495 +2 -2
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd-opts.c@1.513 +91 -91
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd-opts.h@1.512 +3 -3
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.324 +3 -3
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.324 +2 -2
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd.html@1.164 +1 -1
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd.man.in@1.324 +3 -3
NTP_4_2_8P3_RC1
ntpsnmpd/ntpsnmpd.mdoc.in@1.324 +2 -2
NTP_4_2_8P3_RC1
packageinfo.sh@1.511 +2 -2
NTP_4_2_8P3_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.85 +3 -3
NTP_4_2_8P3_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.86 +2 -2
NTP_4_2_8P3_RC1
scripts/calc_tickadj/calc_tickadj.html@1.87 +1 -1
NTP_4_2_8P3_RC1
scripts/calc_tickadj/calc_tickadj.man.in@1.84 +3 -3
NTP_4_2_8P3_RC1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.86 +2 -2
NTP_4_2_8P3_RC1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.89 +1 -1
NTP_4_2_8P3_RC1
scripts/invoke-plot_summary.texi@1.106 +2 -2
NTP_4_2_8P3_RC1
scripts/invoke-summary.texi@1.106 +2 -2
NTP_4_2_8P3_RC1
scripts/ntp-wait/invoke-ntp-wait.texi@1.316 +2 -2
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait-opts@1.52 +2 -2
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.313 +3 -3
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.314 +2 -2
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait.html@1.333 +2 -2
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait.man.in@1.313 +3 -3
NTP_4_2_8P3_RC1
scripts/ntp-wait/ntp-wait.mdoc.in@1.314 +2 -2
NTP_4_2_8P3_RC1
scripts/ntpsweep/invoke-ntpsweep.texi@1.104 +2 -2
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep-opts@1.54 +2 -2
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.92 +3 -3
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.92 +2 -2
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep.html@1.105 +2 -2
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep.man.in@1.92 +3 -3
NTP_4_2_8P3_RC1
scripts/ntpsweep/ntpsweep.mdoc.in@1.93 +2 -2
NTP_4_2_8P3_RC1
scripts/ntptrace/invoke-ntptrace.texi@1.105 +2 -2
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace-opts@1.54 +2 -2
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace.1ntptraceman@1.92 +3 -3
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.93 +2 -2
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace.html@1.106 +2 -2
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace.man.in@1.92 +3 -3
NTP_4_2_8P3_RC1
scripts/ntptrace/ntptrace.mdoc.in@1.94 +2 -2
NTP_4_2_8P3_RC1
scripts/plot_summary-opts@1.54 +2 -2
NTP_4_2_8P3_RC1
scripts/plot_summary.1plot_summaryman@1.104 +3 -3
NTP_4_2_8P3_RC1
scripts/plot_summary.1plot_summarymdoc@1.104 +2 -2
NTP_4_2_8P3_RC1
scripts/plot_summary.html@1.107 +2 -2
NTP_4_2_8P3_RC1
scripts/plot_summary.man.in@1.104 +3 -3
NTP_4_2_8P3_RC1
scripts/plot_summary.mdoc.in@1.104 +2 -2
NTP_4_2_8P3_RC1
scripts/summary-opts@1.54 +2 -2
NTP_4_2_8P3_RC1
scripts/summary.1summaryman@1.104 +3 -3
NTP_4_2_8P3_RC1
scripts/summary.1summarymdoc@1.104 +2 -2
NTP_4_2_8P3_RC1
scripts/summary.html@1.107 +2 -2
NTP_4_2_8P3_RC1
scripts/summary.man.in@1.104 +3 -3
NTP_4_2_8P3_RC1
scripts/summary.mdoc.in@1.104 +2 -2
NTP_4_2_8P3_RC1
scripts/update-leap/invoke-update-leap.texi@1.5 +1 -1
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap-opts@1.5 +2 -2
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap.1update-leapman@1.5 +3 -3
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap.1update-leapmdoc@1.5 +2 -2
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap.html@1.5 +1 -1
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap.man.in@1.5 +3 -3
NTP_4_2_8P3_RC1
scripts/update-leap/update-leap.mdoc.in@1.5 +2 -2
NTP_4_2_8P3_RC1
sntp/invoke-sntp.texi@1.493 +2 -2
NTP_4_2_8P3_RC1
sntp/sntp-opts.c@1.512 +185 -185
NTP_4_2_8P3_RC1
sntp/sntp-opts.h@1.510 +3 -3
NTP_4_2_8P3_RC1
sntp/sntp.1sntpman@1.328 +3 -3
NTP_4_2_8P3_RC1
sntp/sntp.1sntpmdoc@1.328 +2 -2
NTP_4_2_8P3_RC1
sntp/sntp.html@1.508 +2 -2
NTP_4_2_8P3_RC1
sntp/sntp.man.in@1.328 +3 -3
NTP_4_2_8P3_RC1
sntp/sntp.mdoc.in@1.328 +2 -2
NTP_4_2_8P3_RC1
util/invoke-ntp-keygen.texi@1.496 +2 -2
NTP_4_2_8P3_RC1
util/ntp-keygen-opts.c@1.514 +198 -198
NTP_4_2_8P3_RC1
util/ntp-keygen-opts.h@1.512 +3 -3
NTP_4_2_8P3_RC1
util/ntp-keygen.1ntp-keygenman@1.324 +3 -3
NTP_4_2_8P3_RC1
util/ntp-keygen.1ntp-keygenmdoc@1.324 +2 -2
NTP_4_2_8P3_RC1
util/ntp-keygen.html@1.170 +2 -2
NTP_4_2_8P3_RC1
util/ntp-keygen.man.in@1.324 +3 -3
NTP_4_2_8P3_RC1
util/ntp-keygen.mdoc.in@1.324 +2 -2
NTP_4_2_8P3_RC1
ChangeSet@1.3326.7.2, 2015-05-12 04:02:33-04:00, stenn@deacon.udel.edu
4.2.8p3-RC1
NEWS@1.137 +51 -1
4.2.8p3-RC1
packageinfo.sh@1.510 +1 -1
4.2.8p3-RC1
ChangeSet@1.3326.1.11, 2015-05-08 23:35:28-04:00, stenn@deacon.udel.edu
cleanup
ChangeLog@1.1641.1.11 +3 -3
cleanup
ChangeSet@1.3326.1.9, 2015-05-09 03:28:48+00:00, stenn@psp-at1.ntp.org
minor cleanup
ChangeLog@1.1641.1.9 +3 -3
minor cleanup
lib/isc/unix/ifiter_getifaddrs.c@1.16 +2 -0
minor cleanup
ChangeSet@1.3326.4.6, 2015-05-08 23:57:16+02:00, jnperlin@hydra.(none)
* [Bug 2745] ntpd -x steps clock on leap second
removed dead test code block in ntpd/ntp_leapsec.c
ntpd/ntp_leapsec.c@1.18 +0 -8
* [Bug 2745] ntpd -x steps clock on leap second
removed dead test code block
ChangeSet@1.3326.4.5, 2015-05-08 23:35:42+02:00, jnperlin@hydra.(none)
* [Bug 2745] ntpd -x steps clock on leap second
Fixed an initial-value problem that caused misbehaviour in absence of any leapsecond information.
ChangeLog@1.1641.4.4 +2 -0
* [Bug 2745] ntpd -x steps clock on leap second
Fixed an initial-value problem that caused misbehaviour in absence of any leapsecond information.
ntpd/ntp_leapsec.c@1.17 +29 -3
* [Bug 2745] ntpd -x steps clock on leap second
Fixed an initial-value problem that caused misbehaviour in absence of any leapsecond information.
Added support function to reset to pristine state for unit tests.
ntpd/ntp_leapsec.h@1.9 +3 -0
* [Bug 2745] ntpd -x steps clock on leap second
Added support function to reset to pristine state for unit tests.
tests/ntpd/leapsec.cpp@1.10 +20 -10
* [Bug 2745] ntpd -x steps clock on leap second
Added test case to validate the behaviour of queries in pristine state.
ChangeSet@1.3326.6.1, 2015-05-08 21:25:22+02:00, jnperlin@hydra.(none)
* [Bug 2808] GPSD_JSON driver enhancements, step 1.
Fix crash during cleanup if GPS device not present and char device.
ChangeLog@1.1641.6.1 +1 -0
* [Bug 2808] GPSD_JSON driver enhancements, step 1.
Fix crash during cleanup if GPS device not present and char device.
ntpd/refclock_gpsdjson.c@1.22 +12 -3
* [Bug 2808] GPSD_JSON driver enhancements, step 1.
Fix crash during cleanup if GPS device not present and char device.
ChangeSet@1.3326.1.8, 2015-05-08 12:25:43+02:00, martin@pc-martin.(none)
[Bug 2792] If the IFF_RUNNING interface flag is supported then an interface is ignored
as long as this flag is not set since the interface is not usable (e.g., no link).
ChangeLog@1.1641.1.8 +3 -0
[Bug 2792] If the IFF_RUNNING interface flag is supported then an interface is ignored
as long as this flag is not set since the interface is not usable (e.g., no link).
lib/isc/unix/ifiter_getifaddrs.c@1.15 +17 -0
[Bug 2792] If the IFF_RUNNING interface flag is supported then an interface is ignored
as long as this flag is not set since the interface is not usable (e.g., no link).
ChangeSet@1.3326.1.7, 2015-05-08 08:29:08+00:00, stenn@psp-at1.ntp.org
CID 739725: Fix a rare resource leak in libevent/listener.c
ChangeLog@1.1641.1.7 +1 -0
CID 739725: Fix a rare resource leak in libevent/listener.c
sntp/libevent/listener.c@1.8 +2 -0
CID 739725: Fix a rare resource leak in libevent/listener.c
ChangeSet@1.3326.1.6, 2015-05-08 08:19:06+00:00, stenn@psp-at1.ntp.org
[Bug 2821] Add a missing NTP_PRINTF and a missing const
ChangeLog@1.1641.1.6 +1 -0
[Bug 2821] Add a missing NTP_PRINTF and a missing const
ntpd/refclock_gpsdjson.c@1.21 +1 -1
[Bug 2821] Add a missing NTP_PRINTF and a missing const
sntp/main.c@1.96 +1 -1
[Bug 2821] Add a missing NTP_PRINTF and a missing const
ChangeSet@1.3326.1.5, 2015-05-08 07:48:27+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1641.1.5 +3 -2
cleanup
ChangeSet@1.3326.3.3, 2015-05-08 07:37:35+00:00, stenn@psp-at1.ntp.org
merge cleanup
ChangeLog@1.1641.3.3 +3 -4
merge cleanup
ChangeSet@1.3326.5.2, 2015-05-08 05:35:12+00:00, stenn@psp-at1.ntp.org
Add an assert to the ntpq ifstats code
ChangeLog@1.1641.5.2 +1 -0
Add an assert to the ntpq ifstats code
ntpq/ntpq-subs.c@1.105 +1 -0
Add an assert to the ntpq ifstats code
ChangeSet@1.3326.5.1, 2015-05-08 04:59:19+00:00, stenn@psp-at1.ntp.org
Clean up the RLIMIT_STACK code
ChangeLog@1.1641.5.1 +1 -0
Clean up the RLIMIT_STACK code
ntpd/ntp_config.c@1.325 +3 -2
Clean up the RLIMIT_STACK code
ChangeSet@1.3326.4.4, 2015-05-07 23:55:59+02:00, jnperlin@hydra.(none)
[Bug 2745] ntpd -x steps clock on leap second
provide test case for empty table lookup with real leap second
don't step with '-x' or if step min. step > 1sec
ChangeLog@1.1641.4.3 +3 -3
[Bug 2745] ntpd -x steps clock on leap second
provide test case for empty table lookup with real leap second
don't step with '-x' or if step min. step > 1sec
tests/ntpd/leapsec.cpp@1.9 +43 -0
[Bug 2745] ntpd -x steps clock on leap second
provide test case for empty table lookup with real leap second
ChangeSet@1.3326.4.2, 2015-05-07 04:55:15+00:00, stenn@psp-at1.ntp.org
[Bug 2825] Quiet file installation in html/
ChangeLog@1.1641.4.1 +1 -0
[Bug 2825] Quiet file installation in html/
Makefile.am@1.128.1.1 +3 -2
[Bug 2825] Quiet file installation in html/
ChangeSet@1.3326.4.1, 2015-05-07 00:03:30+00:00, stenn@psp-at1.ntp.org
bk gone file cleanup
BitKeeper/etc/gone@1.13 +0 -8
bk gone file cleanup
ChangeSet@1.3326.3.1, 2015-05-06 22:38:12+02:00, jnperlin@hydra.(none)
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Increase internal token buffer to parse all JSON data, even SKY.
Avoid syslog clutter when driver has init problems but is nout used later on.
ChangeLog@1.1641.3.1 +4 -0
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Increase internal token buffer to parse all JSON data, even SKY.
Avoid syslog clutter when driver has init problems but is nout used later on.
ntpd/refclock_gpsdjson.c@1.20 +87 -11
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Increase internal token buffer to parse all JSON data, even SKY.
Avoid syslog clutter when driver has init problems but is nout used later on.
ChangeSet@1.3326.1.3, 2015-05-05 23:32:59+02:00, jnperlin@nemesis.localnet
[Bug 2750] build for Win64
loopback ppsapi dll needs def-file for entry point renaming in x86 target builds
BitKeeper/etc/ignore@1.87 +6 -1
[Bug 2750] build for Win64
add all '.suo' files
add {Win32,x64}-{tmp,out} dirs
ChangeLog@1.1641.1.3 +2 -1
[Bug 2750] build for Win64
use def-file for entry point renaming in x86 target builds of loopback ppsapi provider
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def@1.4 +3 -1
[Bug 2750] build for Win64
add comment to explain why this is needed
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def@1.3 +0 -0
Rename: BitKeeper/deleted/74/loopback-ppsapi.def~c04da70eaf86d30 -> ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def
ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj@1.3 +2 -0
[Bug 2750] build for Win64
use def-file for entry point renaming in x86 target builds
ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj@1.5 +4 -0
[Bug 2750] build for Win64
use def-file for entry point renaming in x86 target builds
ChangeSet@1.3326.1.2, 2015-05-04 22:51:42+00:00, stenn@psp-at1.ntp.org
Remove vs2013/ntp.v12.suo and vs2013/ntp.sdf
BitKeeper/etc/gone@1.12 +1 -0
Add items with bk gone
BitKeeper/etc/gone@1.11 +0 -0
Turn on MONOTONIC flag
BitKeeper/etc/gone@1.10 +1 -0
Add items with bk gone
ChangeSet@1.3326.1.1, 2015-05-04 06:46:05+00:00, stenn@psp-at1.ntp.org
[Bug 2822] New leap column in sntp broke NTP::Util.pm
ChangeLog@1.1641.1.2 +1 -0
[Bug 2822] New leap column in sntp broke NTP::Util.pm
scripts/lib/NTP/Util.pm@1.4 +1 -1
[Bug 2822] New leap column in sntp broke NTP::Util.pm
ChangeSet@1.3326, 2015-05-03 08:00:35+00:00, stenn@psp-deb1.ntp.org
Windows port build cleanup
ChangeLog@1.1641.1.1 +1 -0
Windows port build cleanup
ChangeSet@1.3320.1.13, 2015-05-03 07:11:22+00:00, stenn@psp-at1.ntp.org
unity framework
Makefile.am@1.129 +1 -0
unity framework
sntp/Makefile.am@1.79 +2 -2
unity framework
tests/unity-framework/ProductionCode.c@1.1 +24 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/unity-framework/ProductionCode.c
tests/unity-framework/ProductionCode.c@1.0 +0 -0
tests/unity-framework/ProductionCode.h@1.1 +3 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/unity-framework/ProductionCode.h
tests/unity-framework/ProductionCode.h@1.0 +0 -0
tests/unity-framework/TestProductionCode.c@1.1 +62 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/unity-framework/TestProductionCode.c
tests/unity-framework/TestProductionCode.c@1.0 +0 -0
tests/unity-framework/TestProductionCode_Runner.c@1.1 +37 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/unity-framework/TestProductionCode_Runner.c
tests/unity-framework/TestProductionCode_Runner.c@1.0 +0 -0
ChangeSet@1.3320.1.12, 2015-05-03 03:50:55+00:00, stenn@psp-at1.ntp.org
typo
tests/bug-2803/Makefile.am@1.3 +1 -1
typo
ChangeSet@1.3320.1.11, 2015-05-03 03:41:35+00:00, stenn@psp-at1.ntp.org
bug-2803 framework
sntp/configure.ac@1.78 +1 -0
bug-2803 framework
sntp/unity/Makefile.am@1.1 +15 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/Makefile.am
sntp/unity/Makefile.am@1.0 +0 -0
tests/bug-2803/Makefile.am@1.2 +14 -8
bug-2803 framework
tests/bug-2803/bug-2803.c@1.2 +4 -134
bug-2803 framework
ChangeSet@1.3320.1.10, 2015-05-03 02:43:24+00:00, stenn@psp-at1.ntp.org
Updates for bug-2803/ tests
configure.ac@1.589 +1 -0
Updates for bug-2803/ tests
tests/Makefile.am@1.6 +3 -0
Updates for bug-2803/ tests
tests/bug-2803/Makefile.am@1.1 +54 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/Makefile.am
tests/bug-2803/Makefile.am@1.0 +0 -0
ChangeSet@1.3320.1.8, 2015-05-02 04:05:14+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1641 +1 -1
cleanup
ChangeSet@1.3320.1.7, 2015-05-01 13:27:32+00:00, abe@psp-deb1.ntp.org
driver40-ja.html:
[BUG 2806] Correcting typo of the driver40-ja.html
ChangeLog:
[BUG 2806] CID 1296235: refclock_jjy.c and correcting typo of driver40-ja.html
refclock_jjy.c:
[BUG 2806] CID 1296235: Fix refclock_jjy.c and some changes to avoid claims by the check tool
ChangeLog@1.1640 +1 -0
[BUG 2806] CID 1296235: refclock_jjy.c and correcting typo of driver40-ja.html
html/drivers/driver40-ja.html@1.3 +2 -2
[BUG 2806] Correcting typo of the driver40-ja.html
ntpd/refclock_jjy.c@1.28 +12 -2
[BUG 2806] CID 1296235: Fix refclock_jjy.c and some changes to avoid claims by the check tool
ChangeSet@1.3320.4.13, 2015-05-01 05:59:34-04:00, stenn@deacon.udel.edu
[Bug 2590] autogen-5.18.5
ChangeLog@1.1635.3.8 +1 -1
[Bug 2590] autogen-5.18.5
sntp/include/autogen-version.def@1.22 +1 -1
[Bug 2590] autogen-5.18.5
ChangeSet@1.3320.4.12, 2015-05-01 09:25:56+00:00, stenn@psp-at1.ntp.org
[Bug 2650] fix includefile processing
ChangeLog@1.1635.3.7 +1 -0
[Bug 2650] fix includefile processing
ChangeSet@1.3320.10.2, 2015-05-01 01:08:05+02:00, jnperlin@hydra.(none)
[Bug 2650] includefile processing broken.
rework and cleanup of config processing after merge from 4.2.8p2
ntpd/keyword-gen.c@1.28 +0 -2
[Bug 2650] includefile processing broken.
rework and cleanup of config processing after merge from 4.2.8p2
ntpd/ntp_parser.c@1.92 +405 -412
[Bug 2650] includefile processing broken.
rework and cleanup of config processing after merge from 4.2.8p2
ntpd/ntp_scanner.c@1.48 +56 -45
[Bug 2650] includefile processing broken.
rework and cleanup of config processing after merge from 4.2.8p2
ntpd/ntp_scanner.h@1.20 +8 -1
[Bug 2650] includefile processing broken.
rework and cleanup of config processing after merge from 4.2.8p2
ChangeSet@1.3320.4.10, 2015-04-30 05:55:00+00:00, stenn@psp-at1.ntp.org
update dates
html/drivers/driver40-ja.html@1.2 +1 -1
update dates
html/drivers/driver40.html@1.18 +1 -1
update dates
html/drivers/driver46.html@1.7 +1 -1
update dates
ChangeSet@1.3320.4.9, 2015-04-30 05:01:21+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1635.3.6 +0 -3
cleanup
ntpd/refclock_shm.c@1.31.1.3 +4 -0
cleanup
ChangeSet@1.3320.3.5, 2015-04-30 04:02:23+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1635.2.4 +3 -3
cleanup
ntpd/ntp_timer.c@1.85 +1 -1
cleanup
ntpd/refclock_shm.c@1.31.3.1 +4 -1
cleanup
ChangeSet@1.3320.7.3, 2015-04-29 22:58:45+00:00, stenn@psp-at1.ntp.org
cleanup
ChangeLog@1.1635.5.2 +1 -1
cleanup
ChangeSet@1.3292.1.21, 2015-04-29 20:07:39+02:00, jnperlin@hydra.(none)
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_config.c@1.322.1.1 +20 -38
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_parser.c@1.89.1.1 +404 -411
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_parser.h@1.55.1.1 +2 -2
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_parser.y@1.82.1.1 +43 -51
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_scanner.c@1.47 +297 -128
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ntpd/ntp_scanner.h@1.19 +27 -22
[bug 2650] includefile processing broken
forward from lost/orphaned repo
ChangeSet@1.3320.3.2, 2015-04-29 19:29:16+02:00, jnperlin@hydra.(none)
[Bug 2745] ntpd -x steps clock on leap second
Better syslog messages when not stepping
ntpd/ntp_timer.c@1.84 +19 -4
[Bug 2745] ntpd -x steps clock on leap second
Better syslog messages when not stepping
ChangeSet@1.3320.4.6, 2015-04-29 18:58:30+02:00, jnperlin@hydra.(none)
[Bug 2808] - GPSD_JSON driver enhancements, step 1
fix coverity issues in refclock_shm and refclock_gpsdjson
ChangeLog@1.1635.3.3 +2 -0
[Bug 2808] - GPSD_JSON driver enhancements, step 1
fix coverity issues in refclock_shm and refclock_gpsdjson
libjsmn/jsmn.c@1.5 +6 -5
[Bug 2808] - GPSD_JSON driver enhancements, step 1
fix coverity issue with potential NULL pointer access
ntpd/refclock_gpsdjson.c@1.19 +3 -2
[Bug 2808] - GPSD_JSON driver enhancements, step 1
fix coverity issue with negative array index
ntpd/refclock_shm.c@1.31.2.1 +0 -1
[Bug 2808] - GPSD_JSON driver enhancements, step 1
fix coverity issue with unreachable code
ChangeSet@1.3320.8.1, 2015-04-29 07:03:32+00:00, stenn@psp-at1.ntp.org
[Bug 2805] ntpd fails to join multicast group
ChangeLog@1.1635.6.1 +1 -0
[Bug 2805] ntpd fails to join multicast group
ntpd/ntp_io.c@1.400 +30 -9
[Bug 2805] ntpd fails to join multicast group
ChangeSet@1.3320.7.2, 2015-04-28 12:08:31+00:00, abe@psp-deb1.ntp.org
ChangeLog:
[BUG 2806] refclock_jjy.c supports the Tel-JJY
ChangeLog@1.1635.5.1 +1 -0
[BUG 2806] refclock_jjy.c supports the Tel-JJY
ChangeSet@1.3320.7.1, 2015-04-28 11:47:00+00:00, abe@psp-deb1.ntp.org
driver40-ja.html:
new file
driver40.html, refclock_jjy.c:
[BUG 2806] refclock_jjy.c supports the Tel-JJY
html/drivers/driver40-ja.html@1.1 +481 -0
BitKeeper file /home/abe/ntp-stable-2806/html/drivers/driver40-ja.html
html/drivers/driver40-ja.html@1.0 +0 -0
html/drivers/driver40.html@1.17 +265 -48
[BUG 2806] refclock_jjy.c supports the Tel-JJY
ntpd/refclock_jjy.c@1.27 +3570 -1117
[BUG 2806] refclock_jjy.c supports the Tel-JJY
ChangeSet@1.3320.5.10, 2015-04-28 09:13:57+00:00, stenn@psp-at1.ntp.org
bug-2803 tests
tests/bug-2803/Makefile-@1.1 +10 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/Makefile-
tests/bug-2803/Makefile-@1.0 +0 -0
tests/bug-2803/bug-2803.c@1.1 +229 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/bug-2803.c
tests/bug-2803/bug-2803.c@1.0 +0 -0
tests/bug-2803/test-2803.c@1.1 +229 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/tests/bug-2803/test-2803.c
tests/bug-2803/test-2803.c@1.0 +0 -0
ChangeSet@1.3320.5.8, 2015-04-27 20:49:41+00:00, stenn@psp-at1.ntp.org
[Bug 2612] restrict: Warn when 'monitor' can't be disabled because of 'limited'
ChangeLog@1.1635.4.6 +2 -0
[Bug 2612] restrict: Warn when 'monitor' can't be disabled because of 'limited'
ntpd/ntp_proto.c@1.356 +5 -1
[Bug 2612] restrict: Warn when 'monitor' can't be disabled because of 'limited'
ChangeSet@1.3320.5.7, 2015-04-27 10:48:48+00:00, stenn@psp-at1.ntp.org
[Bug 2815] net-snmp before v5.4 has circular library dependencies
ChangeLog@1.1635.4.5 +1 -0
[Bug 2815] net-snmp before v5.4 has circular library dependencies
configure.ac@1.584.1.2 +14 -0
[Bug 2815] net-snmp before v5.4 has circular library dependencies
ChangeSet@1.3320.2.11, 2015-04-27 08:41:41+00:00, stenn@psp-deb1.ntp.org
[Bug 2776] Clean up EVP_MD_do_all_sorted() test
sntp/m4/ntp_openssl.m4@1.24 +3 -1
[Bug 2776] Clean up EVP_MD_do_all_sorted() test
ChangeSet@1.3320.5.6, 2015-04-26 19:53:46+00:00, stenn@psp-at1.ntp.org
[Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h
ChangeLog@1.1635.4.4 +1 -0
[Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h
include/ntp_types.h@1.34 +5 -0
[Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h
sntp/m4/os_cflags.m4@1.10 +2 -2
[Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h
ChangeSet@1.3320.5.5, 2015-04-26 18:44:23+00:00, stenn@psp-at1.ntp.org
autogen-5.18.5
ChangeLog@1.1635.4.3 +1 -0
autogen-5.18.5
sntp/libopts/COPYING.gplv3@1.8 +1 -1
autogen-5.18.5
sntp/libopts/COPYING.lgplv3@1.8 +1 -1
autogen-5.18.5
sntp/libopts/COPYING.mbsd@1.3 +1 -0
autogen-5.18.5
sntp/libopts/README@1.10 +1 -1
autogen-5.18.5
sntp/libopts/ag-char-map.h@1.31 +2 -2
autogen-5.18.5
sntp/libopts/alias.c@1.8 +1 -1
autogen-5.18.5
sntp/libopts/ao-strs.c@1.17 +2 -2
autogen-5.18.5
sntp/libopts/ao-strs.h@1.16 +2 -2
autogen-5.18.5
sntp/libopts/autoopts.c@1.20 +4 -4
autogen-5.18.5
sntp/libopts/autoopts.h@1.21 +12 -12
autogen-5.18.5
sntp/libopts/autoopts/options.h@1.30 +96 -96
autogen-5.18.5
sntp/libopts/autoopts/project.h@1.8 +1 -1
autogen-5.18.5
sntp/libopts/autoopts/usage-txt.h@1.29 +15 -15
autogen-5.18.5
sntp/libopts/boolean.c@1.15 +5 -5
autogen-5.18.5
sntp/libopts/check.c@1.8 +1 -1
autogen-5.18.5
sntp/libopts/compat/compat.h@1.16 +1 -1
autogen-5.18.5
sntp/libopts/compat/pathfind.c@1.11 +13 -13
autogen-5.18.5
sntp/libopts/compat/windows-config.h@1.14 +1 -1
autogen-5.18.5
sntp/libopts/configfile.c@1.23 +54 -55
autogen-5.18.5
sntp/libopts/cook.c@1.15 +10 -10
autogen-5.18.5
sntp/libopts/enum.c@1.13 +14 -14
autogen-5.18.5
sntp/libopts/env.c@1.9 +4 -4
autogen-5.18.5
sntp/libopts/file.c@1.16 +6 -6
autogen-5.18.5
sntp/libopts/find.c@1.12 +10 -10
autogen-5.18.5
sntp/libopts/genshell.c@1.31 +25 -25
autogen-5.18.5
sntp/libopts/gettext.h@1.4 +1 -1
autogen-5.18.5
sntp/libopts/init.c@1.8 +12 -13
autogen-5.18.5
sntp/libopts/intprops.h@1.2 +1 -1
autogen-5.18.5
sntp/libopts/libopts.c@1.9 +2 -0
autogen-5.18.5
sntp/libopts/load.c@1.21 +8 -8
autogen-5.18.5
sntp/libopts/m4/libopts.m4@1.34 +28 -28
autogen-5.18.5
sntp/libopts/m4/liboptschk.m4@1.13 +1 -1
autogen-5.18.5
sntp/libopts/m4/stdnoreturn.m4@1.2 +1 -1
autogen-5.18.5
sntp/libopts/makeshell.c@1.20 +22 -17
autogen-5.18.5
sntp/libopts/nested.c@1.16 +36 -36
autogen-5.18.5
sntp/libopts/numeric.c@1.15 +10 -10
autogen-5.18.5
sntp/libopts/option-value-type.c@1.18 +2 -2
autogen-5.18.5
sntp/libopts/option-value-type.h@1.32 +1 -1
autogen-5.18.5
sntp/libopts/option-xat-attribute.c@1.18 +2 -2
autogen-5.18.5
sntp/libopts/option-xat-attribute.h@1.32 +1 -1
autogen-5.18.5
sntp/libopts/parse-duration.c@1.14 +3 -3
autogen-5.18.5
sntp/libopts/parse-duration.h@1.10 +1 -1
autogen-5.18.5
sntp/libopts/pgusage.c@1.18 +5 -5
autogen-5.18.5
sntp/libopts/proto.h@1.31 +2 -2
autogen-5.18.5
sntp/libopts/putshell.c@1.15 +7 -7
autogen-5.18.5
sntp/libopts/reset.c@1.17 +5 -5
autogen-5.18.5
sntp/libopts/restore.c@1.14 +19 -19
autogen-5.18.5
sntp/libopts/save.c@1.18 +11 -11
autogen-5.18.5
sntp/libopts/sort.c@1.14 +5 -5
autogen-5.18.5
sntp/libopts/stack.c@1.16 +15 -15
autogen-5.18.5
sntp/libopts/stdnoreturn.in.h@1.2 +1 -1
autogen-5.18.5
sntp/libopts/streqvcmp.c@1.16 +11 -11
autogen-5.18.5
sntp/libopts/text_mmap.c@1.17 +11 -11
autogen-5.18.5
sntp/libopts/time.c@1.15 +5 -5
autogen-5.18.5
sntp/libopts/tokenize.c@1.13 +28 -28
autogen-5.18.5
sntp/libopts/usage.c@1.21 +4 -4
autogen-5.18.5
sntp/libopts/version.c@1.19 +9 -9
autogen-5.18.5
ChangeSet@1.3320.5.4, 2015-04-26 05:26:11-04:00, stenn@deacon.udel.edu
CID 1269537: Clean up a line of dead code in getShmTime().
ChangeLog@1.1635.4.2 +1 -0
CID 1269537: Clean up a line of dead code in getShmTime().
ntpd/refclock_shm.c@1.31.1.1 +4 -1
CID 1269537: Clean up a line of dead code in getShmTime().
ChangeSet@1.3320.2.9, 2015-04-26 08:14:52+00:00, stenn@psp-at1.ntp.org
CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776
ChangeLog@1.1635.1.6 +2 -0
CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776
ntpq/ntpq.c@1.158 +9 -0
CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776
ChangeSet@1.3320.6.1, 2015-04-25 23:56:16+00:00, stenn@psp-fb1.ntp.org
Improve the ntpq documentation around the controlkey keyid
ChangeLog@1.1635.4.1 +1 -0
Improve the ntpq documentation around the controlkey keyid
ntpq/ntpq-opts.def@1.25 +3 -1
Improve the ntpq documentation around the controlkey keyid
ChangeSet@1.3320.5.2, 2015-04-24 22:46:50-04:00, stenn@deacon.udel.edu
[Bug 2804] more cleanup to install-local-data
Makefile.am@1.128 +1 -1
[Bug 2804] more cleanup to install-local-data
ChangeSet@1.3320.5.1, 2015-04-24 18:59:14-04:00, stenn@deacon.udel.edu
Fix regression in previous [Bug 2804] fix
Makefile.am@1.127 +4 -4
Fix regression in previous [Bug 2804] fix
ChangeSet@1.3320.4.4, 2015-04-24 21:20:38+02:00, jnperlin@hydra.(none)
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Add a few more tallies as per Hal Murray's suggestions
ChangeLog@1.1635.3.2 +2 -0
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Add a few more tallies as per Hal Murray's suggestions
html/drivers/driver46.html@1.6 +54 -16
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Add a few more tallies as per Hal Murray's suggestions
ntpd/refclock_gpsdjson.c@1.18 +39 -18
[Bug 2808] GPSD_JSON driver enhancements, step 1.
Add a few more tallies as per Hal Murray's suggestions
ChangeSet@1.3320.2.7, 2015-04-24 09:25:09+00:00, stenn@psp-at1.ntp.org
[Bug 2776] Improve ntpq's 'help keytype'
sntp/m4/ntp_openssl.m4@1.23 +7 -1
[Bug 2776] Improve ntpq's 'help keytype'
ChangeSet@1.3320.4.3, 2015-04-24 01:25:50-04:00, stenn@deacon.udel.edu
refclock_true.c true_debug() can't open debug log because of incompatible open/fdopen parameters
ChangeLog@1.1635.3.1 +2 -0
refclock_true.c true_debug() can't open debug log because of incompatible open/fdopen parameters
ntpd/refclock_true.c@1.24 +1 -1
refclock_true.c true_debug() can't open debug log because of incompatible open/fdopen parameters
ChangeSet@1.3320.4.2, 2015-04-22 13:49:17-04:00, stenn@deacon.udel.edu
Update NEWS file
NEWS@1.136 +4 -1
Update NEWS file
ChangeSet@1.3320.2.5, 2015-04-22 17:33:08+00:00, stenn@psp-fb1.ntp.org
Fix typo in patch for bug 2776
ntpq/ntpq.c@1.157 +1 -1
Fix typo in patch for bug 2776
ChangeSet@1.3320.2.4, 2015-04-22 11:25:54+00:00, stenn@psp-fb1.ntp.org
[Bug 2776] Improve ntpq's 'help keytype'
ntpq/ntpq.c@1.156 +6 -1
[Bug 2776] Improve ntpq's 'help keytype'
sntp/m4/ntp_openssl.m4@1.22 +1 -0
[Bug 2776] Improve ntpq's 'help keytype'
ChangeSet@1.3320.4.1, 2015-04-22 08:36:46+00:00, stenn@psp-at1.ntp.org
[Bug 2804] install-local-data assumes GNU find semantics
Makefile.am@1.126 +4 -4
[Bug 2804] install-local-data assumes GNU find semantics
ChangeSet@1.3320.3.1, 2015-04-21 21:08:11+02:00, jnperlin@hydra.(none)
[Bug 2745] ntpd -x steps clock on leap second
Do leap second stepping only of the step adjustment is beyond the proper jump distance limit and step correction is allowed at all.
ChangeLog@1.1635.2.1 +3 -0
[Bug 2745] ntpd -x steps clock on leap second
Do leap second stepping only of the step adjustment is beyond the proper jump distance limit and step correction is allowed at all.
ntpd/ntp_timer.c@1.83 +15 -5
[Bug 2745] ntpd -x steps clock on leap second
Do leap second stepping only of the step adjustment is beyond the proper jump distance limit and step correction is allowed at all.
ChangeSet@1.3320.2.3, 2015-04-21 09:48:05+00:00, stenn@psp-deb1.ntp.org
[Bug 2776] Improve ntpq's 'help keytype'
ChangeLog@1.1635.1.3 +1 -0
[Bug 2776] Improve ntpq's 'help keytype'
ntpq/ntpq.c@1.155 +132 -8
[Bug 2776] Improve ntpq's 'help keytype'
ChangeSet@1.3320.2.2, 2015-04-21 06:49:56+00:00, stenn@psp-fb1.ntp.org
[Bug 2794] Clean up kernel clock status reports
ChangeLog@1.1635.1.2 +1 -0
[Bug 2794] Clean up kernel clock status reports
ntpd/ntp_loopfilter.c@1.184 +83 -8
[Bug 2794] Clean up kernel clock status reports
ChangeSet@1.3320.2.1, 2015-04-20 11:26:22+00:00, stenn@psp-fb1.ntp.org
[Bug 2804] install-local-data assumes GNU 'find' semantics'
ChangeLog@1.1635.1.1 +1 -0
[Bug 2804] install-local-data assumes GNU 'find' semantics'
Makefile.am@1.125 +6 -4
[Bug 2804] install-local-data assumes GNU 'find' semantics'
ChangeSet@1.3320.1.4, 2015-04-20 10:00:46+00:00, stenn@psp-deb1.ntp.org
[Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX
ChangeLog@1.1637 +1 -0
[Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX
configure.ac@1.587 +21 -5
[Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX
ntpd/refclock_shm.c@1.35 +2 -2
[Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX
ChangeSet@1.3320.1.2, 2015-04-19 23:50:36+00:00, stenn@psp-fb1.ntp.org
cleanup
ChangeLog@1.1635 +4 -3
cleanup
ChangeSet@1.3323, 2015-04-19 12:38:34+02:00, jnperlin@nemesis.localnet
Fixed include file lists; improved generation of 'ntp_keyword.h'
ports/winnt/vs2008/libntp/libntp.vcproj@1.54 +7 -15
Fixed include file lists
ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat@1.4 +19 -7
'Touch' both output files to avoid needless cycles
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.48 +8 -16
Fixed include file lists
ports/winnt/vs2008/ntpdate/ntpdate.vcproj@1.16 +1 -1
Fixed include file lists
ports/winnt/vs2013/libntp/libntp.vcxproj@1.8 +5 -7
Fixed include file lists
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.6 +15 -21
Fixed include file lists
ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat@1.3 +18 -6
'Touch' both output files to avoid needless cycles
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.6 +8 -9
Fixed include file lists
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.4 +22 -25
Fixed include file lists
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj@1.6 +1 -1
Fixed include file lists
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters@1.3 +3 -3
Fixed include file lists
ChangeSet@1.3322, 2015-04-13 23:24:19+02:00, jnperlin@nemesis.localnet
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj@1.4 +6 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj@1.5 +6 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.5 +43 -41
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.3 +3 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj@1.5 +6 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntpdc/ntpdc.vcxproj@1.5 +6 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ports/winnt/vs2013/ntpq/ntpq.vcxproj@1.5 +6 -6
make sure batch files are executed via 'call' -- multiple custom build steps fail otherwise.
ChangeSet@1.3320.1.1, 2015-04-13 20:39:08+02:00, jnperlin@hydra.(none)
[Bug 2808] GPSD_JSON driver enhancements, step 1
ChangeLog@1.1634 +4 -0
[Bug 2808] GPSD_JSON driver enhancements, step 1
html/drivers/driver46.html@1.5 +210 -69
[Bug 2808] GPSD_JSON driver enhancements, step 1
extended docs to reflect new modes, describe clockstat lines
libjsmn/Makefile@1.2 +10 -2
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/README.md@1.2 +16 -10
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/example/jsondump.c@1.1 +112 -0
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/example/jsondump.c@1.0 +0 -0
libjsmn/example/simple.c@1.1 +75 -0
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/example/simple.c@1.0 +0 -0
libjsmn/jsmn.c@1.4 +68 -26
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/jsmn.h@1.2 +13 -5
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
libjsmn/jsmn_test.c@1.2 +269 -70
[Bug 2808] GPSD_JSON driver enhancements, step 1
update of libjsmn
ntpd/refclock_gpsdjson.c@1.17 +1242 -480
[Bug 2808] GPSD_JSON driver enhancements, step 1
ChangeSet@1.3321, 2015-04-12 19:49:34+02:00, jnperlin@nemesis.localnet
WinBuild: cleanup of VS2008/VS2013 build, add 64bit build to VS2008
BitKeeper/deleted/1f/libntp.vcproj~633f10802d3dd886@1.2 +0 -0
Delete: ports/winnt/vs2013/libntp/libntp.vcproj
BitKeeper/deleted/2c/loopback-ppsapi-provider.vcproj~cc591e5b57f29333@1.2 +0 -0
Delete: ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcproj
BitKeeper/deleted/4a/ntpdate.vcproj~25a4bb1b2b25d122@1.2 +0 -0
Delete: ports/winnt/vs2013/ntpdate/ntpdate.vcproj
BitKeeper/deleted/59/ntp-keygen.vcproj~113746c5269b75c1@1.2 +0 -0
Delete: ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcproj
BitKeeper/deleted/74/loopback-ppsapi.def~c04da70eaf86d30@1.2 +0 -0
Delete: ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def
BitKeeper/deleted/7d/instsrv.vcproj~d954b04479d96296@1.2 +0 -0
Delete: ports/winnt/vs2013/instsrv/instsrv.vcproj
BitKeeper/deleted/85/ntpq.vcproj~7315506e38872e71@1.2 +0 -0
Delete: ports/winnt/vs2013/ntpq/ntpq.vcproj
BitKeeper/deleted/be/ntpd-keyword-gen.vcproj~9da2e11a69865360@1.2 +0 -0
Delete: ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcproj
BitKeeper/deleted/c6/ntpd.vcproj~b19ad49465a3e751@1.2 +0 -0
Delete: ports/winnt/vs2013/ntpd/ntpd.vcproj
BitKeeper/deleted/fc/ntpdc.vcproj~d5808b9e94b3c99@1.2 +0 -0
Delete: ports/winnt/vs2013/ntpdc/ntpdc.vcproj
ports/winnt/include/config.h@1.112 +6 -4
OPENSSL set from property sheet
ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h@1.2 +4 -1
avoid double definition of _CRT_SECURE_NO_WARNINGS
ports/winnt/ppsapi/loopback/src/timepps.h@1.3 +21 -15
reduce number of warnings
ports/winnt/vs2008/common.vsprops@1.1 +53 -0
add 64bit build, refactor into property sheets
ports/winnt/vs2008/common.vsprops@1.0 +0 -0
ports/winnt/vs2008/debug-x64.vsprops@1.1 +20 -0
add 64bit build, refactor into property sheets
ports/winnt/vs2008/debug-x64.vsprops@1.0 +0 -0
ports/winnt/vs2008/debug.vsprops@1.1 +20 -0
add 64bit build, refactor into property sheets
ports/winnt/vs2008/debug.vsprops@1.0 +0 -0
ports/winnt/vs2008/instsrv/instsrv.vcproj@1.7 +200 -87
add 64bit build, refactor into property sheets
ports/winnt/vs2008/libntp/libntp.vcproj@1.53 +156 -49
add 64bit build, refactor into property sheets
ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj@1.2 +190 -62
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntp-keygen/ntp-keygen.vcproj@1.15 +173 -137
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntp.sln@1.11 +39 -1
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj@1.3 +144 -53
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat@1.3 +6 -4
minor cleanup & touch emulation
ports/winnt/vs2008/ntpd/ntpd.vcproj@1.47 +253 -235
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntpdate/ntpdate.vcproj@1.15 +178 -116
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntpdc/ntpdc.vcproj@1.17 +178 -157
add 64bit build, refactor into property sheets
ports/winnt/vs2008/ntpq/ntpq.vcproj@1.16 +176 -149
add 64bit build, refactor into property sheets
ports/winnt/vs2008/release-x64.vsprops@1.1 +21 -0
add 64bit build, refactor into property sheets
ports/winnt/vs2008/release-x64.vsprops@1.0 +0 -0
ports/winnt/vs2008/release.vsprops@1.1 +21 -0
add 64bit build, refactor into property sheets
ports/winnt/vs2008/release.vsprops@1.0 +0 -0
ports/winnt/vs2013/common.props@1.1 +59 -0
refactor into property sheets
ports/winnt/vs2013/common.props@1.0 +0 -0
ports/winnt/vs2013/debug-x64.props@1.1 +23 -0
refactor into property sheets
ports/winnt/vs2013/debug-x64.props@1.0 +0 -0
ports/winnt/vs2013/debug.props@1.1 +24 -0
refactor into property sheets
ports/winnt/vs2013/debug.props@1.0 +0 -0
ports/winnt/vs2013/instsrv/instsrv.vcxproj@1.3 +88 -499
refactor into property sheets
ports/winnt/vs2013/instsrv/instsrv.vcxproj.filters@1.2 +9 -3
refactor into property sheets
ports/winnt/vs2013/libntp/libntp.vcxproj@1.7 +150 -462
refactor into property sheets
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.5 +21 -24
refactor into property sheets
ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj@1.3 +95 -430
refactor into property sheets
ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj.filters@1.2 +4 -1
refactor into property sheets
ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj@1.4 +83 -565
refactor into property sheets
ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj.filters@1.2 +3 -3
refactor into property sheets
ports/winnt/vs2013/ntp.sln@1.3 +61 -61
refactor into property sheets
ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.4 +85 -389
refactor into property sheets
ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat@1.2 +6 -4
minor cleanup & touch emulation
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.4 +195 -728
refactor into property sheets
ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters@1.2 +19 -31
refactor into property sheets
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj@1.4 +84 -547
refactor into property sheets
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters@1.2 +3 -3
refactor into property sheets
ports/winnt/vs2013/ntpdc/ntpdc.vcxproj@1.4 +85 -575
refactor into property sheets
ports/winnt/vs2013/ntpdc/ntpdc.vcxproj.filters@1.2 +3 -3
refactor into property sheets
ports/winnt/vs2013/ntpq/ntpq.vcxproj@1.4 +74 -537
refactor into property sheets
ports/winnt/vs2013/ntpq/ntpq.vcxproj.filters@1.2 +3 -3
refactor into property sheets
ports/winnt/vs2013/release-x64.props@1.1 +24 -0
refactor into property sheets
ports/winnt/vs2013/release-x64.props@1.0 +0 -0
ports/winnt/vs2013/release.props@1.1 +25 -0
refactor into property sheets
ports/winnt/vs2013/release.props@1.0 +0 -0
ChangeSet@1.3320, 2015-04-07 04:28:16-04:00, stenn@deacon.udel.edu
NTP_4_2_8P2
TAG: NTP_4_2_8P2
ChangeLog@1.1633 +1 -0
NTP_4_2_8P2
ntpd/invoke-ntp.conf.texi@1.182 +1 -1
NTP_4_2_8P2
ntpd/invoke-ntp.keys.texi@1.178 +1 -1
NTP_4_2_8P2
ntpd/invoke-ntpd.texi@1.495 +2 -2
NTP_4_2_8P2
ntpd/ntp.conf.5man@1.216 +3 -3
NTP_4_2_8P2
ntpd/ntp.conf.5mdoc@1.216 +2 -2
NTP_4_2_8P2
ntpd/ntp.conf.html@1.173 +1 -1
NTP_4_2_8P2
ntpd/ntp.conf.man.in@1.216 +3 -3
NTP_4_2_8P2
ntpd/ntp.conf.mdoc.in@1.216 +2 -2
NTP_4_2_8P2
ntpd/ntp.keys.5man@1.212 +2 -2
NTP_4_2_8P2
ntpd/ntp.keys.5mdoc@1.212 +2 -2
NTP_4_2_8P2
ntpd/ntp.keys.html@1.174 +1 -1
NTP_4_2_8P2
ntpd/ntp.keys.man.in@1.212 +2 -2
NTP_4_2_8P2
ntpd/ntp.keys.mdoc.in@1.212 +2 -2
NTP_4_2_8P2
ntpd/ntpd-opts.c@1.517 +245 -245
NTP_4_2_8P2
ntpd/ntpd-opts.h@1.516 +3 -3
NTP_4_2_8P2
ntpd/ntpd.1ntpdman@1.324 +3 -3
NTP_4_2_8P2
ntpd/ntpd.1ntpdmdoc@1.324 +2 -2
NTP_4_2_8P2
ntpd/ntpd.html@1.168 +2 -2
NTP_4_2_8P2
ntpd/ntpd.man.in@1.324 +3 -3
NTP_4_2_8P2
ntpd/ntpd.mdoc.in@1.324 +2 -2
NTP_4_2_8P2
ntpdc/invoke-ntpdc.texi@1.492 +2 -2
NTP_4_2_8P2
ntpdc/ntpdc-opts.c@1.510 +107 -107
NTP_4_2_8P2
ntpdc/ntpdc-opts.h@1.509 +3 -3
NTP_4_2_8P2
ntpdc/ntpdc.1ntpdcman@1.323 +3 -3
NTP_4_2_8P2
ntpdc/ntpdc.1ntpdcmdoc@1.323 +2 -2
NTP_4_2_8P2
ntpdc/ntpdc.html@1.336 +2 -2
NTP_4_2_8P2
ntpdc/ntpdc.man.in@1.323 +3 -3
NTP_4_2_8P2
ntpdc/ntpdc.mdoc.in@1.323 +2 -2
NTP_4_2_8P2
ntpq/invoke-ntpq.texi@1.498 +2 -2
NTP_4_2_8P2
ntpq/ntpq-opts.c@1.515 +106 -106
NTP_4_2_8P2
ntpq/ntpq-opts.h@1.513 +3 -3
NTP_4_2_8P2
ntpq/ntpq.1ntpqman@1.326 +3 -3
NTP_4_2_8P2
ntpq/ntpq.1ntpqmdoc@1.326 +2 -2
NTP_4_2_8P2
ntpq/ntpq.html@1.165 +2 -2
NTP_4_2_8P2
ntpq/ntpq.man.in@1.326 +3 -3
NTP_4_2_8P2
ntpq/ntpq.mdoc.in@1.326 +2 -2
NTP_4_2_8P2
ntpsnmpd/invoke-ntpsnmpd.texi@1.494 +2 -2
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd-opts.c@1.512 +68 -68
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd-opts.h@1.511 +3 -3
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.323 +3 -3
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.323 +2 -2
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd.html@1.163 +1 -1
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd.man.in@1.323 +3 -3
NTP_4_2_8P2
ntpsnmpd/ntpsnmpd.mdoc.in@1.323 +2 -2
NTP_4_2_8P2
packageinfo.sh@1.509 +2 -2
NTP_4_2_8P2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.84 +3 -3
NTP_4_2_8P2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.85 +2 -2
NTP_4_2_8P2
scripts/calc_tickadj/calc_tickadj.html@1.86 +1 -1
NTP_4_2_8P2
scripts/calc_tickadj/calc_tickadj.man.in@1.83 +3 -3
NTP_4_2_8P2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.85 +2 -2
NTP_4_2_8P2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.88 +1 -1
NTP_4_2_8P2
scripts/invoke-plot_summary.texi@1.105 +2 -2
NTP_4_2_8P2
scripts/invoke-summary.texi@1.105 +2 -2
NTP_4_2_8P2
scripts/ntp-wait/invoke-ntp-wait.texi@1.315 +2 -2
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait-opts@1.51 +2 -2
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.312 +3 -3
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.313 +2 -2
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait.html@1.332 +2 -2
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait.man.in@1.312 +3 -3
NTP_4_2_8P2
scripts/ntp-wait/ntp-wait.mdoc.in@1.313 +2 -2
NTP_4_2_8P2
scripts/ntpsweep/invoke-ntpsweep.texi@1.103 +2 -2
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep-opts@1.53 +2 -2
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.91 +3 -3
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.91 +2 -2
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep.html@1.104 +2 -2
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep.man.in@1.91 +3 -3
NTP_4_2_8P2
scripts/ntpsweep/ntpsweep.mdoc.in@1.92 +2 -2
NTP_4_2_8P2
scripts/ntptrace/invoke-ntptrace.texi@1.104 +2 -2
NTP_4_2_8P2
scripts/ntptrace/ntptrace-opts@1.53 +2 -2
NTP_4_2_8P2
scripts/ntptrace/ntptrace.1ntptraceman@1.91 +3 -3
NTP_4_2_8P2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.92 +2 -2
NTP_4_2_8P2
scripts/ntptrace/ntptrace.html@1.105 +2 -2
NTP_4_2_8P2
scripts/ntptrace/ntptrace.man.in@1.91 +3 -3
NTP_4_2_8P2
scripts/ntptrace/ntptrace.mdoc.in@1.93 +2 -2
NTP_4_2_8P2
scripts/plot_summary-opts@1.53 +2 -2
NTP_4_2_8P2
scripts/plot_summary.1plot_summaryman@1.103 +3 -3
NTP_4_2_8P2
scripts/plot_summary.1plot_summarymdoc@1.103 +2 -2
NTP_4_2_8P2
scripts/plot_summary.html@1.106 +2 -2
NTP_4_2_8P2
scripts/plot_summary.man.in@1.103 +3 -3
NTP_4_2_8P2
scripts/plot_summary.mdoc.in@1.103 +2 -2
NTP_4_2_8P2
scripts/summary-opts@1.53 +2 -2
NTP_4_2_8P2
scripts/summary.1summaryman@1.103 +3 -3
NTP_4_2_8P2
scripts/summary.1summarymdoc@1.103 +2 -2
NTP_4_2_8P2
scripts/summary.html@1.106 +2 -2
NTP_4_2_8P2
scripts/summary.man.in@1.103 +3 -3
NTP_4_2_8P2
scripts/summary.mdoc.in@1.103 +2 -2
NTP_4_2_8P2
scripts/update-leap/invoke-update-leap.texi@1.4 +1 -1
NTP_4_2_8P2
scripts/update-leap/update-leap-opts@1.4 +2 -2
NTP_4_2_8P2
scripts/update-leap/update-leap.1update-leapman@1.4 +3 -3
NTP_4_2_8P2
scripts/update-leap/update-leap.1update-leapmdoc@1.4 +2 -2
NTP_4_2_8P2
scripts/update-leap/update-leap.html@1.4 +1 -1
NTP_4_2_8P2
scripts/update-leap/update-leap.man.in@1.4 +3 -3
NTP_4_2_8P2
scripts/update-leap/update-leap.mdoc.in@1.4 +2 -2
NTP_4_2_8P2
sntp/invoke-sntp.texi@1.492 +2 -2
NTP_4_2_8P2
sntp/sntp-opts.c@1.511 +159 -159
NTP_4_2_8P2
sntp/sntp-opts.h@1.509 +3 -3
NTP_4_2_8P2
sntp/sntp.1sntpman@1.327 +3 -3
NTP_4_2_8P2
sntp/sntp.1sntpmdoc@1.327 +2 -2
NTP_4_2_8P2
sntp/sntp.html@1.507 +2 -2
NTP_4_2_8P2
sntp/sntp.man.in@1.327 +3 -3
NTP_4_2_8P2
sntp/sntp.mdoc.in@1.327 +2 -2
NTP_4_2_8P2
util/invoke-ntp-keygen.texi@1.495 +2 -2
NTP_4_2_8P2
util/ntp-keygen-opts.c@1.513 +173 -173
NTP_4_2_8P2
util/ntp-keygen-opts.h@1.511 +3 -3
NTP_4_2_8P2
util/ntp-keygen.1ntp-keygenman@1.323 +3 -3
NTP_4_2_8P2
util/ntp-keygen.1ntp-keygenmdoc@1.323 +2 -2
NTP_4_2_8P2
util/ntp-keygen.html@1.169 +2 -2
NTP_4_2_8P2
util/ntp-keygen.man.in@1.323 +3 -3
NTP_4_2_8P2
util/ntp-keygen.mdoc.in@1.323 +2 -2
NTP_4_2_8P2
ChangeSet@1.3319, 2015-04-07 04:05:46-04:00, stenn@deacon.udel.edu
ntp-4.2.8p2
packageinfo.sh@1.508 +2 -2
ntp-4.2.8p2
ChangeSet@1.3318, 2015-04-07 07:57:32+00:00, stenn@psp-fb1.ntp.org
NEWS update
NEWS@1.135 +4 -2
NEWS update
ChangeSet@1.3314.1.4, 2015-04-07 07:43:04+00:00, stenn@psp-fb1.ntp.org
Initial import of the Unity test framework
ChangeLog@1.1629.1.4 +1 -0
Initial import of the Unity test framework
sntp/unity/license.txt@1.1 +21 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/license.txt
sntp/unity/license.txt@1.0 +0 -0
sntp/unity/unity.c@1.1 +1177 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity.c
sntp/unity/unity.c@1.0 +0 -0
sntp/unity/unity.h@1.1 +272 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity.h
sntp/unity/unity.h@1.0 +0 -0
sntp/unity/unity_internals.h@1.1 +692 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-unity/sntp/unity/unity_internals.h
sntp/unity/unity_internals.h@1.0 +0 -0
ChangeSet@1.3314.1.3, 2015-04-03 03:56:38-04:00, stenn@deacon.udel.edu
NTP_4_2_8P2_RC3
TAG: NTP_4_2_8P2_RC3
ChangeLog@1.1629.1.3 +1 -0
NTP_4_2_8P2_RC3
ntpd/invoke-ntp.conf.texi@1.181 +1 -1
NTP_4_2_8P2_RC3
ntpd/invoke-ntp.keys.texi@1.177 +1 -1
NTP_4_2_8P2_RC3
ntpd/invoke-ntpd.texi@1.494 +2 -2
NTP_4_2_8P2_RC3
ntpd/ntp.conf.5man@1.215 +3 -3
NTP_4_2_8P2_RC3
ntpd/ntp.conf.5mdoc@1.215 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntp.conf.html@1.172 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntp.conf.man.in@1.215 +3 -3
NTP_4_2_8P2_RC3
ntpd/ntp.conf.mdoc.in@1.215 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntp.keys.5man@1.211 +2 -2
NTP_4_2_8P2_RC3
ntpd/ntp.keys.5mdoc@1.211 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntp.keys.html@1.173 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntp.keys.man.in@1.211 +2 -2
NTP_4_2_8P2_RC3
ntpd/ntp.keys.mdoc.in@1.211 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntpd-opts.c@1.516 +7 -7
NTP_4_2_8P2_RC3
ntpd/ntpd-opts.h@1.515 +3 -3
NTP_4_2_8P2_RC3
ntpd/ntpd.1ntpdman@1.323 +3 -3
NTP_4_2_8P2_RC3
ntpd/ntpd.1ntpdmdoc@1.323 +1 -1
NTP_4_2_8P2_RC3
ntpd/ntpd.html@1.167 +2 -2
NTP_4_2_8P2_RC3
ntpd/ntpd.man.in@1.323 +3 -3
NTP_4_2_8P2_RC3
ntpd/ntpd.mdoc.in@1.323 +1 -1
NTP_4_2_8P2_RC3
ntpdc/invoke-ntpdc.texi@1.491 +2 -2
NTP_4_2_8P2_RC3
ntpdc/ntpdc-opts.c@1.509 +7 -7
NTP_4_2_8P2_RC3
ntpdc/ntpdc-opts.h@1.508 +3 -3
NTP_4_2_8P2_RC3
ntpdc/ntpdc.1ntpdcman@1.322 +3 -3
NTP_4_2_8P2_RC3
ntpdc/ntpdc.1ntpdcmdoc@1.322 +1 -1
NTP_4_2_8P2_RC3
ntpdc/ntpdc.html@1.335 +2 -2
NTP_4_2_8P2_RC3
ntpdc/ntpdc.man.in@1.322 +3 -3
NTP_4_2_8P2_RC3
ntpdc/ntpdc.mdoc.in@1.322 +1 -1
NTP_4_2_8P2_RC3
ntpq/invoke-ntpq.texi@1.497 +2 -2
NTP_4_2_8P2_RC3
ntpq/ntpq-opts.c@1.514 +7 -7
NTP_4_2_8P2_RC3
ntpq/ntpq-opts.h@1.512 +3 -3
NTP_4_2_8P2_RC3
ntpq/ntpq.1ntpqman@1.325 +3 -3
NTP_4_2_8P2_RC3
ntpq/ntpq.1ntpqmdoc@1.325 +1 -1
NTP_4_2_8P2_RC3
ntpq/ntpq.html@1.164 +2 -2
NTP_4_2_8P2_RC3
ntpq/ntpq.man.in@1.325 +3 -3
NTP_4_2_8P2_RC3
ntpq/ntpq.mdoc.in@1.325 +1 -1
NTP_4_2_8P2_RC3
ntpsnmpd/invoke-ntpsnmpd.texi@1.493 +2 -2
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd-opts.c@1.511 +7 -7
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd-opts.h@1.510 +3 -3
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.322 +3 -3
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.322 +1 -1
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd.html@1.162 +1 -1
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd.man.in@1.322 +3 -3
NTP_4_2_8P2_RC3
ntpsnmpd/ntpsnmpd.mdoc.in@1.322 +1 -1
NTP_4_2_8P2_RC3
packageinfo.sh@1.507 +1 -1
NTP_4_2_8P2_RC3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.83 +3 -3
NTP_4_2_8P2_RC3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.84 +1 -1
NTP_4_2_8P2_RC3
scripts/calc_tickadj/calc_tickadj.html@1.85 +1 -1
NTP_4_2_8P2_RC3
scripts/calc_tickadj/calc_tickadj.man.in@1.82 +3 -3
NTP_4_2_8P2_RC3
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.84 +1 -1
NTP_4_2_8P2_RC3
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.87 +1 -1
NTP_4_2_8P2_RC3
scripts/invoke-plot_summary.texi@1.104 +2 -2
NTP_4_2_8P2_RC3
scripts/invoke-summary.texi@1.104 +2 -2
NTP_4_2_8P2_RC3
scripts/ntp-wait/invoke-ntp-wait.texi@1.314 +2 -2
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait-opts@1.50 +2 -2
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.311 +3 -3
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.312 +1 -1
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait.html@1.331 +2 -2
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait.man.in@1.311 +3 -3
NTP_4_2_8P2_RC3
scripts/ntp-wait/ntp-wait.mdoc.in@1.312 +1 -1
NTP_4_2_8P2_RC3
scripts/ntpsweep/invoke-ntpsweep.texi@1.102 +2 -2
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep-opts@1.52 +2 -2
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.90 +3 -3
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.90 +1 -1
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep.html@1.103 +2 -2
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep.man.in@1.90 +3 -3
NTP_4_2_8P2_RC3
scripts/ntpsweep/ntpsweep.mdoc.in@1.91 +1 -1
NTP_4_2_8P2_RC3
scripts/ntptrace/invoke-ntptrace.texi@1.103 +2 -2
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace-opts@1.52 +2 -2
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace.1ntptraceman@1.90 +3 -3
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace.1ntptracemdoc@1.91 +1 -1
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace.html@1.104 +2 -2
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace.man.in@1.90 +3 -3
NTP_4_2_8P2_RC3
scripts/ntptrace/ntptrace.mdoc.in@1.92 +1 -1
NTP_4_2_8P2_RC3
scripts/plot_summary-opts@1.52 +2 -2
NTP_4_2_8P2_RC3
scripts/plot_summary.1plot_summaryman@1.102 +3 -3
NTP_4_2_8P2_RC3
scripts/plot_summary.1plot_summarymdoc@1.102 +1 -1
NTP_4_2_8P2_RC3
scripts/plot_summary.html@1.105 +2 -2
NTP_4_2_8P2_RC3
scripts/plot_summary.man.in@1.102 +3 -3
NTP_4_2_8P2_RC3
scripts/plot_summary.mdoc.in@1.102 +1 -1
NTP_4_2_8P2_RC3
scripts/summary-opts@1.52 +2 -2
NTP_4_2_8P2_RC3
scripts/summary.1summaryman@1.102 +3 -3
NTP_4_2_8P2_RC3
scripts/summary.1summarymdoc@1.102 +1 -1
NTP_4_2_8P2_RC3
scripts/summary.html@1.105 +2 -2
NTP_4_2_8P2_RC3
scripts/summary.man.in@1.102 +3 -3
NTP_4_2_8P2_RC3
scripts/summary.mdoc.in@1.102 +1 -1
NTP_4_2_8P2_RC3
scripts/update-leap/invoke-update-leap.texi@1.3 +1 -1
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap-opts@1.3 +2 -2
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap.1update-leapman@1.3 +3 -3
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap.1update-leapmdoc@1.3 +1 -1
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap.html@1.3 +6 -5
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap.man.in@1.3 +3 -3
NTP_4_2_8P2_RC3
scripts/update-leap/update-leap.mdoc.in@1.3 +1 -1
NTP_4_2_8P2_RC3
sntp/invoke-sntp.texi@1.491 +2 -2
NTP_4_2_8P2_RC3
sntp/sntp-opts.c@1.510 +7 -7
NTP_4_2_8P2_RC3
sntp/sntp-opts.h@1.508 +3 -3
NTP_4_2_8P2_RC3
sntp/sntp.1sntpman@1.326 +3 -3
NTP_4_2_8P2_RC3
sntp/sntp.1sntpmdoc@1.326 +1 -1
NTP_4_2_8P2_RC3
sntp/sntp.html@1.506 +2 -2
NTP_4_2_8P2_RC3
sntp/sntp.man.in@1.326 +3 -3
NTP_4_2_8P2_RC3
sntp/sntp.mdoc.in@1.326 +1 -1
NTP_4_2_8P2_RC3
util/invoke-ntp-keygen.texi@1.494 +2 -2
NTP_4_2_8P2_RC3
util/ntp-keygen-opts.c@1.512 +7 -7
NTP_4_2_8P2_RC3
util/ntp-keygen-opts.h@1.510 +3 -3
NTP_4_2_8P2_RC3
util/ntp-keygen.1ntp-keygenman@1.322 +3 -3
NTP_4_2_8P2_RC3
util/ntp-keygen.1ntp-keygenmdoc@1.322 +1 -1
NTP_4_2_8P2_RC3
util/ntp-keygen.html@1.168 +2 -2
NTP_4_2_8P2_RC3
util/ntp-keygen.man.in@1.322 +3 -3
NTP_4_2_8P2_RC3
util/ntp-keygen.mdoc.in@1.322 +1 -1
NTP_4_2_8P2_RC3
ChangeSet@1.3314.1.2, 2015-04-03 03:35:54-04:00, stenn@deacon.udel.edu
[Bug 2763] Fix for different thresholds for forward and backward steps
ChangeLog@1.1629.1.2 +3 -0
[Bug 2763] Fix for different thresholds for forward and backward steps
ntpd/ntp_loopfilter.c@1.183 +2 -2
[Bug 2763] Fix for different thresholds for forward and backward steps
ChangeSet@1.3314.1.1, 2015-04-03 01:16:34-04:00, stenn@deacon.udel.edu
NTP_4_2_8P2_RC2
TAG: NTP_4_2_8P2_RC2
ChangeLog@1.1629.1.1 +1 -0
NTP_4_2_8P2_RC2
ntpd/invoke-ntp.conf.texi@1.180 +1 -1
NTP_4_2_8P2_RC2
ntpd/invoke-ntp.keys.texi@1.176 +1 -1
NTP_4_2_8P2_RC2
ntpd/invoke-ntpd.texi@1.493 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.conf.5man@1.214 +3 -3
NTP_4_2_8P2_RC2
ntpd/ntp.conf.5mdoc@1.214 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.conf.html@1.171 +1 -1
NTP_4_2_8P2_RC2
ntpd/ntp.conf.man.in@1.214 +3 -3
NTP_4_2_8P2_RC2
ntpd/ntp.conf.mdoc.in@1.214 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.keys.5man@1.210 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.keys.5mdoc@1.210 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.keys.html@1.172 +1 -1
NTP_4_2_8P2_RC2
ntpd/ntp.keys.man.in@1.210 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntp.keys.mdoc.in@1.210 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntpd-opts.c@1.515 +7 -7
NTP_4_2_8P2_RC2
ntpd/ntpd-opts.h@1.514 +3 -3
NTP_4_2_8P2_RC2
ntpd/ntpd.1ntpdman@1.322 +3 -3
NTP_4_2_8P2_RC2
ntpd/ntpd.1ntpdmdoc@1.322 +2 -2
NTP_4_2_8P2_RC2
ntpd/ntpd.html@1.166 +50 -26
NTP_4_2_8P2_RC2
ntpd/ntpd.man.in@1.322 +3 -3
NTP_4_2_8P2_RC2
ntpd/ntpd.mdoc.in@1.322 +2 -2
NTP_4_2_8P2_RC2
ntpdc/invoke-ntpdc.texi@1.490 +2 -2
NTP_4_2_8P2_RC2
ntpdc/ntpdc-opts.c@1.508 +7 -7
NTP_4_2_8P2_RC2
ntpdc/ntpdc-opts.h@1.507 +3 -3
NTP_4_2_8P2_RC2
ntpdc/ntpdc.1ntpdcman@1.321 +3 -3
NTP_4_2_8P2_RC2
ntpdc/ntpdc.1ntpdcmdoc@1.321 +2 -2
NTP_4_2_8P2_RC2
ntpdc/ntpdc.html@1.334 +2 -2
NTP_4_2_8P2_RC2
ntpdc/ntpdc.man.in@1.321 +3 -3
NTP_4_2_8P2_RC2
ntpdc/ntpdc.mdoc.in@1.321 +2 -2
NTP_4_2_8P2_RC2
ntpq/invoke-ntpq.texi@1.496 +2 -2
NTP_4_2_8P2_RC2
ntpq/ntpq-opts.c@1.513 +7 -7
NTP_4_2_8P2_RC2
ntpq/ntpq-opts.h@1.511 +3 -3
NTP_4_2_8P2_RC2
ntpq/ntpq.1ntpqman@1.324 +3 -3
NTP_4_2_8P2_RC2
ntpq/ntpq.1ntpqmdoc@1.324 +2 -2
NTP_4_2_8P2_RC2
ntpq/ntpq.html@1.163 +2 -2
NTP_4_2_8P2_RC2
ntpq/ntpq.man.in@1.324 +3 -3
NTP_4_2_8P2_RC2
ntpq/ntpq.mdoc.in@1.324 +2 -2
NTP_4_2_8P2_RC2
ntpsnmpd/invoke-ntpsnmpd.texi@1.492 +2 -2
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd-opts.c@1.510 +7 -7
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd-opts.h@1.509 +3 -3
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.321 +3 -3
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.321 +2 -2
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd.html@1.161 +1 -1
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd.man.in@1.321 +3 -3
NTP_4_2_8P2_RC2
ntpsnmpd/ntpsnmpd.mdoc.in@1.321 +2 -2
NTP_4_2_8P2_RC2
packageinfo.sh@1.506 +1 -1
NTP_4_2_8P2_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.82 +3 -3
NTP_4_2_8P2_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.83 +2 -2
NTP_4_2_8P2_RC2
scripts/calc_tickadj/calc_tickadj.html@1.84 +1 -1
NTP_4_2_8P2_RC2
scripts/calc_tickadj/calc_tickadj.man.in@1.81 +3 -3
NTP_4_2_8P2_RC2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.83 +2 -2
NTP_4_2_8P2_RC2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.86 +1 -1
NTP_4_2_8P2_RC2
scripts/invoke-plot_summary.texi@1.103 +2 -2
NTP_4_2_8P2_RC2
scripts/invoke-summary.texi@1.103 +2 -2
NTP_4_2_8P2_RC2
scripts/ntp-wait/invoke-ntp-wait.texi@1.313 +2 -2
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait-opts@1.49 +2 -2
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.310 +3 -3
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.311 +2 -2
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait.html@1.330 +2 -2
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait.man.in@1.310 +3 -3
NTP_4_2_8P2_RC2
scripts/ntp-wait/ntp-wait.mdoc.in@1.311 +2 -2
NTP_4_2_8P2_RC2
scripts/ntpsweep/invoke-ntpsweep.texi@1.101 +2 -2
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep-opts@1.51 +2 -2
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.89 +3 -3
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.89 +2 -2
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep.html@1.102 +2 -2
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep.man.in@1.89 +3 -3
NTP_4_2_8P2_RC2
scripts/ntpsweep/ntpsweep.mdoc.in@1.90 +2 -2
NTP_4_2_8P2_RC2
scripts/ntptrace/invoke-ntptrace.texi@1.102 +2 -2
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace-opts@1.51 +2 -2
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace.1ntptraceman@1.89 +3 -3
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.90 +2 -2
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace.html@1.103 +2 -2
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace.man.in@1.89 +3 -3
NTP_4_2_8P2_RC2
scripts/ntptrace/ntptrace.mdoc.in@1.91 +2 -2
NTP_4_2_8P2_RC2
scripts/plot_summary-opts@1.51 +2 -2
NTP_4_2_8P2_RC2
scripts/plot_summary.1plot_summaryman@1.101 +3 -3
NTP_4_2_8P2_RC2
scripts/plot_summary.1plot_summarymdoc@1.101 +2 -2
NTP_4_2_8P2_RC2
scripts/plot_summary.html@1.104 +2 -2
NTP_4_2_8P2_RC2
scripts/plot_summary.man.in@1.101 +3 -3
NTP_4_2_8P2_RC2
scripts/plot_summary.mdoc.in@1.101 +2 -2
NTP_4_2_8P2_RC2
scripts/summary-opts@1.51 +2 -2
NTP_4_2_8P2_RC2
scripts/summary.1summaryman@1.101 +3 -3
NTP_4_2_8P2_RC2
scripts/summary.1summarymdoc@1.101 +2 -2
NTP_4_2_8P2_RC2
scripts/summary.html@1.104 +2 -2
NTP_4_2_8P2_RC2
scripts/summary.man.in@1.101 +3 -3
NTP_4_2_8P2_RC2
scripts/summary.mdoc.in@1.101 +2 -2
NTP_4_2_8P2_RC2
scripts/update-leap/invoke-update-leap.texi@1.2 +6 -5
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap-opts@1.2 +2 -2
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap.1update-leapman@1.2 +7 -6
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap.1update-leapmdoc@1.2 +6 -5
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap.html@1.2 +48 -72
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap.man.in@1.2 +7 -6
NTP_4_2_8P2_RC2
scripts/update-leap/update-leap.mdoc.in@1.2 +6 -5
NTP_4_2_8P2_RC2
sntp/invoke-sntp.texi@1.490 +2 -2
NTP_4_2_8P2_RC2
sntp/sntp-opts.c@1.509 +7 -7
NTP_4_2_8P2_RC2
sntp/sntp-opts.h@1.507 +3 -3
NTP_4_2_8P2_RC2
sntp/sntp.1sntpman@1.325 +3 -3
NTP_4_2_8P2_RC2
sntp/sntp.1sntpmdoc@1.325 +2 -2
NTP_4_2_8P2_RC2
sntp/sntp.html@1.505 +111 -135
NTP_4_2_8P2_RC2
sntp/sntp.man.in@1.325 +3 -3
NTP_4_2_8P2_RC2
sntp/sntp.mdoc.in@1.325 +2 -2
NTP_4_2_8P2_RC2
util/invoke-ntp-keygen.texi@1.493 +2 -2
NTP_4_2_8P2_RC2
util/ntp-keygen-opts.c@1.511 +7 -7
NTP_4_2_8P2_RC2
util/ntp-keygen-opts.h@1.509 +3 -3
NTP_4_2_8P2_RC2
util/ntp-keygen.1ntp-keygenman@1.321 +3 -3
NTP_4_2_8P2_RC2
util/ntp-keygen.1ntp-keygenmdoc@1.321 +2 -2
NTP_4_2_8P2_RC2
util/ntp-keygen.html@1.167 +2 -2
NTP_4_2_8P2_RC2
util/ntp-keygen.man.in@1.321 +3 -3
NTP_4_2_8P2_RC2
util/ntp-keygen.mdoc.in@1.321 +2 -2
NTP_4_2_8P2_RC2
ChangeSet@1.3314, 2015-04-03 02:36:18+00:00, stenn@psp-fb1.ntp.org
merge cleanup
NEWS@1.133 +6 -5
merge cleanup
ChangeSet@1.3313, 2015-04-03 02:31:18+00:00, stenn@psp-fb1.ntp.org
merge cleanup
ChangeLog@1.1629 +3 -3
merge cleanup
ChangeSet@1.3308.2.11, 2015-04-02 21:42:37+00:00, stenn@psp-deb1.ntp.org
[Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c
ChangeLog@1.1625.2.9 +1 -0
[Bug 2592] FLAG_TSTAMP_PPS cleanup for refclock_parse.c
ChangeSet@1.3308.2.10, 2015-04-02 20:17:55+00:00, stenn@psp-deb1.ntp.org
merge cleanup
ChangeLog@1.1625.2.8 +1 -3
merge cleanup
ChangeSet@1.3308.2.9, 2015-04-02 21:41:22+02:00, jnperlin@nemesis.localnet
[Bug 2795] Cannot build without OpenSLL (on Win32).
fixed minor warning
ChangeLog@1.1625.2.7 +3 -0
[Bug 2795] Cannot build without OpenSLL (on Win32).
fixed minor warning
include/ntp_md5.h@1.10 +1 -1
[Bug 2795] Cannot build without OpenSLL (on Win32).
OpenSSL declares EVP_md5() as function without arguments; surrogate should do the same.
ChangeSet@1.3308.6.2, 2015-04-02 07:45:04+00:00, stenn@psp-deb1.ntp.org
cleanup
ChangeLog@1.1625.6.3 +0 -2
cleanup
ChangeLog@1.1625.6.2 +6 -0
ntpd/invoke-ntpd.texi@1.492 +20 -3
[Bug 2788] New -G flag (force step once) cleanup.
ntpd/ntp_loopfilter.c@1.182 +17 -6
[Bug 2794] Clean up kernel clock status reports.
Trailing whitespace cleanup.
ntpd/ntpd-opts.c@1.514 +249 -249
Autogenerated file.
ntpd/ntpd-opts.h@1.513 +3 -3
Autogenerated file.
ntpd/ntpd.1ntpdman@1.321 +19 -5
Autogenerated file.
ntpd/ntpd.1ntpdmdoc@1.321 +17 -4
Autogenerated file.
ntpd/ntpd.man.in@1.321 +19 -5
Autogenerated file.
ntpd/ntpd.mdoc.in@1.321 +17 -4
Autogenerated file.
ntpd/ntpdbase-opts.def@1.29 +9 -6
[Bug 2788] New flag -G (force_step_once) - documentation cleanup.
ChangeSet@1.3308.2.7, 2015-04-02 07:34:40+00:00, stenn@psp-deb1.ntp.org
Simple cleanup to html/build.html
ChangeLog@1.1625.2.5 +1 -0
Simple cleanup to html/build.html
html/build.html@1.28 +2 -2
Simple cleanup to html/build.html
ChangeSet@1.3308.2.6, 2015-04-02 03:15:42+00:00, stenn@psp-fb1.ntp.org
typos
ChangeLog@1.1625.2.4 +4 -4
typos
ChangeSet@1.3308.5.2, 2015-04-01 11:08:14+00:00, stenn@psp-deb1.ntp.org
[Bug 2798] sntp should decode and display the leap indicator
html/sntp.html@1.12 +3 -3
[Bug 2798] sntp should decode and display the leap indicator
sntp/invoke-sntp.texi@1.489 +4 -3
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp-opts.c@1.508 +1 -1
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp-opts.def@1.47 +2 -1
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp-opts.h@1.506 +1 -1
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp.1sntpman@1.324 +5 -4
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp.1sntpmdoc@1.324 +4 -3
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp.html@1.504 +136 -111
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp.man.in@1.324 +5 -4
[Bug 2798] sntp should decode and display the leap indicator
sntp/sntp.mdoc.in@1.324 +4 -3
[Bug 2798] sntp should decode and display the leap indicator
ChangeSet@1.3308.5.1, 2015-04-01 10:44:24+00:00, stenn@psp-fb1.ntp.org
[Bug 2798] sntp should decode and display the leap indicator
ChangeLog@1.1625.5.1 +3 -0
[Bug 2798] sntp should decode and display the leap indicator
sntp/main.c@1.95 +21 -1
[Bug 2798] sntp should decode and display the leap indicator
ChangeSet@1.3308.4.1, 2015-03-30 20:14:46+02:00, jnperlin@hydra.(none)
[Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines
ChangeLog@1.1625.4.1 +3 -0
[Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines
util/ntp-keygen.c@1.104 +4 -4
[Bug 2797] ntp-keygen trapped in endless loop for MD5 keys on big-endian machines
ChangeSet@1.3308.3.1, 2015-03-30 19:39:17+02:00, jnperlin@nemesis.localnet
[Bug 2796] ntp-keygen crashes in 'getclock()' on Win32
ChangeLog@1.1625.3.1 +2 -0
[Bug 2796] ntp-keygen crashes in 'getclock()' on Win32
ports/winnt/libntp/getclock.c@1.5 +2 -0
[Bug 2796] ntp-keygen crashes in 'getclock()' on Win32
make sure 'init_win_precise_time()' gets called
ChangeSet@1.3308.2.4, 2015-03-30 19:10:12+02:00, jnperlin@nemesis.localnet
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ChangeLog@1.1625.2.2 +3 -0
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ports/winnt/libntp/arc4wrap.c@1.1 +84 -0
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ports/winnt/libntp/arc4wrap.c@1.0 +0 -0
ports/winnt/vs2005/libntp.vcproj@1.24 +4 -0
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ports/winnt/vs2008/libntp/libntp.vcproj@1.52 +6 -2
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ports/winnt/vs2013/libntp/libntp.vcxproj@1.6 +1 -0
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.4 +6 -0
[Bug 2795] Cannot build without OpenSLL (on Win32)
Provided a Win32 specific wrapper around libevent/arc4random.c
ChangeSet@1.3305.4.8, 2015-03-30 15:55:43+02:00, martin@pc-martin.(none)
[Bug 2794] Don't let reports on normal kernel status changes look like errors.
ChangeLog@1.1622.4.8 +2 -0
[Bug 2794] Don't let reports on normal kernel status changes look like errors.
ntpd/ntp_loopfilter.c@1.181 +30 -19
[Bug 2794] Don't let reports on normal kernel status changes look like errors.
ChangeSet@1.3305.4.7, 2015-03-30 11:23:48+02:00, martin@pc-martin.(none)
[Bug 2788] New flag -G (force_step_once)
ChangeLog@1.1622.4.7 +1 -0
[Bug 2788] New flag -G (force_step_once)
include/ntpd.h@1.185.1.1 +4 -3
[Bug 2788] Support new flag -G (force_step_once)
Removed trailing whitespace.
ntpd/cmd_args.c@1.62 +6 -3
[Bug 2788] New flag -G (force_step_once)
Removed trailing whitespace.
ntpd/ntp_loopfilter.c@1.180 +21 -15
[Bug 2788] New flag -G (force_step_once)
Removed trailing whitespace.
ntpd/ntpd-opts.c@1.511.1.1 +255 -225
[Bug 2788] New flag -G (force_step_once)
ntpd/ntpd-opts.h@1.510.1.1 +36 -29
[Bug 2788] New flag -G (force_step_once)
ntpd/ntpdbase-opts.def@1.28 +17 -2
[Bug 2788] New flag -G (force_step_once)
Removed trailing whitespace.
ChangeSet@1.3308.1.3, 2015-03-30 09:11:33+00:00, stenn@psp-fb1.ntp.org
Start the RC cycle for ntp-4.2.8p2
NEWS@1.130.1.2 +82 -1
Start the RC cycle for ntp-4.2.8p2
ChangeSet@1.3308.2.3, 2015-03-30 04:48:27-04:00, stenn@deacon.udel.edu
NTP_4_2_8P2_RC1
TAG: NTP_4_2_8P2_RC1
ChangeLog@1.1625.2.1 +1 -0
NTP_4_2_8P2_RC1
ntpd/invoke-ntp.conf.texi@1.179 +1 -1
NTP_4_2_8P2_RC1
ntpd/invoke-ntp.keys.texi@1.175 +1 -1
NTP_4_2_8P2_RC1
ntpd/invoke-ntpd.texi@1.491 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.conf.5man@1.213 +3 -3
NTP_4_2_8P2_RC1
ntpd/ntp.conf.5mdoc@1.213 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.conf.html@1.170 +13 -2
NTP_4_2_8P2_RC1
ntpd/ntp.conf.man.in@1.213 +3 -3
NTP_4_2_8P2_RC1
ntpd/ntp.conf.mdoc.in@1.213 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.keys.5man@1.209 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.keys.5mdoc@1.209 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.keys.html@1.171 +1 -1
NTP_4_2_8P2_RC1
ntpd/ntp.keys.man.in@1.209 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntp.keys.mdoc.in@1.209 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntpd-opts.c@1.512 +239 -239
NTP_4_2_8P2_RC1
ntpd/ntpd-opts.h@1.511 +3 -3
NTP_4_2_8P2_RC1
ntpd/ntpd.1ntpdman@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpd/ntpd.1ntpdmdoc@1.320 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntpd.html@1.165 +2 -2
NTP_4_2_8P2_RC1
ntpd/ntpd.man.in@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpd/ntpd.mdoc.in@1.320 +2 -2
NTP_4_2_8P2_RC1
ntpdc/invoke-ntpdc.texi@1.489 +2 -2
NTP_4_2_8P2_RC1
ntpdc/ntpdc-opts.c@1.507 +107 -107
NTP_4_2_8P2_RC1
ntpdc/ntpdc-opts.h@1.506 +3 -3
NTP_4_2_8P2_RC1
ntpdc/ntpdc.1ntpdcman@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpdc/ntpdc.1ntpdcmdoc@1.320 +2 -2
NTP_4_2_8P2_RC1
ntpdc/ntpdc.html@1.333 +2 -2
NTP_4_2_8P2_RC1
ntpdc/ntpdc.man.in@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpdc/ntpdc.mdoc.in@1.320 +2 -2
NTP_4_2_8P2_RC1
ntpq/invoke-ntpq.texi@1.495 +2 -2
NTP_4_2_8P2_RC1
ntpq/ntpq-opts.c@1.512 +106 -106
NTP_4_2_8P2_RC1
ntpq/ntpq-opts.h@1.510 +3 -3
NTP_4_2_8P2_RC1
ntpq/ntpq.1ntpqman@1.323 +3 -3
NTP_4_2_8P2_RC1
ntpq/ntpq.1ntpqmdoc@1.323 +2 -2
NTP_4_2_8P2_RC1
ntpq/ntpq.html@1.162 +2 -2
NTP_4_2_8P2_RC1
ntpq/ntpq.man.in@1.323 +3 -3
NTP_4_2_8P2_RC1
ntpq/ntpq.mdoc.in@1.323 +2 -2
NTP_4_2_8P2_RC1
ntpsnmpd/invoke-ntpsnmpd.texi@1.491 +2 -2
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd-opts.c@1.509 +68 -68
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd-opts.h@1.508 +3 -3
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.320 +2 -2
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd.html@1.160 +1 -1
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd.man.in@1.320 +3 -3
NTP_4_2_8P2_RC1
ntpsnmpd/ntpsnmpd.mdoc.in@1.320 +2 -2
NTP_4_2_8P2_RC1
packageinfo.sh@1.505 +2 -2
NTP_4_2_8P2_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.81 +3 -3
NTP_4_2_8P2_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.82 +2 -2
NTP_4_2_8P2_RC1
scripts/calc_tickadj/calc_tickadj.html@1.83 +1 -1
NTP_4_2_8P2_RC1
scripts/calc_tickadj/calc_tickadj.man.in@1.80 +3 -3
NTP_4_2_8P2_RC1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.82 +2 -2
NTP_4_2_8P2_RC1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.85 +1 -1
NTP_4_2_8P2_RC1
scripts/invoke-plot_summary.texi@1.102 +2 -2
NTP_4_2_8P2_RC1
scripts/invoke-summary.texi@1.102 +2 -2
NTP_4_2_8P2_RC1
scripts/ntp-wait/invoke-ntp-wait.texi@1.312 +2 -2
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait-opts@1.48 +2 -2
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.309 +3 -3
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.310 +2 -2
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait.html@1.329 +2 -2
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait.man.in@1.309 +3 -3
NTP_4_2_8P2_RC1
scripts/ntp-wait/ntp-wait.mdoc.in@1.310 +2 -2
NTP_4_2_8P2_RC1
scripts/ntpsweep/invoke-ntpsweep.texi@1.100 +2 -2
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep-opts@1.50 +2 -2
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.88 +3 -3
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.88 +2 -2
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep.html@1.101 +2 -2
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep.man.in@1.88 +3 -3
NTP_4_2_8P2_RC1
scripts/ntpsweep/ntpsweep.mdoc.in@1.89 +2 -2
NTP_4_2_8P2_RC1
scripts/ntptrace/invoke-ntptrace.texi@1.101 +2 -2
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace-opts@1.50 +2 -2
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace.1ntptraceman@1.88 +3 -3
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.89 +2 -2
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace.html@1.102 +2 -2
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace.man.in@1.88 +3 -3
NTP_4_2_8P2_RC1
scripts/ntptrace/ntptrace.mdoc.in@1.90 +2 -2
NTP_4_2_8P2_RC1
scripts/plot_summary-opts@1.50 +2 -2
NTP_4_2_8P2_RC1
scripts/plot_summary.1plot_summaryman@1.100 +3 -3
NTP_4_2_8P2_RC1
scripts/plot_summary.1plot_summarymdoc@1.100 +2 -2
NTP_4_2_8P2_RC1
scripts/plot_summary.html@1.103 +2 -2
NTP_4_2_8P2_RC1
scripts/plot_summary.man.in@1.100 +3 -3
NTP_4_2_8P2_RC1
scripts/plot_summary.mdoc.in@1.100 +2 -2
NTP_4_2_8P2_RC1
scripts/summary-opts@1.50 +2 -2
NTP_4_2_8P2_RC1
scripts/summary.1summaryman@1.100 +3 -3
NTP_4_2_8P2_RC1
scripts/summary.1summarymdoc@1.100 +2 -2
NTP_4_2_8P2_RC1
scripts/summary.html@1.103 +2 -2
NTP_4_2_8P2_RC1
scripts/summary.man.in@1.100 +3 -3
NTP_4_2_8P2_RC1
scripts/summary.mdoc.in@1.100 +2 -2
NTP_4_2_8P2_RC1
sntp/invoke-sntp.texi@1.488 +2 -2
NTP_4_2_8P2_RC1
sntp/sntp-opts.c@1.507 +159 -159
NTP_4_2_8P2_RC1
sntp/sntp-opts.h@1.505 +3 -3
NTP_4_2_8P2_RC1
sntp/sntp.1sntpman@1.323 +3 -3
NTP_4_2_8P2_RC1
sntp/sntp.1sntpmdoc@1.323 +2 -2
NTP_4_2_8P2_RC1
sntp/sntp.html@1.503 +2 -2
NTP_4_2_8P2_RC1
sntp/sntp.man.in@1.323 +3 -3
NTP_4_2_8P2_RC1
sntp/sntp.mdoc.in@1.323 +2 -2
NTP_4_2_8P2_RC1
util/invoke-ntp-keygen.texi@1.492 +2 -2
NTP_4_2_8P2_RC1
util/ntp-keygen-opts.c@1.510 +173 -173
NTP_4_2_8P2_RC1
util/ntp-keygen-opts.h@1.508 +3 -3
NTP_4_2_8P2_RC1
util/ntp-keygen.1ntp-keygenman@1.320 +3 -3
NTP_4_2_8P2_RC1
util/ntp-keygen.1ntp-keygenmdoc@1.320 +2 -2
NTP_4_2_8P2_RC1
util/ntp-keygen.html@1.166 +2 -2
NTP_4_2_8P2_RC1
util/ntp-keygen.man.in@1.320 +3 -3
NTP_4_2_8P2_RC1
util/ntp-keygen.mdoc.in@1.320 +2 -2
NTP_4_2_8P2_RC1
ChangeSet@1.3308.2.2, 2015-03-30 04:25:58-04:00, stenn@deacon.udel.edu
Begin 4.2.8p2-RC1
packageinfo.sh@1.504 +1 -1
Begin 4.2.8p2-RC1
ChangeSet@1.3308.2.1, 2015-03-30 08:18:35+00:00, stenn@psp-fb1.ntp.org
Start the RC cycle for ntp-4.2.8p2
NEWS@1.130.1.1 +49 -0
Start the RC cycle for ntp-4.2.8p2
ChangeSet@1.3311, 2015-03-29 05:05:41+00:00, stenn@psp-fb1.ntp.org
[Bug 2769] cleannup for update-leap
ChangeLog@1.1627 +1 -0
[Bug 2769] cleannup for update-leap
ChangeSet@1.3310, 2015-03-29 04:10:31+00:00, stenn@psp-fb1.ntp.org
[Bug 2769] cleannup for update-leap
NEWS@1.131 +8 -0
[Bug 2769] cleannup for update-leap
scripts/update-leap/Makefile.am@1.3 +1 -0
[Bug 2769] cleannup for update-leap
scripts/update-leap/update-leap-opts.def@1.2 +4 -3
[Bug 2769] cleannup for update-leap
ChangeSet@1.3308, 2015-03-29 01:49:10+00:00, stenn@psp-deb1.ntp.org
[Bug 2346] "graceful termination" signals do not do peer cleanup
ChangeLog@1.1625 +1 -0
[Bug 2346] "graceful termination" signals do not do peer cleanup
include/ntpd.h@1.186 +1 -0
[Bug 2346] "graceful termination" signals do not do peer cleanup
ntpd/ntp_peer.c@1.154 +20 -0
[Bug 2346] "graceful termination" signals do not do peer cleanup
ntpd/ntpd.c@1.159 +1 -0
[Bug 2346] "graceful termination" signals do not do peer cleanup
ChangeSet@1.3305.4.6, 2015-03-25 17:32:25+01:00, martin@pc-martin.(none)
[Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information.
ChangeLog@1.1622.4.6 +2 -0
[Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information.
include/ntp.h@1.213 +2 -1
New flag FLAG_TSTAMP_PPS.
ntpd/ntp_proto.c@1.353.1.2 +2 -1
[Bug 2592] Account for PPS sources which can provide an accurate absolute time stamp, and status information.
ntpd/refclock_parse.c@1.78 +2 -2
[Bug 2592] Parse driver can return absolute timestamp with PPS, and status information.
ChangeSet@1.3305.4.5, 2015-03-25 17:24:59+01:00, martin@pc-martin.(none)
Fixed indention and removed trailing whitespace.
ChangeLog@1.1622.4.5 +1 -0
Fixed indention and removed trailing whitespace.
include/ntp.h@1.212 +4 -4
Fixed indention.
include/parse_conf.h@1.7 +6 -6
Fixed indention.
ntpd/ntp_proto.c@1.353.1.1 +27 -27
Removed trailing whitespace.
ntpd/refclock_parse.c@1.77 +16 -16
Fixed indention.
ChangeSet@1.3305.4.4, 2015-03-22 07:59:12+00:00, stenn@psp-fb1.ntp.org
merge cleanup
ChangeLog@1.1622.4.4 +0 -1
merge cleanup
ChangeSet@1.3305.6.3, 2015-03-22 07:24:07+00:00, stenn@psp-fb1.ntp.org
Bug 2791 -> Bug 2789
ChangeLog@1.1622.6.3 +1 -1
Bug 2791 -> Bug 2789
ChangeSet@1.3305.6.2, 2015-03-22 06:59:06+00:00, stenn@psp-fb1.ntp.org
Merge cleanup
ChangeLog@1.1622.6.2 +22 -22
Merge cleanup
ChangeSet@1.3305.5.2, 2015-03-22 03:48:52+00:00, stenn@psp-fb1.ntp.org
[Bug 2769] New script: update-leap
.point-changed-filelist@1.26 +7 -0
[Bug 2769] New script: update-leap
scripts/update-leap/Makefile.am@1.2 +2 -1
[Bug 2769] New script: update-leap
ChangeSet@1.3305.5.1, 2015-03-22 03:01:33+00:00, stenn@psp-fb1.ntp.org
[Bug 2769] New script: update-leap
BitKeeper/etc/ignore@1.86 +1 -0
added Makefile.in
ChangeLog@1.1622.5.1 +1 -0
[Bug 2769] New script: update-leap
configure.ac@1.584.1.1 +8 -7
[Bug 2769] New script: update-leap
scripts/Makefile.am@1.40 +1 -0
[Bug 2769] New script: update-leap
scripts/update-leap/Makefile.am@1.1 +95 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/Makefile.am
scripts/update-leap/Makefile.am@1.0 +0 -0
scripts/update-leap/invoke-update-leap.menu@1.1 +1 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/invoke-update-leap.menu
scripts/update-leap/invoke-update-leap.menu@1.0 +0 -0
scripts/update-leap/invoke-update-leap.texi@1.1 +169 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/invoke-update-leap.texi
scripts/update-leap/invoke-update-leap.texi@1.0 +0 -0
scripts/update-leap/update-leap@1.1 +434 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap
scripts/update-leap/update-leap@1.0 +0 -0
scripts/update-leap/update-leap-opts@1.1 +72 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap-opts
scripts/update-leap/update-leap-opts@1.0 +0 -0
scripts/update-leap/update-leap-opts.def@1.1 +162 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap-opts.def
scripts/update-leap/update-leap-opts.def@1.0 +0 -0
scripts/update-leap/update-leap.1update-leapman@1.1 +168 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.1update-leapman
scripts/update-leap/update-leap.1update-leapman@1.0 +0 -0
scripts/update-leap/update-leap.1update-leapmdoc@1.1 +133 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.1update-leapmdoc
scripts/update-leap/update-leap.1update-leapmdoc@1.0 +0 -0
scripts/update-leap/update-leap.html@1.1 +297 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.html
scripts/update-leap/update-leap.html@1.0 +0 -0
scripts/update-leap/update-leap.man.in@1.1 +168 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.man.in
scripts/update-leap/update-leap.man.in@1.0 +0 -0
scripts/update-leap/update-leap.mdoc.in@1.1 +133 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.mdoc.in
scripts/update-leap/update-leap.mdoc.in@1.0 +0 -0
scripts/update-leap/update-leap.texi@1.1 +43 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2769/scripts/update-leap/update-leap.texi
scripts/update-leap/update-leap.texi@1.0 +0 -0
sntp/loc/darwin@1.3 +1 -0
[Bug 2769] New script: update-leap
sntp/loc/debian@1.4 +1 -0
[Bug 2769] New script: update-leap
sntp/loc/freebsd@1.6 +1 -0
[Bug 2769] New script: update-leap
sntp/loc/legacy@1.7 +1 -0
[Bug 2769] New script: update-leap
sntp/loc/netbsd@1.4 +1 -0
[Bug 2769] New script: update-leap
sntp/loc/solaris@1.7 +1 -0
[Bug 2769] New script: update-leap
sntp/m4/ntp_locinfo.m4@1.18 +6 -0
[Bug 2769] New script: update-leap
ChangeSet@1.3305.4.1, 2015-03-20 13:03:38+01:00, burnicki@pc-martin4.
[Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause
briefly before measuring system clock precision to yield correct results.
ChangeLog@1.1622.4.1 +3 -1
[Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause
briefly before measuring system clock precision to yield correct results.
ports/winnt/ntpd/nt_clockstuff.c@1.65 +4 -0
[Bug 2790] If ntpd sets the Windows MM timer highest resolution then pause
briefly before measuring system clock precision to yield correct results.
ChangeSet@1.3305.3.6, 2015-03-20 11:47:15+01:00, martin@pc-martin.(none)
[Bug 2791] Quiet compiler warnings from libevent.
ChangeLog@1.1622.3.6 +1 -0
[Bug 2791] Quiet compiler warnings from libevent.
sntp/libevent/evthread-internal.h@1.8 +2 -2
[Bug 2791] Fixed function prototypes to quiet compiler warnings.
ChangeSet@1.3305.3.5, 2015-03-20 11:36:15+01:00, martin@pc-martin.(none)
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
ChangeLog@1.1622.3.5 +4 -3
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
include/parse.h@1.12 +3 -3
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
libparse/clk_meinberg.c@1.14 +7 -4
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
libparse/clk_rawdcf.c@1.20 +3 -2
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
libparse/clk_schmid.c@1.13 +3 -3
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
libparse/parse.c@1.19 +1 -1
Quiet compiler warning.
ntpd/refclock_parse.c@1.76 +1 -1
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
parseutil/dcfd.c@1.28 +26 -25
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
Removed trailing whitespace.
parseutil/testdcf.c@1.10 +11 -10
[Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
Removed trailing whitespace and fixed indention.
ChangeSet@1.3305.3.4, 2015-03-19 17:00:30+01:00, martin@pc-martin.(none)
Added a comment from Juergen Perlinger in ntp_date.c to make the code clearer.
ChangeLog@1.1622.3.4 +1 -0
Added a comment from Juergen Perlinger in ntp_date.c to make the code clearer.
libntp/ntp_calendar.c@1.15 +40 -34
Added a comment from Juergen Perlinger to make the code clearer.
Removed trailing whitespace.
ChangeSet@1.3305.3.3, 2015-03-19 16:52:05+01:00, martin@pc-martin.(none)
Use predefined function types for parse driver functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast parse conversion results to appropriate types to avoid compiler warnings.
Let ioctl() for Windows accept a (void *) to avoid compiler warnings when called with pointers to different types.
ChangeLog@1.1622.3.3 +7 -0
Use predefined function types for parse driver functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast parse conversion results to appropriate types to avoid compiler warnings.
Let ioctl() for Windows accept a (void *) to avoid compiler warnings when called with pointers to different types.
include/binio.h@1.6 +10 -0
Added macros casting the result of the conversion function to a dedicated with to avoid compiler warnings.
include/mbg_gps166.h@1.13 +1 -1
Use specific data type with mbg_csum() to avoid compiler warnings.
include/parse.h@1.11 +15 -11
Introduced some dedicated function types simplifying use with function pointers.
Let parse input functions expect a char instead of an unsigned int since chars are used anyway.
This helps to avoid compiler warnings.
libparse/clk_computime.c@1.12 +10 -10
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_dcf7000.c@1.12 +8 -7
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_hopf6021.c@1.11 +21 -20
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_meinberg.c@1.13 +20 -19
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast conversion results to appropriate types to avoid compiler warnings.
libparse/clk_rawdcf.c@1.19 +8 -7
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast to appropriate types to avoid compiler warnings.
libparse/clk_rcc8000.c@1.11 +17 -16
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_schmid.c@1.12 +9 -9
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_sel240x.c@1.4 +5 -11
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast to appropriate types to avoid compiler warnings.
libparse/clk_trimtaip.c@1.12 +8 -7
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_trimtsip.c@1.13 +18 -18
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast conversion results to appropriate types to avoid compiler warnings.
Use commonly defined constants to handle GPS week number wraparounds.
libparse/clk_varitext.c@1.11 +6 -5
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/clk_wharton.c@1.10 +7 -4
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
libparse/data_mbg.c@1.15 +36 -36
Cast conversion results to appropriate types to avoid compiler warnings.
libparse/gpstolfp.c@1.12 +1 -1
Type cast to avoid compiler warning.
libparse/parse.c@1.18 +14 -14
Use predefined function types for functions used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast conversion results to appropriate types to avoid compiler warnings.
ntpd/refclock_parse.c@1.75 +49 -48
Cast conversion results to appropriate types to avoid compiler warnings.
ports/winnt/include/termios.h@1.17 +1 -1
Changed the prototype for ioctl() to accept a (void *) to avoid compiler warnings when called with pointers to different types.
ports/winnt/libntp/termios.c@1.30 +2 -1
Let ioctl() accept a (void *) to avoid compiler warnings when called with pointers to different types.
ChangeSet@1.3305.2.4, 2015-03-19 07:54:24+00:00, stenn@psp-deb1.ntp.org
ntp_proto.c, ChangeLog:
[Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
[Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks.
ChangeLog@1.1622.2.4 +3 -0
[Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
[Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks.
ntpd/ntp_proto.c@1.354 +16 -14
[Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
[Sec 2781] Authentication doesn't protect symmetric associations against DoS attacks.
ChangeSet@1.3305.2.3, 2015-03-16 09:17:42+00:00, stenn@psp-fb1.ntp.org
[Bug 2763] Allow different thresholds for forward and backward steps
ChangeLog@1.1622.2.3 +1 -0
[Bug 2763] Allow different thresholds for forward and backward steps
include/ntp.h@1.211 +13 -11
[Bug 2763] Allow different thresholds for forward and backward steps
include/ntpd.h@1.185 +2 -1
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/invoke-ntp.conf.texi@1.178 +15 -2
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/keyword-gen-utd@1.22 +1 -1
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/keyword-gen.c@1.27 +2 -0
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp.conf.5man@1.212 +19 -4
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp.conf.5mdoc@1.212 +18 -3
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp.conf.def@1.15 +16 -1
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp.conf.man.in@1.212 +19 -4
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp.conf.mdoc.in@1.212 +18 -3
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_config.c@1.323 +8 -0
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_keyword.h@1.24 +492 -483
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_loopfilter.c@1.179 +27 -5
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_parser.c@1.90 +803 -797
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_parser.h@1.56 +81 -77
[Bug 2763] Allow different thresholds for forward and backward steps
ntpd/ntp_parser.y@1.83 +4 -0
[Bug 2763] Allow different thresholds for forward and backward steps
ChangeSet@1.3305.3.2, 2015-03-13 10:28:32+01:00, martin@pc-martin.(none)
Removed non-ASCII characters from some copyright comments.
Removed trailing whitespace.
Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Account for updated definitions pulled from Meinberg header files.
Updated comments on Meinberg GPS receivers which are not only called GPS16x.
Replaced some constant numbers by defines from ntp_calendar.h
Modified creation of parse-specific variables for Meinberg devices in gps16x_message().
Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed.
ChangeLog@1.1622.3.2 +12 -0
Removed non-ASCII characters from some copyright comments.
Removed trailing whitespace.
Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Account for updated definitions pulled from Meinberg header files.
Updated comments on Meinberg GPS receivers which are not only called GPS16x.
Replaced some constant numbers by defines from ntp_calendar.h
Modified creation of parse-specific variables for Meinberg devices in gps16x_message().
Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed.
include/mbg_gps166.h@1.12 +841 -408
Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Updated prototype for mbg_tm_str() which now takes one more parameter.
include/ntp_calendar.h@1.17 +4 -2
Added definitions for DAYSPERWEEK and SECSPERWEEK.
include/parse.h@1.10 +14 -7
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
Moved a few definitions from gpstolfp.c here so they can also be used in other c modules.
include/parse_conf.h@1.6 +1 -1
Removed non-ASCII characters from copyright comment.
kernel/sys/parsestreams.h@1.8 +1 -1
Removed non-ASCII characters from copyright comment.
libparse/clk_computime.c@1.11 +23 -23
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_dcf7000.c@1.11 +7 -7
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_meinberg.c@1.12 +71 -70
Updated comments on Meinberg GPS receivers which are not only called GPS16x.
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_rawdcf.c@1.18 +12 -12
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_schmid.c@1.11 +7 -7
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_trimtaip.c@1.11 +5 -5
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_trimtsip.c@1.12 +13 -13
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_varitext.c@1.10 +38 -38
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/clk_wharton.c@1.9 +1 -1
Fixed a typo.
libparse/data_mbg.c@1.14 +39 -36
Account for updated definitions pulled from Meinberg header files.
Updated definitions for Meinberg clocks from current Meinberg header files. Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Replaced some constant numbers by defines from ntp_calendar.h.
Modified mbg_tm_str() which now expexts an additional parameter controlling if the time status shall be printed.
libparse/gpstolfp.c@1.11 +4 -6
Moved some commonly used constants to parse.h.
Removed duplicate defines and use those in ntp_calendar.h.
Also replaced some constant numbers by defines from ntp_calendar.h.
libparse/parse.c@1.17 +46 -46
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/parse_conf.c@1.11 +2 -2
Removed non-ASCII characters from copyright comment.
libparse/parsesolaris.c@1.12 +55 -55
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/parsestreams.c@1.8 +63 -63
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
libparse/trim_info.c@1.6 +1 -1
Removed non-ASCII characters from copyright comment.
ntpd/refclock_parse.c@1.74 +326 -295
Removed non-ASCII characters from copyright comment.
Removed trailing whitespace.
Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
Modified creation of parse-specific variables for Meinberg devices in gps16x_message().
parseutil/dcfd.c@1.27 +2 -2
Removed non-ASCII characters from copyright comment.
parseutil/testdcf.c@1.9 +2 -2
Removed non-ASCII characters from copyright comment.
ChangeSet@1.3305.2.2, 2015-03-10 11:21:46+00:00, stenn@psp-fb1.ntp.org
merge cleanup
ChangeLog@1.1622.2.2 +1 -3
merge cleanup
ntpd/ntp_loopfilter.c@1.178 +5 -2
merge cleanup
ChangeSet@1.3305.3.1, 2015-03-10 10:48:25+01:00, martin@pc-martin.(none)
Fixed loops and decoding of Meinberg GPS satellite info.
ChangeLog@1.1622.3.1 +1 -0
Fixed loops and decoding of Meinberg GPS satellite info.
libparse/data_mbg.c@1.13 +3 -3
Fixed loops handling Meinberg GPS satellite info.
ntpd/refclock_parse.c@1.73 +44 -68
Fixed loops and decoding of Meinberg GPS satellite info.
ChangeSet@1.3305.2.1, 2015-03-09 06:36:19-04:00, murray@pogo.udel.edu
ChangeLog, ntp_loopfilter.c:
Fix for bug 2774
ChangeLog@1.1622.2.1 +3 -0
Fix for bug 2774
ntpd/ntp_loopfilter.c@1.177 +4 -1
Fix for bug 2774
ChangeSet@1.3305.1.18, 2015-03-07 23:04:03+00:00, stenn@psp-fb1.ntp.org
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
ntpd/refclock_shm.c@1.34 +6 -1
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
ChangeSet@1.3305.1.17, 2015-03-07 01:51:49+00:00, stenn@stenn.ntp.org
[Bug 2784] Fix for 2782 uses clock_gettime() instead of get_ostime()
ChangeLog@1.1622.1.14 +1 -0
[Bug 2784] Fix for 2782 uses clock_gettime() instead of get_ostime()
ntpd/refclock_shm.c@1.33 +1 -1
[Bug 2784] Fix for 2782 uses clock_gettime() instead of get_ostime()
ChangeSet@1.3305.1.16, 2015-03-05 20:08:21+00:00, stenn@stenn.ntp.org
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
ChangeLog@1.1622.1.13 +1 -0
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
configure.ac@1.585 +7 -1
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
ntpd/refclock_shm.c@1.32 +196 -108
[Bug 2782] Refactor refclock_shm.c, add memory barrier protection
ChangeSet@1.3305.1.15, 2015-03-05 10:17:02+00:00, stenn@psp-fb1.ntp.org
[Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE
ChangeLog@1.1622.1.12 +1 -0
[Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE
configure.ac@1.584 +24 -22
[Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE
sntp/libopts/m4/libopts.m4@1.33 +12 -12
[Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE
sntp/m4/ntp_libntp.m4@1.29 +4 -4
[Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE
ChangeSet@1.3305.1.14, 2015-03-04 11:16:31+00:00, stenn@psp-fb1.ntp.org
[Bug 2775] ntp-keygen.c fails to compile under Windows
ChangeLog@1.1622.1.11 +1 -0
[Bug 2775] ntp-keygen.c fails to compile under Windows.
util/ntp-keygen.c@1.103 +7 -1
[Bug 2775] ntp-keygen.c fails to compile under Windows
ChangeSet@1.3305.1.13, 2015-03-01 21:46:56-05:00, stenn@pogo.udel.edu
cleanup
ChangeLog@1.1622.1.10 +1 -2
cleanup
ChangeSet@1.3305.1.12, 2015-03-01 02:50:18-05:00, murray@pogo.udel.edu
refclock_palisade.h, ChangeLog, refclock_palisade.c:
Fix bug 2773 - early leap from Palisade/Thunderbolt
ChangeLog@1.1622.1.9 +2 -0
Fix bug 2773 - early leap from Palisade/Thunderbolt
ntpd/refclock_palisade.c@1.42 +8 -2
Fix bug 2773 - early leap from Palisade/Thunderbolt
ntpd/refclock_palisade.h@1.15 +1 -0
Fix bug 2773 - early leap from Palisade/Thunderbolt
ChangeSet@1.3305.1.11, 2015-02-28 12:12:13+00:00, stenn@psp-fb1.ntp.org
[Bug 2751] jitter.h has stale copies of l_fp macros
util/Makefile.am@1.78 +1 -1
[Bug 2751] jitter.h has stale copies of l_fp macros
ChangeSet@1.3305.1.10, 2015-02-28 12:04:02+00:00, stenn@psp-fb1.ntp.org
[Bug 2771] nonvolatile value is documented in wrong units
ChangeLog@1.1622.1.8 +1 -0
[Bug 2771] nonvolatile value is documented in wrong units
html/miscopt.html@1.80 +2 -2
[Bug 2771] nonvolatile value is documented in wrong units
ChangeSet@1.3305.1.9, 2015-02-28 11:34:24+00:00, stenn@psp-fb1.ntp.org
[Bug 2767] ntp-keygen -M should symlink to ntp.keys
ChangeLog@1.1622.1.7 +1 -0
[Bug 2767] ntp-keygen -M should symlink to ntp.keys
util/ntp-keygen.c@1.102 +6 -2
[Bug 2767] ntp-keygen -M should symlink to ntp.keys
ChangeSet@1.3305.1.8, 2015-02-28 11:28:04+00:00, stenn@psp-fb1.ntp.org
[Bug 2766] ntp-keygen output files should not be world-readable
ChangeLog@1.1622.1.6 +1 -0
[Bug 2766] ntp-keygen output files should not be world-readable
util/ntp-keygen.c@1.101 +5 -1
[Bug 2766] ntp-keygen output files should not be world-readable
ChangeSet@1.3305.1.7, 2015-02-28 11:18:57+00:00, stenn@psp-fb1.ntp.org
[Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq
ChangeLog@1.1622.1.5 +1 -0
[Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq
ntpd/ntp_control.c@1.196 +56 -51
[Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq
ChangeSet@1.3305.1.6, 2015-02-28 09:47:20+00:00, stenn@psp-fb1.ntp.org
[Bug 2757] Quiet compiler warnings.
lib/isc/inet_ntop.c@1.14 +1 -0
[Bug 2757] Quiet compiler warnings.
lib/isc/log.c@1.8 +12 -12
[Bug 2757] Quiet compiler warnings.
ntpd/ntp_leapsec.c@1.16 +6 -6
[Bug 2757] Quiet compiler warnings.
parseutil/dcfd.c@1.26 +7 -0
[Bug 2757] Quiet compiler warnings.
sntp/libevent/include/event2/event.h@1.11 +4 -0
[Bug 2757] Quiet compiler warnings.
ChangeSet@1.3305.1.5, 2015-02-28 09:11:24+00:00, stenn@psp-fb1.ntp.org
[Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM
ChangeLog@1.1622.1.4 +1 -0
[Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM
configure.ac@1.583 +0 -2
[Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM
include/ntp_fp.h@1.32 +4 -1
[Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM
ChangeSet@1.3305.1.4, 2015-02-25 07:58:47+00:00, stenn@psp-fb1.ntp.org
[Bug 2751] jitter.h has stale copies of l_fp macros
BitKeeper/deleted/fd/jitter.h~11d7c056cb18e28@1.5 +0 -0
Delete: util/jitter.h
ChangeLog@1.1622.1.3 +1 -0
[Bug 2751] jitter.h has stale copies of l_fp macros
util/jitter.c@1.11 +1 -2
[Bug 2751] jitter.h has stale copies of l_fp macros
ChangeSet@1.3305.1.3, 2015-02-21 05:56:16-05:00, stenn@deacon.udel.edu
Update triggers for bk-6
BitKeeper/triggers/post-incoming.license-warn@1.9 +3 -0
Update triggers for bk-6
BitKeeper/triggers/pre-resolve.license-chk@1.10 +3 -0
Update triggers for bk-6
BitKeeper/triggers/send@1.16 +2 -2
Update triggers for bk-6
ChangeSet@1.3305.1.2, 2015-02-21 10:35:38+00:00, stenn@psp-fb1.ntp.org
[Bug 2757] Quiet compiler warnings
ChangeLog@1.1622.1.2 +1 -0
[Bug 2757] Quiet compiler warnings
lib/isc/result.c@1.4 +6 -6
[Bug 2757] Quiet compiler warnings
lib/isc/unix/file.c@1.7 +3 -3
[Bug 2757] Quiet compiler warnings
lib/isc/unix/ifiter_ioctl.c@1.32.1.1 +4 -0
[Bug 2757] Quiet compiler warnings
lib/isc/unix/net.c@1.19 +2 -1
[Bug 2757] Quiet compiler warnings
libntp/work_fork.c@1.13 +1 -1
[Bug 2757] Quiet compiler warnings
ntpd/ntp_crypto.c@1.174 +1 -1
[Bug 2757] Quiet compiler warnings
ChangeSet@1.3305.1.1, 2015-02-21 09:51:32+00:00, stenn@psp-deb1.ntp.org
[Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL.
ChangeLog@1.1622.1.1 +1 -0
[Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL.
scripts/lib/NTP/Util.pm@1.3 +15 -4
[Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL.
ChangeSet@1.3306, 2015-02-21 09:28:08+00:00, stenn@psp-fb1.ntp.org
[Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument
ChangeLog@1.1623 +1 -0
[Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument
lib/isc/unix/ifiter_getifaddrs.c@1.14 +3 -0
[Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument
lib/isc/unix/ifiter_ioctl.c@1.33 +12 -2
[Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument
ChangeSet@1.3302.1.1, 2015-02-21 07:15:54+00:00, stenn@psp-deb1.ntp.org
[Bug 2728] See if C99-style structure initialization works
ChangeLog@1.1620.1.1 +3 -0
[Bug 2728] See if C99-style structure initialization works
configure.ac@1.582 +1 -0
[Bug 2728] See if C99-style structure initialization works
ntpq/ntpq-subs.c@1.104 +1 -1
[Bug 2728] See if C99-style structure initialization works
ports/winnt/include/config.h@1.111 +1 -1
[Bug 2728] See if C99-style structure initialization works
sntp/m4/ax_c99_struct_init.m4@1.1 +59 -0
BitKeeper file /home/stenn/ntp-stable-2728/sntp/m4/ax_c99_struct_init.m4
sntp/m4/ax_c99_struct_init.m4@1.0 +0 -0
ChangeSet@1.3304, 2015-02-11 09:08:51+00:00, stenn@psp-fb1.ntp.org
[Bug 2747] Upgrade libevent to 2.1.5-beta
ChangeLog@1.1621 +3 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
ChangeSet@1.3303, 2015-02-11 09:05:59+00:00, stenn@psp-fb1.ntp.org
[Bug 2747] Upgrade libevent to 2.1.5-beta
BitKeeper/deleted/5b/README~3a69bb76c676898e@1.7 +0 -0
Delete: sntp/libevent/README
sntp/libevent/ChangeLog@1.9 +726 -60
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/Makefile.am@1.13 +3 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/README.md@1.1 +318 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/README.md
sntp/libevent/README.md@1.0 +0 -0
sntp/libevent/WIN32-Code/getopt.c@1.1 +149 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt.c
sntp/libevent/WIN32-Code/getopt.c@1.0 +0 -0
sntp/libevent/WIN32-Code/getopt.h@1.1 +33 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt.h
sntp/libevent/WIN32-Code/getopt.h@1.0 +0 -0
sntp/libevent/WIN32-Code/getopt_long.c@1.1 +233 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/WIN32-Code/getopt_long.c
sntp/libevent/WIN32-Code/getopt_long.c@1.0 +0 -0
sntp/libevent/WIN32-Code/nmake/event2/event-config.h@1.2 +2 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/WIN32-Code/tree.h@1.2 +0 -677
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/buffer.c@1.10 +74 -10
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/bufferevent.c@1.8 +9 -4
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/bufferevent_async.c@1.7 +6 -4
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/bufferevent_filter.c@1.7 +50 -23
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/bufferevent_openssl.c@1.9 +2 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/bufferevent_pair.c@1.8 +32 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/configure.ac@1.17 +15 -18
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evbuffer-internal.h@1.8 +13 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evdns.c@1.10 +80 -33
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/event.c@1.13 +38 -10
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/event_tagging.c@1.5 +14 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evrpc-internal.h@1.3 +1 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evthread-internal.h@1.7 +7 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evthread.c@1.8 +17 -6
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evutil.c@1.10 +28 -14
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/evutil_time.c@1.5 +50 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/ht-internal.h@1.4 +0 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/http-internal.h@1.6 +2 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/http.c@1.10 +45 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/buffer.h@1.7 +3 -8
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/bufferevent.h@1.6 +5 -4
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/dns.h@1.7 +17 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/event.h@1.10 +6 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/http.h@1.7 +14 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/listener.h@1.4 +9 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/include/event2/util.h@1.7 +69 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/kqueue.c@1.7 +17 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/listener.c@1.7 +5 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/sample/http-server.c@1.10 +5 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/sample/https-client.c@1.2 +15 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/sample/include.am@1.3 +2 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/include.am@1.4 +2 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/print-winsock-errors.c@1.1 +84 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/print-winsock-errors.c
sntp/libevent/test/print-winsock-errors.c@1.0 +0 -0
sntp/libevent/test/regress.c@1.6 +29 -8
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress.h@1.5 +5 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_buffer.c@1.8 +47 -6
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_bufferevent.c@1.6 +150 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_dns.c@1.8 +141 -14
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_finalize.c@1.2 +1 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_http.c@1.8 +107 -9
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_main.c@1.7 +4 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_minheap.c@1.3 +3 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_ssl.c@1.7 +1 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_thread.c@1.6 +3 -2
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_util.c@1.7 +19 -17
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/regress_zlib.c@1.5 +10 -7
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/test-fdleak.c@1.2 +10 -10
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/test-ratelim.c@1.9 +5 -6
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/test-ratelim.sh@1.1 +88 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/test-ratelim.sh
sntp/libevent/test/test-ratelim.sh@1.0 +0 -0
sntp/libevent/test/test-time.c@1.5 +9 -6
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/tinytest.c@1.6 +33 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/tinytest.h@1.4 +2 -0
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/test/tinytest_demo.c@1.1 +260 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-stable-2747/sntp/libevent/test/tinytest_demo.c
sntp/libevent/test/tinytest_demo.c@1.0 +0 -0
sntp/libevent/test/tinytest_macros.h@1.3 +21 -6
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/time-internal.h@1.2 +0 -3
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/util-internal.h@1.10 +1 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/libevent/whatsnew-2.1.txt@1.4 +52 -1
[Bug 2747] Upgrade libevent to 2.1.5-beta
sntp/m4/LICENSE-OPENLDAP@1.2 +0 -0
Rename: sntp/libevent/m4/LICENSE-OPENLDAP -> sntp/m4/LICENSE-OPENLDAP
sntp/m4/openldap-thread-check.m4@1.5 +0 -0
Rename: sntp/libevent/m4/openldap-thread-check.m4 -> sntp/m4/openldap-thread-check.m4
sntp/m4/openldap.m4@1.2 +0 -0
Rename: sntp/libevent/m4/openldap.m4 -> sntp/m4/openldap.m4
ChangeSet@1.3302, 2015-02-04 02:44:25-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1
TAG: NTP_4_2_8P1
ChangeLog@1.1620 +1 -0
NTP_4_2_8P1
ntpd/invoke-ntp.conf.texi@1.177 +1 -1
NTP_4_2_8P1
ntpd/invoke-ntp.keys.texi@1.174 +1 -1
NTP_4_2_8P1
ntpd/invoke-ntpd.texi@1.490 +2 -2
NTP_4_2_8P1
ntpd/ntp.conf.5man@1.211 +3 -3
NTP_4_2_8P1
ntpd/ntp.conf.5mdoc@1.211 +2 -2
NTP_4_2_8P1
ntpd/ntp.conf.html@1.169 +1 -1
NTP_4_2_8P1
ntpd/ntp.conf.man.in@1.211 +3 -3
NTP_4_2_8P1
ntpd/ntp.conf.mdoc.in@1.211 +2 -2
NTP_4_2_8P1
ntpd/ntp.keys.5man@1.208 +2 -2
NTP_4_2_8P1
ntpd/ntp.keys.5mdoc@1.208 +2 -2
NTP_4_2_8P1
ntpd/ntp.keys.html@1.170 +1 -1
NTP_4_2_8P1
ntpd/ntp.keys.man.in@1.208 +2 -2
NTP_4_2_8P1
ntpd/ntp.keys.mdoc.in@1.208 +2 -2
NTP_4_2_8P1
ntpd/ntpd-opts.c@1.511 +239 -239
NTP_4_2_8P1
ntpd/ntpd-opts.h@1.510 +3 -3
NTP_4_2_8P1
ntpd/ntpd.1ntpdman@1.319 +3 -3
NTP_4_2_8P1
ntpd/ntpd.1ntpdmdoc@1.319 +2 -2
NTP_4_2_8P1
ntpd/ntpd.html@1.164 +2 -2
NTP_4_2_8P1
ntpd/ntpd.man.in@1.319 +3 -3
NTP_4_2_8P1
ntpd/ntpd.mdoc.in@1.319 +2 -2
NTP_4_2_8P1
ntpdc/invoke-ntpdc.texi@1.488 +2 -2
NTP_4_2_8P1
ntpdc/ntpdc-opts.c@1.506 +107 -107
NTP_4_2_8P1
ntpdc/ntpdc-opts.h@1.505 +3 -3
NTP_4_2_8P1
ntpdc/ntpdc.1ntpdcman@1.319 +3 -3
NTP_4_2_8P1
ntpdc/ntpdc.1ntpdcmdoc@1.319 +2 -2
NTP_4_2_8P1
ntpdc/ntpdc.html@1.332 +2 -2
NTP_4_2_8P1
ntpdc/ntpdc.man.in@1.319 +3 -3
NTP_4_2_8P1
ntpdc/ntpdc.mdoc.in@1.319 +2 -2
NTP_4_2_8P1
ntpq/invoke-ntpq.texi@1.494 +2 -2
NTP_4_2_8P1
ntpq/ntpq-opts.c@1.511 +106 -106
NTP_4_2_8P1
ntpq/ntpq-opts.h@1.509 +3 -3
NTP_4_2_8P1
ntpq/ntpq.1ntpqman@1.322 +3 -3
NTP_4_2_8P1
ntpq/ntpq.1ntpqmdoc@1.322 +2 -2
NTP_4_2_8P1
ntpq/ntpq.html@1.161 +2 -2
NTP_4_2_8P1
ntpq/ntpq.man.in@1.322 +3 -3
NTP_4_2_8P1
ntpq/ntpq.mdoc.in@1.322 +2 -2
NTP_4_2_8P1
ntpsnmpd/invoke-ntpsnmpd.texi@1.490 +2 -2
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd-opts.c@1.508 +68 -68
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd-opts.h@1.507 +3 -3
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.319 +3 -3
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.319 +2 -2
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd.html@1.159 +1 -1
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd.man.in@1.319 +3 -3
NTP_4_2_8P1
ntpsnmpd/ntpsnmpd.mdoc.in@1.319 +2 -2
NTP_4_2_8P1
packageinfo.sh@1.503 +3 -3
NTP_4_2_8P1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.80 +3 -3
NTP_4_2_8P1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.81 +2 -2
NTP_4_2_8P1
scripts/calc_tickadj/calc_tickadj.html@1.82 +1 -1
NTP_4_2_8P1
scripts/calc_tickadj/calc_tickadj.man.in@1.79 +3 -3
NTP_4_2_8P1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.81 +2 -2
NTP_4_2_8P1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.84 +1 -1
NTP_4_2_8P1
scripts/invoke-plot_summary.texi@1.101 +2 -2
NTP_4_2_8P1
scripts/invoke-summary.texi@1.101 +2 -2
NTP_4_2_8P1
scripts/ntp-wait/invoke-ntp-wait.texi@1.311 +2 -2
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait-opts@1.47 +2 -2
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.308 +3 -3
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.309 +2 -2
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait.html@1.328 +2 -2
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait.man.in@1.308 +3 -3
NTP_4_2_8P1
scripts/ntp-wait/ntp-wait.mdoc.in@1.309 +2 -2
NTP_4_2_8P1
scripts/ntpsweep/invoke-ntpsweep.texi@1.99 +2 -2
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep-opts@1.49 +2 -2
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.87 +3 -3
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.87 +2 -2
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep.html@1.100 +2 -2
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep.man.in@1.87 +3 -3
NTP_4_2_8P1
scripts/ntpsweep/ntpsweep.mdoc.in@1.88 +2 -2
NTP_4_2_8P1
scripts/ntptrace/invoke-ntptrace.texi@1.100 +2 -2
NTP_4_2_8P1
scripts/ntptrace/ntptrace-opts@1.49 +2 -2
NTP_4_2_8P1
scripts/ntptrace/ntptrace.1ntptraceman@1.87 +3 -3
NTP_4_2_8P1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.88 +2 -2
NTP_4_2_8P1
scripts/ntptrace/ntptrace.html@1.101 +2 -2
NTP_4_2_8P1
scripts/ntptrace/ntptrace.man.in@1.87 +3 -3
NTP_4_2_8P1
scripts/ntptrace/ntptrace.mdoc.in@1.89 +2 -2
NTP_4_2_8P1
scripts/plot_summary-opts@1.49 +2 -2
NTP_4_2_8P1
scripts/plot_summary.1plot_summaryman@1.99 +3 -3
NTP_4_2_8P1
scripts/plot_summary.1plot_summarymdoc@1.99 +2 -2
NTP_4_2_8P1
scripts/plot_summary.html@1.102 +2 -2
NTP_4_2_8P1
scripts/plot_summary.man.in@1.99 +3 -3
NTP_4_2_8P1
scripts/plot_summary.mdoc.in@1.99 +2 -2
NTP_4_2_8P1
scripts/summary-opts@1.49 +2 -2
NTP_4_2_8P1
scripts/summary.1summaryman@1.99 +3 -3
NTP_4_2_8P1
scripts/summary.1summarymdoc@1.99 +2 -2
NTP_4_2_8P1
scripts/summary.html@1.102 +2 -2
NTP_4_2_8P1
scripts/summary.man.in@1.99 +3 -3
NTP_4_2_8P1
scripts/summary.mdoc.in@1.99 +2 -2
NTP_4_2_8P1
sntp/invoke-sntp.texi@1.487 +2 -2
NTP_4_2_8P1
sntp/sntp-opts.c@1.506 +159 -159
NTP_4_2_8P1
sntp/sntp-opts.h@1.504 +3 -3
NTP_4_2_8P1
sntp/sntp.1sntpman@1.322 +3 -3
NTP_4_2_8P1
sntp/sntp.1sntpmdoc@1.322 +2 -2
NTP_4_2_8P1
sntp/sntp.html@1.502 +2 -2
NTP_4_2_8P1
sntp/sntp.man.in@1.322 +3 -3
NTP_4_2_8P1
sntp/sntp.mdoc.in@1.322 +2 -2
NTP_4_2_8P1
util/invoke-ntp-keygen.texi@1.491 +2 -2
NTP_4_2_8P1
util/ntp-keygen-opts.c@1.509 +173 -173
NTP_4_2_8P1
util/ntp-keygen-opts.h@1.507 +3 -3
NTP_4_2_8P1
util/ntp-keygen.1ntp-keygenman@1.319 +3 -3
NTP_4_2_8P1
util/ntp-keygen.1ntp-keygenmdoc@1.319 +2 -2
NTP_4_2_8P1
util/ntp-keygen.html@1.165 +2 -2
NTP_4_2_8P1
util/ntp-keygen.man.in@1.319 +3 -3
NTP_4_2_8P1
util/ntp-keygen.mdoc.in@1.319 +2 -2
NTP_4_2_8P1
ChangeSet@1.3301, 2015-02-04 02:22:55-05:00, stenn@deacon.udel.edu
ntp-4.2.8p1
packageinfo.sh@1.502 +1 -1
ntp-4.2.8p1
ChangeSet@1.3300, 2015-02-04 07:16:30+00:00, stenn@psp-deb1.ntp.org
Update the ChangeLog and NEWS files
ChangeLog@1.1619 +4 -1
Update the ChangeLog and NEWS files
NEWS@1.130 +60 -0
Update the ChangeLog and NEWS files
ChangeSet@1.3292.1.20, 2015-01-29 19:14:37-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_RC2
TAG: NTP_4_2_8P1_RC2
ChangeLog@1.1613.1.18 +1 -0
NTP_4_2_8P1_RC2
ntpd/invoke-ntp.conf.texi@1.176 +1 -1
NTP_4_2_8P1_RC2
ntpd/invoke-ntp.keys.texi@1.173 +1 -1
NTP_4_2_8P1_RC2
ntpd/invoke-ntpd.texi@1.489 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.conf.5man@1.210 +3 -3
NTP_4_2_8P1_RC2
ntpd/ntp.conf.5mdoc@1.210 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.conf.html@1.168 +1 -1
NTP_4_2_8P1_RC2
ntpd/ntp.conf.man.in@1.210 +3 -3
NTP_4_2_8P1_RC2
ntpd/ntp.conf.mdoc.in@1.210 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.keys.5man@1.207 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.keys.5mdoc@1.207 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.keys.html@1.169 +1 -1
NTP_4_2_8P1_RC2
ntpd/ntp.keys.man.in@1.207 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntp.keys.mdoc.in@1.207 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntpd-opts.c@1.510 +7 -7
NTP_4_2_8P1_RC2
ntpd/ntpd-opts.h@1.509 +3 -3
NTP_4_2_8P1_RC2
ntpd/ntpd.1ntpdman@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpd/ntpd.1ntpdmdoc@1.318 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntpd.html@1.163 +2 -2
NTP_4_2_8P1_RC2
ntpd/ntpd.man.in@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpd/ntpd.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_RC2
ntpdc/invoke-ntpdc.texi@1.487 +2 -2
NTP_4_2_8P1_RC2
ntpdc/ntpdc-opts.c@1.505 +7 -7
NTP_4_2_8P1_RC2
ntpdc/ntpdc-opts.h@1.504 +3 -3
NTP_4_2_8P1_RC2
ntpdc/ntpdc.1ntpdcman@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpdc/ntpdc.1ntpdcmdoc@1.318 +2 -2
NTP_4_2_8P1_RC2
ntpdc/ntpdc.html@1.331 +2 -2
NTP_4_2_8P1_RC2
ntpdc/ntpdc.man.in@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpdc/ntpdc.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_RC2
ntpq/invoke-ntpq.texi@1.493 +2 -2
NTP_4_2_8P1_RC2
ntpq/ntpq-opts.c@1.510 +7 -7
NTP_4_2_8P1_RC2
ntpq/ntpq-opts.h@1.508 +3 -3
NTP_4_2_8P1_RC2
ntpq/ntpq.1ntpqman@1.321 +3 -3
NTP_4_2_8P1_RC2
ntpq/ntpq.1ntpqmdoc@1.321 +2 -2
NTP_4_2_8P1_RC2
ntpq/ntpq.html@1.160 +2 -2
NTP_4_2_8P1_RC2
ntpq/ntpq.man.in@1.321 +3 -3
NTP_4_2_8P1_RC2
ntpq/ntpq.mdoc.in@1.321 +2 -2
NTP_4_2_8P1_RC2
ntpsnmpd/invoke-ntpsnmpd.texi@1.489 +2 -2
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd-opts.c@1.507 +7 -7
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd-opts.h@1.506 +3 -3
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.318 +2 -2
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd.html@1.158 +1 -1
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd.man.in@1.318 +3 -3
NTP_4_2_8P1_RC2
ntpsnmpd/ntpsnmpd.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_RC2
packageinfo.sh@1.501 +1 -1
NTP_4_2_8P1_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.79 +3 -3
NTP_4_2_8P1_RC2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.80 +2 -2
NTP_4_2_8P1_RC2
scripts/calc_tickadj/calc_tickadj.html@1.81 +1 -1
NTP_4_2_8P1_RC2
scripts/calc_tickadj/calc_tickadj.man.in@1.78 +3 -3
NTP_4_2_8P1_RC2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.80 +2 -2
NTP_4_2_8P1_RC2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.83 +1 -1
NTP_4_2_8P1_RC2
scripts/invoke-plot_summary.texi@1.100 +2 -2
NTP_4_2_8P1_RC2
scripts/invoke-summary.texi@1.100 +2 -2
NTP_4_2_8P1_RC2
scripts/ntp-wait/invoke-ntp-wait.texi@1.310 +2 -2
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait-opts@1.46 +2 -2
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.307 +3 -3
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.308 +2 -2
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait.html@1.327 +2 -2
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait.man.in@1.307 +3 -3
NTP_4_2_8P1_RC2
scripts/ntp-wait/ntp-wait.mdoc.in@1.308 +2 -2
NTP_4_2_8P1_RC2
scripts/ntpsweep/invoke-ntpsweep.texi@1.98 +2 -2
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep-opts@1.48 +2 -2
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.86 +3 -3
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.86 +2 -2
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep.html@1.99 +2 -2
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep.man.in@1.86 +3 -3
NTP_4_2_8P1_RC2
scripts/ntpsweep/ntpsweep.mdoc.in@1.87 +2 -2
NTP_4_2_8P1_RC2
scripts/ntptrace/invoke-ntptrace.texi@1.99 +2 -2
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace-opts@1.48 +2 -2
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace.1ntptraceman@1.86 +3 -3
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.87 +2 -2
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace.html@1.100 +2 -2
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace.man.in@1.86 +3 -3
NTP_4_2_8P1_RC2
scripts/ntptrace/ntptrace.mdoc.in@1.88 +2 -2
NTP_4_2_8P1_RC2
scripts/plot_summary-opts@1.48 +2 -2
NTP_4_2_8P1_RC2
scripts/plot_summary.1plot_summaryman@1.98 +3 -3
NTP_4_2_8P1_RC2
scripts/plot_summary.1plot_summarymdoc@1.98 +2 -2
NTP_4_2_8P1_RC2
scripts/plot_summary.html@1.101 +2 -2
NTP_4_2_8P1_RC2
scripts/plot_summary.man.in@1.98 +3 -3
NTP_4_2_8P1_RC2
scripts/plot_summary.mdoc.in@1.98 +2 -2
NTP_4_2_8P1_RC2
scripts/summary-opts@1.48 +2 -2
NTP_4_2_8P1_RC2
scripts/summary.1summaryman@1.98 +3 -3
NTP_4_2_8P1_RC2
scripts/summary.1summarymdoc@1.98 +2 -2
NTP_4_2_8P1_RC2
scripts/summary.html@1.101 +2 -2
NTP_4_2_8P1_RC2
scripts/summary.man.in@1.98 +3 -3
NTP_4_2_8P1_RC2
scripts/summary.mdoc.in@1.98 +2 -2
NTP_4_2_8P1_RC2
sntp/invoke-sntp.texi@1.486 +2 -2
NTP_4_2_8P1_RC2
sntp/sntp-opts.c@1.505 +7 -7
NTP_4_2_8P1_RC2
sntp/sntp-opts.h@1.503 +3 -3
NTP_4_2_8P1_RC2
sntp/sntp.1sntpman@1.321 +3 -3
NTP_4_2_8P1_RC2
sntp/sntp.1sntpmdoc@1.321 +2 -2
NTP_4_2_8P1_RC2
sntp/sntp.html@1.501 +2 -2
NTP_4_2_8P1_RC2
sntp/sntp.man.in@1.321 +3 -3
NTP_4_2_8P1_RC2
sntp/sntp.mdoc.in@1.321 +2 -2
NTP_4_2_8P1_RC2
util/invoke-ntp-keygen.texi@1.490 +2 -2
NTP_4_2_8P1_RC2
util/ntp-keygen-opts.c@1.508 +7 -7
NTP_4_2_8P1_RC2
util/ntp-keygen-opts.h@1.506 +3 -3
NTP_4_2_8P1_RC2
util/ntp-keygen.1ntp-keygenman@1.318 +3 -3
NTP_4_2_8P1_RC2
util/ntp-keygen.1ntp-keygenmdoc@1.318 +2 -2
NTP_4_2_8P1_RC2
util/ntp-keygen.html@1.164 +2 -2
NTP_4_2_8P1_RC2
util/ntp-keygen.man.in@1.318 +3 -3
NTP_4_2_8P1_RC2
util/ntp-keygen.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_RC2
ChangeSet@1.3292.5.2, 2015-01-29 00:34:07+00:00, stenn@psp-deb1.ntp.org
typo
ChangeLog@1.1613.5.2 +2 -0
typo
ChangeSet@1.3292.4.3, 2015-01-29 00:23:57+00:00, stenn@psp-deb1.ntp.org
typos
ChangeLog@1.1613.4.3 +5 -3
typos
ChangeSet@1.3292.4.2, 2015-01-28 23:39:54+01:00, martin@pc-martin.fritz.box
Bug 2741 - Incorrect buffer check in parsestatus()
ChangeLog@1.1613.4.2 +2 -1
Bug 2741 - Incorrect buffer check in parsestatus()
ntpd/refclock_parse.c@1.71 +1 -1
Bug 2741 - Incorrect buffer check in parsestatus()
ChangeSet@1.3292.2.3, 2015-01-28 22:06:47+01:00, jnperlin@nemesis.localnet
[bug 2732] Bug 2732 - Leap second not handled correctly on Windows 8
Guard against slewing twice. Something weird is happening under Win8/8.1.
ports/winnt/ntpd/nt_clockstuff.c@1.64 +2 -2
[bug 2732] Bug 2732 - Leap second not handled correctly on Windows 8
Guard against slewing twice. Something weird is happening under Win8/8.1.
ChangeSet@1.3292.5.1, 2015-01-28 17:04:07+01:00, martin@pc-martin.(none)
[Bug 2740] Removed some obsolete code from the parse driver.
ChangeLog@1.1613.5.1 +1 -0
[Bug 2740] Removed some obsolete code from the parse driver.
ntpd/refclock_parse.c@1.69.1.1 +1 -14
[Bug 2740] Removed some obsolete code from the parse driver, as discussed with Frank Kardel.
ChangeSet@1.3292.4.1, 2015-01-27 16:33:33+01:00, martin@pc-martin.(none)
[Bug 2738] Missing buffer initialisation in parsestate().
[Bug 2739] Parse driver with PPS enabled occasionaly evaluates PPS timestamp with wrong sign.
Removed some German umlauts.
ChangeLog@1.1613.4.1 +4 -0
[Bug 2738] Missing buffer initialisation in parsestate().
[Bug 2739] Parse driver with PPS enabled occasionaly evaluates PPS timestamp with wrong sign.
Removed some German umlauts.
ntpd/refclock_parse.c@1.70 +3 -2
[Bug 2738] Missing buffer initialisation in parsestate().
[Bug 2739] Parse driver with PPS enabled occasionaly evaluates PPS timestamp with wrong sign.
Removed some German umlauts.
ChangeSet@1.3292.1.16, 2015-01-27 00:26:25+01:00, jnperlin@hydra.(none)
* [Bug 2627] rework: reverted sense of mode bit (so default reflects previous behaviour) and updated ducumentation.
ChangeLog@1.1613.1.14 +4 -0
* [Bug 2627] rework: reverted sense of mode bit (so default reflects previous behaviour) and updated ducumentation.
html/drivers/driver28.html@1.18 +3 -2
* [Bug 2627] rework: updated documentation
ntpd/refclock_shm.c@1.31 +2 -7
* [Bug 2627] rework: reverted sense of mode bit (so default reflects previous behaviour).
ChangeSet@1.3292.2.2, 2015-01-26 23:42:37+01:00, jnperlin@nemesis.localnet
[Bug 2732] - Leap second not handled correctly on Windows 8
use 'GetTickCount()' to get the true elapsed time of slew
(This should work for all versions of Windows >= W2K)
ChangeLog@1.1613.3.1 +4 -0
[Bug 2732] - Leap second not handled correctly on Windows 8
use 'GetTickCount()' to get the true elapsed time of slew
(This should work for all versions of Windows >= W2K)
ports/winnt/ntpd/nt_clockstuff.c@1.63 +1 -1
[Bug 2732] - Leap second not handled correctly on Windows 8
use 'GetTickCount()' to get the true elapsed time of slew
(This should work for all versions of Windows >= W2K)
Start 1.5 secs before schedule to minimise phase shift errors
ChangeSet@1.3292.1.15, 2015-01-24 20:47:20-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_RC1
TAG: NTP_4_2_8P1_RC1
ChangeLog@1.1613.1.13 +1 -0
NTP_4_2_8P1_RC1
ntpd/invoke-ntp.conf.texi@1.175 +1 -1
NTP_4_2_8P1_RC1
ntpd/invoke-ntp.keys.texi@1.172 +1 -1
NTP_4_2_8P1_RC1
ntpd/invoke-ntpd.texi@1.488 +2 -2
NTP_4_2_8P1_RC1
ntpd/ntp.conf.5man@1.209 +5 -5
NTP_4_2_8P1_RC1
ntpd/ntp.conf.5mdoc@1.209 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntp.conf.html@1.167 +1 -1
NTP_4_2_8P1_RC1
ntpd/ntp.conf.man.in@1.209 +5 -5
NTP_4_2_8P1_RC1
ntpd/ntp.conf.mdoc.in@1.209 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntp.keys.5man@1.206 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntp.keys.5mdoc@1.206 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntp.keys.html@1.168 +1 -1
NTP_4_2_8P1_RC1
ntpd/ntp.keys.man.in@1.206 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntp.keys.mdoc.in@1.206 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntpd-opts.c@1.509 +251 -249
NTP_4_2_8P1_RC1
ntpd/ntpd-opts.h@1.508 +5 -5
NTP_4_2_8P1_RC1
ntpd/ntpd.1ntpdman@1.317 +5 -5
NTP_4_2_8P1_RC1
ntpd/ntpd.1ntpdmdoc@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpd/ntpd.html@1.162 +2 -2
NTP_4_2_8P1_RC1
ntpd/ntpd.man.in@1.317 +5 -5
NTP_4_2_8P1_RC1
ntpd/ntpd.mdoc.in@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpdc/invoke-ntpdc.texi@1.486 +2 -2
NTP_4_2_8P1_RC1
ntpdc/ntpdc-opts.c@1.504 +119 -117
NTP_4_2_8P1_RC1
ntpdc/ntpdc-opts.h@1.503 +5 -5
NTP_4_2_8P1_RC1
ntpdc/ntpdc.1ntpdcman@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpdc/ntpdc.1ntpdcmdoc@1.317 +3 -3
NTP_4_2_8P1_RC1
ntpdc/ntpdc.html@1.330 +58 -88
NTP_4_2_8P1_RC1
ntpdc/ntpdc.man.in@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpdc/ntpdc.mdoc.in@1.317 +3 -3
NTP_4_2_8P1_RC1
ntpq/invoke-ntpq.texi@1.492 +2 -2
NTP_4_2_8P1_RC1
ntpq/ntpq-opts.c@1.509 +118 -116
NTP_4_2_8P1_RC1
ntpq/ntpq-opts.h@1.507 +5 -5
NTP_4_2_8P1_RC1
ntpq/ntpq.1ntpqman@1.320 +5 -5
NTP_4_2_8P1_RC1
ntpq/ntpq.1ntpqmdoc@1.320 +4 -4
NTP_4_2_8P1_RC1
ntpq/ntpq.html@1.159 +2 -2
NTP_4_2_8P1_RC1
ntpq/ntpq.man.in@1.320 +5 -5
NTP_4_2_8P1_RC1
ntpq/ntpq.mdoc.in@1.320 +4 -4
NTP_4_2_8P1_RC1
ntpsnmpd/invoke-ntpsnmpd.texi@1.488 +2 -2
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd-opts.c@1.506 +80 -78
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd-opts.h@1.505 +5 -5
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.317 +3 -3
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd.html@1.157 +1 -1
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd.man.in@1.317 +4 -4
NTP_4_2_8P1_RC1
ntpsnmpd/ntpsnmpd.mdoc.in@1.317 +3 -3
NTP_4_2_8P1_RC1
packageinfo.sh@1.500 +1 -1
NTP_4_2_8P1_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.78 +3 -3
NTP_4_2_8P1_RC1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.79 +2 -2
NTP_4_2_8P1_RC1
scripts/calc_tickadj/calc_tickadj.html@1.80 +1 -1
NTP_4_2_8P1_RC1
scripts/calc_tickadj/calc_tickadj.man.in@1.77 +3 -3
NTP_4_2_8P1_RC1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.79 +2 -2
NTP_4_2_8P1_RC1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.82 +1 -1
NTP_4_2_8P1_RC1
scripts/invoke-plot_summary.texi@1.99 +2 -2
NTP_4_2_8P1_RC1
scripts/invoke-summary.texi@1.99 +2 -2
NTP_4_2_8P1_RC1
scripts/ntp-wait/invoke-ntp-wait.texi@1.309 +2 -2
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait-opts@1.45 +2 -2
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.306 +3 -3
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.307 +2 -2
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait.html@1.326 +31 -49
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait.man.in@1.306 +3 -3
NTP_4_2_8P1_RC1
scripts/ntp-wait/ntp-wait.mdoc.in@1.307 +2 -2
NTP_4_2_8P1_RC1
scripts/ntpsweep/invoke-ntpsweep.texi@1.97 +2 -2
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep-opts@1.47 +2 -2
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.85 +3 -3
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.85 +2 -2
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep.html@1.98 +2 -2
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep.man.in@1.85 +3 -3
NTP_4_2_8P1_RC1
scripts/ntpsweep/ntpsweep.mdoc.in@1.86 +2 -2
NTP_4_2_8P1_RC1
scripts/ntptrace/invoke-ntptrace.texi@1.98 +2 -2
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace-opts@1.47 +2 -2
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace.1ntptraceman@1.85 +3 -3
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.86 +2 -2
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace.html@1.99 +27 -36
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace.man.in@1.85 +3 -3
NTP_4_2_8P1_RC1
scripts/ntptrace/ntptrace.mdoc.in@1.87 +2 -2
NTP_4_2_8P1_RC1
scripts/plot_summary-opts@1.47 +2 -2
NTP_4_2_8P1_RC1
scripts/plot_summary.1plot_summaryman@1.97 +3 -3
NTP_4_2_8P1_RC1
scripts/plot_summary.1plot_summarymdoc@1.97 +2 -2
NTP_4_2_8P1_RC1
scripts/plot_summary.html@1.100 +2 -2
NTP_4_2_8P1_RC1
scripts/plot_summary.man.in@1.97 +3 -3
NTP_4_2_8P1_RC1
scripts/plot_summary.mdoc.in@1.97 +2 -2
NTP_4_2_8P1_RC1
scripts/summary-opts@1.47 +2 -2
NTP_4_2_8P1_RC1
scripts/summary.1summaryman@1.97 +3 -3
NTP_4_2_8P1_RC1
scripts/summary.1summarymdoc@1.97 +2 -2
NTP_4_2_8P1_RC1
scripts/summary.html@1.100 +2 -2
NTP_4_2_8P1_RC1
scripts/summary.man.in@1.97 +3 -3
NTP_4_2_8P1_RC1
scripts/summary.mdoc.in@1.97 +2 -2
NTP_4_2_8P1_RC1
sntp/invoke-sntp.texi@1.485 +5 -3
NTP_4_2_8P1_RC1
sntp/sntp-opts.c@1.504 +174 -170
NTP_4_2_8P1_RC1
sntp/sntp-opts.h@1.502 +5 -5
NTP_4_2_8P1_RC1
sntp/sntp.1sntpman@1.320 +24 -8
NTP_4_2_8P1_RC1
sntp/sntp.1sntpmdoc@1.320 +22 -7
NTP_4_2_8P1_RC1
sntp/sntp.html@1.500 +88 -120
NTP_4_2_8P1_RC1
sntp/sntp.man.in@1.320 +24 -8
NTP_4_2_8P1_RC1
sntp/sntp.mdoc.in@1.320 +22 -7
NTP_4_2_8P1_RC1
util/invoke-ntp-keygen.texi@1.489 +2 -2
NTP_4_2_8P1_RC1
util/ntp-keygen-opts.c@1.507 +185 -183
NTP_4_2_8P1_RC1
util/ntp-keygen-opts.h@1.505 +5 -5
NTP_4_2_8P1_RC1
util/ntp-keygen.1ntp-keygenman@1.317 +5 -5
NTP_4_2_8P1_RC1
util/ntp-keygen.1ntp-keygenmdoc@1.317 +4 -4
NTP_4_2_8P1_RC1
util/ntp-keygen.html@1.163 +2 -2
NTP_4_2_8P1_RC1
util/ntp-keygen.man.in@1.317 +5 -5
NTP_4_2_8P1_RC1
util/ntp-keygen.mdoc.in@1.317 +4 -4
NTP_4_2_8P1_RC1
ChangeSet@1.3292.1.14, 2015-01-24 10:44:12+00:00, stenn@psp-fb1.ntp.org
[Bug 2736] Show error message if we cannot open the config file
ChangeLog@1.1613.1.12 +1 -0
[Bug 2736] Show error message if we cannot open the config file
ntpd/ntp_config.c@1.322 +2 -2
[Bug 2736] Show error message if we cannot open the config file
ChangeSet@1.3292.1.12, 2015-01-24 04:02:10+00:00, stenn@psp-deb1.ntp.org
Copyright update
html/copyright.html@1.67 +2 -2
Copyright update
ChangeSet@1.3292.1.11, 2015-01-24 03:09:26+00:00, stenn@psp-fb1.ntp.org
typo fix
sntp/include/ntp.lic@1.8 +1 -3
typo fix
ChangeSet@1.3292.3.5, 2015-01-24 02:27:46+00:00, stenn@psp-fb1.ntp.org
Start the RC for 4.2.8p1
ChangeLog@1.1613.2.5 +1 -0
packageinfo.sh@1.499 +1 -1
ChangeSet@1.3292.3.4, 2015-01-24 01:54:36+00:00, stenn@psp-fb1.ntp.org
[Bug 2187] Update version number generation scripts
ChangeLog@1.1613.2.4 +1 -0
[Bug 2187] Update version number generation scripts
scripts/build/UpdatePoint@1.7 +12 -6
[Bug 2187] Update version number generation scripts
scripts/build/VersionName@1.9 +12 -3
[Bug 2187] Update version number generation scripts
ChangeSet@1.3292.3.3, 2015-01-24 01:52:52+00:00, stenn@psp-fb1.ntp.org
Fix the package name
ChangeLog@1.1613.2.3 +1 -0
Fix the package name
configure.ac@1.579.1.1 +1 -1
Fix the package name
ChangeSet@1.3292.3.2, 2015-01-23 10:29:31+00:00, stenn@psp-fb1.ntp.org
[Sec 2672] Code cleanup: On some OSes ::1 can be spoofed...
ChangeLog@1.1613.2.2 +1 -0
[Sec 2672] Code cleanup: On some OSes ::1 can be spoofed...
ntpd/ntp_io.c@1.399 +10 -12
[Sec 2672] Code cleanup: On some OSes ::1 can be spoofed...
ChangeSet@1.3292.3.1, 2015-01-23 10:16:23+00:00, stenn@psp-fb1.ntp.org
[Bug 2617] Fix sntp Usage documentation section
ChangeLog@1.1613.2.1 +3 -0
[Bug 2617] Fix sntp Usage documentation section
sntp/sntp-opts.def@1.46 +19 -4
[Bug 2617] Fix sntp Usage documentation section
ChangeSet@1.3292.2.1, 2015-01-21 19:16:29+01:00, jnperlin@nemesis.localnet
[bug 2732] leapsecond processing buggy with win8
ports/winnt/ntpd/nt_clockstuff.c@1.62 +19 -14
[bug 2732] leapsecond processing buggy with win8
ChangeSet@1.3281.1.3, 2015-01-14 10:52:55+00:00, stenn@psp-fb1.ntp.org
Copyright update
ChangeLog@1.1604.1.3 +1 -0
Copyright update
html/copyright.html@1.66 +35 -3
Copyright update
ntpd/invoke-ntp.conf.texi@1.170.1.1 +12 -2
update
ntpd/invoke-ntp.keys.texi@1.167.1.1 +12 -2
update
ntpd/invoke-ntpd.texi@1.483.1.1 +14 -4
update
ntpd/ntp.conf.5man@1.204.1.1 +15 -6
update
ntpd/ntp.conf.5mdoc@1.204.1.1 +14 -5
update
ntpd/ntp.conf.man.in@1.204.1.1 +15 -6
update
ntpd/ntp.conf.mdoc.in@1.204.1.1 +14 -5
update
ntpd/ntp.keys.5man@1.201.1.1 +14 -5
update
ntpd/ntp.keys.5mdoc@1.201.1.1 +15 -6
update
ntpd/ntp.keys.man.in@1.201.1.1 +14 -5
update
ntpd/ntp.keys.mdoc.in@1.201.1.1 +15 -6
update
ntpd/ntpd-opts.c@1.504.1.1 +240 -264
update
ntpd/ntpd-opts.h@1.503.1.1 +3 -11
update
ntpd/ntpd.1ntpdman@1.312.1.1 +15 -6
update
ntpd/ntpd.1ntpdmdoc@1.312.1.1 +14 -5
update
ntpd/ntpd.man.in@1.312.1.1 +15 -6
update
ntpd/ntpd.mdoc.in@1.312.1.1 +14 -5
update
ntpdc/invoke-ntpdc.texi@1.481.1.1 +12 -2
update
ntpdc/ntpdc-opts.c@1.499.1.1 +108 -132
update
ntpdc/ntpdc-opts.h@1.498.1.1 +3 -11
update
ntpdc/ntpdc.1ntpdcman@1.312.1.1 +14 -5
update
ntpdc/ntpdc.1ntpdcmdoc@1.312.1.1 +13 -4
update
ntpdc/ntpdc.html@1.325.1.1 +86 -56
update
ntpdc/ntpdc.man.in@1.312.1.1 +14 -5
update
ntpdc/ntpdc.mdoc.in@1.312.1.1 +13 -4
update
ntpq/invoke-ntpq.texi@1.487.1.1 +12 -2
update
ntpq/ntpq-opts.c@1.504.1.1 +107 -131
update
ntpq/ntpq-opts.h@1.502.1.1 +3 -11
update
ntpq/ntpq.1ntpqman@1.315.1.1 +15 -6
update
ntpq/ntpq.1ntpqmdoc@1.315.1.1 +14 -5
update
ntpq/ntpq.man.in@1.315.1.1 +15 -6
update
ntpq/ntpq.mdoc.in@1.315.1.1 +14 -5
update
ntpsnmpd/invoke-ntpsnmpd.texi@1.483.1.1 +12 -2
update
ntpsnmpd/ntpsnmpd-opts.c@1.501.1.1 +69 -93
update
ntpsnmpd/ntpsnmpd-opts.h@1.500.1.1 +3 -11
update
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.312.1.1 +14 -5
update
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.312.1.1 +13 -4
update
ntpsnmpd/ntpsnmpd.man.in@1.312.1.1 +14 -5
update
ntpsnmpd/ntpsnmpd.mdoc.in@1.312.1.1 +13 -4
update
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.74.1.1 +2 -2
update
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.74.1.1 +2 -2
update
scripts/ntp-wait/invoke-ntp-wait.texi@1.304.1.1 +1 -1
update
scripts/ntp-wait/ntp-wait-opts@1.40.1.1 +1 -1
update
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.302.1.1 +2 -2
update
scripts/ntp-wait/ntp-wait.html@1.321.1.1 +47 -29
update
scripts/ntp-wait/ntp-wait.mdoc.in@1.302.1.1 +2 -2
update
scripts/ntpsweep/ntpsweep-opts@1.42.1.1 +1 -1
update
scripts/ntptrace/invoke-ntptrace.texi@1.93.1.1 +1 -1
update
scripts/ntptrace/ntptrace-opts@1.42.1.1 +1 -1
update
scripts/ntptrace/ntptrace.1ntptracemdoc@1.81.1.1 +2 -2
update
scripts/ntptrace/ntptrace.html@1.94.1.1 +34 -25
update
scripts/ntptrace/ntptrace.mdoc.in@1.82.1.1 +2 -2
update
scripts/plot_summary-opts@1.42.1.1 +1 -1
update
scripts/summary-opts@1.42.1.1 +1 -1
update
sntp/include/copyright.def@1.25 +2 -2
Copyright update
sntp/include/ntp.lic@1.7 +3 -1
Copyright update
sntp/invoke-sntp.texi@1.480.1.1 +12 -2
update
sntp/sntp-opts.c@1.498.1.1 +160 -184
update
sntp/sntp-opts.h@1.497.1.1 +3 -11
update
sntp/sntp.1sntpman@1.315.1.1 +14 -5
update
sntp/sntp.1sntpmdoc@1.315.1.1 +13 -4
update
sntp/sntp.html@1.495.1.1 +118 -84
update
sntp/sntp.man.in@1.315.1.1 +14 -5
update
sntp/sntp.mdoc.in@1.315.1.1 +13 -4
update
util/invoke-ntp-keygen.texi@1.484.1.1 +12 -2
update
util/ntp-keygen-opts.c@1.501.1.1 +174 -198
update
util/ntp-keygen-opts.h@1.500.1.1 +3 -11
update
util/ntp-keygen.1ntp-keygenman@1.312.1.1 +15 -6
update
util/ntp-keygen.1ntp-keygenmdoc@1.312.1.1 +14 -5
update
util/ntp-keygen.man.in@1.312.1.1 +15 -6
update
util/ntp-keygen.mdoc.in@1.312.1.1 +14 -5
update
ChangeSet@1.3292.1.8, 2015-01-07 03:05:51-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_BETA5
TAG: NTP_4_2_8P1_BETA5
ChangeLog@1.1613.1.8 +1 -0
NTP_4_2_8P1_BETA5
ntpd/invoke-ntp.conf.texi@1.173 +1 -1
NTP_4_2_8P1_BETA5
ntpd/invoke-ntp.keys.texi@1.170 +1 -1
NTP_4_2_8P1_BETA5
ntpd/invoke-ntpd.texi@1.486 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.conf.5man@1.207 +3 -3
NTP_4_2_8P1_BETA5
ntpd/ntp.conf.5mdoc@1.207 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.conf.html@1.166 +1 -1
NTP_4_2_8P1_BETA5
ntpd/ntp.conf.man.in@1.207 +3 -3
NTP_4_2_8P1_BETA5
ntpd/ntp.conf.mdoc.in@1.207 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.keys.5man@1.204 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.keys.5mdoc@1.204 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.keys.html@1.167 +1 -1
NTP_4_2_8P1_BETA5
ntpd/ntp.keys.man.in@1.204 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntp.keys.mdoc.in@1.204 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntpd-opts.c@1.507 +7 -7
NTP_4_2_8P1_BETA5
ntpd/ntpd-opts.h@1.506 +3 -3
NTP_4_2_8P1_BETA5
ntpd/ntpd.1ntpdman@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpd/ntpd.1ntpdmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntpd.html@1.161 +2 -2
NTP_4_2_8P1_BETA5
ntpd/ntpd.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpd/ntpd.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA5
ntpdc/invoke-ntpdc.texi@1.484 +26 -2
NTP_4_2_8P1_BETA5
ntpdc/ntpdc-opts.c@1.502 +7 -7
NTP_4_2_8P1_BETA5
ntpdc/ntpdc-opts.h@1.501 +3 -3
NTP_4_2_8P1_BETA5
ntpdc/ntpdc.1ntpdcman@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpdc/ntpdc.1ntpdcmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA5
ntpdc/ntpdc.html@1.328 +27 -2
NTP_4_2_8P1_BETA5
ntpdc/ntpdc.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpdc/ntpdc.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA5
ntpq/invoke-ntpq.texi@1.490 +2 -2
NTP_4_2_8P1_BETA5
ntpq/ntpq-opts.c@1.507 +7 -7
NTP_4_2_8P1_BETA5
ntpq/ntpq-opts.h@1.505 +3 -3
NTP_4_2_8P1_BETA5
ntpq/ntpq.1ntpqman@1.318 +3 -3
NTP_4_2_8P1_BETA5
ntpq/ntpq.1ntpqmdoc@1.318 +2 -2
NTP_4_2_8P1_BETA5
ntpq/ntpq.html@1.158 +2 -2
NTP_4_2_8P1_BETA5
ntpq/ntpq.man.in@1.318 +3 -3
NTP_4_2_8P1_BETA5
ntpq/ntpq.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_BETA5
ntpsnmpd/invoke-ntpsnmpd.texi@1.486 +2 -2
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd-opts.c@1.504 +7 -7
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd-opts.h@1.503 +3 -3
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd.html@1.156 +1 -1
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA5
ntpsnmpd/ntpsnmpd.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA5
packageinfo.sh@1.498 +1 -1
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.77 +3 -3
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.77 +2 -2
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/calc_tickadj.html@1.79 +1 -1
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/calc_tickadj.man.in@1.76 +3 -3
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.77 +2 -2
NTP_4_2_8P1_BETA5
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.81 +1 -1
NTP_4_2_8P1_BETA5
scripts/invoke-plot_summary.texi@1.98 +2 -2
NTP_4_2_8P1_BETA5
scripts/invoke-summary.texi@1.98 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntp-wait/invoke-ntp-wait.texi@1.307 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait-opts@1.43 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.305 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.305 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait.html@1.324 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait.man.in@1.305 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntp-wait/ntp-wait.mdoc.in@1.305 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntpsweep/invoke-ntpsweep.texi@1.96 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep-opts@1.45 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.84 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.84 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep.html@1.97 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep.man.in@1.84 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntpsweep/ntpsweep.mdoc.in@1.85 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntptrace/invoke-ntptrace.texi@1.96 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace-opts@1.45 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace.1ntptraceman@1.84 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace.1ntptracemdoc@1.84 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace.html@1.97 +2 -2
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace.man.in@1.84 +3 -3
NTP_4_2_8P1_BETA5
scripts/ntptrace/ntptrace.mdoc.in@1.85 +2 -2
NTP_4_2_8P1_BETA5
scripts/plot_summary-opts@1.45 +2 -2
NTP_4_2_8P1_BETA5
scripts/plot_summary.1plot_summaryman@1.96 +3 -3
NTP_4_2_8P1_BETA5
scripts/plot_summary.1plot_summarymdoc@1.96 +2 -2
NTP_4_2_8P1_BETA5
scripts/plot_summary.html@1.99 +2 -2
NTP_4_2_8P1_BETA5
scripts/plot_summary.man.in@1.96 +3 -3
NTP_4_2_8P1_BETA5
scripts/plot_summary.mdoc.in@1.96 +2 -2
NTP_4_2_8P1_BETA5
scripts/summary-opts@1.45 +2 -2
NTP_4_2_8P1_BETA5
scripts/summary.1summaryman@1.96 +3 -3
NTP_4_2_8P1_BETA5
scripts/summary.1summarymdoc@1.96 +2 -2
NTP_4_2_8P1_BETA5
scripts/summary.html@1.99 +2 -2
NTP_4_2_8P1_BETA5
scripts/summary.man.in@1.96 +3 -3
NTP_4_2_8P1_BETA5
scripts/summary.mdoc.in@1.96 +2 -2
NTP_4_2_8P1_BETA5
sntp/invoke-sntp.texi@1.483 +2 -2
NTP_4_2_8P1_BETA5
sntp/sntp-opts.c@1.502 +7 -7
NTP_4_2_8P1_BETA5
sntp/sntp-opts.h@1.500 +3 -3
NTP_4_2_8P1_BETA5
sntp/sntp.1sntpman@1.318 +3 -3
NTP_4_2_8P1_BETA5
sntp/sntp.1sntpmdoc@1.318 +2 -2
NTP_4_2_8P1_BETA5
sntp/sntp.html@1.498 +2 -2
NTP_4_2_8P1_BETA5
sntp/sntp.man.in@1.318 +3 -3
NTP_4_2_8P1_BETA5
sntp/sntp.mdoc.in@1.318 +2 -2
NTP_4_2_8P1_BETA5
util/invoke-ntp-keygen.texi@1.487 +2 -2
NTP_4_2_8P1_BETA5
util/ntp-keygen-opts.c@1.505 +7 -7
NTP_4_2_8P1_BETA5
util/ntp-keygen-opts.h@1.503 +3 -3
NTP_4_2_8P1_BETA5
util/ntp-keygen.1ntp-keygenman@1.315 +3 -3
NTP_4_2_8P1_BETA5
util/ntp-keygen.1ntp-keygenmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA5
util/ntp-keygen.html@1.162 +2 -2
NTP_4_2_8P1_BETA5
util/ntp-keygen.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA5
util/ntp-keygen.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA5
ChangeSet@1.3292.1.7, 2015-01-07 07:35:11+00:00, burnicki@psp-deb1.ntp.org
cleanup
ChangeLog@1.1613.1.7 +2 -0
cleanup
ChangeSet@1.3292.1.6, 2015-01-06 15:14:03+01:00, burnicki@pc-martin4.
[Bug 2728] Work around C99-style structure initialization code for older compilers, specifically Visual Studio prior to VS2013.
ChangeLog@1.1613.1.6 +2 -0
[Bug 2728] Work around C99-style structure initialization code for older compilers, specifically Visual Studio prior to VS2013.
ntpq/ntpq-subs.c@1.103 +5 -2
[Bug 2728] Fix for build environments where C99 style structure initialization is not supported.
ports/winnt/include/config.h@1.110 +1 -0
[Bug 2728] Define MISSING_C99_STYLE_INIT for VS versions prior to VS2013 to indicate C99-style structure initialization is not supported.
sntp/libopts/autoopts.h@1.20 +1 -1
[Bug 2728] Zero out whole structure, avoiding C99-style code zeroing out only specific fields.
sntp/libopts/enum.c@1.12 +1 -1
[Bug 2728] Zero out whole structure, avoiding C99-style code zeroing out only specific fields.
ChangeSet@1.3292.1.5, 2015-01-06 14:29:51+01:00, burnicki@pc-martin4.
[Bug 2695] Windows build: __func__ not supported under Windows.
ChangeLog@1.1613.1.5 +1 -0
[Bug 2695] Windows build: __func__ not supported under Windows.
ports/winnt/include/config.h@1.109 +5 -1
[Bug 2695] Windows build: __func__ not supported under Windows.
ChangeSet@1.3295, 2015-01-06 10:52:26+00:00, stenn@psp-deb1.ntp.org
Fix the package name
configure.ac@1.580 +1 -1
Fix the package name
ChangeSet@1.3294, 2015-01-06 10:01:10+00:00, stenn@psp-deb1.ntp.org
[Sec 2671] vallen in extension fields are not validated
ntpd/ntp_crypto.c@1.173 +65 -35
[Sec 2671] vallen in extension fields are not validated
ChangeSet@1.3292.1.4, 2015-01-04 06:17:14-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_BETA4
TAG: NTP_4_2_8P1_BETA4
ChangeLog@1.1613.1.4 +1 -0
NTP_4_2_8P1_BETA4
ntpd/invoke-ntp.conf.texi@1.172 +1 -1
NTP_4_2_8P1_BETA4
ntpd/invoke-ntp.keys.texi@1.169 +1 -1
NTP_4_2_8P1_BETA4
ntpd/invoke-ntpd.texi@1.485 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.conf.5man@1.206 +3 -3
NTP_4_2_8P1_BETA4
ntpd/ntp.conf.5mdoc@1.206 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.conf.html@1.165 +14 -1
NTP_4_2_8P1_BETA4
ntpd/ntp.conf.man.in@1.206 +3 -3
NTP_4_2_8P1_BETA4
ntpd/ntp.conf.mdoc.in@1.206 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.keys.5man@1.203 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.keys.5mdoc@1.203 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.keys.html@1.166 +1 -1
NTP_4_2_8P1_BETA4
ntpd/ntp.keys.man.in@1.203 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntp.keys.mdoc.in@1.203 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntpd-opts.c@1.506 +7 -7
NTP_4_2_8P1_BETA4
ntpd/ntpd-opts.h@1.505 +3 -3
NTP_4_2_8P1_BETA4
ntpd/ntpd.1ntpdman@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpd/ntpd.1ntpdmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntpd.html@1.160 +2 -2
NTP_4_2_8P1_BETA4
ntpd/ntpd.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpd/ntpd.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA4
ntpdc/invoke-ntpdc.texi@1.483 +2 -26
NTP_4_2_8P1_BETA4
ntpdc/ntpdc-opts.c@1.501 +7 -7
NTP_4_2_8P1_BETA4
ntpdc/ntpdc-opts.h@1.500 +3 -3
NTP_4_2_8P1_BETA4
ntpdc/ntpdc.1ntpdcman@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpdc/ntpdc.1ntpdcmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA4
ntpdc/ntpdc.html@1.327 +2 -27
NTP_4_2_8P1_BETA4
ntpdc/ntpdc.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpdc/ntpdc.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA4
ntpq/invoke-ntpq.texi@1.489 +2 -2
NTP_4_2_8P1_BETA4
ntpq/ntpq-opts.c@1.506 +7 -7
NTP_4_2_8P1_BETA4
ntpq/ntpq-opts.h@1.504 +3 -3
NTP_4_2_8P1_BETA4
ntpq/ntpq.1ntpqman@1.317 +3 -3
NTP_4_2_8P1_BETA4
ntpq/ntpq.1ntpqmdoc@1.317 +2 -2
NTP_4_2_8P1_BETA4
ntpq/ntpq.html@1.157 +2 -2
NTP_4_2_8P1_BETA4
ntpq/ntpq.man.in@1.317 +3 -3
NTP_4_2_8P1_BETA4
ntpq/ntpq.mdoc.in@1.317 +2 -2
NTP_4_2_8P1_BETA4
ntpsnmpd/invoke-ntpsnmpd.texi@1.485 +2 -2
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd-opts.c@1.503 +7 -7
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd-opts.h@1.502 +3 -3
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd.html@1.155 +1 -1
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA4
ntpsnmpd/ntpsnmpd.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA4
packageinfo.sh@1.497 +1 -1
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.76 +3 -3
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.76 +2 -2
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/calc_tickadj.html@1.78 +1 -1
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/calc_tickadj.man.in@1.75 +3 -3
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.76 +2 -2
NTP_4_2_8P1_BETA4
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.80 +1 -1
NTP_4_2_8P1_BETA4
scripts/invoke-plot_summary.texi@1.97 +2 -2
NTP_4_2_8P1_BETA4
scripts/invoke-summary.texi@1.97 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntp-wait/invoke-ntp-wait.texi@1.306 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait-opts@1.42 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.304 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.304 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait.html@1.323 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait.man.in@1.304 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntp-wait/ntp-wait.mdoc.in@1.304 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntpsweep/invoke-ntpsweep.texi@1.95 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep-opts@1.44 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.83 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.83 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep.html@1.96 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep.man.in@1.83 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntpsweep/ntpsweep.mdoc.in@1.84 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntptrace/invoke-ntptrace.texi@1.95 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace-opts@1.44 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace.1ntptraceman@1.83 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace.1ntptracemdoc@1.83 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace.html@1.96 +2 -2
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace.man.in@1.83 +3 -3
NTP_4_2_8P1_BETA4
scripts/ntptrace/ntptrace.mdoc.in@1.84 +2 -2
NTP_4_2_8P1_BETA4
scripts/plot_summary-opts@1.44 +2 -2
NTP_4_2_8P1_BETA4
scripts/plot_summary.1plot_summaryman@1.95 +3 -3
NTP_4_2_8P1_BETA4
scripts/plot_summary.1plot_summarymdoc@1.95 +2 -2
NTP_4_2_8P1_BETA4
scripts/plot_summary.html@1.98 +2 -2
NTP_4_2_8P1_BETA4
scripts/plot_summary.man.in@1.95 +3 -3
NTP_4_2_8P1_BETA4
scripts/plot_summary.mdoc.in@1.95 +2 -2
NTP_4_2_8P1_BETA4
scripts/summary-opts@1.44 +2 -2
NTP_4_2_8P1_BETA4
scripts/summary.1summaryman@1.95 +3 -3
NTP_4_2_8P1_BETA4
scripts/summary.1summarymdoc@1.95 +2 -2
NTP_4_2_8P1_BETA4
scripts/summary.html@1.98 +2 -2
NTP_4_2_8P1_BETA4
scripts/summary.man.in@1.95 +3 -3
NTP_4_2_8P1_BETA4
scripts/summary.mdoc.in@1.95 +2 -2
NTP_4_2_8P1_BETA4
sntp/invoke-sntp.texi@1.482 +2 -2
NTP_4_2_8P1_BETA4
sntp/sntp-opts.c@1.501 +7 -7
NTP_4_2_8P1_BETA4
sntp/sntp-opts.h@1.499 +3 -3
NTP_4_2_8P1_BETA4
sntp/sntp.1sntpman@1.317 +3 -3
NTP_4_2_8P1_BETA4
sntp/sntp.1sntpmdoc@1.317 +2 -2
NTP_4_2_8P1_BETA4
sntp/sntp.html@1.497 +2 -2
NTP_4_2_8P1_BETA4
sntp/sntp.man.in@1.317 +3 -3
NTP_4_2_8P1_BETA4
sntp/sntp.mdoc.in@1.317 +2 -2
NTP_4_2_8P1_BETA4
util/invoke-ntp-keygen.texi@1.486 +2 -2
NTP_4_2_8P1_BETA4
util/ntp-keygen-opts.c@1.504 +7 -7
NTP_4_2_8P1_BETA4
util/ntp-keygen-opts.h@1.502 +3 -3
NTP_4_2_8P1_BETA4
util/ntp-keygen.1ntp-keygenman@1.314 +3 -3
NTP_4_2_8P1_BETA4
util/ntp-keygen.1ntp-keygenmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA4
util/ntp-keygen.html@1.161 +2 -2
NTP_4_2_8P1_BETA4
util/ntp-keygen.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA4
util/ntp-keygen.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA4
ChangeSet@1.3292.1.3, 2015-01-04 04:48:35-05:00, stenn@deacon.udel.edu
Fix a regression introduced to timepps-Solaris.h
ChangeLog@1.1613.1.3 +4 -0
Fix a regression introduced to timepps-Solaris.h
include/timepps-Solaris.h@1.8 +1 -1
Fix a regression introduced to timepps-Solaris.h
ChangeSet@1.3292.1.2, 2015-01-04 09:08:36+00:00, stenn@psp-fb1.ntp.org
[Bug 2695] Build problem on Windows (sys/socket.h)
ChangeLog@1.1613.1.2 +4 -3
[Bug 2695] Build problem on Windows (sys/socket.h)
ntpd/refclock_nmea.c@1.77 +2 -0
[Bug 2695] Build problem on Windows (sys/socket.h)
ChangeSet@1.3292.1.1, 2015-01-04 00:20:52+00:00, stenn@psp-fb1.ntp.org
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ChangeLog@1.1613.1.1 +3 -0
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/keyword-gen-utd@1.21 +1 -1
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp_keyword.h@1.23 +596 -587
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp_parser.c@1.89 +1006 -1001
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp_parser.h@1.55 +202 -200
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ChangeSet@1.3293, 2015-01-03 10:33:57+00:00, stenn@psp-deb1.ntp.org
[Sec 2671] vallen in extension fields are not validated
ChangeLog@1.1614 +3 -0
[Sec 2671] vallen in extension fields are not validated
ntpd/ntp_crypto.c@1.172 +19 -12
[Sec 2671] vallen in extension fields are not validated
ChangeSet@1.3292, 2015-01-02 23:07:47-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_BETA3
TAG: NTP_4_2_8P1_BETA3
ChangeLog@1.1613 +1 -0
NTP_4_2_8P1_BETA3
ntpd/invoke-ntp.conf.texi@1.171 +15 -1
NTP_4_2_8P1_BETA3
ntpd/invoke-ntp.keys.texi@1.168 +1 -1
NTP_4_2_8P1_BETA3
ntpd/invoke-ntpd.texi@1.484 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.conf.5man@1.205 +18 -3
NTP_4_2_8P1_BETA3
ntpd/ntp.conf.5mdoc@1.205 +16 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.conf.html@1.164 +1 -1
NTP_4_2_8P1_BETA3
ntpd/ntp.conf.man.in@1.205 +18 -3
NTP_4_2_8P1_BETA3
ntpd/ntp.conf.mdoc.in@1.205 +16 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.keys.5man@1.202 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.keys.5mdoc@1.202 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.keys.html@1.165 +1 -1
NTP_4_2_8P1_BETA3
ntpd/ntp.keys.man.in@1.202 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntp.keys.mdoc.in@1.202 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntpd-opts.c@1.505 +7 -7
NTP_4_2_8P1_BETA3
ntpd/ntpd-opts.h@1.504 +3 -3
NTP_4_2_8P1_BETA3
ntpd/ntpd.1ntpdman@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpd/ntpd.1ntpdmdoc@1.313 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntpd.html@1.159 +2 -2
NTP_4_2_8P1_BETA3
ntpd/ntpd.man.in@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpd/ntpd.mdoc.in@1.313 +2 -2
NTP_4_2_8P1_BETA3
ntpdc/invoke-ntpdc.texi@1.482 +2 -2
NTP_4_2_8P1_BETA3
ntpdc/ntpdc-opts.c@1.500 +7 -7
NTP_4_2_8P1_BETA3
ntpdc/ntpdc-opts.h@1.499 +3 -3
NTP_4_2_8P1_BETA3
ntpdc/ntpdc.1ntpdcman@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpdc/ntpdc.1ntpdcmdoc@1.313 +2 -2
NTP_4_2_8P1_BETA3
ntpdc/ntpdc.html@1.326 +2 -2
NTP_4_2_8P1_BETA3
ntpdc/ntpdc.man.in@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpdc/ntpdc.mdoc.in@1.313 +2 -2
NTP_4_2_8P1_BETA3
ntpq/invoke-ntpq.texi@1.488 +2 -2
NTP_4_2_8P1_BETA3
ntpq/ntpq-opts.c@1.505 +7 -7
NTP_4_2_8P1_BETA3
ntpq/ntpq-opts.h@1.503 +3 -3
NTP_4_2_8P1_BETA3
ntpq/ntpq.1ntpqman@1.316 +3 -3
NTP_4_2_8P1_BETA3
ntpq/ntpq.1ntpqmdoc@1.316 +2 -2
NTP_4_2_8P1_BETA3
ntpq/ntpq.html@1.156 +2 -2
NTP_4_2_8P1_BETA3
ntpq/ntpq.man.in@1.316 +3 -3
NTP_4_2_8P1_BETA3
ntpq/ntpq.mdoc.in@1.316 +2 -2
NTP_4_2_8P1_BETA3
ntpsnmpd/invoke-ntpsnmpd.texi@1.484 +2 -2
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd-opts.c@1.502 +7 -7
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd-opts.h@1.501 +3 -3
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.313 +2 -2
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd.html@1.154 +1 -1
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd.man.in@1.313 +3 -3
NTP_4_2_8P1_BETA3
ntpsnmpd/ntpsnmpd.mdoc.in@1.313 +2 -2
NTP_4_2_8P1_BETA3
packageinfo.sh@1.496 +1 -1
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.75 +3 -3
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.75 +2 -2
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/calc_tickadj.html@1.77 +1 -1
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/calc_tickadj.man.in@1.74 +3 -3
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.75 +2 -2
NTP_4_2_8P1_BETA3
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.79 +1 -1
NTP_4_2_8P1_BETA3
scripts/invoke-plot_summary.texi@1.96 +2 -2
NTP_4_2_8P1_BETA3
scripts/invoke-summary.texi@1.96 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntp-wait/invoke-ntp-wait.texi@1.305 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait-opts@1.41 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.303 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.303 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait.html@1.322 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait.man.in@1.303 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntp-wait/ntp-wait.mdoc.in@1.303 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntpsweep/invoke-ntpsweep.texi@1.94 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep-opts@1.43 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.82 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.82 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep.html@1.95 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep.man.in@1.82 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntpsweep/ntpsweep.mdoc.in@1.83 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntptrace/invoke-ntptrace.texi@1.94 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace-opts@1.43 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace.1ntptraceman@1.82 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace.1ntptracemdoc@1.82 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace.html@1.95 +2 -2
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace.man.in@1.82 +3 -3
NTP_4_2_8P1_BETA3
scripts/ntptrace/ntptrace.mdoc.in@1.83 +2 -2
NTP_4_2_8P1_BETA3
scripts/plot_summary-opts@1.43 +2 -2
NTP_4_2_8P1_BETA3
scripts/plot_summary.1plot_summaryman@1.94 +3 -3
NTP_4_2_8P1_BETA3
scripts/plot_summary.1plot_summarymdoc@1.94 +2 -2
NTP_4_2_8P1_BETA3
scripts/plot_summary.html@1.97 +2 -2
NTP_4_2_8P1_BETA3
scripts/plot_summary.man.in@1.94 +3 -3
NTP_4_2_8P1_BETA3
scripts/plot_summary.mdoc.in@1.94 +2 -2
NTP_4_2_8P1_BETA3
scripts/summary-opts@1.43 +2 -2
NTP_4_2_8P1_BETA3
scripts/summary.1summaryman@1.94 +3 -3
NTP_4_2_8P1_BETA3
scripts/summary.1summarymdoc@1.94 +2 -2
NTP_4_2_8P1_BETA3
scripts/summary.html@1.97 +2 -2
NTP_4_2_8P1_BETA3
scripts/summary.man.in@1.94 +3 -3
NTP_4_2_8P1_BETA3
scripts/summary.mdoc.in@1.94 +2 -2
NTP_4_2_8P1_BETA3
sntp/invoke-sntp.texi@1.481 +2 -2
NTP_4_2_8P1_BETA3
sntp/sntp-opts.c@1.500 +9 -9
NTP_4_2_8P1_BETA3
sntp/sntp-opts.h@1.498 +3 -3
NTP_4_2_8P1_BETA3
sntp/sntp.1sntpman@1.316 +3 -3
NTP_4_2_8P1_BETA3
sntp/sntp.1sntpmdoc@1.316 +2 -2
NTP_4_2_8P1_BETA3
sntp/sntp.html@1.496 +2 -2
NTP_4_2_8P1_BETA3
sntp/sntp.man.in@1.316 +3 -3
NTP_4_2_8P1_BETA3
sntp/sntp.mdoc.in@1.316 +2 -2
NTP_4_2_8P1_BETA3
util/invoke-ntp-keygen.texi@1.485 +2 -2
NTP_4_2_8P1_BETA3
util/ntp-keygen-opts.c@1.503 +9 -9
NTP_4_2_8P1_BETA3
util/ntp-keygen-opts.h@1.501 +3 -3
NTP_4_2_8P1_BETA3
util/ntp-keygen.1ntp-keygenman@1.313 +3 -3
NTP_4_2_8P1_BETA3
util/ntp-keygen.1ntp-keygenmdoc@1.313 +2 -2
NTP_4_2_8P1_BETA3
util/ntp-keygen.html@1.160 +2 -2
NTP_4_2_8P1_BETA3
util/ntp-keygen.man.in@1.313 +3 -3
NTP_4_2_8P1_BETA3
util/ntp-keygen.mdoc.in@1.313 +2 -2
NTP_4_2_8P1_BETA3
ChangeSet@1.3281.3.3, 2015-01-02 17:37:39+01:00, jnperlin@hydra.(none)
[Bug 2627] changelog file syntax
ChangeLog@1.1604.3.2 +1 -0
[Bug 2627] changelog file syntax
ChangeSet@1.3281.3.2, 2015-01-02 17:23:21+01:00, jnperlin@nemesis.localnet
[Bug 2627] sidekick: avoid runtime conversion trap on MSVC builds
ntpd/ntp_leapsec.c@1.13.1.1 +2 -1
[Bug 2627] sidekick: avoid runtime conversion trap on MSVC builds
ChangeSet@1.3273.1.1, 2015-01-02 13:45:05+01:00, jnperlin@hydra.(none)
[Bug 2627] shm refclock allows only two units with owner-only access
ChangeLog@1.1597.1.1 +3 -0
[Bug 2627] shm refclock allows only two units with owner-only access
html/drivers/driver28.html@1.17 +122 -17
[Bug 2627] shm refclock allows only two units with owner-only access
update docu
ntpd/refclock_shm.c@1.30 +111 -114
[Bug 2627] shm refclock allows only two units with owner-only access
use mode bit 0 to select public access for units >= 2 (default is private for all now)
ChangeSet@1.3288, 2015-01-02 07:59:13+00:00, stenn@psp-fb1.ntp.org
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/Makefile.am@1.132 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_loopfilter.c@1.176 +44 -8
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/m4/hms_search_lib.m4@1.2 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/m4/ntp_libntp.m4@1.28 +6 -0
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ChangeSet@1.3281.1.2, 2015-01-01 07:31:57+00:00, stenn@psp-deb1.ntp.org
[Bug 2681] Fix display of certificate EOValidity dates on 32-bit systems
ChangeLog@1.1604.1.2 +1 -0
[Bug 2681] Fix display of certificate EOValidity dates on 32-bit systems
ntpd/ntp_control.c@1.192.2.1 +28 -4
[Bug 2681] Fix display of certificate EOValidity dates on 32-bit systems
ChangeSet@1.3281.2.2, 2014-12-30 05:48:04-05:00, murray@pogo.udel.edu
ChangeLog:
add --- to top of ChangeLog
ChangeLog@1.1604.2.2 +1 -1
add --- to top of ChangeLog
ChangeSet@1.3281.2.1, 2014-12-30 04:55:11-05:00, murray@pogo.udel.edu
ChangeLog, ntp_control.c:
Fix for bug 2700
ChangeLog@1.1604.2.1 +2 -0
Fix for bug 2700
ntpd/ntp_control.c@1.192.1.1 +4 -1
Fix for bug 2700
ChangeSet@1.3287, 2014-12-30 01:28:39+00:00, stenn@psp-fb1.ntp.org
[Bug 2715] mdnstries option for ntp.conf from NetBSD
html/confopt.html@1.63 +3 -1
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp.conf.def@1.14 +14 -0
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ChangeSet@1.3286, 2014-12-30 00:29:47+00:00, stenn@psp-fb1.ntp.org
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_wwvb.c@1.35 +1 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ChangeSet@1.3285, 2014-12-30 00:28:06+00:00, stenn@psp-fb1.ntp.org
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ChangeLog@1.1609 +1 -0
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/keyword-gen.c@1.26 +2 -1
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp_config.c@1.321 +29 -13
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ntpd/ntp_parser.y@1.82 +3 -0
[Bug 2715] mdnstries option for ntp.conf from NetBSD
ChangeSet@1.3278.1.1, 2014-12-29 08:47:40+00:00, stenn@psp-fb1.ntp.org
[Bug 2695] 4.2.8 does not build on Windows
ChangeLog@1.1601.1.1 +1 -0
[Bug 2695] 4.2.8 does not build on Windows
ports/winnt/include/config.h@1.108 +1 -0
[Bug 2695] 4.2.8 does not build on Windows
ports/winnt/vs2008/libntp/libntp.vcproj@1.51 +6 -2
[Bug 2695] 4.2.8 does not build on Windows
ports/winnt/vs2013/libntp/libntp.vcxproj@1.5 +1 -0
[Bug 2695] 4.2.8 does not build on Windows
ChangeSet@1.3284, 2014-12-29 06:57:50+00:00, stenn@psp-fb1.ntp.org
[Bug 2714] libevent may need to be built independently of any build of sntp
ChangeLog@1.1608 +1 -0
[Bug 2714] libevent may need to be built independently of any build of sntp
sntp/Makefile.am@1.78 +7 -7
[Bug 2714] libevent may need to be built independently of any build of sntp
ChangeSet@1.3283, 2014-12-29 06:42:07+00:00, stenn@psp-fb1.ntp.org
[Bug 2706] libparse/info_trimble.c build dependencies are broken
ChangeLog@1.1607 +1 -0
[Bug 2706] libparse/info_trimble.c build dependencies are broken
libparse/Makefile.am@1.31 +30 -2
[Bug 2706] libparse/info_trimble.c build dependencies are broken
libparse/info_trimble.c@1.6 +2 -2
[Bug 2706] libparse/info_trimble.c build dependencies are broken
libparse/mkinfo_rcmd.sed@1.4 +1 -1
[Bug 2706] libparse/info_trimble.c build dependencies are broken
libparse/mkinfo_scmd.sed@1.4 +1 -1
[Bug 2706] libparse/info_trimble.c build dependencies are broken
ChangeSet@1.3282, 2014-12-29 06:39:40+00:00, stenn@psp-fb1.ntp.org
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ChangeLog@1.1606 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ChangeLog@1.1605 +3 -0
[Bug 2713] variable type/cast cleanup from NetBSD
include/audio.h@1.8 +1 -1
[Bug 2713] variable type/cast cleanup from NetBSD
include/icom.h@1.6 +1 -1
[Bug 2713] variable type/cast cleanup from NetBSD
include/ntp_config.h@1.82 +3 -2
[Bug 2713] variable type/cast cleanup from NetBSD
include/ntp_filegen.h@1.11 +1 -1
[Bug 2713] variable type/cast cleanup from NetBSD
include/ntp_stdlib.h@1.77 +5 -5
[Bug 2713] variable type/cast cleanup from NetBSD
include/ntpd.h@1.184 +3 -3
[Bug 2713] variable type/cast cleanup from NetBSD
lib/isc/backtrace.c@1.2 +4 -4
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
lib/isc/event.c@1.2 +1 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
lib/isc/include/isc/backtrace.h@1.2 +2 -2
[Bug 2713] variable type/cast, parameter name cleanup from NetBSD
lib/isc/include/isc/socket.h@1.3 +7 -7
[Bug 2713] variable type/cast, parameter name cleanup from NetBSD
lib/isc/log.c@1.7 +2 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
lib/isc/netaddr.c@1.13 +2 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
lib/isc/sockaddr.c@1.12 +8 -4
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
lib/isc/unix/ifiter_getifaddrs.c@1.13 +7 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libjsmn/jsmn.c@1.3 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/atoint.c@1.4 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/atolfp.c@1.5 +5 -5
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/atouint.c@1.5 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/audio.c@1.35 +12 -12
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/authkeys.c@1.25 +1 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/authreadkeys.c@1.20 +4 -4
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/emalloc.c@1.17 +2 -0
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/hextoint.c@1.5 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/hextolfp.c@1.4 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/humandate.c@1.12 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/icom.c@1.18 +1 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/modetoa.c@1.6 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/mstolfp.c@1.4 +5 -5
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/ntp_calendar.c@1.14 +5 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/ntp_crypto_rnd.c@1.3 +4 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/ntp_intres.c@1.98 +2 -17
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/ntp_lineedit.c@1.12 +6 -7
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/octtoint.c@1.4 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/prettydate.c@1.19 +7 -7
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/ssl_init.c@1.17 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libntp/timetoa.c@1.5 +3 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libparse/clk_meinberg.c@1.11 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libparse/clk_rawdcf.c@1.17 +10 -10
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
libparse/data_mbg.c@1.12 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_control.c@1.193 +60 -62
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_crypto.c@1.171 +8 -10
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_filegen.c@1.25 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_io.c@1.398 +63 -30
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_leapsec.c@1.14 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_proto.c@1.353 +13 -14
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_request.c@1.113 +8 -9
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_restrict.c@1.36 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_scanner.c@1.46 +14 -14
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntp_util.c@1.116 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/ntpd.c@1.158 +6 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_acts.c@1.54 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_arc.c@1.32 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_chu.c@1.56 +0 -4
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_gpsdjson.c@1.16 +6 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_heath.c@1.19 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_irig.c@1.37 +1 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_jjy.c@1.26 +22 -23
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_jupiter.c@1.29 +54 -55
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_neoclock4x.c@1.23 +7 -7
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_nmea.c@1.76 +7 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_oncore.c@1.102 +80 -80
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_parse.c@1.69 +228 -214
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_pcf.c@1.13 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_true.c@1.23 +1 -0
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_wwv.c@1.79 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpd/refclock_wwvb.c@1.34 +2 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpdate/ntpdate.c@1.93 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpdc/ntpdc.c@1.102 +42 -30
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpdc/ntpdc.h@1.11 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpdc/ntpdc_ops.c@1.80 +6 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpq/ntpq-subs.c@1.102 +103 -107
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpq/ntpq.c@1.154 +43 -32
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpq/ntpq.h@1.29 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpsnmpd/netsnmp_daemonize.c@1.5 +1 -0
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ntpsnmpd/ntp_snmp.h@1.2 +3 -0
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/crypto.c@1.18 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/autoopts.h@1.19 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/autoopts/options.h@1.29 +9 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/configfile.c@1.22 +6 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/enum.c@1.11 +5 -5
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/file.c@1.15 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/find.c@1.11 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/init.c@1.7 +5 -8
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/load.c@1.20 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/makeshell.c@1.19 +8 -8
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/nested.c@1.15 +7 -7
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/numeric.c@1.14 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/parse-duration.c@1.13 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/pgusage.c@1.17 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/reset.c@1.16 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/save.c@1.17 +10 -10
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/tokenize.c@1.12 +1 -1
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/libopts/usage.c@1.20 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/main.c@1.94 +7 -6
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/networking.c@1.65 +16 -7
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
sntp/sntp-opts.c@1.499 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
util/jitter.h@1.4 +3 -3
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
util/ntp-keygen-opts.c@1.502 +2 -2
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
util/ntp-keygen.c@1.100 +26 -25
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
util/ntptime.c@1.25 +5 -4
[Bug 2713] variable type/cast, parameter name, general cleanup from NetBSD
ChangeSet@1.3281, 2014-12-27 06:33:35-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_BETA2
TAG: NTP_4_2_8P1_BETA2
ChangeLog@1.1604 +1 -0
NTP_4_2_8P1_BETA2
ntpd/invoke-ntp.conf.texi@1.170 +1 -1
NTP_4_2_8P1_BETA2
ntpd/invoke-ntp.keys.texi@1.167 +1 -1
NTP_4_2_8P1_BETA2
ntpd/invoke-ntpd.texi@1.483 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.conf.5man@1.204 +3 -3
NTP_4_2_8P1_BETA2
ntpd/ntp.conf.5mdoc@1.204 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.conf.html@1.163 +1 -1
NTP_4_2_8P1_BETA2
ntpd/ntp.conf.man.in@1.204 +3 -3
NTP_4_2_8P1_BETA2
ntpd/ntp.conf.mdoc.in@1.204 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.keys.5man@1.201 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.keys.5mdoc@1.201 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.keys.html@1.164 +1 -1
NTP_4_2_8P1_BETA2
ntpd/ntp.keys.man.in@1.201 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntp.keys.mdoc.in@1.201 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntpd-opts.c@1.504 +7 -7
NTP_4_2_8P1_BETA2
ntpd/ntpd-opts.h@1.503 +3 -3
NTP_4_2_8P1_BETA2
ntpd/ntpd.1ntpdman@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpd/ntpd.1ntpdmdoc@1.312 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntpd.html@1.158 +2 -2
NTP_4_2_8P1_BETA2
ntpd/ntpd.man.in@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpd/ntpd.mdoc.in@1.312 +2 -2
NTP_4_2_8P1_BETA2
ntpdc/invoke-ntpdc.texi@1.481 +2 -2
NTP_4_2_8P1_BETA2
ntpdc/ntpdc-opts.c@1.499 +7 -7
NTP_4_2_8P1_BETA2
ntpdc/ntpdc-opts.h@1.498 +3 -3
NTP_4_2_8P1_BETA2
ntpdc/ntpdc.1ntpdcman@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpdc/ntpdc.1ntpdcmdoc@1.312 +2 -2
NTP_4_2_8P1_BETA2
ntpdc/ntpdc.html@1.325 +2 -2
NTP_4_2_8P1_BETA2
ntpdc/ntpdc.man.in@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpdc/ntpdc.mdoc.in@1.312 +2 -2
NTP_4_2_8P1_BETA2
ntpq/invoke-ntpq.texi@1.487 +2 -2
NTP_4_2_8P1_BETA2
ntpq/ntpq-opts.c@1.504 +7 -7
NTP_4_2_8P1_BETA2
ntpq/ntpq-opts.h@1.502 +3 -3
NTP_4_2_8P1_BETA2
ntpq/ntpq.1ntpqman@1.315 +3 -3
NTP_4_2_8P1_BETA2
ntpq/ntpq.1ntpqmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA2
ntpq/ntpq.html@1.155 +2 -2
NTP_4_2_8P1_BETA2
ntpq/ntpq.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA2
ntpq/ntpq.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA2
ntpsnmpd/invoke-ntpsnmpd.texi@1.483 +2 -2
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd-opts.c@1.501 +7 -7
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd-opts.h@1.500 +3 -3
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.312 +2 -2
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd.html@1.153 +1 -1
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd.man.in@1.312 +3 -3
NTP_4_2_8P1_BETA2
ntpsnmpd/ntpsnmpd.mdoc.in@1.312 +2 -2
NTP_4_2_8P1_BETA2
packageinfo.sh@1.495 +1 -1
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.74 +3 -3
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.74 +2 -2
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/calc_tickadj.html@1.76 +1 -1
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/calc_tickadj.man.in@1.73 +3 -3
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.74 +2 -2
NTP_4_2_8P1_BETA2
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.78 +1 -1
NTP_4_2_8P1_BETA2
scripts/invoke-plot_summary.texi@1.95 +2 -2
NTP_4_2_8P1_BETA2
scripts/invoke-summary.texi@1.95 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntp-wait/invoke-ntp-wait.texi@1.304 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait-opts@1.40 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.302 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.302 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait.html@1.321 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait.man.in@1.302 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntp-wait/ntp-wait.mdoc.in@1.302 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntpsweep/invoke-ntpsweep.texi@1.93 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep-opts@1.42 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.81 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.81 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep.html@1.94 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep.man.in@1.81 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntpsweep/ntpsweep.mdoc.in@1.82 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntptrace/invoke-ntptrace.texi@1.93 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace-opts@1.42 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace.1ntptraceman@1.81 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace.1ntptracemdoc@1.81 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace.html@1.94 +2 -2
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace.man.in@1.81 +3 -3
NTP_4_2_8P1_BETA2
scripts/ntptrace/ntptrace.mdoc.in@1.82 +2 -2
NTP_4_2_8P1_BETA2
scripts/plot_summary-opts@1.42 +2 -2
NTP_4_2_8P1_BETA2
scripts/plot_summary.1plot_summaryman@1.93 +3 -3
NTP_4_2_8P1_BETA2
scripts/plot_summary.1plot_summarymdoc@1.93 +2 -2
NTP_4_2_8P1_BETA2
scripts/plot_summary.html@1.96 +2 -2
NTP_4_2_8P1_BETA2
scripts/plot_summary.man.in@1.93 +3 -3
NTP_4_2_8P1_BETA2
scripts/plot_summary.mdoc.in@1.93 +2 -2
NTP_4_2_8P1_BETA2
scripts/summary-opts@1.42 +2 -2
NTP_4_2_8P1_BETA2
scripts/summary.1summaryman@1.93 +3 -3
NTP_4_2_8P1_BETA2
scripts/summary.1summarymdoc@1.93 +2 -2
NTP_4_2_8P1_BETA2
scripts/summary.html@1.96 +2 -2
NTP_4_2_8P1_BETA2
scripts/summary.man.in@1.93 +3 -3
NTP_4_2_8P1_BETA2
scripts/summary.mdoc.in@1.93 +2 -2
NTP_4_2_8P1_BETA2
sntp/invoke-sntp.texi@1.480 +2 -2
NTP_4_2_8P1_BETA2
sntp/sntp-opts.c@1.498 +7 -7
NTP_4_2_8P1_BETA2
sntp/sntp-opts.h@1.497 +3 -3
NTP_4_2_8P1_BETA2
sntp/sntp.1sntpman@1.315 +3 -3
NTP_4_2_8P1_BETA2
sntp/sntp.1sntpmdoc@1.315 +2 -2
NTP_4_2_8P1_BETA2
sntp/sntp.html@1.495 +2 -2
NTP_4_2_8P1_BETA2
sntp/sntp.man.in@1.315 +3 -3
NTP_4_2_8P1_BETA2
sntp/sntp.mdoc.in@1.315 +2 -2
NTP_4_2_8P1_BETA2
util/invoke-ntp-keygen.texi@1.484 +2 -2
NTP_4_2_8P1_BETA2
util/ntp-keygen-opts.c@1.501 +7 -7
NTP_4_2_8P1_BETA2
util/ntp-keygen-opts.h@1.500 +3 -3
NTP_4_2_8P1_BETA2
util/ntp-keygen.1ntp-keygenman@1.312 +3 -3
NTP_4_2_8P1_BETA2
util/ntp-keygen.1ntp-keygenmdoc@1.312 +2 -2
NTP_4_2_8P1_BETA2
util/ntp-keygen.html@1.159 +2 -2
NTP_4_2_8P1_BETA2
util/ntp-keygen.man.in@1.312 +3 -3
NTP_4_2_8P1_BETA2
util/ntp-keygen.mdoc.in@1.312 +2 -2
NTP_4_2_8P1_BETA2
ChangeSet@1.3280, 2014-12-26 22:21:06-05:00, stenn@deacon.udel.edu
[Bug 2674] Install sntp in sbin on NetBSD
ChangeLog@1.1603 +1 -0
[Bug 2674] Install sntp in sbin on NetBSD
sntp/loc/netbsd@1.3 +1 -1
[Bug 2674] Install sntp in sbin on NetBSD
ChangeSet@1.3279, 2014-12-26 22:11:56-05:00, stenn@deacon.udel.edu
[Bug 2707] Avoid a C90 extension in libjsmn/jsmn.c
ChangeLog@1.1602 +1 -0
[Bug 2707] Avoid a C90 extension in libjsmn/jsmn.c
libjsmn/jsmn.c@1.2 +2 -1
[Bug 2707] Avoid a C90 extension in libjsmn/jsmn.c
ChangeSet@1.3278, 2014-12-26 23:56:33+00:00, stenn@psp-deb1.ntp.org
[Bug 2693] ntp-keygen doesn't build without OpenSSL and sntp
ChangeLog@1.1601 +1 -0
[Bug 2693] ntp-keygen doesn't build without OpenSSL and sntp
sntp/Makefile.am@1.77 +5 -4
[Bug 2693] ntp-keygen doesn't build without OpenSSL and sntp
ChangeSet@1.3277, 2014-12-26 23:50:15+00:00, stenn@psp-deb1.ntp.org
[Bug 2709] see if we have a C99 compiler (not yet required)
ChangeLog@1.1600 +1 -1
[Bug 2709] see if we have a C99 compiler (not yet required)
ChangeSet@1.3276, 2014-12-26 23:48:57+00:00, stenn@psp-deb1.ntp.org
build: see if we have a C99 compiler (not yet required)
ChangeLog@1.1599 +3 -0
build: see if we have a C99 compiler (not yet required)
sntp/m4/ntp_compiler.m4@1.5 +1 -0
build: see if we have a C99 compiler (not yet required)
ChangeSet@1.3275, 2014-12-23 16:59:55-05:00, stenn@deacon.udel.edu
NTP_4_2_8P1_BETA1
TAG: NTP_4_2_8P1_BETA1
ChangeLog@1.1598 +1 -0
NTP_4_2_8P1_BETA1
ntpd/invoke-ntp.conf.texi@1.169 +1 -1
NTP_4_2_8P1_BETA1
ntpd/invoke-ntp.keys.texi@1.166 +1 -1
NTP_4_2_8P1_BETA1
ntpd/invoke-ntpd.texi@1.482 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.conf.5man@1.203 +3 -3
NTP_4_2_8P1_BETA1
ntpd/ntp.conf.5mdoc@1.203 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.conf.html@1.162 +1 -1
NTP_4_2_8P1_BETA1
ntpd/ntp.conf.man.in@1.203 +3 -3
NTP_4_2_8P1_BETA1
ntpd/ntp.conf.mdoc.in@1.203 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.keys.5man@1.200 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.keys.5mdoc@1.200 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.keys.html@1.163 +1 -1
NTP_4_2_8P1_BETA1
ntpd/ntp.keys.man.in@1.200 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntp.keys.mdoc.in@1.200 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntpd-opts.c@1.503 +239 -239
NTP_4_2_8P1_BETA1
ntpd/ntpd-opts.h@1.502 +3 -3
NTP_4_2_8P1_BETA1
ntpd/ntpd.1ntpdman@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpd/ntpd.1ntpdmdoc@1.311 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntpd.html@1.157 +2 -2
NTP_4_2_8P1_BETA1
ntpd/ntpd.man.in@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpd/ntpd.mdoc.in@1.311 +2 -2
NTP_4_2_8P1_BETA1
ntpdc/invoke-ntpdc.texi@1.480 +2 -2
NTP_4_2_8P1_BETA1
ntpdc/ntpdc-opts.c@1.498 +107 -107
NTP_4_2_8P1_BETA1
ntpdc/ntpdc-opts.h@1.497 +3 -3
NTP_4_2_8P1_BETA1
ntpdc/ntpdc.1ntpdcman@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpdc/ntpdc.1ntpdcmdoc@1.311 +2 -2
NTP_4_2_8P1_BETA1
ntpdc/ntpdc.html@1.324 +2 -2
NTP_4_2_8P1_BETA1
ntpdc/ntpdc.man.in@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpdc/ntpdc.mdoc.in@1.311 +2 -2
NTP_4_2_8P1_BETA1
ntpq/invoke-ntpq.texi@1.486 +2 -2
NTP_4_2_8P1_BETA1
ntpq/ntpq-opts.c@1.503 +106 -106
NTP_4_2_8P1_BETA1
ntpq/ntpq-opts.h@1.501 +3 -3
NTP_4_2_8P1_BETA1
ntpq/ntpq.1ntpqman@1.314 +3 -3
NTP_4_2_8P1_BETA1
ntpq/ntpq.1ntpqmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA1
ntpq/ntpq.html@1.154 +2 -2
NTP_4_2_8P1_BETA1
ntpq/ntpq.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA1
ntpq/ntpq.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA1
ntpsnmpd/invoke-ntpsnmpd.texi@1.482 +2 -2
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd-opts.c@1.500 +68 -68
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd-opts.h@1.499 +3 -3
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.311 +2 -2
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd.html@1.152 +1 -1
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd.man.in@1.311 +3 -3
NTP_4_2_8P1_BETA1
ntpsnmpd/ntpsnmpd.mdoc.in@1.311 +2 -2
NTP_4_2_8P1_BETA1
packageinfo.sh@1.494 +3 -3
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.73 +3 -3
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.73 +2 -2
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/calc_tickadj.html@1.75 +1 -1
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/calc_tickadj.man.in@1.72 +3 -3
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.73 +2 -2
NTP_4_2_8P1_BETA1
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.77 +1 -1
NTP_4_2_8P1_BETA1
scripts/invoke-plot_summary.texi@1.94 +2 -2
NTP_4_2_8P1_BETA1
scripts/invoke-summary.texi@1.94 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntp-wait/invoke-ntp-wait.texi@1.303 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait-opts@1.39 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.301 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.301 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait.html@1.320 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait.man.in@1.301 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntp-wait/ntp-wait.mdoc.in@1.301 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntpsweep/invoke-ntpsweep.texi@1.92 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep-opts@1.41 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.80 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.80 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep.html@1.93 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep.man.in@1.80 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntpsweep/ntpsweep.mdoc.in@1.81 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntptrace/invoke-ntptrace.texi@1.92 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace-opts@1.41 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace.1ntptraceman@1.80 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace.1ntptracemdoc@1.80 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace.html@1.93 +2 -2
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace.man.in@1.80 +3 -3
NTP_4_2_8P1_BETA1
scripts/ntptrace/ntptrace.mdoc.in@1.81 +2 -2
NTP_4_2_8P1_BETA1
scripts/plot_summary-opts@1.41 +2 -2
NTP_4_2_8P1_BETA1
scripts/plot_summary.1plot_summaryman@1.92 +3 -3
NTP_4_2_8P1_BETA1
scripts/plot_summary.1plot_summarymdoc@1.92 +2 -2
NTP_4_2_8P1_BETA1
scripts/plot_summary.html@1.95 +2 -2
NTP_4_2_8P1_BETA1
scripts/plot_summary.man.in@1.92 +3 -3
NTP_4_2_8P1_BETA1
scripts/plot_summary.mdoc.in@1.92 +2 -2
NTP_4_2_8P1_BETA1
scripts/summary-opts@1.41 +2 -2
NTP_4_2_8P1_BETA1
scripts/summary.1summaryman@1.92 +3 -3
NTP_4_2_8P1_BETA1
scripts/summary.1summarymdoc@1.92 +2 -2
NTP_4_2_8P1_BETA1
scripts/summary.html@1.95 +2 -2
NTP_4_2_8P1_BETA1
scripts/summary.man.in@1.92 +3 -3
NTP_4_2_8P1_BETA1
scripts/summary.mdoc.in@1.92 +2 -2
NTP_4_2_8P1_BETA1
sntp/invoke-sntp.texi@1.479 +2 -2
NTP_4_2_8P1_BETA1
sntp/sntp-opts.c@1.497 +159 -159
NTP_4_2_8P1_BETA1
sntp/sntp-opts.h@1.496 +3 -3
NTP_4_2_8P1_BETA1
sntp/sntp.1sntpman@1.314 +3 -3
NTP_4_2_8P1_BETA1
sntp/sntp.1sntpmdoc@1.314 +2 -2
NTP_4_2_8P1_BETA1
sntp/sntp.html@1.494 +2 -2
NTP_4_2_8P1_BETA1
sntp/sntp.man.in@1.314 +3 -3
NTP_4_2_8P1_BETA1
sntp/sntp.mdoc.in@1.314 +2 -2
NTP_4_2_8P1_BETA1
util/invoke-ntp-keygen.texi@1.483 +2 -2
NTP_4_2_8P1_BETA1
util/ntp-keygen-opts.c@1.500 +173 -173
NTP_4_2_8P1_BETA1
util/ntp-keygen-opts.h@1.499 +3 -3
NTP_4_2_8P1_BETA1
util/ntp-keygen.1ntp-keygenman@1.311 +3 -3
NTP_4_2_8P1_BETA1
util/ntp-keygen.1ntp-keygenmdoc@1.311 +2 -2
NTP_4_2_8P1_BETA1
util/ntp-keygen.html@1.158 +2 -2
NTP_4_2_8P1_BETA1
util/ntp-keygen.man.in@1.311 +3 -3
NTP_4_2_8P1_BETA1
util/ntp-keygen.mdoc.in@1.311 +2 -2
NTP_4_2_8P1_BETA1
ChangeSet@1.3274, 2014-12-23 21:36:47+00:00, stenn@psp-deb1.ntp.org
Disable config.cache-* files for now
build@1.49 +5 -1
Disable config.cache-* files for now
ChangeSet@1.3273, 2014-12-23 04:34:37+00:00, stenn@psp-deb1.ntp.org
Update cvo.sh for new CentOS version format
sntp/scripts/cvo.sh@1.8 +7 -1
Update cvo.sh for new CentOS version format
ChangeSet@1.3272, 2014-12-22 05:59:33+00:00, stenn@psp-fb1.ntp.org
[Bug 2693] ntp-keygen doesn't build without OpenSSL
ChangeLog@1.1597 +2 -1
[Bug 2693] ntp-keygen doesn't build without OpenSSL
Makefile.am@1.124 +3 -2
[Bug 2693] ntp-keygen doesn't build without OpenSSL
configure.ac@1.579 +5 -1
[Bug 2693] ntp-keygen doesn't build without OpenSSL
libntp/ntp_crypto_rnd.c@1.2 +15 -0
[Bug 2693] ntp-keygen doesn't build without OpenSSL
sntp/configure.ac@1.77 +8 -5
[Bug 2693] ntp-keygen doesn't build without OpenSSL
sntp/m4/ntp_libevent.m4@1.12 +23 -2
[Bug 2693] ntp-keygen doesn't build without OpenSSL
util/Makefile.am@1.77 +1 -0
[Bug 2693] ntp-keygen doesn't build without OpenSSL
ChangeSet@1.3271, 2014-12-22 05:51:47+00:00, stenn@psp-fb1.ntp.org
[Bug 2699] IN6_IS_ADDR_LOOPBACK build problems on some OSes
ChangeLog@1.1596 +1 -0
[Bug 2699] IN6_IS_ADDR_LOOPBACK build problems on some OSes
ChangeSet@1.3270, 2014-12-22 02:55:14+00:00, stenn@psp-deb1.ntp.org
[Bug 2699] HAVE_SYS_SELECT_H is misspelled in refclock_gpsdjson.c
ChangeLog@1.1595 +3 -0
[Bug 2699] HAVE_SYS_SELECT_H is misspelled in refclock_gpsdjson.c
ntpd/refclock_gpsdjson.c@1.15 +1 -1
[Bug 2699] HAVE_SYS_SELECT_H is misspelled in refclock_gpsdjson.c
ChangeSet@1.3269, 2014-12-22 02:52:42+00:00, stenn@psp-deb1.ntp.org
NEWS file update
NEWS@1.129 +39 -12
ChangeSet@1.3268, 2014-12-21 01:24:15+00:00, stenn@psp-deb1.ntp.org
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ChangeLog@1.1594 +1 -0
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ntpd/ntp_io.c@1.397 +4 -6
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ChangeSet@1.3267, 2014-12-21 00:35:39+00:00, stenn@psp-deb1.ntp.org
typo
build@1.48 +1 -1
typo
ChangeSet@1.3266, 2014-12-19 07:53:07-05:00, stenn@deacon.udel.edu
NTP_4_2_8
TAG: NTP_4_2_8
ChangeLog@1.1593 +1 -0
NTP_4_2_8
ntpd/invoke-ntp.conf.texi@1.168 +1 -1
NTP_4_2_8
ntpd/invoke-ntp.keys.texi@1.165 +1 -1
NTP_4_2_8
ntpd/invoke-ntpd.texi@1.481 +2 -2
NTP_4_2_8
ntpd/ntp.conf.5man@1.202 +3 -3
NTP_4_2_8
ntpd/ntp.conf.5mdoc@1.202 +2 -2
NTP_4_2_8
ntpd/ntp.conf.html@1.161 +1 -1
NTP_4_2_8
ntpd/ntp.conf.man.in@1.202 +3 -3
NTP_4_2_8
ntpd/ntp.conf.mdoc.in@1.202 +2 -2
NTP_4_2_8
ntpd/ntp.keys.5man@1.199 +2 -2
NTP_4_2_8
ntpd/ntp.keys.5mdoc@1.199 +2 -2
NTP_4_2_8
ntpd/ntp.keys.html@1.162 +1 -1
NTP_4_2_8
ntpd/ntp.keys.man.in@1.199 +2 -2
NTP_4_2_8
ntpd/ntp.keys.mdoc.in@1.199 +2 -2
NTP_4_2_8
ntpd/ntpd-opts.c@1.502 +239 -239
NTP_4_2_8
ntpd/ntpd-opts.h@1.501 +3 -3
NTP_4_2_8
ntpd/ntpd.1ntpdman@1.310 +3 -3
NTP_4_2_8
ntpd/ntpd.1ntpdmdoc@1.310 +2 -2
NTP_4_2_8
ntpd/ntpd.html@1.156 +2 -2
NTP_4_2_8
ntpd/ntpd.man.in@1.310 +3 -3
NTP_4_2_8
ntpd/ntpd.mdoc.in@1.310 +2 -2
NTP_4_2_8
ntpdc/invoke-ntpdc.texi@1.479 +2 -2
NTP_4_2_8
ntpdc/ntpdc-opts.c@1.497 +107 -107
NTP_4_2_8
ntpdc/ntpdc-opts.h@1.496 +3 -3
NTP_4_2_8
ntpdc/ntpdc.1ntpdcman@1.310 +3 -3
NTP_4_2_8
ntpdc/ntpdc.1ntpdcmdoc@1.310 +2 -2
NTP_4_2_8
ntpdc/ntpdc.html@1.323 +2 -2
NTP_4_2_8
ntpdc/ntpdc.man.in@1.310 +3 -3
NTP_4_2_8
ntpdc/ntpdc.mdoc.in@1.310 +2 -2
NTP_4_2_8
ntpq/invoke-ntpq.texi@1.485 +2 -2
NTP_4_2_8
ntpq/ntpq-opts.c@1.502 +106 -106
NTP_4_2_8
ntpq/ntpq-opts.h@1.500 +3 -3
NTP_4_2_8
ntpq/ntpq.1ntpqman@1.313 +3 -3
NTP_4_2_8
ntpq/ntpq.1ntpqmdoc@1.313 +2 -2
NTP_4_2_8
ntpq/ntpq.html@1.153 +2 -2
NTP_4_2_8
ntpq/ntpq.man.in@1.313 +3 -3
NTP_4_2_8
ntpq/ntpq.mdoc.in@1.313 +2 -2
NTP_4_2_8
ntpsnmpd/invoke-ntpsnmpd.texi@1.481 +2 -2
NTP_4_2_8
ntpsnmpd/ntpsnmpd-opts.c@1.499 +68 -68
NTP_4_2_8
ntpsnmpd/ntpsnmpd-opts.h@1.498 +3 -3
NTP_4_2_8
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.310 +3 -3
NTP_4_2_8
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.310 +2 -2
NTP_4_2_8
ntpsnmpd/ntpsnmpd.html@1.151 +1 -1
NTP_4_2_8
ntpsnmpd/ntpsnmpd.man.in@1.310 +3 -3
NTP_4_2_8
ntpsnmpd/ntpsnmpd.mdoc.in@1.310 +2 -2
NTP_4_2_8
packageinfo.sh@1.493 +1 -1
NTP_4_2_8
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.72 +3 -3
NTP_4_2_8
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.72 +2 -2
NTP_4_2_8
scripts/calc_tickadj/calc_tickadj.html@1.74 +1 -1
NTP_4_2_8
scripts/calc_tickadj/calc_tickadj.man.in@1.71 +3 -3
NTP_4_2_8
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.72 +2 -2
NTP_4_2_8
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.76 +1 -1
NTP_4_2_8
scripts/invoke-plot_summary.texi@1.93 +2 -2
NTP_4_2_8
scripts/invoke-summary.texi@1.93 +2 -2
NTP_4_2_8
scripts/ntp-wait/invoke-ntp-wait.texi@1.302 +2 -2
NTP_4_2_8
scripts/ntp-wait/ntp-wait-opts@1.38 +2 -2
NTP_4_2_8
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.300 +3 -3
NTP_4_2_8
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.300 +2 -2
NTP_4_2_8
scripts/ntp-wait/ntp-wait.html@1.319 +2 -2
NTP_4_2_8
scripts/ntp-wait/ntp-wait.man.in@1.300 +3 -3
NTP_4_2_8
scripts/ntp-wait/ntp-wait.mdoc.in@1.300 +2 -2
NTP_4_2_8
scripts/ntpsweep/invoke-ntpsweep.texi@1.91 +2 -2
NTP_4_2_8
scripts/ntpsweep/ntpsweep-opts@1.40 +2 -2
NTP_4_2_8
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.79 +3 -3
NTP_4_2_8
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.79 +2 -2
NTP_4_2_8
scripts/ntpsweep/ntpsweep.html@1.92 +2 -2
NTP_4_2_8
scripts/ntpsweep/ntpsweep.man.in@1.79 +3 -3
NTP_4_2_8
scripts/ntpsweep/ntpsweep.mdoc.in@1.80 +2 -2
NTP_4_2_8
scripts/ntptrace/invoke-ntptrace.texi@1.91 +2 -2
NTP_4_2_8
scripts/ntptrace/ntptrace-opts@1.40 +2 -2
NTP_4_2_8
scripts/ntptrace/ntptrace.1ntptraceman@1.79 +3 -3
NTP_4_2_8
scripts/ntptrace/ntptrace.1ntptracemdoc@1.79 +2 -2
NTP_4_2_8
scripts/ntptrace/ntptrace.html@1.92 +2 -2
NTP_4_2_8
scripts/ntptrace/ntptrace.man.in@1.79 +3 -3
NTP_4_2_8
scripts/ntptrace/ntptrace.mdoc.in@1.80 +2 -2
NTP_4_2_8
scripts/plot_summary-opts@1.40 +2 -2
NTP_4_2_8
scripts/plot_summary.1plot_summaryman@1.91 +3 -3
NTP_4_2_8
scripts/plot_summary.1plot_summarymdoc@1.91 +2 -2
NTP_4_2_8
scripts/plot_summary.html@1.94 +2 -2
NTP_4_2_8
scripts/plot_summary.man.in@1.91 +3 -3
NTP_4_2_8
scripts/plot_summary.mdoc.in@1.91 +2 -2
NTP_4_2_8
scripts/summary-opts@1.40 +2 -2
NTP_4_2_8
scripts/summary.1summaryman@1.91 +3 -3
NTP_4_2_8
scripts/summary.1summarymdoc@1.91 +2 -2
NTP_4_2_8
scripts/summary.html@1.94 +2 -2
NTP_4_2_8
scripts/summary.man.in@1.91 +3 -3
NTP_4_2_8
scripts/summary.mdoc.in@1.91 +2 -2
NTP_4_2_8
sntp/invoke-sntp.texi@1.478 +2 -2
NTP_4_2_8
sntp/sntp-opts.c@1.496 +159 -159
NTP_4_2_8
sntp/sntp-opts.h@1.495 +3 -3
NTP_4_2_8
sntp/sntp.1sntpman@1.313 +3 -3
NTP_4_2_8
sntp/sntp.1sntpmdoc@1.313 +2 -2
NTP_4_2_8
sntp/sntp.html@1.493 +2 -2
NTP_4_2_8
sntp/sntp.man.in@1.313 +3 -3
NTP_4_2_8
sntp/sntp.mdoc.in@1.313 +2 -2
NTP_4_2_8
util/invoke-ntp-keygen.texi@1.482 +2 -2
NTP_4_2_8
util/ntp-keygen-opts.c@1.499 +173 -173
NTP_4_2_8
util/ntp-keygen-opts.h@1.498 +3 -3
NTP_4_2_8
util/ntp-keygen.1ntp-keygenman@1.310 +3 -3
NTP_4_2_8
util/ntp-keygen.1ntp-keygenmdoc@1.310 +2 -2
NTP_4_2_8
util/ntp-keygen.html@1.157 +2 -2
NTP_4_2_8
util/ntp-keygen.man.in@1.310 +3 -3
NTP_4_2_8
util/ntp-keygen.mdoc.in@1.310 +2 -2
NTP_4_2_8
ChangeSet@1.3265, 2014-12-19 05:55:30-05:00, stenn@deacon.udel.edu
ntp-4.2.8
ChangeLog@1.1592 +2 -0
ntp-4.2.8
packageinfo.sh@1.492 +4 -4
ntp-4.2.8
ChangeSet@1.3264, 2014-12-19 04:43:15-05:00, stenn@deacon.udel.edu
Disable Sec 2672 interim fix for now
ntpd/ntp_io.c@1.396 +3 -0
Disable Sec 2672 interim fix for now
ChangeSet@1.3263, 2014-12-19 04:41:40-05:00, stenn@deacon.udel.edu
cleanup
ChangeLog@1.1591 +0 -2
cleanup
ChangeSet@1.3245.1.7, 2014-12-19 08:05:17+00:00, stenn@psp-deb1.ntp.org
NEWS file for 4.2.8
NEWS@1.128 +136 -5
NEWS file for 4.2.8
ChangeSet@1.3245.1.6, 2014-12-18 23:01:06-05:00, stenn@deacon.udel.edu
[Sec 730] Increase RSA_generate_key modulus
ChangeLog@1.1579.1.5 +1 -0
[Sec 730] Increase RSA_generate_key modulus
util/ntp-keygen.c@1.97.1.1 +2 -2
[Sec 730] Increase RSA_generate_key modulus
ChangeSet@1.3245.1.5, 2014-12-18 21:42:38-05:00, stenn@deacon.udel.edu
[Bug 2691] Wrong variable name in refclock_ripencc.c
ChangeLog@1.1579.1.4 +1 -0
[Bug 2691] Wrong variable name in refclock_ripencc.c
ntpd/refclock_ripencc.c@1.18 +1 -1
[Bug 2691] Wrong variable name in refclock_ripencc.c
ChangeSet@1.3260, 2014-12-18 13:14:59+00:00, stenn@psp-deb1.ntp.org
[Sec 2671] vallen in extension fields are not validated
ChangeLog@1.1589 +1 -0
[Sec 2671] vallen in extension fields are not validated
ntpd/ntp_proto.c@1.352 +9 -1
[Sec 2671] vallen in extension fields are not validated
ChangeSet@1.3259, 2014-12-18 13:11:35+00:00, stenn@psp-deb1.ntp.org
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs: debug output tweaking
ntpd/ntp_io.c@1.395 +6 -2
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs: debug output tweaking
ChangeSet@1.3256.1.1, 2014-12-18 10:08:38+00:00, stenn@psp-deb1.ntp.org
Comment cleanup
ntpd/ntp_crypto.c@1.170 +1 -0
Comment cleanup
ChangeSet@1.3245.1.4, 2014-12-18 09:42:02+00:00, stenn@deacon.udel.edu
NTP_4_2_7P486_RC
TAG: NTP_4_2_7P486_RC
ChangeLog@1.1579.1.3 +1 -0
NTP_4_2_7P486_RC
ntpd/invoke-ntp.conf.texi@1.167 +1 -1
NTP_4_2_7P486_RC
ntpd/invoke-ntp.keys.texi@1.164 +1 -1
NTP_4_2_7P486_RC
ntpd/invoke-ntpd.texi@1.480 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.conf.5man@1.201 +3 -3
NTP_4_2_7P486_RC
ntpd/ntp.conf.5mdoc@1.201 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.conf.html@1.160 +1 -1
NTP_4_2_7P486_RC
ntpd/ntp.conf.man.in@1.201 +3 -3
NTP_4_2_7P486_RC
ntpd/ntp.conf.mdoc.in@1.201 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.keys.5man@1.198 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.keys.5mdoc@1.198 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.keys.html@1.161 +1 -1
NTP_4_2_7P486_RC
ntpd/ntp.keys.man.in@1.198 +2 -2
NTP_4_2_7P486_RC
ntpd/ntp.keys.mdoc.in@1.198 +2 -2
NTP_4_2_7P486_RC
ntpd/ntpd-opts.c@1.501 +7 -7
NTP_4_2_7P486_RC
ntpd/ntpd-opts.h@1.500 +3 -3
NTP_4_2_7P486_RC
ntpd/ntpd.1ntpdman@1.309 +3 -3
NTP_4_2_7P486_RC
ntpd/ntpd.1ntpdmdoc@1.309 +2 -2
NTP_4_2_7P486_RC
ntpd/ntpd.html@1.155 +2 -2
NTP_4_2_7P486_RC
ntpd/ntpd.man.in@1.309 +3 -3
NTP_4_2_7P486_RC
ntpd/ntpd.mdoc.in@1.309 +2 -2
NTP_4_2_7P486_RC
ntpdc/invoke-ntpdc.texi@1.478 +2 -2
NTP_4_2_7P486_RC
ntpdc/ntpdc-opts.c@1.496 +7 -7
NTP_4_2_7P486_RC
ntpdc/ntpdc-opts.h@1.495 +3 -3
NTP_4_2_7P486_RC
ntpdc/ntpdc.1ntpdcman@1.309 +3 -3
NTP_4_2_7P486_RC
ntpdc/ntpdc.1ntpdcmdoc@1.309 +2 -2
NTP_4_2_7P486_RC
ntpdc/ntpdc.html@1.322 +2 -2
NTP_4_2_7P486_RC
ntpdc/ntpdc.man.in@1.309 +3 -3
NTP_4_2_7P486_RC
ntpdc/ntpdc.mdoc.in@1.309 +2 -2
NTP_4_2_7P486_RC
ntpq/invoke-ntpq.texi@1.484 +2 -2
NTP_4_2_7P486_RC
ntpq/ntpq-opts.c@1.501 +7 -7
NTP_4_2_7P486_RC
ntpq/ntpq-opts.h@1.499 +3 -3
NTP_4_2_7P486_RC
ntpq/ntpq.1ntpqman@1.312 +3 -3
NTP_4_2_7P486_RC
ntpq/ntpq.1ntpqmdoc@1.312 +2 -2
NTP_4_2_7P486_RC
ntpq/ntpq.html@1.152 +2 -2
NTP_4_2_7P486_RC
ntpq/ntpq.man.in@1.312 +3 -3
NTP_4_2_7P486_RC
ntpq/ntpq.mdoc.in@1.312 +2 -2
NTP_4_2_7P486_RC
ntpsnmpd/invoke-ntpsnmpd.texi@1.480 +2 -2
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd-opts.c@1.498 +7 -7
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd-opts.h@1.497 +3 -3
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.309 +3 -3
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.309 +2 -2
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd.html@1.150 +1 -1
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd.man.in@1.309 +3 -3
NTP_4_2_7P486_RC
ntpsnmpd/ntpsnmpd.mdoc.in@1.309 +2 -2
NTP_4_2_7P486_RC
packageinfo.sh@1.491 +1 -1
NTP_4_2_7P486_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.71 +3 -3
NTP_4_2_7P486_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.71 +2 -2
NTP_4_2_7P486_RC
scripts/calc_tickadj/calc_tickadj.html@1.73 +1 -1
NTP_4_2_7P486_RC
scripts/calc_tickadj/calc_tickadj.man.in@1.70 +3 -3
NTP_4_2_7P486_RC
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.71 +2 -2
NTP_4_2_7P486_RC
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.75 +1 -1
NTP_4_2_7P486_RC
scripts/invoke-plot_summary.texi@1.92 +2 -2
NTP_4_2_7P486_RC
scripts/invoke-summary.texi@1.92 +2 -2
NTP_4_2_7P486_RC
scripts/ntp-wait/invoke-ntp-wait.texi@1.301 +2 -2
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait-opts@1.37 +2 -2
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.299 +3 -3
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.299 +2 -2
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait.html@1.318 +2 -2
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait.man.in@1.299 +3 -3
NTP_4_2_7P486_RC
scripts/ntp-wait/ntp-wait.mdoc.in@1.299 +2 -2
NTP_4_2_7P486_RC
scripts/ntpsweep/invoke-ntpsweep.texi@1.90 +2 -2
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep-opts@1.39 +2 -2
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.78 +3 -3
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.78 +2 -2
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep.html@1.91 +2 -2
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep.man.in@1.78 +3 -3
NTP_4_2_7P486_RC
scripts/ntpsweep/ntpsweep.mdoc.in@1.79 +2 -2
NTP_4_2_7P486_RC
scripts/ntptrace/invoke-ntptrace.texi@1.90 +2 -2
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace-opts@1.39 +2 -2
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace.1ntptraceman@1.78 +3 -3
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace.1ntptracemdoc@1.78 +2 -2
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace.html@1.91 +2 -2
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace.man.in@1.78 +3 -3
NTP_4_2_7P486_RC
scripts/ntptrace/ntptrace.mdoc.in@1.79 +2 -2
NTP_4_2_7P486_RC
scripts/plot_summary-opts@1.39 +2 -2
NTP_4_2_7P486_RC
scripts/plot_summary.1plot_summaryman@1.90 +3 -3
NTP_4_2_7P486_RC
scripts/plot_summary.1plot_summarymdoc@1.90 +2 -2
NTP_4_2_7P486_RC
scripts/plot_summary.html@1.93 +2 -2
NTP_4_2_7P486_RC
scripts/plot_summary.man.in@1.90 +3 -3
NTP_4_2_7P486_RC
scripts/plot_summary.mdoc.in@1.90 +2 -2
NTP_4_2_7P486_RC
scripts/summary-opts@1.39 +2 -2
NTP_4_2_7P486_RC
scripts/summary.1summaryman@1.90 +3 -3
NTP_4_2_7P486_RC
scripts/summary.1summarymdoc@1.90 +2 -2
NTP_4_2_7P486_RC
scripts/summary.html@1.93 +2 -2
NTP_4_2_7P486_RC
scripts/summary.man.in@1.90 +3 -3
NTP_4_2_7P486_RC
scripts/summary.mdoc.in@1.90 +2 -2
NTP_4_2_7P486_RC
sntp/invoke-sntp.texi@1.477 +2 -2
NTP_4_2_7P486_RC
sntp/sntp-opts.c@1.495 +7 -7
NTP_4_2_7P486_RC
sntp/sntp-opts.h@1.494 +3 -3
NTP_4_2_7P486_RC
sntp/sntp.1sntpman@1.312 +3 -3
NTP_4_2_7P486_RC
sntp/sntp.1sntpmdoc@1.312 +2 -2
NTP_4_2_7P486_RC
sntp/sntp.html@1.492 +2 -2
NTP_4_2_7P486_RC
sntp/sntp.man.in@1.312 +3 -3
NTP_4_2_7P486_RC
sntp/sntp.mdoc.in@1.312 +2 -2
NTP_4_2_7P486_RC
util/invoke-ntp-keygen.texi@1.481 +2 -2
NTP_4_2_7P486_RC
util/ntp-keygen-opts.c@1.498 +7 -7
NTP_4_2_7P486_RC
util/ntp-keygen-opts.h@1.497 +3 -3
NTP_4_2_7P486_RC
util/ntp-keygen.1ntp-keygenman@1.309 +3 -3
NTP_4_2_7P486_RC
util/ntp-keygen.1ntp-keygenmdoc@1.309 +2 -2
NTP_4_2_7P486_RC
util/ntp-keygen.html@1.156 +2 -2
NTP_4_2_7P486_RC
util/ntp-keygen.man.in@1.309 +3 -3
NTP_4_2_7P486_RC
util/ntp-keygen.mdoc.in@1.309 +2 -2
NTP_4_2_7P486_RC
ChangeSet@1.3255, 2014-12-18 01:18:29+00:00, stenn@psp-deb1.ntp.org
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ChangeLog@1.1586 +1 -0
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ntpd/ntp_io.c@1.394 +20 -0
[Sec 2672] On some OSes ::1 can be spoofed, bypassing source IP ACLs
ChangeSet@1.3254, 2014-12-18 01:17:02+00:00, stenn@psp-deb1.ntp.org
ntp_io.c lint removal
ntpd/ntp_io.c@1.393 +4 -1
lint removal
ChangeSet@1.3245.1.3, 2014-12-16 04:59:54-05:00, murray@pogo.udel.edu
refclock_hpgps.c:
Fix typo.
ntpd/refclock_hpgps.c@1.16 +1 -1
Fix typo.
ChangeSet@1.3245.1.2, 2014-12-16 03:36:46-05:00, murray@pogo.udel.edu
refclock_hpgps.c, ChangeLog:
Fix for bug 2687: RefClock 26/hpgps doesn't work at default line speed
ChangeLog@1.1579.1.2 +1 -0
Fix for bug 2687: RefClock 26/hpgps doesn't work at default line speed
ntpd/refclock_hpgps.c@1.15 +6 -3
Fix for bug 2687: RefClock 26/hpgps doesn't work at default line speed
ChangeSet@1.3253, 2014-12-15 13:12:45+00:00, stenn@psp-deb1.ntp.org
Use finer-grained config.cache files for our configure runs
build@1.47 +2 -2
Use finer-grained config.cache files for our configure runs
ChangeSet@1.3252, 2014-12-15 05:40:20+00:00, stenn@psp-deb1.ntp.org
Quiet some debug output
sntp/m4/ntp_crypto_rand.m4@1.2 +1 -1
Quiet some debug output
ChangeSet@1.3251, 2014-12-14 16:12:13+00:00, stenn@psp-deb1.ntp.org
[Sec 2666] Use cryptographic random numbers for md5 key generation
ChangeLog@1.1585 +1 -0
[Sec 2666] Use cryptographic random numbers for md5 key generation
configure.ac@1.578 +2 -0
[Sec 2666] Use cryptographic random numbers for md5 key generation
include/ntp_random.h@1.3 +3 -0
[Sec 2666] Use cryptographic random numbers for md5 key generation
libntp/Makefile.am@1.75 +2 -1
[Sec 2666] Use cryptographic random numbers for md5 key generation
libntp/ntp_crypto_rnd.c@1.1 +96 -0
BitKeeper file /home/stenn/ntp-dev-sec-2666/libntp/ntp_crypto_rnd.c
libntp/ntp_crypto_rnd.c@1.0 +0 -0
sntp/m4/ntp_crypto_rand.m4@1.1 +53 -0
BitKeeper file /home/stenn/ntp-dev-sec-2666/sntp/m4/ntp_crypto_rand.m4
sntp/m4/ntp_crypto_rand.m4@1.0 +0 -0
util/ntp-keygen.c@1.98 +10 -2
[Sec 2666] Use cryptographic random numbers for md5 key generation
ChangeSet@1.3245.1.1, 2014-12-12 11:58:58+00:00, stenn@deacon.udel.edu
NTP_4_2_7P485_RC
TAG: NTP_4_2_7P485_RC
ChangeLog@1.1579.1.1 +1 -0
NTP_4_2_7P485_RC
ntpd/invoke-ntp.conf.texi@1.166 +1 -1
NTP_4_2_7P485_RC
ntpd/invoke-ntp.keys.texi@1.163 +1 -1
NTP_4_2_7P485_RC
ntpd/invoke-ntpd.texi@1.479 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.conf.5man@1.200 +3 -3
NTP_4_2_7P485_RC
ntpd/ntp.conf.5mdoc@1.200 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.conf.html@1.159 +1 -1
NTP_4_2_7P485_RC
ntpd/ntp.conf.man.in@1.200 +3 -3
NTP_4_2_7P485_RC
ntpd/ntp.conf.mdoc.in@1.200 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.keys.5man@1.197 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.keys.5mdoc@1.197 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.keys.html@1.160 +1 -1
NTP_4_2_7P485_RC
ntpd/ntp.keys.man.in@1.197 +2 -2
NTP_4_2_7P485_RC
ntpd/ntp.keys.mdoc.in@1.197 +2 -2
NTP_4_2_7P485_RC
ntpd/ntpd-opts.c@1.500 +7 -7
NTP_4_2_7P485_RC
ntpd/ntpd-opts.h@1.499 +3 -3
NTP_4_2_7P485_RC
ntpd/ntpd.1ntpdman@1.308 +3 -3
NTP_4_2_7P485_RC
ntpd/ntpd.1ntpdmdoc@1.308 +2 -2
NTP_4_2_7P485_RC
ntpd/ntpd.html@1.154 +2 -2
NTP_4_2_7P485_RC
ntpd/ntpd.man.in@1.308 +3 -3
NTP_4_2_7P485_RC
ntpd/ntpd.mdoc.in@1.308 +2 -2
NTP_4_2_7P485_RC
ntpdc/invoke-ntpdc.texi@1.477 +2 -2
NTP_4_2_7P485_RC
ntpdc/ntpdc-opts.c@1.495 +7 -7
NTP_4_2_7P485_RC
ntpdc/ntpdc-opts.h@1.494 +3 -3
NTP_4_2_7P485_RC
ntpdc/ntpdc.1ntpdcman@1.308 +3 -3
NTP_4_2_7P485_RC
ntpdc/ntpdc.1ntpdcmdoc@1.308 +2 -2
NTP_4_2_7P485_RC
ntpdc/ntpdc.html@1.321 +2 -2
NTP_4_2_7P485_RC
ntpdc/ntpdc.man.in@1.308 +3 -3
NTP_4_2_7P485_RC
ntpdc/ntpdc.mdoc.in@1.308 +2 -2
NTP_4_2_7P485_RC
ntpq/invoke-ntpq.texi@1.483 +2 -2
NTP_4_2_7P485_RC
ntpq/ntpq-opts.c@1.500 +7 -7
NTP_4_2_7P485_RC
ntpq/ntpq-opts.h@1.498 +3 -3
NTP_4_2_7P485_RC
ntpq/ntpq.1ntpqman@1.311 +3 -3
NTP_4_2_7P485_RC
ntpq/ntpq.1ntpqmdoc@1.311 +2 -2
NTP_4_2_7P485_RC
ntpq/ntpq.html@1.151 +2 -2
NTP_4_2_7P485_RC
ntpq/ntpq.man.in@1.311 +3 -3
NTP_4_2_7P485_RC
ntpq/ntpq.mdoc.in@1.311 +2 -2
NTP_4_2_7P485_RC
ntpsnmpd/invoke-ntpsnmpd.texi@1.479 +2 -2
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd-opts.c@1.497 +7 -7
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd-opts.h@1.496 +3 -3
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.308 +3 -3
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.308 +2 -2
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd.html@1.149 +1 -1
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd.man.in@1.308 +3 -3
NTP_4_2_7P485_RC
ntpsnmpd/ntpsnmpd.mdoc.in@1.308 +2 -2
NTP_4_2_7P485_RC
packageinfo.sh@1.490 +1 -1
NTP_4_2_7P485_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.70 +3 -3
NTP_4_2_7P485_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.70 +2 -2
NTP_4_2_7P485_RC
scripts/calc_tickadj/calc_tickadj.html@1.72 +1 -1
NTP_4_2_7P485_RC
scripts/calc_tickadj/calc_tickadj.man.in@1.69 +3 -3
NTP_4_2_7P485_RC
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.70 +2 -2
NTP_4_2_7P485_RC
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.74 +1 -1
NTP_4_2_7P485_RC
scripts/invoke-plot_summary.texi@1.91 +2 -2
NTP_4_2_7P485_RC
scripts/invoke-summary.texi@1.91 +2 -2
NTP_4_2_7P485_RC
scripts/ntp-wait/invoke-ntp-wait.texi@1.300 +2 -2
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait-opts@1.36 +2 -2
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.298 +3 -3
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.298 +2 -2
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait.html@1.317 +2 -2
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait.man.in@1.298 +3 -3
NTP_4_2_7P485_RC
scripts/ntp-wait/ntp-wait.mdoc.in@1.298 +2 -2
NTP_4_2_7P485_RC
scripts/ntpsweep/invoke-ntpsweep.texi@1.89 +2 -2
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep-opts@1.38 +2 -2
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.77 +3 -3
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.77 +2 -2
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep.html@1.90 +2 -2
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep.man.in@1.77 +3 -3
NTP_4_2_7P485_RC
scripts/ntpsweep/ntpsweep.mdoc.in@1.78 +2 -2
NTP_4_2_7P485_RC
scripts/ntptrace/invoke-ntptrace.texi@1.89 +2 -2
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace-opts@1.38 +2 -2
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace.1ntptraceman@1.77 +3 -3
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace.1ntptracemdoc@1.77 +2 -2
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace.html@1.90 +2 -2
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace.man.in@1.77 +3 -3
NTP_4_2_7P485_RC
scripts/ntptrace/ntptrace.mdoc.in@1.78 +2 -2
NTP_4_2_7P485_RC
scripts/plot_summary-opts@1.38 +2 -2
NTP_4_2_7P485_RC
scripts/plot_summary.1plot_summaryman@1.89 +3 -3
NTP_4_2_7P485_RC
scripts/plot_summary.1plot_summarymdoc@1.89 +2 -2
NTP_4_2_7P485_RC
scripts/plot_summary.html@1.92 +2 -2
NTP_4_2_7P485_RC
scripts/plot_summary.man.in@1.89 +3 -3
NTP_4_2_7P485_RC
scripts/plot_summary.mdoc.in@1.89 +2 -2
NTP_4_2_7P485_RC
scripts/summary-opts@1.38 +2 -2
NTP_4_2_7P485_RC
scripts/summary.1summaryman@1.89 +3 -3
NTP_4_2_7P485_RC
scripts/summary.1summarymdoc@1.89 +2 -2
NTP_4_2_7P485_RC
scripts/summary.html@1.92 +2 -2
NTP_4_2_7P485_RC
scripts/summary.man.in@1.89 +3 -3
NTP_4_2_7P485_RC
scripts/summary.mdoc.in@1.89 +2 -2
NTP_4_2_7P485_RC
sntp/invoke-sntp.texi@1.476 +2 -2
NTP_4_2_7P485_RC
sntp/sntp-opts.c@1.494 +7 -7
NTP_4_2_7P485_RC
sntp/sntp-opts.h@1.493 +3 -3
NTP_4_2_7P485_RC
sntp/sntp.1sntpman@1.311 +3 -3
NTP_4_2_7P485_RC
sntp/sntp.1sntpmdoc@1.311 +2 -2
NTP_4_2_7P485_RC
sntp/sntp.html@1.491 +2 -2
NTP_4_2_7P485_RC
sntp/sntp.man.in@1.311 +3 -3
NTP_4_2_7P485_RC
sntp/sntp.mdoc.in@1.311 +2 -2
NTP_4_2_7P485_RC
util/invoke-ntp-keygen.texi@1.480 +2 -2
NTP_4_2_7P485_RC
util/ntp-keygen-opts.c@1.497 +7 -7
NTP_4_2_7P485_RC
util/ntp-keygen-opts.h@1.496 +3 -3
NTP_4_2_7P485_RC
util/ntp-keygen.1ntp-keygenman@1.308 +3 -3
NTP_4_2_7P485_RC
util/ntp-keygen.1ntp-keygenmdoc@1.308 +2 -2
NTP_4_2_7P485_RC
util/ntp-keygen.html@1.155 +2 -2
NTP_4_2_7P485_RC
util/ntp-keygen.man.in@1.308 +3 -3
NTP_4_2_7P485_RC
util/ntp-keygen.mdoc.in@1.308 +2 -2
NTP_4_2_7P485_RC
ChangeSet@1.3249, 2014-12-12 11:24:31+00:00, stenn@psp-fb1.ntp.org
[Sec 2670] Missing return; from error clause
ChangeLog@1.1583 +1 -0
[Sec 2670] Missing return; from error clause
ntpd/ntp_proto.c@1.351 +1 -0
[Sec 2670] Missing return; from error clause
ChangeSet@1.3248, 2014-12-12 11:19:49+00:00, stenn@psp-fb1.ntp.org
[Sec 2669] buffer overflow in configure()
ChangeLog@1.1582 +1 -0
[Sec 2669] buffer overflow in configure()
ntpd/ntp_control.c@1.192 +14 -0
[Sec 2669] buffer overflow in configure()
ChangeSet@1.3247, 2014-12-12 11:13:55+00:00, stenn@psp-fb1.ntp.org
[Sec 2668] buffer overflow in ctl_putdata()
ChangeLog@1.1581 +1 -0
[Sec 2668] buffer overflow in ctl_putdata()
ntpd/ntp_control.c@1.191 +16 -1
[Sec 2668] buffer overflow in ctl_putdata()
ChangeSet@1.3246, 2014-12-12 11:06:53+00:00, stenn@psp-fb1.ntp.org
[Sec 2667] buffer overflow in crypto_recv()
ChangeLog@1.1580 +1 -0
[Sec 2667] buffer overflow in crypto_recv()
ntpd/ntp_crypto.c@1.169 +12 -3
[Sec 2667] buffer overflow in crypto_recv()
ChangeSet@1.3245, 2014-12-12 08:49:58+00:00, stenn@psp-fb1.ntp.org
[Bug 2686] refclock_gpsdjson needs strtoll(), which is not always present
ChangeLog@1.1579 +1 -0
[Bug 2686] refclock_gpsdjson needs strtoll(), which is not always present
configure.ac@1.577 +5 -1
[Bug 2686] refclock_gpsdjson needs strtoll(), which is not always present
ChangeSet@1.3244, 2014-12-11 12:13:16+00:00, stenn@deacon.udel.edu
NTP_4_2_7P484_RC
TAG: NTP_4_2_7P484_RC
ChangeLog@1.1578 +1 -0
NTP_4_2_7P484_RC
ntpd/invoke-ntp.conf.texi@1.165 +1 -1
NTP_4_2_7P484_RC
ntpd/invoke-ntp.keys.texi@1.162 +1 -1
NTP_4_2_7P484_RC
ntpd/invoke-ntpd.texi@1.478 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.conf.5man@1.199 +3 -3
NTP_4_2_7P484_RC
ntpd/ntp.conf.5mdoc@1.199 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.conf.html@1.158 +1 -1
NTP_4_2_7P484_RC
ntpd/ntp.conf.man.in@1.199 +3 -3
NTP_4_2_7P484_RC
ntpd/ntp.conf.mdoc.in@1.199 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.keys.5man@1.196 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.keys.5mdoc@1.196 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.keys.html@1.159 +1 -1
NTP_4_2_7P484_RC
ntpd/ntp.keys.man.in@1.196 +2 -2
NTP_4_2_7P484_RC
ntpd/ntp.keys.mdoc.in@1.196 +2 -2
NTP_4_2_7P484_RC
ntpd/ntpd-opts.c@1.499 +239 -239
NTP_4_2_7P484_RC
ntpd/ntpd-opts.h@1.498 +3 -3
NTP_4_2_7P484_RC
ntpd/ntpd.1ntpdman@1.307 +3 -3
NTP_4_2_7P484_RC
ntpd/ntpd.1ntpdmdoc@1.307 +2 -2
NTP_4_2_7P484_RC
ntpd/ntpd.html@1.153 +2 -2
NTP_4_2_7P484_RC
ntpd/ntpd.man.in@1.307 +3 -3
NTP_4_2_7P484_RC
ntpd/ntpd.mdoc.in@1.307 +2 -2
NTP_4_2_7P484_RC
ntpdc/invoke-ntpdc.texi@1.476 +2 -2
NTP_4_2_7P484_RC
ntpdc/ntpdc-opts.c@1.494 +106 -106
NTP_4_2_7P484_RC
ntpdc/ntpdc-opts.h@1.493 +3 -3
NTP_4_2_7P484_RC
ntpdc/ntpdc.1ntpdcman@1.307 +3 -3
NTP_4_2_7P484_RC
ntpdc/ntpdc.1ntpdcmdoc@1.307 +2 -2
NTP_4_2_7P484_RC
ntpdc/ntpdc.html@1.320 +2 -2
NTP_4_2_7P484_RC
ntpdc/ntpdc.man.in@1.307 +3 -3
NTP_4_2_7P484_RC
ntpdc/ntpdc.mdoc.in@1.307 +2 -2
NTP_4_2_7P484_RC
ntpq/invoke-ntpq.texi@1.482 +2 -2
NTP_4_2_7P484_RC
ntpq/ntpq-opts.c@1.499 +105 -105
NTP_4_2_7P484_RC
ntpq/ntpq-opts.h@1.497 +3 -3
NTP_4_2_7P484_RC
ntpq/ntpq.1ntpqman@1.310 +3 -3
NTP_4_2_7P484_RC
ntpq/ntpq.1ntpqmdoc@1.310 +2 -2
NTP_4_2_7P484_RC
ntpq/ntpq.html@1.150 +2 -2
NTP_4_2_7P484_RC
ntpq/ntpq.man.in@1.310 +3 -3
NTP_4_2_7P484_RC
ntpq/ntpq.mdoc.in@1.310 +2 -2
NTP_4_2_7P484_RC
ntpsnmpd/invoke-ntpsnmpd.texi@1.478 +2 -2
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd-opts.c@1.496 +67 -67
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd-opts.h@1.495 +3 -3
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.307 +3 -3
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.307 +2 -2
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd.html@1.148 +1 -1
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd.man.in@1.307 +3 -3
NTP_4_2_7P484_RC
ntpsnmpd/ntpsnmpd.mdoc.in@1.307 +2 -2
NTP_4_2_7P484_RC
packageinfo.sh@1.489 +1 -1
NTP_4_2_7P484_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.69 +3 -3
NTP_4_2_7P484_RC
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.69 +2 -2
NTP_4_2_7P484_RC
scripts/calc_tickadj/calc_tickadj.html@1.71 +1 -1
NTP_4_2_7P484_RC
scripts/calc_tickadj/calc_tickadj.man.in@1.68 +3 -3
NTP_4_2_7P484_RC
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.69 +2 -2
NTP_4_2_7P484_RC
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.73 +1 -1
NTP_4_2_7P484_RC
scripts/invoke-plot_summary.texi@1.90 +2 -2
NTP_4_2_7P484_RC
scripts/invoke-summary.texi@1.90 +2 -2
NTP_4_2_7P484_RC
scripts/ntp-wait/invoke-ntp-wait.texi@1.299 +2 -2
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait-opts@1.35 +2 -2
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.297 +3 -3
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.297 +2 -2
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait.html@1.316 +2 -2
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait.man.in@1.297 +3 -3
NTP_4_2_7P484_RC
scripts/ntp-wait/ntp-wait.mdoc.in@1.297 +2 -2
NTP_4_2_7P484_RC
scripts/ntpsweep/invoke-ntpsweep.texi@1.88 +2 -2
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep-opts@1.37 +2 -2
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.76 +3 -3
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.76 +2 -2
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep.html@1.89 +2 -2
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep.man.in@1.76 +3 -3
NTP_4_2_7P484_RC
scripts/ntpsweep/ntpsweep.mdoc.in@1.77 +2 -2
NTP_4_2_7P484_RC
scripts/ntptrace/invoke-ntptrace.texi@1.88 +2 -2
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace-opts@1.37 +2 -2
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace.1ntptraceman@1.76 +3 -3
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace.1ntptracemdoc@1.76 +2 -2
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace.html@1.89 +2 -2
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace.man.in@1.76 +3 -3
NTP_4_2_7P484_RC
scripts/ntptrace/ntptrace.mdoc.in@1.77 +2 -2
NTP_4_2_7P484_RC
scripts/plot_summary-opts@1.37 +2 -2
NTP_4_2_7P484_RC
scripts/plot_summary.1plot_summaryman@1.88 +3 -3
NTP_4_2_7P484_RC
scripts/plot_summary.1plot_summarymdoc@1.88 +2 -2
NTP_4_2_7P484_RC
scripts/plot_summary.html@1.91 +2 -2
NTP_4_2_7P484_RC
scripts/plot_summary.man.in@1.88 +3 -3
NTP_4_2_7P484_RC
scripts/plot_summary.mdoc.in@1.88 +2 -2
NTP_4_2_7P484_RC
scripts/summary-opts@1.37 +2 -2
NTP_4_2_7P484_RC
scripts/summary.1summaryman@1.88 +3 -3
NTP_4_2_7P484_RC
scripts/summary.1summarymdoc@1.88 +2 -2
NTP_4_2_7P484_RC
scripts/summary.html@1.91 +2 -2
NTP_4_2_7P484_RC
scripts/summary.man.in@1.88 +3 -3
NTP_4_2_7P484_RC
scripts/summary.mdoc.in@1.88 +2 -2
NTP_4_2_7P484_RC
sntp/invoke-sntp.texi@1.475 +2 -2
NTP_4_2_7P484_RC
sntp/sntp-opts.c@1.493 +158 -158
NTP_4_2_7P484_RC
sntp/sntp-opts.h@1.492 +3 -3
NTP_4_2_7P484_RC
sntp/sntp.1sntpman@1.310 +3 -3
NTP_4_2_7P484_RC
sntp/sntp.1sntpmdoc@1.310 +2 -2
NTP_4_2_7P484_RC
sntp/sntp.html@1.490 +2 -2
NTP_4_2_7P484_RC
sntp/sntp.man.in@1.310 +3 -3
NTP_4_2_7P484_RC
sntp/sntp.mdoc.in@1.310 +2 -2
NTP_4_2_7P484_RC
util/invoke-ntp-keygen.texi@1.479 +2 -2
NTP_4_2_7P484_RC
util/ntp-keygen-opts.c@1.496 +172 -172
NTP_4_2_7P484_RC
util/ntp-keygen-opts.h@1.495 +3 -3
NTP_4_2_7P484_RC
util/ntp-keygen.1ntp-keygenman@1.307 +3 -3
NTP_4_2_7P484_RC
util/ntp-keygen.1ntp-keygenmdoc@1.307 +2 -2
NTP_4_2_7P484_RC
util/ntp-keygen.html@1.154 +2 -2
NTP_4_2_7P484_RC
util/ntp-keygen.man.in@1.307 +3 -3
NTP_4_2_7P484_RC
util/ntp-keygen.mdoc.in@1.307 +2 -2
NTP_4_2_7P484_RC
ChangeSet@1.3243, 2014-12-11 06:51:38-05:00, stenn@deacon.udel.edu
Start the RC cycle for 4.2.8
packageinfo.sh@1.488 +1 -1
Start the RC cycle for 4.2.8
ChangeSet@1.3242, 2014-12-08 08:59:52+00:00, stenn@deacon.udel.edu
NTP_4_2_7P483
TAG: NTP_4_2_7P483
ChangeLog@1.1577 +1 -0
NTP_4_2_7P483
ntpd/invoke-ntp.conf.texi@1.164 +1 -1
NTP_4_2_7P483
ntpd/invoke-ntp.keys.texi@1.161 +1 -1
NTP_4_2_7P483
ntpd/invoke-ntpd.texi@1.477 +2 -2
NTP_4_2_7P483
ntpd/ntp.conf.5man@1.198 +3 -3
NTP_4_2_7P483
ntpd/ntp.conf.5mdoc@1.198 +2 -2
NTP_4_2_7P483
ntpd/ntp.conf.html@1.157 +1 -1
NTP_4_2_7P483
ntpd/ntp.conf.man.in@1.198 +3 -3
NTP_4_2_7P483
ntpd/ntp.conf.mdoc.in@1.198 +2 -2
NTP_4_2_7P483
ntpd/ntp.keys.5man@1.195 +2 -2
NTP_4_2_7P483
ntpd/ntp.keys.5mdoc@1.195 +2 -2
NTP_4_2_7P483
ntpd/ntp.keys.html@1.158 +1 -1
NTP_4_2_7P483
ntpd/ntp.keys.man.in@1.195 +2 -2
NTP_4_2_7P483
ntpd/ntp.keys.mdoc.in@1.195 +2 -2
NTP_4_2_7P483
ntpd/ntpd-opts.c@1.498 +7 -7
NTP_4_2_7P483
ntpd/ntpd-opts.h@1.497 +3 -3
NTP_4_2_7P483
ntpd/ntpd.1ntpdman@1.306 +3 -3
NTP_4_2_7P483
ntpd/ntpd.1ntpdmdoc@1.306 +2 -2
NTP_4_2_7P483
ntpd/ntpd.html@1.152 +2 -2
NTP_4_2_7P483
ntpd/ntpd.man.in@1.306 +3 -3
NTP_4_2_7P483
ntpd/ntpd.mdoc.in@1.306 +2 -2
NTP_4_2_7P483
ntpdc/invoke-ntpdc.texi@1.475 +2 -2
NTP_4_2_7P483
ntpdc/ntpdc-opts.c@1.493 +7 -7
NTP_4_2_7P483
ntpdc/ntpdc-opts.h@1.492 +3 -3
NTP_4_2_7P483
ntpdc/ntpdc.1ntpdcman@1.306 +3 -3
NTP_4_2_7P483
ntpdc/ntpdc.1ntpdcmdoc@1.306 +2 -2
NTP_4_2_7P483
ntpdc/ntpdc.html@1.319 +2 -2
NTP_4_2_7P483
ntpdc/ntpdc.man.in@1.306 +3 -3
NTP_4_2_7P483
ntpdc/ntpdc.mdoc.in@1.306 +2 -2
NTP_4_2_7P483
ntpq/invoke-ntpq.texi@1.481 +2 -2
NTP_4_2_7P483
ntpq/ntpq-opts.c@1.498 +7 -7
NTP_4_2_7P483
ntpq/ntpq-opts.h@1.496 +3 -3
NTP_4_2_7P483
ntpq/ntpq.1ntpqman@1.309 +3 -3
NTP_4_2_7P483
ntpq/ntpq.1ntpqmdoc@1.309 +2 -2
NTP_4_2_7P483
ntpq/ntpq.html@1.149 +2 -2
NTP_4_2_7P483
ntpq/ntpq.man.in@1.309 +3 -3
NTP_4_2_7P483
ntpq/ntpq.mdoc.in@1.309 +2 -2
NTP_4_2_7P483
ntpsnmpd/invoke-ntpsnmpd.texi@1.477 +2 -2
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd-opts.c@1.495 +7 -7
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd-opts.h@1.494 +3 -3
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.306 +3 -3
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.306 +2 -2
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd.html@1.147 +1 -1
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd.man.in@1.306 +3 -3
NTP_4_2_7P483
ntpsnmpd/ntpsnmpd.mdoc.in@1.306 +2 -2
NTP_4_2_7P483
packageinfo.sh@1.487 +1 -1
NTP_4_2_7P483
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.68 +3 -3
NTP_4_2_7P483
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.68 +2 -2
NTP_4_2_7P483
scripts/calc_tickadj/calc_tickadj.html@1.70 +1 -1
NTP_4_2_7P483
scripts/calc_tickadj/calc_tickadj.man.in@1.67 +3 -3
NTP_4_2_7P483
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.68 +2 -2
NTP_4_2_7P483
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.72 +1 -1
NTP_4_2_7P483
scripts/invoke-plot_summary.texi@1.89 +2 -2
NTP_4_2_7P483
scripts/invoke-summary.texi@1.89 +2 -2
NTP_4_2_7P483
scripts/ntp-wait/invoke-ntp-wait.texi@1.298 +2 -2
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait-opts@1.34 +2 -2
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.296 +3 -3
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.296 +2 -2
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait.html@1.315 +2 -2
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait.man.in@1.296 +3 -3
NTP_4_2_7P483
scripts/ntp-wait/ntp-wait.mdoc.in@1.296 +2 -2
NTP_4_2_7P483
scripts/ntpsweep/invoke-ntpsweep.texi@1.87 +2 -2
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep-opts@1.36 +2 -2
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.75 +3 -3
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.75 +2 -2
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep.html@1.88 +2 -2
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep.man.in@1.75 +3 -3
NTP_4_2_7P483
scripts/ntpsweep/ntpsweep.mdoc.in@1.76 +2 -2
NTP_4_2_7P483
scripts/ntptrace/invoke-ntptrace.texi@1.87 +2 -2
NTP_4_2_7P483
scripts/ntptrace/ntptrace-opts@1.36 +2 -2
NTP_4_2_7P483
scripts/ntptrace/ntptrace.1ntptraceman@1.75 +3 -3
NTP_4_2_7P483
scripts/ntptrace/ntptrace.1ntptracemdoc@1.75 +2 -2
NTP_4_2_7P483
scripts/ntptrace/ntptrace.html@1.88 +2 -2
NTP_4_2_7P483
scripts/ntptrace/ntptrace.man.in@1.75 +3 -3
NTP_4_2_7P483
scripts/ntptrace/ntptrace.mdoc.in@1.76 +2 -2
NTP_4_2_7P483
scripts/plot_summary-opts@1.36 +2 -2
NTP_4_2_7P483
scripts/plot_summary.1plot_summaryman@1.87 +3 -3
NTP_4_2_7P483
scripts/plot_summary.1plot_summarymdoc@1.87 +2 -2
NTP_4_2_7P483
scripts/plot_summary.html@1.90 +2 -2
NTP_4_2_7P483
scripts/plot_summary.man.in@1.87 +3 -3
NTP_4_2_7P483
scripts/plot_summary.mdoc.in@1.87 +2 -2
NTP_4_2_7P483
scripts/summary-opts@1.36 +2 -2
NTP_4_2_7P483
scripts/summary.1summaryman@1.87 +3 -3
NTP_4_2_7P483
scripts/summary.1summarymdoc@1.87 +2 -2
NTP_4_2_7P483
scripts/summary.html@1.90 +2 -2
NTP_4_2_7P483
scripts/summary.man.in@1.87 +3 -3
NTP_4_2_7P483
scripts/summary.mdoc.in@1.87 +2 -2
NTP_4_2_7P483
sntp/invoke-sntp.texi@1.474 +4 -3
NTP_4_2_7P483
sntp/sntp-opts.c@1.492 +9 -8
NTP_4_2_7P483
sntp/sntp-opts.h@1.491 +3 -3
NTP_4_2_7P483
sntp/sntp.1sntpman@1.309 +5 -4
NTP_4_2_7P483
sntp/sntp.1sntpmdoc@1.309 +4 -3
NTP_4_2_7P483
sntp/sntp.html@1.489 +4 -3
NTP_4_2_7P483
sntp/sntp.man.in@1.309 +5 -4
NTP_4_2_7P483
sntp/sntp.mdoc.in@1.309 +4 -3
NTP_4_2_7P483
util/invoke-ntp-keygen.texi@1.478 +2 -2
NTP_4_2_7P483
util/ntp-keygen-opts.c@1.495 +7 -7
NTP_4_2_7P483
util/ntp-keygen-opts.h@1.494 +3 -3
NTP_4_2_7P483
util/ntp-keygen.1ntp-keygenman@1.306 +3 -3
NTP_4_2_7P483
util/ntp-keygen.1ntp-keygenmdoc@1.306 +2 -2
NTP_4_2_7P483
util/ntp-keygen.html@1.153 +2 -2
NTP_4_2_7P483
util/ntp-keygen.man.in@1.306 +3 -3
NTP_4_2_7P483
util/ntp-keygen.mdoc.in@1.306 +2 -2
NTP_4_2_7P483
ChangeSet@1.3241, 2014-12-07 11:30:07+00:00, stenn@psp-fb1.ntp.org
[Bug 2685] Better document the KOD file for sntp
ChangeLog@1.1576 +1 -0
[Bug 2685] Better document the KOD file for sntp
html/sntp.html@1.11 +3 -2
[Bug 2685] Better document the KOD file for sntp
sntp/sntp-opts.def@1.45 +2 -1
[Bug 2685] Better document the KOD file for sntp
ChangeSet@1.3240, 2014-12-02 08:59:55+00:00, stenn@deacon.udel.edu
NTP_4_2_7P482
TAG: NTP_4_2_7P482
ChangeLog@1.1575 +1 -0
NTP_4_2_7P482
ntpd/invoke-ntp.conf.texi@1.163 +1 -1
NTP_4_2_7P482
ntpd/invoke-ntp.keys.texi@1.160 +1 -1
NTP_4_2_7P482
ntpd/invoke-ntpd.texi@1.476 +2 -2
NTP_4_2_7P482
ntpd/ntp.conf.5man@1.197 +3 -3
NTP_4_2_7P482
ntpd/ntp.conf.5mdoc@1.197 +2 -2
NTP_4_2_7P482
ntpd/ntp.conf.html@1.156 +1 -1
NTP_4_2_7P482
ntpd/ntp.conf.man.in@1.197 +3 -3
NTP_4_2_7P482
ntpd/ntp.conf.mdoc.in@1.197 +2 -2
NTP_4_2_7P482
ntpd/ntp.keys.5man@1.194 +2 -2
NTP_4_2_7P482
ntpd/ntp.keys.5mdoc@1.194 +2 -2
NTP_4_2_7P482
ntpd/ntp.keys.html@1.157 +1 -1
NTP_4_2_7P482
ntpd/ntp.keys.man.in@1.194 +2 -2
NTP_4_2_7P482
ntpd/ntp.keys.mdoc.in@1.194 +2 -2
NTP_4_2_7P482
ntpd/ntpd-opts.c@1.497 +7 -7
NTP_4_2_7P482
ntpd/ntpd-opts.h@1.496 +3 -3
NTP_4_2_7P482
ntpd/ntpd.1ntpdman@1.305 +3 -3
NTP_4_2_7P482
ntpd/ntpd.1ntpdmdoc@1.305 +2 -2
NTP_4_2_7P482
ntpd/ntpd.html@1.151 +2 -2
NTP_4_2_7P482
ntpd/ntpd.man.in@1.305 +3 -3
NTP_4_2_7P482
ntpd/ntpd.mdoc.in@1.305 +2 -2
NTP_4_2_7P482
ntpdc/invoke-ntpdc.texi@1.474 +2 -2
NTP_4_2_7P482
ntpdc/ntpdc-opts.c@1.492 +7 -7
NTP_4_2_7P482
ntpdc/ntpdc-opts.h@1.491 +3 -3
NTP_4_2_7P482
ntpdc/ntpdc.1ntpdcman@1.305 +3 -3
NTP_4_2_7P482
ntpdc/ntpdc.1ntpdcmdoc@1.305 +2 -2
NTP_4_2_7P482
ntpdc/ntpdc.html@1.318 +2 -2
NTP_4_2_7P482
ntpdc/ntpdc.man.in@1.305 +3 -3
NTP_4_2_7P482
ntpdc/ntpdc.mdoc.in@1.305 +2 -2
NTP_4_2_7P482
ntpq/invoke-ntpq.texi@1.480 +2 -2
NTP_4_2_7P482
ntpq/ntpq-opts.c@1.497 +7 -7
NTP_4_2_7P482
ntpq/ntpq-opts.h@1.495 +3 -3
NTP_4_2_7P482
ntpq/ntpq.1ntpqman@1.308 +3 -3
NTP_4_2_7P482
ntpq/ntpq.1ntpqmdoc@1.308 +2 -2
NTP_4_2_7P482
ntpq/ntpq.html@1.148 +2 -2
NTP_4_2_7P482
ntpq/ntpq.man.in@1.308 +3 -3
NTP_4_2_7P482
ntpq/ntpq.mdoc.in@1.308 +2 -2
NTP_4_2_7P482
ntpsnmpd/invoke-ntpsnmpd.texi@1.476 +2 -2
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd-opts.c@1.494 +7 -7
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd-opts.h@1.493 +3 -3
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.305 +3 -3
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.305 +2 -2
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd.html@1.146 +1 -1
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd.man.in@1.305 +3 -3
NTP_4_2_7P482
ntpsnmpd/ntpsnmpd.mdoc.in@1.305 +2 -2
NTP_4_2_7P482
packageinfo.sh@1.486 +1 -1
NTP_4_2_7P482
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.67 +3 -3
NTP_4_2_7P482
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.67 +2 -2
NTP_4_2_7P482
scripts/calc_tickadj/calc_tickadj.html@1.69 +1 -1
NTP_4_2_7P482
scripts/calc_tickadj/calc_tickadj.man.in@1.66 +3 -3
NTP_4_2_7P482
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.67 +2 -2
NTP_4_2_7P482
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.71 +1 -1
NTP_4_2_7P482
scripts/invoke-plot_summary.texi@1.88 +2 -2
NTP_4_2_7P482
scripts/invoke-summary.texi@1.88 +2 -2
NTP_4_2_7P482
scripts/ntp-wait/invoke-ntp-wait.texi@1.297 +2 -2
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait-opts@1.33 +2 -2
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.295 +3 -3
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.295 +2 -2
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait.html@1.314 +2 -2
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait.man.in@1.295 +3 -3
NTP_4_2_7P482
scripts/ntp-wait/ntp-wait.mdoc.in@1.295 +2 -2
NTP_4_2_7P482
scripts/ntpsweep/invoke-ntpsweep.texi@1.86 +2 -2
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep-opts@1.35 +2 -2
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.74 +3 -3
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.74 +2 -2
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep.html@1.87 +2 -2
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep.man.in@1.74 +3 -3
NTP_4_2_7P482
scripts/ntpsweep/ntpsweep.mdoc.in@1.75 +2 -2
NTP_4_2_7P482
scripts/ntptrace/invoke-ntptrace.texi@1.86 +2 -2
NTP_4_2_7P482
scripts/ntptrace/ntptrace-opts@1.35 +2 -2
NTP_4_2_7P482
scripts/ntptrace/ntptrace.1ntptraceman@1.74 +3 -3
NTP_4_2_7P482
scripts/ntptrace/ntptrace.1ntptracemdoc@1.74 +2 -2
NTP_4_2_7P482
scripts/ntptrace/ntptrace.html@1.87 +2 -2
NTP_4_2_7P482
scripts/ntptrace/ntptrace.man.in@1.74 +3 -3
NTP_4_2_7P482
scripts/ntptrace/ntptrace.mdoc.in@1.75 +2 -2
NTP_4_2_7P482
scripts/plot_summary-opts@1.35 +2 -2
NTP_4_2_7P482
scripts/plot_summary.1plot_summaryman@1.86 +3 -3
NTP_4_2_7P482
scripts/plot_summary.1plot_summarymdoc@1.86 +2 -2
NTP_4_2_7P482
scripts/plot_summary.html@1.89 +2 -2
NTP_4_2_7P482
scripts/plot_summary.man.in@1.86 +3 -3
NTP_4_2_7P482
scripts/plot_summary.mdoc.in@1.86 +2 -2
NTP_4_2_7P482
scripts/summary-opts@1.35 +2 -2
NTP_4_2_7P482
scripts/summary.1summaryman@1.86 +3 -3
NTP_4_2_7P482
scripts/summary.1summarymdoc@1.86 +2 -2
NTP_4_2_7P482
scripts/summary.html@1.89 +2 -2
NTP_4_2_7P482
scripts/summary.man.in@1.86 +3 -3
NTP_4_2_7P482
scripts/summary.mdoc.in@1.86 +2 -2
NTP_4_2_7P482
sntp/invoke-sntp.texi@1.473 +2 -2
NTP_4_2_7P482
sntp/sntp-opts.c@1.491 +7 -7
NTP_4_2_7P482
sntp/sntp-opts.h@1.490 +3 -3
NTP_4_2_7P482
sntp/sntp.1sntpman@1.308 +3 -3
NTP_4_2_7P482
sntp/sntp.1sntpmdoc@1.308 +2 -2
NTP_4_2_7P482
sntp/sntp.html@1.488 +2 -2
NTP_4_2_7P482
sntp/sntp.man.in@1.308 +3 -3
NTP_4_2_7P482
sntp/sntp.mdoc.in@1.308 +2 -2
NTP_4_2_7P482
util/invoke-ntp-keygen.texi@1.477 +2 -2
NTP_4_2_7P482
util/ntp-keygen-opts.c@1.494 +7 -7
NTP_4_2_7P482
util/ntp-keygen-opts.h@1.493 +3 -3
NTP_4_2_7P482
util/ntp-keygen.1ntp-keygenman@1.305 +3 -3
NTP_4_2_7P482
util/ntp-keygen.1ntp-keygenmdoc@1.305 +2 -2
NTP_4_2_7P482
util/ntp-keygen.html@1.152 +2 -2
NTP_4_2_7P482
util/ntp-keygen.man.in@1.305 +3 -3
NTP_4_2_7P482
util/ntp-keygen.mdoc.in@1.305 +2 -2
NTP_4_2_7P482
ChangeSet@1.3237.1.1, 2014-12-02 02:55:23+00:00, stenn@psp-fb1.ntp.org
[Bug 2641] sntp is installed in the wrong location in Solaris
ChangeLog@1.1572.1.1 +1 -0
[Bug 2641] sntp is installed in the wrong location in Solaris
sntp/loc/solaris@1.6 +1 -1
[Bug 2641] sntp is installed in the wrong location in Solaris
ChangeSet@1.3238, 2014-12-02 00:37:46+01:00, jnperlin@hydra.(none)
[Bug 2678] nmea_control() now checks 'refclock_params()' result.
ChangeLog@1.1573 +1 -0
[Bug 2678] nmea_control() now checks 'refclock_params()' result.
ntpd/refclock_nmea.c@1.75 +12 -2
[Bug 2678] nmea_control() now checks 'refclock_params()' result.
ChangeSet@1.3237, 2014-11-22 08:59:03+00:00, stenn@deacon.udel.edu
NTP_4_2_7P481
TAG: NTP_4_2_7P481
ChangeLog@1.1572 +1 -0
NTP_4_2_7P481
ntpd/invoke-ntp.conf.texi@1.162 +1 -1
NTP_4_2_7P481
ntpd/invoke-ntp.keys.texi@1.159 +1 -1
NTP_4_2_7P481
ntpd/invoke-ntpd.texi@1.475 +2 -2
NTP_4_2_7P481
ntpd/ntp.conf.5man@1.196 +3 -3
NTP_4_2_7P481
ntpd/ntp.conf.5mdoc@1.196 +2 -2
NTP_4_2_7P481
ntpd/ntp.conf.html@1.155 +1 -1
NTP_4_2_7P481
ntpd/ntp.conf.man.in@1.196 +3 -3
NTP_4_2_7P481
ntpd/ntp.conf.mdoc.in@1.196 +2 -2
NTP_4_2_7P481
ntpd/ntp.keys.5man@1.193 +2 -2
NTP_4_2_7P481
ntpd/ntp.keys.5mdoc@1.193 +2 -2
NTP_4_2_7P481
ntpd/ntp.keys.html@1.156 +1 -1
NTP_4_2_7P481
ntpd/ntp.keys.man.in@1.193 +2 -2
NTP_4_2_7P481
ntpd/ntp.keys.mdoc.in@1.193 +2 -2
NTP_4_2_7P481
ntpd/ntpd-opts.c@1.496 +7 -7
NTP_4_2_7P481
ntpd/ntpd-opts.h@1.495 +3 -3
NTP_4_2_7P481
ntpd/ntpd.1ntpdman@1.304 +3 -3
NTP_4_2_7P481
ntpd/ntpd.1ntpdmdoc@1.304 +2 -2
NTP_4_2_7P481
ntpd/ntpd.html@1.150 +2 -2
NTP_4_2_7P481
ntpd/ntpd.man.in@1.304 +3 -3
NTP_4_2_7P481
ntpd/ntpd.mdoc.in@1.304 +2 -2
NTP_4_2_7P481
ntpdc/invoke-ntpdc.texi@1.473 +2 -2
NTP_4_2_7P481
ntpdc/ntpdc-opts.c@1.491 +7 -7
NTP_4_2_7P481
ntpdc/ntpdc-opts.h@1.490 +3 -3
NTP_4_2_7P481
ntpdc/ntpdc.1ntpdcman@1.304 +3 -3
NTP_4_2_7P481
ntpdc/ntpdc.1ntpdcmdoc@1.304 +2 -2
NTP_4_2_7P481
ntpdc/ntpdc.html@1.317 +2 -2
NTP_4_2_7P481
ntpdc/ntpdc.man.in@1.304 +3 -3
NTP_4_2_7P481
ntpdc/ntpdc.mdoc.in@1.304 +2 -2
NTP_4_2_7P481
ntpq/invoke-ntpq.texi@1.479 +2 -2
NTP_4_2_7P481
ntpq/ntpq-opts.c@1.496 +7 -7
NTP_4_2_7P481
ntpq/ntpq-opts.h@1.494 +3 -3
NTP_4_2_7P481
ntpq/ntpq.1ntpqman@1.307 +3 -3
NTP_4_2_7P481
ntpq/ntpq.1ntpqmdoc@1.307 +2 -2
NTP_4_2_7P481
ntpq/ntpq.html@1.147 +2 -2
NTP_4_2_7P481
ntpq/ntpq.man.in@1.307 +3 -3
NTP_4_2_7P481
ntpq/ntpq.mdoc.in@1.307 +2 -2
NTP_4_2_7P481
ntpsnmpd/invoke-ntpsnmpd.texi@1.475 +2 -2
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd-opts.c@1.493 +7 -7
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd-opts.h@1.492 +3 -3
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.304 +3 -3
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.304 +2 -2
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd.html@1.145 +1 -1
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd.man.in@1.304 +3 -3
NTP_4_2_7P481
ntpsnmpd/ntpsnmpd.mdoc.in@1.304 +2 -2
NTP_4_2_7P481
packageinfo.sh@1.485 +1 -1
NTP_4_2_7P481
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.66 +3 -3
NTP_4_2_7P481
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.66 +2 -2
NTP_4_2_7P481
scripts/calc_tickadj/calc_tickadj.html@1.68 +1 -1
NTP_4_2_7P481
scripts/calc_tickadj/calc_tickadj.man.in@1.65 +3 -3
NTP_4_2_7P481
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.66 +2 -2
NTP_4_2_7P481
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.70 +1 -1
NTP_4_2_7P481
scripts/invoke-plot_summary.texi@1.87 +2 -2
NTP_4_2_7P481
scripts/invoke-summary.texi@1.87 +2 -2
NTP_4_2_7P481
scripts/ntp-wait/invoke-ntp-wait.texi@1.296 +2 -2
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait-opts@1.32 +2 -2
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.294 +3 -3
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.294 +2 -2
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait.html@1.313 +2 -2
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait.man.in@1.294 +3 -3
NTP_4_2_7P481
scripts/ntp-wait/ntp-wait.mdoc.in@1.294 +2 -2
NTP_4_2_7P481
scripts/ntpsweep/invoke-ntpsweep.texi@1.85 +2 -2
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep-opts@1.34 +2 -2
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.73 +3 -3
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.73 +2 -2
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep.html@1.86 +2 -2
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep.man.in@1.73 +3 -3
NTP_4_2_7P481
scripts/ntpsweep/ntpsweep.mdoc.in@1.74 +2 -2
NTP_4_2_7P481
scripts/ntptrace/invoke-ntptrace.texi@1.85 +2 -2
NTP_4_2_7P481
scripts/ntptrace/ntptrace-opts@1.34 +2 -2
NTP_4_2_7P481
scripts/ntptrace/ntptrace.1ntptraceman@1.73 +3 -3
NTP_4_2_7P481
scripts/ntptrace/ntptrace.1ntptracemdoc@1.73 +2 -2
NTP_4_2_7P481
scripts/ntptrace/ntptrace.html@1.86 +2 -2
NTP_4_2_7P481
scripts/ntptrace/ntptrace.man.in@1.73 +3 -3
NTP_4_2_7P481
scripts/ntptrace/ntptrace.mdoc.in@1.74 +2 -2
NTP_4_2_7P481
scripts/plot_summary-opts@1.34 +2 -2
NTP_4_2_7P481
scripts/plot_summary.1plot_summaryman@1.85 +3 -3
NTP_4_2_7P481
scripts/plot_summary.1plot_summarymdoc@1.85 +2 -2
NTP_4_2_7P481
scripts/plot_summary.html@1.88 +2 -2
NTP_4_2_7P481
scripts/plot_summary.man.in@1.85 +3 -3
NTP_4_2_7P481
scripts/plot_summary.mdoc.in@1.85 +2 -2
NTP_4_2_7P481
scripts/summary-opts@1.34 +2 -2
NTP_4_2_7P481
scripts/summary.1summaryman@1.85 +3 -3
NTP_4_2_7P481
scripts/summary.1summarymdoc@1.85 +2 -2
NTP_4_2_7P481
scripts/summary.html@1.88 +2 -2
NTP_4_2_7P481
scripts/summary.man.in@1.85 +3 -3
NTP_4_2_7P481
scripts/summary.mdoc.in@1.85 +2 -2
NTP_4_2_7P481
sntp/invoke-sntp.texi@1.472 +2 -2
NTP_4_2_7P481
sntp/sntp-opts.c@1.490 +7 -7
NTP_4_2_7P481
sntp/sntp-opts.h@1.489 +3 -3
NTP_4_2_7P481
sntp/sntp.1sntpman@1.307 +3 -3
NTP_4_2_7P481
sntp/sntp.1sntpmdoc@1.307 +2 -2
NTP_4_2_7P481
sntp/sntp.html@1.487 +2 -2
NTP_4_2_7P481
sntp/sntp.man.in@1.307 +3 -3
NTP_4_2_7P481
sntp/sntp.mdoc.in@1.307 +2 -2
NTP_4_2_7P481
util/invoke-ntp-keygen.texi@1.476 +2 -2
NTP_4_2_7P481
util/ntp-keygen-opts.c@1.493 +7 -7
NTP_4_2_7P481
util/ntp-keygen-opts.h@1.492 +3 -3
NTP_4_2_7P481
util/ntp-keygen.1ntp-keygenman@1.304 +3 -3
NTP_4_2_7P481
util/ntp-keygen.1ntp-keygenmdoc@1.304 +2 -2
NTP_4_2_7P481
util/ntp-keygen.html@1.151 +2 -2
NTP_4_2_7P481
util/ntp-keygen.man.in@1.304 +3 -3
NTP_4_2_7P481
util/ntp-keygen.mdoc.in@1.304 +2 -2
NTP_4_2_7P481
ChangeSet@1.3236, 2014-11-21 21:13:03+00:00, stenn@psp-fb1.ntp.org
[Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition
ChangeLog@1.1571 +1 -0
[Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition
ntpd/ntp_refclock.c@1.119 +5 -8
[Bug 2314] Kernel PPS binding EOPNOTSUPP is a failure condition
ChangeSet@1.3235, 2014-11-21 11:08:32+00:00, stenn@psp-fb1.ntp.org
Rename pps_enable to hardpps_enable.
ChangeLog@1.1570 +1 -0
Rename pps_enable to hardpps_enable.
include/ntpd.h@1.183 +1 -1
Rename pps_enable to hardpps_enable.
ntpd/ntp_loopfilter.c@1.175 +3 -3
Rename pps_enable to hardpps_enable.
ntpd/ntp_proto.c@1.350 +2 -2
Rename pps_enable to hardpps_enable.
ntpd/ntp_refclock.c@1.118 +1 -1
Rename pps_enable to hardpps_enable.
ntpd/ntp_request.c@1.112 +1 -1
Rename pps_enable to hardpps_enable.
ntpd/refclock_jupiter.c@1.28 +1 -1
Rename pps_enable to hardpps_enable.
ntpd/refclock_oncore.c@1.101 +1 -1
Rename pps_enable to hardpps_enable.
ntpd/refclock_parse.c@1.68 +2 -2
Rename pps_enable to hardpps_enable.
ChangeSet@1.3234, 2014-11-21 09:44:10+00:00, stenn@psp-fb1.ntp.org
[Bug 2314] Only enable PPS if kernel consumer binding succeeds
ChangeLog@1.1569 +1 -0
[Bug 2314] Only enable PPS if kernel consumer binding succeeds
ntpd/ntp_refclock.c@1.117 +4 -3
[Bug 2314] Only enable PPS if kernel consumer binding succeeds
ChangeSet@1.3233, 2014-11-21 09:00:07+00:00, stenn@deacon.udel.edu
NTP_4_2_7P480
TAG: NTP_4_2_7P480
ChangeLog@1.1568 +1 -0
NTP_4_2_7P480
ntpd/invoke-ntp.conf.texi@1.161 +1 -1
NTP_4_2_7P480
ntpd/invoke-ntp.keys.texi@1.158 +1 -1
NTP_4_2_7P480
ntpd/invoke-ntpd.texi@1.474 +2 -2
NTP_4_2_7P480
ntpd/ntp.conf.5man@1.195 +3 -3
NTP_4_2_7P480
ntpd/ntp.conf.5mdoc@1.195 +2 -2
NTP_4_2_7P480
ntpd/ntp.conf.html@1.154 +1 -1
NTP_4_2_7P480
ntpd/ntp.conf.man.in@1.195 +3 -3
NTP_4_2_7P480
ntpd/ntp.conf.mdoc.in@1.195 +2 -2
NTP_4_2_7P480
ntpd/ntp.keys.5man@1.192 +2 -2
NTP_4_2_7P480
ntpd/ntp.keys.5mdoc@1.192 +2 -2
NTP_4_2_7P480
ntpd/ntp.keys.html@1.155 +1 -1
NTP_4_2_7P480
ntpd/ntp.keys.man.in@1.192 +2 -2
NTP_4_2_7P480
ntpd/ntp.keys.mdoc.in@1.192 +2 -2
NTP_4_2_7P480
ntpd/ntpd-opts.c@1.495 +7 -7
NTP_4_2_7P480
ntpd/ntpd-opts.h@1.494 +3 -3
NTP_4_2_7P480
ntpd/ntpd.1ntpdman@1.303 +3 -3
NTP_4_2_7P480
ntpd/ntpd.1ntpdmdoc@1.303 +2 -2
NTP_4_2_7P480
ntpd/ntpd.html@1.149 +2 -2
NTP_4_2_7P480
ntpd/ntpd.man.in@1.303 +3 -3
NTP_4_2_7P480
ntpd/ntpd.mdoc.in@1.303 +2 -2
NTP_4_2_7P480
ntpdc/invoke-ntpdc.texi@1.472 +2 -2
NTP_4_2_7P480
ntpdc/ntpdc-opts.c@1.490 +7 -7
NTP_4_2_7P480
ntpdc/ntpdc-opts.h@1.489 +3 -3
NTP_4_2_7P480
ntpdc/ntpdc.1ntpdcman@1.303 +3 -3
NTP_4_2_7P480
ntpdc/ntpdc.1ntpdcmdoc@1.303 +2 -2
NTP_4_2_7P480
ntpdc/ntpdc.html@1.316 +2 -2
NTP_4_2_7P480
ntpdc/ntpdc.man.in@1.303 +3 -3
NTP_4_2_7P480
ntpdc/ntpdc.mdoc.in@1.303 +2 -2
NTP_4_2_7P480
ntpq/invoke-ntpq.texi@1.478 +2 -2
NTP_4_2_7P480
ntpq/ntpq-opts.c@1.495 +7 -7
NTP_4_2_7P480
ntpq/ntpq-opts.h@1.493 +3 -3
NTP_4_2_7P480
ntpq/ntpq.1ntpqman@1.306 +3 -3
NTP_4_2_7P480
ntpq/ntpq.1ntpqmdoc@1.306 +2 -2
NTP_4_2_7P480
ntpq/ntpq.html@1.146 +2 -2
NTP_4_2_7P480
ntpq/ntpq.man.in@1.306 +3 -3
NTP_4_2_7P480
ntpq/ntpq.mdoc.in@1.306 +2 -2
NTP_4_2_7P480
ntpsnmpd/invoke-ntpsnmpd.texi@1.474 +2 -2
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd-opts.c@1.492 +7 -7
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd-opts.h@1.491 +3 -3
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.303 +3 -3
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.303 +2 -2
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd.html@1.144 +1 -1
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd.man.in@1.303 +3 -3
NTP_4_2_7P480
ntpsnmpd/ntpsnmpd.mdoc.in@1.303 +2 -2
NTP_4_2_7P480
packageinfo.sh@1.484 +1 -1
NTP_4_2_7P480
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.65 +3 -3
NTP_4_2_7P480
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.65 +2 -2
NTP_4_2_7P480
scripts/calc_tickadj/calc_tickadj.html@1.67 +1 -1
NTP_4_2_7P480
scripts/calc_tickadj/calc_tickadj.man.in@1.64 +3 -3
NTP_4_2_7P480
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.65 +2 -2
NTP_4_2_7P480
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.69 +1 -1
NTP_4_2_7P480
scripts/invoke-plot_summary.texi@1.86 +2 -2
NTP_4_2_7P480
scripts/invoke-summary.texi@1.86 +2 -2
NTP_4_2_7P480
scripts/ntp-wait/invoke-ntp-wait.texi@1.295 +2 -2
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait-opts@1.31 +2 -2
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.293 +3 -3
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.293 +2 -2
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait.html@1.312 +2 -2
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait.man.in@1.293 +3 -3
NTP_4_2_7P480
scripts/ntp-wait/ntp-wait.mdoc.in@1.293 +2 -2
NTP_4_2_7P480
scripts/ntpsweep/invoke-ntpsweep.texi@1.84 +2 -2
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep-opts@1.33 +2 -2
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.72 +3 -3
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.72 +2 -2
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep.html@1.85 +2 -2
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep.man.in@1.72 +3 -3
NTP_4_2_7P480
scripts/ntpsweep/ntpsweep.mdoc.in@1.73 +2 -2
NTP_4_2_7P480
scripts/ntptrace/invoke-ntptrace.texi@1.84 +2 -2
NTP_4_2_7P480
scripts/ntptrace/ntptrace-opts@1.33 +2 -2
NTP_4_2_7P480
scripts/ntptrace/ntptrace.1ntptraceman@1.72 +3 -3
NTP_4_2_7P480
scripts/ntptrace/ntptrace.1ntptracemdoc@1.72 +2 -2
NTP_4_2_7P480
scripts/ntptrace/ntptrace.html@1.85 +2 -2
NTP_4_2_7P480
scripts/ntptrace/ntptrace.man.in@1.72 +3 -3
NTP_4_2_7P480
scripts/ntptrace/ntptrace.mdoc.in@1.73 +2 -2
NTP_4_2_7P480
scripts/plot_summary-opts@1.33 +2 -2
NTP_4_2_7P480
scripts/plot_summary.1plot_summaryman@1.84 +3 -3
NTP_4_2_7P480
scripts/plot_summary.1plot_summarymdoc@1.84 +2 -2
NTP_4_2_7P480
scripts/plot_summary.html@1.87 +2 -2
NTP_4_2_7P480
scripts/plot_summary.man.in@1.84 +3 -3
NTP_4_2_7P480
scripts/plot_summary.mdoc.in@1.84 +2 -2
NTP_4_2_7P480
scripts/summary-opts@1.33 +2 -2
NTP_4_2_7P480
scripts/summary.1summaryman@1.84 +3 -3
NTP_4_2_7P480
scripts/summary.1summarymdoc@1.84 +2 -2
NTP_4_2_7P480
scripts/summary.html@1.87 +2 -2
NTP_4_2_7P480
scripts/summary.man.in@1.84 +3 -3
NTP_4_2_7P480
scripts/summary.mdoc.in@1.84 +2 -2
NTP_4_2_7P480
sntp/invoke-sntp.texi@1.471 +2 -2
NTP_4_2_7P480
sntp/sntp-opts.c@1.489 +7 -7
NTP_4_2_7P480
sntp/sntp-opts.h@1.488 +3 -3
NTP_4_2_7P480
sntp/sntp.1sntpman@1.306 +3 -3
NTP_4_2_7P480
sntp/sntp.1sntpmdoc@1.306 +2 -2
NTP_4_2_7P480
sntp/sntp.html@1.486 +2 -2
NTP_4_2_7P480
sntp/sntp.man.in@1.306 +3 -3
NTP_4_2_7P480
sntp/sntp.mdoc.in@1.306 +2 -2
NTP_4_2_7P480
util/invoke-ntp-keygen.texi@1.475 +2 -2
NTP_4_2_7P480
util/ntp-keygen-opts.c@1.492 +7 -7
NTP_4_2_7P480
util/ntp-keygen-opts.h@1.491 +3 -3
NTP_4_2_7P480
util/ntp-keygen.1ntp-keygenman@1.303 +3 -3
NTP_4_2_7P480
util/ntp-keygen.1ntp-keygenmdoc@1.303 +2 -2
NTP_4_2_7P480
util/ntp-keygen.html@1.150 +2 -2
NTP_4_2_7P480
util/ntp-keygen.man.in@1.303 +3 -3
NTP_4_2_7P480
util/ntp-keygen.mdoc.in@1.303 +2 -2
NTP_4_2_7P480
ChangeSet@1.3232, 2014-11-20 10:21:46+00:00, stenn@psp-fb1.ntp.org
[Bug 2677] PATH_MAX isn't #define'd under Windows
ChangeLog@1.1567 +2 -0
[Bug 2677] PATH_MAX isn't #define'd under Windows
ntpd/ntp_loopfilter.c@1.174 +3 -0
[Bug 2677] PATH_MAX isn't #define'd under Windows
ChangeSet@1.3231, 2014-11-15 08:58:24+00:00, stenn@deacon.udel.edu
NTP_4_2_7P479
TAG: NTP_4_2_7P479
ChangeLog@1.1566 +1 -0
NTP_4_2_7P479
ntpd/invoke-ntp.conf.texi@1.160 +1 -1
NTP_4_2_7P479
ntpd/invoke-ntp.keys.texi@1.157 +1 -1
NTP_4_2_7P479
ntpd/invoke-ntpd.texi@1.473 +2 -2
NTP_4_2_7P479
ntpd/ntp.conf.5man@1.194 +3 -3
NTP_4_2_7P479
ntpd/ntp.conf.5mdoc@1.194 +2 -2
NTP_4_2_7P479
ntpd/ntp.conf.html@1.153 +1 -1
NTP_4_2_7P479
ntpd/ntp.conf.man.in@1.194 +3 -3
NTP_4_2_7P479
ntpd/ntp.conf.mdoc.in@1.194 +2 -2
NTP_4_2_7P479
ntpd/ntp.keys.5man@1.191 +2 -2
NTP_4_2_7P479
ntpd/ntp.keys.5mdoc@1.191 +2 -2
NTP_4_2_7P479
ntpd/ntp.keys.html@1.154 +1 -1
NTP_4_2_7P479
ntpd/ntp.keys.man.in@1.191 +2 -2
NTP_4_2_7P479
ntpd/ntp.keys.mdoc.in@1.191 +2 -2
NTP_4_2_7P479
ntpd/ntpd-opts.c@1.494 +7 -7
NTP_4_2_7P479
ntpd/ntpd-opts.h@1.493 +3 -3
NTP_4_2_7P479
ntpd/ntpd.1ntpdman@1.302 +3 -3
NTP_4_2_7P479
ntpd/ntpd.1ntpdmdoc@1.302 +2 -2
NTP_4_2_7P479
ntpd/ntpd.html@1.148 +2 -2
NTP_4_2_7P479
ntpd/ntpd.man.in@1.302 +3 -3
NTP_4_2_7P479
ntpd/ntpd.mdoc.in@1.302 +2 -2
NTP_4_2_7P479
ntpdc/invoke-ntpdc.texi@1.471 +2 -2
NTP_4_2_7P479
ntpdc/ntpdc-opts.c@1.489 +7 -7
NTP_4_2_7P479
ntpdc/ntpdc-opts.h@1.488 +3 -3
NTP_4_2_7P479
ntpdc/ntpdc.1ntpdcman@1.302 +3 -3
NTP_4_2_7P479
ntpdc/ntpdc.1ntpdcmdoc@1.302 +2 -2
NTP_4_2_7P479
ntpdc/ntpdc.html@1.315 +2 -2
NTP_4_2_7P479
ntpdc/ntpdc.man.in@1.302 +3 -3
NTP_4_2_7P479
ntpdc/ntpdc.mdoc.in@1.302 +2 -2
NTP_4_2_7P479
ntpq/invoke-ntpq.texi@1.477 +2 -2
NTP_4_2_7P479
ntpq/ntpq-opts.c@1.494 +7 -7
NTP_4_2_7P479
ntpq/ntpq-opts.h@1.492 +3 -3
NTP_4_2_7P479
ntpq/ntpq.1ntpqman@1.305 +3 -3
NTP_4_2_7P479
ntpq/ntpq.1ntpqmdoc@1.305 +2 -2
NTP_4_2_7P479
ntpq/ntpq.html@1.145 +2 -2
NTP_4_2_7P479
ntpq/ntpq.man.in@1.305 +3 -3
NTP_4_2_7P479
ntpq/ntpq.mdoc.in@1.305 +2 -2
NTP_4_2_7P479
ntpsnmpd/invoke-ntpsnmpd.texi@1.473 +2 -2
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd-opts.c@1.491 +7 -7
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd-opts.h@1.490 +3 -3
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.302 +3 -3
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.302 +2 -2
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd.html@1.143 +1 -1
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd.man.in@1.302 +3 -3
NTP_4_2_7P479
ntpsnmpd/ntpsnmpd.mdoc.in@1.302 +2 -2
NTP_4_2_7P479
packageinfo.sh@1.483 +1 -1
NTP_4_2_7P479
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.64 +3 -3
NTP_4_2_7P479
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.64 +2 -2
NTP_4_2_7P479
scripts/calc_tickadj/calc_tickadj.html@1.66 +1 -1
NTP_4_2_7P479
scripts/calc_tickadj/calc_tickadj.man.in@1.63 +3 -3
NTP_4_2_7P479
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.64 +2 -2
NTP_4_2_7P479
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.68 +1 -1
NTP_4_2_7P479
scripts/invoke-plot_summary.texi@1.85 +2 -2
NTP_4_2_7P479
scripts/invoke-summary.texi@1.85 +2 -2
NTP_4_2_7P479
scripts/ntp-wait/invoke-ntp-wait.texi@1.294 +2 -2
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait-opts@1.30 +2 -2
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.292 +3 -3
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.292 +2 -2
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait.html@1.311 +2 -2
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait.man.in@1.292 +3 -3
NTP_4_2_7P479
scripts/ntp-wait/ntp-wait.mdoc.in@1.292 +2 -2
NTP_4_2_7P479
scripts/ntpsweep/invoke-ntpsweep.texi@1.83 +2 -2
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep-opts@1.32 +2 -2
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.71 +3 -3
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.71 +2 -2
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep.html@1.84 +2 -2
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep.man.in@1.71 +3 -3
NTP_4_2_7P479
scripts/ntpsweep/ntpsweep.mdoc.in@1.72 +2 -2
NTP_4_2_7P479
scripts/ntptrace/invoke-ntptrace.texi@1.83 +2 -2
NTP_4_2_7P479
scripts/ntptrace/ntptrace-opts@1.32 +2 -2
NTP_4_2_7P479
scripts/ntptrace/ntptrace.1ntptraceman@1.71 +3 -3
NTP_4_2_7P479
scripts/ntptrace/ntptrace.1ntptracemdoc@1.71 +2 -2
NTP_4_2_7P479
scripts/ntptrace/ntptrace.html@1.84 +2 -2
NTP_4_2_7P479
scripts/ntptrace/ntptrace.man.in@1.71 +3 -3
NTP_4_2_7P479
scripts/ntptrace/ntptrace.mdoc.in@1.72 +2 -2
NTP_4_2_7P479
scripts/plot_summary-opts@1.32 +2 -2
NTP_4_2_7P479
scripts/plot_summary.1plot_summaryman@1.83 +3 -3
NTP_4_2_7P479
scripts/plot_summary.1plot_summarymdoc@1.83 +2 -2
NTP_4_2_7P479
scripts/plot_summary.html@1.86 +2 -2
NTP_4_2_7P479
scripts/plot_summary.man.in@1.83 +3 -3
NTP_4_2_7P479
scripts/plot_summary.mdoc.in@1.83 +2 -2
NTP_4_2_7P479
scripts/summary-opts@1.32 +2 -2
NTP_4_2_7P479
scripts/summary.1summaryman@1.83 +3 -3
NTP_4_2_7P479
scripts/summary.1summarymdoc@1.83 +2 -2
NTP_4_2_7P479
scripts/summary.html@1.86 +2 -2
NTP_4_2_7P479
scripts/summary.man.in@1.83 +3 -3
NTP_4_2_7P479
scripts/summary.mdoc.in@1.83 +2 -2
NTP_4_2_7P479
sntp/invoke-sntp.texi@1.470 +2 -2
NTP_4_2_7P479
sntp/sntp-opts.c@1.488 +7 -7
NTP_4_2_7P479
sntp/sntp-opts.h@1.487 +3 -3
NTP_4_2_7P479
sntp/sntp.1sntpman@1.305 +3 -3
NTP_4_2_7P479
sntp/sntp.1sntpmdoc@1.305 +2 -2
NTP_4_2_7P479
sntp/sntp.html@1.485 +2 -2
NTP_4_2_7P479
sntp/sntp.man.in@1.305 +3 -3
NTP_4_2_7P479
sntp/sntp.mdoc.in@1.305 +2 -2
NTP_4_2_7P479
util/invoke-ntp-keygen.texi@1.474 +2 -2
NTP_4_2_7P479
util/ntp-keygen-opts.c@1.491 +7 -7
NTP_4_2_7P479
util/ntp-keygen-opts.h@1.490 +3 -3
NTP_4_2_7P479
util/ntp-keygen.1ntp-keygenman@1.302 +3 -3
NTP_4_2_7P479
util/ntp-keygen.1ntp-keygenmdoc@1.302 +2 -2
NTP_4_2_7P479
util/ntp-keygen.html@1.149 +2 -2
NTP_4_2_7P479
util/ntp-keygen.man.in@1.302 +3 -3
NTP_4_2_7P479
util/ntp-keygen.mdoc.in@1.302 +2 -2
NTP_4_2_7P479
ChangeSet@1.3230, 2014-11-15 04:42:01+00:00, stenn@psp-fb1.ntp.org
[Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed
ChangeLog@1.1565 +1 -0
[Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed
include/ntp_crypto.h@1.51 +4 -2
[Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed
ntpd/ntp_control.c@1.190 +4 -1
[Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed
ntpd/ntp_crypto.c@1.168 +98 -32
[Bug 2651] Certificates with ASN timestamps w/ 4-digit years mis-parsed
ChangeSet@1.3229, 2014-11-14 10:55:41+00:00, stenn@deacon.udel.edu
NTP_4_2_7P478
TAG: NTP_4_2_7P478
ChangeLog@1.1564 +1 -0
NTP_4_2_7P478
ntpd/invoke-ntp.conf.texi@1.159 +1 -1
NTP_4_2_7P478
ntpd/invoke-ntp.keys.texi@1.156 +1 -1
NTP_4_2_7P478
ntpd/invoke-ntpd.texi@1.472 +2 -2
NTP_4_2_7P478
ntpd/ntp.conf.5man@1.193 +3 -3
NTP_4_2_7P478
ntpd/ntp.conf.5mdoc@1.193 +2 -2
NTP_4_2_7P478
ntpd/ntp.conf.html@1.152 +1 -1
NTP_4_2_7P478
ntpd/ntp.conf.man.in@1.193 +3 -3
NTP_4_2_7P478
ntpd/ntp.conf.mdoc.in@1.193 +2 -2
NTP_4_2_7P478
ntpd/ntp.keys.5man@1.190 +2 -2
NTP_4_2_7P478
ntpd/ntp.keys.5mdoc@1.190 +2 -2
NTP_4_2_7P478
ntpd/ntp.keys.html@1.153 +1 -1
NTP_4_2_7P478
ntpd/ntp.keys.man.in@1.190 +2 -2
NTP_4_2_7P478
ntpd/ntp.keys.mdoc.in@1.190 +2 -2
NTP_4_2_7P478
ntpd/ntpd-opts.c@1.493 +7 -7
NTP_4_2_7P478
ntpd/ntpd-opts.h@1.492 +3 -3
NTP_4_2_7P478
ntpd/ntpd.1ntpdman@1.301 +3 -3
NTP_4_2_7P478
ntpd/ntpd.1ntpdmdoc@1.301 +2 -2
NTP_4_2_7P478
ntpd/ntpd.html@1.147 +2 -2
NTP_4_2_7P478
ntpd/ntpd.man.in@1.301 +3 -3
NTP_4_2_7P478
ntpd/ntpd.mdoc.in@1.301 +2 -2
NTP_4_2_7P478
ntpdc/invoke-ntpdc.texi@1.470 +2 -2
NTP_4_2_7P478
ntpdc/ntpdc-opts.c@1.488 +7 -7
NTP_4_2_7P478
ntpdc/ntpdc-opts.h@1.487 +3 -3
NTP_4_2_7P478
ntpdc/ntpdc.1ntpdcman@1.301 +3 -3
NTP_4_2_7P478
ntpdc/ntpdc.1ntpdcmdoc@1.301 +2 -2
NTP_4_2_7P478
ntpdc/ntpdc.html@1.314 +2 -2
NTP_4_2_7P478
ntpdc/ntpdc.man.in@1.301 +3 -3
NTP_4_2_7P478
ntpdc/ntpdc.mdoc.in@1.301 +2 -2
NTP_4_2_7P478
ntpq/invoke-ntpq.texi@1.476 +2 -2
NTP_4_2_7P478
ntpq/ntpq-opts.c@1.493 +7 -7
NTP_4_2_7P478
ntpq/ntpq-opts.h@1.491 +3 -3
NTP_4_2_7P478
ntpq/ntpq.1ntpqman@1.304 +3 -3
NTP_4_2_7P478
ntpq/ntpq.1ntpqmdoc@1.304 +2 -2
NTP_4_2_7P478
ntpq/ntpq.html@1.144 +2 -2
NTP_4_2_7P478
ntpq/ntpq.man.in@1.304 +3 -3
NTP_4_2_7P478
ntpq/ntpq.mdoc.in@1.304 +2 -2
NTP_4_2_7P478
ntpsnmpd/invoke-ntpsnmpd.texi@1.472 +2 -2
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd-opts.c@1.490 +7 -7
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd-opts.h@1.489 +3 -3
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.301 +3 -3
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.301 +2 -2
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd.html@1.142 +1 -1
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd.man.in@1.301 +3 -3
NTP_4_2_7P478
ntpsnmpd/ntpsnmpd.mdoc.in@1.301 +2 -2
NTP_4_2_7P478
packageinfo.sh@1.482 +1 -1
NTP_4_2_7P478
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.63 +3 -3
NTP_4_2_7P478
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.63 +2 -2
NTP_4_2_7P478
scripts/calc_tickadj/calc_tickadj.html@1.65 +1 -1
NTP_4_2_7P478
scripts/calc_tickadj/calc_tickadj.man.in@1.62 +3 -3
NTP_4_2_7P478
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.63 +2 -2
NTP_4_2_7P478
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.67 +1 -1
NTP_4_2_7P478
scripts/invoke-plot_summary.texi@1.84 +2 -2
NTP_4_2_7P478
scripts/invoke-summary.texi@1.84 +2 -2
NTP_4_2_7P478
scripts/ntp-wait/invoke-ntp-wait.texi@1.293 +2 -2
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait-opts@1.29 +2 -2
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.291 +3 -3
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.291 +2 -2
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait.html@1.310 +2 -2
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait.man.in@1.291 +3 -3
NTP_4_2_7P478
scripts/ntp-wait/ntp-wait.mdoc.in@1.291 +2 -2
NTP_4_2_7P478
scripts/ntpsweep/invoke-ntpsweep.texi@1.82 +2 -2
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep-opts@1.31 +2 -2
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.70 +3 -3
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.70 +2 -2
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep.html@1.83 +2 -2
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep.man.in@1.70 +3 -3
NTP_4_2_7P478
scripts/ntpsweep/ntpsweep.mdoc.in@1.71 +2 -2
NTP_4_2_7P478
scripts/ntptrace/invoke-ntptrace.texi@1.82 +2 -2
NTP_4_2_7P478
scripts/ntptrace/ntptrace-opts@1.31 +2 -2
NTP_4_2_7P478
scripts/ntptrace/ntptrace.1ntptraceman@1.70 +3 -3
NTP_4_2_7P478
scripts/ntptrace/ntptrace.1ntptracemdoc@1.70 +2 -2
NTP_4_2_7P478
scripts/ntptrace/ntptrace.html@1.83 +2 -2
NTP_4_2_7P478
scripts/ntptrace/ntptrace.man.in@1.70 +3 -3
NTP_4_2_7P478
scripts/ntptrace/ntptrace.mdoc.in@1.71 +2 -2
NTP_4_2_7P478
scripts/plot_summary-opts@1.31 +2 -2
NTP_4_2_7P478
scripts/plot_summary.1plot_summaryman@1.82 +3 -3
NTP_4_2_7P478
scripts/plot_summary.1plot_summarymdoc@1.82 +2 -2
NTP_4_2_7P478
scripts/plot_summary.html@1.85 +2 -2
NTP_4_2_7P478
scripts/plot_summary.man.in@1.82 +3 -3
NTP_4_2_7P478
scripts/plot_summary.mdoc.in@1.82 +2 -2
NTP_4_2_7P478
scripts/summary-opts@1.31 +2 -2
NTP_4_2_7P478
scripts/summary.1summaryman@1.82 +3 -3
NTP_4_2_7P478
scripts/summary.1summarymdoc@1.82 +2 -2
NTP_4_2_7P478
scripts/summary.html@1.85 +2 -2
NTP_4_2_7P478
scripts/summary.man.in@1.82 +3 -3
NTP_4_2_7P478
scripts/summary.mdoc.in@1.82 +2 -2
NTP_4_2_7P478
sntp/invoke-sntp.texi@1.469 +2 -2
NTP_4_2_7P478
sntp/sntp-opts.c@1.487 +7 -7
NTP_4_2_7P478
sntp/sntp-opts.h@1.486 +3 -3
NTP_4_2_7P478
sntp/sntp.1sntpman@1.304 +3 -3
NTP_4_2_7P478
sntp/sntp.1sntpmdoc@1.304 +2 -2
NTP_4_2_7P478
sntp/sntp.html@1.484 +2 -2
NTP_4_2_7P478
sntp/sntp.man.in@1.304 +3 -3
NTP_4_2_7P478
sntp/sntp.mdoc.in@1.304 +2 -2
NTP_4_2_7P478
util/invoke-ntp-keygen.texi@1.473 +2 -2
NTP_4_2_7P478
util/ntp-keygen-opts.c@1.490 +7 -7
NTP_4_2_7P478
util/ntp-keygen-opts.h@1.489 +3 -3
NTP_4_2_7P478
util/ntp-keygen.1ntp-keygenman@1.301 +3 -3
NTP_4_2_7P478
util/ntp-keygen.1ntp-keygenmdoc@1.301 +2 -2
NTP_4_2_7P478
util/ntp-keygen.html@1.148 +2 -2
NTP_4_2_7P478
util/ntp-keygen.man.in@1.301 +3 -3
NTP_4_2_7P478
util/ntp-keygen.mdoc.in@1.301 +2 -2
NTP_4_2_7P478
ChangeSet@1.3228, 2014-11-14 09:53:23+00:00, stenn@psp-fb1.ntp.org
[Bug 2650] includefile processing broken
ChangeLog@1.1563 +1 -0
[Bug 2650] includefile processing broken
ntpd/ntp_scanner.c@1.45 +2 -0
[Bug 2650] includefile processing broken
ChangeSet@1.3227, 2014-11-14 09:40:06+00:00, stenn@psp-fb1.ntp.org
[Bug 2639] Check return value of ntp_adjtime()
ChangeLog@1.1562 +1 -0
[Bug 2639] Check return value of ntp_adjtime()
ntpd/ntp_loopfilter.c@1.173 +136 -26
[Bug 2639] Check return value of ntp_adjtime()
ChangeSet@1.3226, 2014-11-14 09:19:09+00:00, stenn@psp-fb1.ntp.org
[Sec 2630] buffer overrun in ntpq tokenize()
ChangeLog@1.1561 +1 -0
[Sec 2630] buffer overrun in ntpq tokenize()
ntpq/ntpq.c@1.153 +16 -0
[Sec 2630] buffer overrun in ntpq tokenize()
ChangeSet@1.3225, 2014-11-14 08:54:11+00:00, stenn@psp-fb1.ntp.org
[Bug 2661] ntpq crashes with mreadvar
ChangeLog@1.1560 +1 -0
[Bug 2661] ntpq crashes with mreadvar
ntpq/ntpq-subs.c@1.101 +1 -1
[Bug 2661] ntpq crashes with mreadvar
ChangeSet@1.3224, 2014-11-13 09:01:17+00:00, stenn@deacon.udel.edu
NTP_4_2_7P477
TAG: NTP_4_2_7P477
ChangeLog@1.1559 +1 -0
NTP_4_2_7P477
ntpd/invoke-ntp.conf.texi@1.158 +1 -1
NTP_4_2_7P477
ntpd/invoke-ntp.keys.texi@1.155 +1 -1
NTP_4_2_7P477
ntpd/invoke-ntpd.texi@1.471 +2 -2
NTP_4_2_7P477
ntpd/ntp.conf.5man@1.192 +3 -3
NTP_4_2_7P477
ntpd/ntp.conf.5mdoc@1.192 +2 -2
NTP_4_2_7P477
ntpd/ntp.conf.html@1.151 +12 -1
NTP_4_2_7P477
ntpd/ntp.conf.man.in@1.192 +3 -3
NTP_4_2_7P477
ntpd/ntp.conf.mdoc.in@1.192 +2 -2
NTP_4_2_7P477
ntpd/ntp.keys.5man@1.189 +2 -2
NTP_4_2_7P477
ntpd/ntp.keys.5mdoc@1.189 +2 -2
NTP_4_2_7P477
ntpd/ntp.keys.html@1.152 +1 -1
NTP_4_2_7P477
ntpd/ntp.keys.man.in@1.189 +2 -2
NTP_4_2_7P477
ntpd/ntp.keys.mdoc.in@1.189 +2 -2
NTP_4_2_7P477
ntpd/ntpd-opts.c@1.492 +7 -7
NTP_4_2_7P477
ntpd/ntpd-opts.h@1.491 +3 -3
NTP_4_2_7P477
ntpd/ntpd.1ntpdman@1.300 +3 -3
NTP_4_2_7P477
ntpd/ntpd.1ntpdmdoc@1.300 +2 -2
NTP_4_2_7P477
ntpd/ntpd.html@1.146 +2 -2
NTP_4_2_7P477
ntpd/ntpd.man.in@1.300 +3 -3
NTP_4_2_7P477
ntpd/ntpd.mdoc.in@1.300 +2 -2
NTP_4_2_7P477
ntpdc/invoke-ntpdc.texi@1.469 +2 -2
NTP_4_2_7P477
ntpdc/ntpdc-opts.c@1.487 +7 -7
NTP_4_2_7P477
ntpdc/ntpdc-opts.h@1.486 +3 -3
NTP_4_2_7P477
ntpdc/ntpdc.1ntpdcman@1.300 +3 -3
NTP_4_2_7P477
ntpdc/ntpdc.1ntpdcmdoc@1.300 +2 -2
NTP_4_2_7P477
ntpdc/ntpdc.html@1.313 +2 -2
NTP_4_2_7P477
ntpdc/ntpdc.man.in@1.300 +3 -3
NTP_4_2_7P477
ntpdc/ntpdc.mdoc.in@1.300 +2 -2
NTP_4_2_7P477
ntpq/invoke-ntpq.texi@1.475 +2 -2
NTP_4_2_7P477
ntpq/ntpq-opts.c@1.492 +7 -7
NTP_4_2_7P477
ntpq/ntpq-opts.h@1.490 +3 -3
NTP_4_2_7P477
ntpq/ntpq.1ntpqman@1.303 +3 -3
NTP_4_2_7P477
ntpq/ntpq.1ntpqmdoc@1.303 +2 -2
NTP_4_2_7P477
ntpq/ntpq.html@1.143 +2 -2
NTP_4_2_7P477
ntpq/ntpq.man.in@1.303 +3 -3
NTP_4_2_7P477
ntpq/ntpq.mdoc.in@1.303 +2 -2
NTP_4_2_7P477
ntpsnmpd/invoke-ntpsnmpd.texi@1.471 +2 -2
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd-opts.c@1.489 +7 -7
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd-opts.h@1.488 +3 -3
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.300 +3 -3
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.300 +2 -2
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd.html@1.141 +1 -1
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd.man.in@1.300 +3 -3
NTP_4_2_7P477
ntpsnmpd/ntpsnmpd.mdoc.in@1.300 +2 -2
NTP_4_2_7P477
packageinfo.sh@1.481 +1 -1
NTP_4_2_7P477
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.62 +3 -3
NTP_4_2_7P477
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.62 +2 -2
NTP_4_2_7P477
scripts/calc_tickadj/calc_tickadj.html@1.64 +1 -1
NTP_4_2_7P477
scripts/calc_tickadj/calc_tickadj.man.in@1.61 +3 -3
NTP_4_2_7P477
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.62 +2 -2
NTP_4_2_7P477
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.66 +1 -1
NTP_4_2_7P477
scripts/invoke-plot_summary.texi@1.83 +2 -2
NTP_4_2_7P477
scripts/invoke-summary.texi@1.83 +2 -2
NTP_4_2_7P477
scripts/ntp-wait/invoke-ntp-wait.texi@1.292 +2 -2
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait-opts@1.28 +2 -2
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.290 +3 -3
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.290 +2 -2
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait.html@1.309 +2 -2
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait.man.in@1.290 +3 -3
NTP_4_2_7P477
scripts/ntp-wait/ntp-wait.mdoc.in@1.290 +2 -2
NTP_4_2_7P477
scripts/ntpsweep/invoke-ntpsweep.texi@1.81 +2 -2
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep-opts@1.30 +2 -2
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.69 +3 -3
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.69 +2 -2
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep.html@1.82 +2 -2
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep.man.in@1.69 +3 -3
NTP_4_2_7P477
scripts/ntpsweep/ntpsweep.mdoc.in@1.70 +2 -2
NTP_4_2_7P477
scripts/ntptrace/invoke-ntptrace.texi@1.81 +2 -2
NTP_4_2_7P477
scripts/ntptrace/ntptrace-opts@1.30 +2 -2
NTP_4_2_7P477
scripts/ntptrace/ntptrace.1ntptraceman@1.69 +3 -3
NTP_4_2_7P477
scripts/ntptrace/ntptrace.1ntptracemdoc@1.69 +2 -2
NTP_4_2_7P477
scripts/ntptrace/ntptrace.html@1.82 +2 -2
NTP_4_2_7P477
scripts/ntptrace/ntptrace.man.in@1.69 +3 -3
NTP_4_2_7P477
scripts/ntptrace/ntptrace.mdoc.in@1.70 +2 -2
NTP_4_2_7P477
scripts/plot_summary-opts@1.30 +2 -2
NTP_4_2_7P477
scripts/plot_summary.1plot_summaryman@1.81 +3 -3
NTP_4_2_7P477
scripts/plot_summary.1plot_summarymdoc@1.81 +2 -2
NTP_4_2_7P477
scripts/plot_summary.html@1.84 +2 -2
NTP_4_2_7P477
scripts/plot_summary.man.in@1.81 +3 -3
NTP_4_2_7P477
scripts/plot_summary.mdoc.in@1.81 +2 -2
NTP_4_2_7P477
scripts/summary-opts@1.30 +2 -2
NTP_4_2_7P477
scripts/summary.1summaryman@1.81 +3 -3
NTP_4_2_7P477
scripts/summary.1summarymdoc@1.81 +2 -2
NTP_4_2_7P477
scripts/summary.html@1.84 +2 -2
NTP_4_2_7P477
scripts/summary.man.in@1.81 +3 -3
NTP_4_2_7P477
scripts/summary.mdoc.in@1.81 +2 -2
NTP_4_2_7P477
sntp/invoke-sntp.texi@1.468 +2 -2
NTP_4_2_7P477
sntp/sntp-opts.c@1.486 +7 -7
NTP_4_2_7P477
sntp/sntp-opts.h@1.485 +3 -3
NTP_4_2_7P477
sntp/sntp.1sntpman@1.303 +3 -3
NTP_4_2_7P477
sntp/sntp.1sntpmdoc@1.303 +2 -2
NTP_4_2_7P477
sntp/sntp.html@1.483 +2 -2
NTP_4_2_7P477
sntp/sntp.man.in@1.303 +3 -3
NTP_4_2_7P477
sntp/sntp.mdoc.in@1.303 +2 -2
NTP_4_2_7P477
util/invoke-ntp-keygen.texi@1.472 +2 -2
NTP_4_2_7P477
util/ntp-keygen-opts.c@1.489 +7 -7
NTP_4_2_7P477
util/ntp-keygen-opts.h@1.488 +3 -3
NTP_4_2_7P477
util/ntp-keygen.1ntp-keygenman@1.300 +3 -3
NTP_4_2_7P477
util/ntp-keygen.1ntp-keygenmdoc@1.300 +2 -2
NTP_4_2_7P477
util/ntp-keygen.html@1.147 +2 -2
NTP_4_2_7P477
util/ntp-keygen.man.in@1.300 +3 -3
NTP_4_2_7P477
util/ntp-keygen.mdoc.in@1.300 +2 -2
NTP_4_2_7P477
ChangeSet@1.3223, 2014-11-13 03:05:35+00:00, stenn@psp-fb1.ntp.org
[Bug 2657] Document that "restrict nopeer" interferes with "pool"
ChangeLog@1.1558 +1 -0
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
html/accopt.html@1.43 +4 -3
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/invoke-ntp.conf.texi@1.157 +13 -1
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/ntp.conf.5man@1.191 +16 -3
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/ntp.conf.5mdoc@1.191 +14 -2
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/ntp.conf.def@1.13 +12 -0
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/ntp.conf.man.in@1.191 +16 -3
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ntpd/ntp.conf.mdoc.in@1.191 +14 -2
[Bug 2657] Document that "restrict nopeer" intereferes with "pool"
ChangeSet@1.3222, 2014-10-08 09:36:42+00:00, stenn@deacon.udel.edu
NTP_4_2_7P476
TAG: NTP_4_2_7P476
ChangeLog@1.1557 +1 -0
NTP_4_2_7P476
ntpd/invoke-ntp.conf.texi@1.156 +1 -1
NTP_4_2_7P476
ntpd/invoke-ntp.keys.texi@1.154 +1 -1
NTP_4_2_7P476
ntpd/invoke-ntpd.texi@1.470 +2 -2
NTP_4_2_7P476
ntpd/ntp.conf.5man@1.190 +3 -3
NTP_4_2_7P476
ntpd/ntp.conf.5mdoc@1.190 +2 -2
NTP_4_2_7P476
ntpd/ntp.conf.html@1.150 +1 -1
NTP_4_2_7P476
ntpd/ntp.conf.man.in@1.190 +3 -3
NTP_4_2_7P476
ntpd/ntp.conf.mdoc.in@1.190 +2 -2
NTP_4_2_7P476
ntpd/ntp.keys.5man@1.188 +2 -2
NTP_4_2_7P476
ntpd/ntp.keys.5mdoc@1.188 +2 -2
NTP_4_2_7P476
ntpd/ntp.keys.html@1.151 +1 -1
NTP_4_2_7P476
ntpd/ntp.keys.man.in@1.188 +2 -2
NTP_4_2_7P476
ntpd/ntp.keys.mdoc.in@1.188 +2 -2
NTP_4_2_7P476
ntpd/ntpd-opts.c@1.491 +10 -10
NTP_4_2_7P476
ntpd/ntpd-opts.h@1.490 +3 -3
NTP_4_2_7P476
ntpd/ntpd.1ntpdman@1.299 +3 -3
NTP_4_2_7P476
ntpd/ntpd.1ntpdmdoc@1.299 +2 -2
NTP_4_2_7P476
ntpd/ntpd.html@1.145 +2 -2
NTP_4_2_7P476
ntpd/ntpd.man.in@1.299 +3 -3
NTP_4_2_7P476
ntpd/ntpd.mdoc.in@1.299 +2 -2
NTP_4_2_7P476
ntpdc/invoke-ntpdc.texi@1.468 +2 -2
NTP_4_2_7P476
ntpdc/ntpdc-opts.c@1.486 +10 -10
NTP_4_2_7P476
ntpdc/ntpdc-opts.h@1.485 +3 -3
NTP_4_2_7P476
ntpdc/ntpdc.1ntpdcman@1.299 +3 -3
NTP_4_2_7P476
ntpdc/ntpdc.1ntpdcmdoc@1.299 +2 -2
NTP_4_2_7P476
ntpdc/ntpdc.html@1.312 +2 -2
NTP_4_2_7P476
ntpdc/ntpdc.man.in@1.299 +3 -3
NTP_4_2_7P476
ntpdc/ntpdc.mdoc.in@1.299 +2 -2
NTP_4_2_7P476
ntpq/invoke-ntpq.texi@1.474 +2 -2
NTP_4_2_7P476
ntpq/ntpq-opts.c@1.491 +10 -10
NTP_4_2_7P476
ntpq/ntpq-opts.h@1.489 +3 -3
NTP_4_2_7P476
ntpq/ntpq.1ntpqman@1.302 +3 -3
NTP_4_2_7P476
ntpq/ntpq.1ntpqmdoc@1.302 +2 -2
NTP_4_2_7P476
ntpq/ntpq.html@1.142 +2 -2
NTP_4_2_7P476
ntpq/ntpq.man.in@1.302 +3 -3
NTP_4_2_7P476
ntpq/ntpq.mdoc.in@1.302 +2 -2
NTP_4_2_7P476
ntpsnmpd/invoke-ntpsnmpd.texi@1.470 +2 -2
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd-opts.c@1.488 +10 -10
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd-opts.h@1.487 +3 -3
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.299 +3 -3
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.299 +2 -2
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd.html@1.140 +1 -1
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd.man.in@1.299 +3 -3
NTP_4_2_7P476
ntpsnmpd/ntpsnmpd.mdoc.in@1.299 +2 -2
NTP_4_2_7P476
packageinfo.sh@1.480 +1 -1
NTP_4_2_7P476
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.61 +3 -3
NTP_4_2_7P476
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.61 +2 -2
NTP_4_2_7P476
scripts/calc_tickadj/calc_tickadj.html@1.63 +1 -1
NTP_4_2_7P476
scripts/calc_tickadj/calc_tickadj.man.in@1.60 +3 -3
NTP_4_2_7P476
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.61 +2 -2
NTP_4_2_7P476
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.65 +1 -1
NTP_4_2_7P476
scripts/invoke-plot_summary.texi@1.82 +2 -2
NTP_4_2_7P476
scripts/invoke-summary.texi@1.82 +2 -2
NTP_4_2_7P476
scripts/ntp-wait/invoke-ntp-wait.texi@1.291 +2 -2
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait-opts@1.27 +2 -2
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.289 +3 -3
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.289 +2 -2
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait.html@1.308 +2 -2
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait.man.in@1.289 +3 -3
NTP_4_2_7P476
scripts/ntp-wait/ntp-wait.mdoc.in@1.289 +2 -2
NTP_4_2_7P476
scripts/ntpsweep/invoke-ntpsweep.texi@1.80 +2 -2
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep-opts@1.29 +2 -2
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.68 +3 -3
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.68 +2 -2
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep.html@1.81 +2 -2
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep.man.in@1.68 +3 -3
NTP_4_2_7P476
scripts/ntpsweep/ntpsweep.mdoc.in@1.69 +2 -2
NTP_4_2_7P476
scripts/ntptrace/invoke-ntptrace.texi@1.80 +2 -2
NTP_4_2_7P476
scripts/ntptrace/ntptrace-opts@1.29 +2 -2
NTP_4_2_7P476
scripts/ntptrace/ntptrace.1ntptraceman@1.68 +3 -3
NTP_4_2_7P476
scripts/ntptrace/ntptrace.1ntptracemdoc@1.68 +2 -2
NTP_4_2_7P476
scripts/ntptrace/ntptrace.html@1.81 +2 -2
NTP_4_2_7P476
scripts/ntptrace/ntptrace.man.in@1.68 +3 -3
NTP_4_2_7P476
scripts/ntptrace/ntptrace.mdoc.in@1.69 +2 -2
NTP_4_2_7P476
scripts/plot_summary-opts@1.29 +2 -2
NTP_4_2_7P476
scripts/plot_summary.1plot_summaryman@1.80 +3 -3
NTP_4_2_7P476
scripts/plot_summary.1plot_summarymdoc@1.80 +2 -2
NTP_4_2_7P476
scripts/plot_summary.html@1.83 +2 -2
NTP_4_2_7P476
scripts/plot_summary.man.in@1.80 +3 -3
NTP_4_2_7P476
scripts/plot_summary.mdoc.in@1.80 +2 -2
NTP_4_2_7P476
scripts/summary-opts@1.29 +2 -2
NTP_4_2_7P476
scripts/summary.1summaryman@1.80 +3 -3
NTP_4_2_7P476
scripts/summary.1summarymdoc@1.80 +2 -2
NTP_4_2_7P476
scripts/summary.html@1.83 +2 -2
NTP_4_2_7P476
scripts/summary.man.in@1.80 +3 -3
NTP_4_2_7P476
scripts/summary.mdoc.in@1.80 +2 -2
NTP_4_2_7P476
sntp/invoke-sntp.texi@1.467 +2 -2
NTP_4_2_7P476
sntp/sntp-opts.c@1.485 +10 -10
NTP_4_2_7P476
sntp/sntp-opts.h@1.484 +3 -3
NTP_4_2_7P476
sntp/sntp.1sntpman@1.302 +3 -3
NTP_4_2_7P476
sntp/sntp.1sntpmdoc@1.302 +2 -2
NTP_4_2_7P476
sntp/sntp.html@1.482 +2 -2
NTP_4_2_7P476
sntp/sntp.man.in@1.302 +3 -3
NTP_4_2_7P476
sntp/sntp.mdoc.in@1.302 +2 -2
NTP_4_2_7P476
util/invoke-ntp-keygen.texi@1.471 +2 -2
NTP_4_2_7P476
util/ntp-keygen-opts.c@1.488 +10 -10
NTP_4_2_7P476
util/ntp-keygen-opts.h@1.487 +3 -3
NTP_4_2_7P476
util/ntp-keygen.1ntp-keygenman@1.299 +3 -3
NTP_4_2_7P476
util/ntp-keygen.1ntp-keygenmdoc@1.299 +2 -2
NTP_4_2_7P476
util/ntp-keygen.html@1.146 +2 -2
NTP_4_2_7P476
util/ntp-keygen.man.in@1.299 +3 -3
NTP_4_2_7P476
util/ntp-keygen.mdoc.in@1.299 +2 -2
NTP_4_2_7P476
ChangeSet@1.3221, 2014-10-04 11:53:31+02:00, jnperlin@hydra.(none)
[Bug 2503] sht utility outdated
ChangeLog@1.1556 +1 -0
[Bug 2503] sht utility outdated
util/sht.c@1.5 +147 -72
[Bug 2503] sht utility outdated
ChangeSet@1.3220, 2014-09-11 08:58:05+00:00, stenn@deacon.udel.edu
NTP_4_2_7P475
TAG: NTP_4_2_7P475
ChangeLog@1.1555 +1 -0
NTP_4_2_7P475
ntpd/invoke-ntp.conf.texi@1.155 +1 -1
NTP_4_2_7P475
ntpd/invoke-ntp.keys.texi@1.153 +1 -1
NTP_4_2_7P475
ntpd/invoke-ntpd.texi@1.469 +2 -2
NTP_4_2_7P475
ntpd/ntp.conf.5man@1.189 +3 -3
NTP_4_2_7P475
ntpd/ntp.conf.5mdoc@1.189 +2 -2
NTP_4_2_7P475
ntpd/ntp.conf.html@1.149 +1 -1
NTP_4_2_7P475
ntpd/ntp.conf.man.in@1.189 +3 -3
NTP_4_2_7P475
ntpd/ntp.conf.mdoc.in@1.189 +2 -2
NTP_4_2_7P475
ntpd/ntp.keys.5man@1.187 +2 -2
NTP_4_2_7P475
ntpd/ntp.keys.5mdoc@1.187 +2 -2
NTP_4_2_7P475
ntpd/ntp.keys.html@1.150 +1 -1
NTP_4_2_7P475
ntpd/ntp.keys.man.in@1.187 +2 -2
NTP_4_2_7P475
ntpd/ntp.keys.mdoc.in@1.187 +2 -2
NTP_4_2_7P475
ntpd/ntpd-opts.c@1.490 +7 -7
NTP_4_2_7P475
ntpd/ntpd-opts.h@1.489 +3 -3
NTP_4_2_7P475
ntpd/ntpd.1ntpdman@1.298 +3 -3
NTP_4_2_7P475
ntpd/ntpd.1ntpdmdoc@1.298 +2 -2
NTP_4_2_7P475
ntpd/ntpd.html@1.144 +2 -2
NTP_4_2_7P475
ntpd/ntpd.man.in@1.298 +3 -3
NTP_4_2_7P475
ntpd/ntpd.mdoc.in@1.298 +2 -2
NTP_4_2_7P475
ntpdc/invoke-ntpdc.texi@1.467 +2 -2
NTP_4_2_7P475
ntpdc/ntpdc-opts.c@1.485 +7 -7
NTP_4_2_7P475
ntpdc/ntpdc-opts.h@1.484 +3 -3
NTP_4_2_7P475
ntpdc/ntpdc.1ntpdcman@1.298 +3 -3
NTP_4_2_7P475
ntpdc/ntpdc.1ntpdcmdoc@1.298 +2 -2
NTP_4_2_7P475
ntpdc/ntpdc.html@1.311 +2 -2
NTP_4_2_7P475
ntpdc/ntpdc.man.in@1.298 +3 -3
NTP_4_2_7P475
ntpdc/ntpdc.mdoc.in@1.298 +2 -2
NTP_4_2_7P475
ntpq/invoke-ntpq.texi@1.473 +2 -2
NTP_4_2_7P475
ntpq/ntpq-opts.c@1.490 +7 -7
NTP_4_2_7P475
ntpq/ntpq-opts.h@1.488 +3 -3
NTP_4_2_7P475
ntpq/ntpq.1ntpqman@1.301 +3 -3
NTP_4_2_7P475
ntpq/ntpq.1ntpqmdoc@1.301 +2 -2
NTP_4_2_7P475
ntpq/ntpq.html@1.141 +2 -2
NTP_4_2_7P475
ntpq/ntpq.man.in@1.301 +3 -3
NTP_4_2_7P475
ntpq/ntpq.mdoc.in@1.301 +2 -2
NTP_4_2_7P475
ntpsnmpd/invoke-ntpsnmpd.texi@1.469 +2 -2
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd-opts.c@1.487 +7 -7
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd-opts.h@1.486 +3 -3
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.298 +3 -3
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.298 +2 -2
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd.html@1.139 +1 -1
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd.man.in@1.298 +3 -3
NTP_4_2_7P475
ntpsnmpd/ntpsnmpd.mdoc.in@1.298 +2 -2
NTP_4_2_7P475
packageinfo.sh@1.479 +1 -1
NTP_4_2_7P475
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.60 +3 -3
NTP_4_2_7P475
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.60 +2 -2
NTP_4_2_7P475
scripts/calc_tickadj/calc_tickadj.html@1.62 +1 -1
NTP_4_2_7P475
scripts/calc_tickadj/calc_tickadj.man.in@1.59 +3 -3
NTP_4_2_7P475
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.60 +2 -2
NTP_4_2_7P475
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.64 +1 -1
NTP_4_2_7P475
scripts/invoke-plot_summary.texi@1.81 +2 -2
NTP_4_2_7P475
scripts/invoke-summary.texi@1.81 +2 -2
NTP_4_2_7P475
scripts/ntp-wait/invoke-ntp-wait.texi@1.290 +2 -2
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait-opts@1.26 +2 -2
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.288 +3 -3
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.288 +2 -2
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait.html@1.307 +2 -2
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait.man.in@1.288 +3 -3
NTP_4_2_7P475
scripts/ntp-wait/ntp-wait.mdoc.in@1.288 +2 -2
NTP_4_2_7P475
scripts/ntpsweep/invoke-ntpsweep.texi@1.79 +2 -2
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep-opts@1.28 +2 -2
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.67 +3 -3
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.67 +2 -2
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep.html@1.80 +2 -2
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep.man.in@1.67 +3 -3
NTP_4_2_7P475
scripts/ntpsweep/ntpsweep.mdoc.in@1.68 +2 -2
NTP_4_2_7P475
scripts/ntptrace/invoke-ntptrace.texi@1.79 +2 -2
NTP_4_2_7P475
scripts/ntptrace/ntptrace-opts@1.28 +2 -2
NTP_4_2_7P475
scripts/ntptrace/ntptrace.1ntptraceman@1.67 +3 -3
NTP_4_2_7P475
scripts/ntptrace/ntptrace.1ntptracemdoc@1.67 +2 -2
NTP_4_2_7P475
scripts/ntptrace/ntptrace.html@1.80 +2 -2
NTP_4_2_7P475
scripts/ntptrace/ntptrace.man.in@1.67 +3 -3
NTP_4_2_7P475
scripts/ntptrace/ntptrace.mdoc.in@1.68 +2 -2
NTP_4_2_7P475
scripts/plot_summary-opts@1.28 +2 -2
NTP_4_2_7P475
scripts/plot_summary.1plot_summaryman@1.79 +3 -3
NTP_4_2_7P475
scripts/plot_summary.1plot_summarymdoc@1.79 +2 -2
NTP_4_2_7P475
scripts/plot_summary.html@1.82 +2 -2
NTP_4_2_7P475
scripts/plot_summary.man.in@1.79 +3 -3
NTP_4_2_7P475
scripts/plot_summary.mdoc.in@1.79 +2 -2
NTP_4_2_7P475
scripts/summary-opts@1.28 +2 -2
NTP_4_2_7P475
scripts/summary.1summaryman@1.79 +3 -3
NTP_4_2_7P475
scripts/summary.1summarymdoc@1.79 +2 -2
NTP_4_2_7P475
scripts/summary.html@1.82 +2 -2
NTP_4_2_7P475
scripts/summary.man.in@1.79 +3 -3
NTP_4_2_7P475
scripts/summary.mdoc.in@1.79 +2 -2
NTP_4_2_7P475
sntp/invoke-sntp.texi@1.466 +2 -2
NTP_4_2_7P475
sntp/sntp-opts.c@1.484 +7 -7
NTP_4_2_7P475
sntp/sntp-opts.h@1.483 +3 -3
NTP_4_2_7P475
sntp/sntp.1sntpman@1.301 +3 -3
NTP_4_2_7P475
sntp/sntp.1sntpmdoc@1.301 +2 -2
NTP_4_2_7P475
sntp/sntp.html@1.481 +2 -2
NTP_4_2_7P475
sntp/sntp.man.in@1.301 +3 -3
NTP_4_2_7P475
sntp/sntp.mdoc.in@1.301 +2 -2
NTP_4_2_7P475
util/invoke-ntp-keygen.texi@1.470 +2 -2
NTP_4_2_7P475
util/ntp-keygen-opts.c@1.487 +7 -7
NTP_4_2_7P475
util/ntp-keygen-opts.h@1.486 +3 -3
NTP_4_2_7P475
util/ntp-keygen.1ntp-keygenman@1.298 +3 -3
NTP_4_2_7P475
util/ntp-keygen.1ntp-keygenmdoc@1.298 +2 -2
NTP_4_2_7P475
util/ntp-keygen.html@1.145 +2 -2
NTP_4_2_7P475
util/ntp-keygen.man.in@1.298 +3 -3
NTP_4_2_7P475
util/ntp-keygen.mdoc.in@1.298 +2 -2
NTP_4_2_7P475
ChangeSet@1.3219, 2014-09-10 09:48:50+00:00, stenn@psp-fb1.ntp.org
[Bug 2654] refclock_true.c doesn't identify the Mk III
ChangeLog@1.1554 +1 -0
[Bug 2654] refclock_true.c doesn't identify the Mk III
ntpd/refclock_true.c@1.22 +1 -1
[Bug 2654] refclock_true.c doesn't identify the Mk III
ChangeSet@1.3218, 2014-09-10 09:21:46+00:00, stenn@deacon.udel.edu
NTP_4_2_7P474
TAG: NTP_4_2_7P474
ChangeLog@1.1553 +1 -0
NTP_4_2_7P474
ntpd/invoke-ntp.conf.texi@1.154 +1 -1
NTP_4_2_7P474
ntpd/invoke-ntp.keys.texi@1.152 +1 -1
NTP_4_2_7P474
ntpd/invoke-ntpd.texi@1.468 +2 -2
NTP_4_2_7P474
ntpd/ntp.conf.5man@1.188 +2990 -0
NTP_4_2_7P474
ntpd/ntp.conf.5mdoc@1.188 +2 -2
NTP_4_2_7P474
ntpd/ntp.conf.html@1.148 +1 -1
NTP_4_2_7P474
ntpd/ntp.conf.man.in@1.188 +2990 -0
NTP_4_2_7P474
ntpd/ntp.conf.mdoc.in@1.188 +2 -2
NTP_4_2_7P474
ntpd/ntp.keys.5man@1.186 +2 -2
NTP_4_2_7P474
ntpd/ntp.keys.5mdoc@1.186 +2 -2
NTP_4_2_7P474
ntpd/ntp.keys.html@1.149 +1 -1
NTP_4_2_7P474
ntpd/ntp.keys.man.in@1.186 +2 -2
NTP_4_2_7P474
ntpd/ntp.keys.mdoc.in@1.186 +2 -2
NTP_4_2_7P474
ntpd/ntpd-opts.c@1.489 +7 -7
NTP_4_2_7P474
ntpd/ntpd-opts.h@1.488 +3 -3
NTP_4_2_7P474
ntpd/ntpd.1ntpdman@1.297 +3 -3
NTP_4_2_7P474
ntpd/ntpd.1ntpdmdoc@1.297 +2 -2
NTP_4_2_7P474
ntpd/ntpd.html@1.143 +2 -2
NTP_4_2_7P474
ntpd/ntpd.man.in@1.297 +3 -3
NTP_4_2_7P474
ntpd/ntpd.mdoc.in@1.297 +2 -2
NTP_4_2_7P474
ntpdc/invoke-ntpdc.texi@1.466 +2 -2
NTP_4_2_7P474
ntpdc/ntpdc-opts.c@1.484 +7 -7
NTP_4_2_7P474
ntpdc/ntpdc-opts.h@1.483 +3 -3
NTP_4_2_7P474
ntpdc/ntpdc.1ntpdcman@1.297 +3 -3
NTP_4_2_7P474
ntpdc/ntpdc.1ntpdcmdoc@1.297 +2 -2
NTP_4_2_7P474
ntpdc/ntpdc.html@1.310 +2 -2
NTP_4_2_7P474
ntpdc/ntpdc.man.in@1.297 +3 -3
NTP_4_2_7P474
ntpdc/ntpdc.mdoc.in@1.297 +2 -2
NTP_4_2_7P474
ntpq/invoke-ntpq.texi@1.472 +2 -2
NTP_4_2_7P474
ntpq/ntpq-opts.c@1.489 +7 -7
NTP_4_2_7P474
ntpq/ntpq-opts.h@1.487 +3 -3
NTP_4_2_7P474
ntpq/ntpq.1ntpqman@1.300 +3 -3
NTP_4_2_7P474
ntpq/ntpq.1ntpqmdoc@1.300 +2 -2
NTP_4_2_7P474
ntpq/ntpq.html@1.140 +2 -2
NTP_4_2_7P474
ntpq/ntpq.man.in@1.300 +3 -3
NTP_4_2_7P474
ntpq/ntpq.mdoc.in@1.300 +2 -2
NTP_4_2_7P474
ntpsnmpd/invoke-ntpsnmpd.texi@1.468 +2 -2
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd-opts.c@1.486 +7 -7
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd-opts.h@1.485 +3 -3
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.297 +3 -3
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.297 +2 -2
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd.html@1.138 +1 -1
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd.man.in@1.297 +3 -3
NTP_4_2_7P474
ntpsnmpd/ntpsnmpd.mdoc.in@1.297 +2 -2
NTP_4_2_7P474
packageinfo.sh@1.478 +1 -1
NTP_4_2_7P474
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.59 +3 -3
NTP_4_2_7P474
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.59 +2 -2
NTP_4_2_7P474
scripts/calc_tickadj/calc_tickadj.html@1.61 +1 -1
NTP_4_2_7P474
scripts/calc_tickadj/calc_tickadj.man.in@1.58 +3 -3
NTP_4_2_7P474
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.59 +2 -2
NTP_4_2_7P474
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.63 +1 -1
NTP_4_2_7P474
scripts/invoke-plot_summary.texi@1.80 +2 -2
NTP_4_2_7P474
scripts/invoke-summary.texi@1.80 +2 -2
NTP_4_2_7P474
scripts/ntp-wait/invoke-ntp-wait.texi@1.289 +2 -2
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait-opts@1.25 +2 -2
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.287 +3 -3
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.287 +2 -2
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait.html@1.306 +2 -2
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait.man.in@1.287 +3 -3
NTP_4_2_7P474
scripts/ntp-wait/ntp-wait.mdoc.in@1.287 +2 -2
NTP_4_2_7P474
scripts/ntpsweep/invoke-ntpsweep.texi@1.78 +2 -2
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep-opts@1.27 +2 -2
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.66 +3 -3
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.66 +2 -2
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep.html@1.79 +2 -2
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep.man.in@1.66 +3 -3
NTP_4_2_7P474
scripts/ntpsweep/ntpsweep.mdoc.in@1.67 +2 -2
NTP_4_2_7P474
scripts/ntptrace/invoke-ntptrace.texi@1.78 +2 -2
NTP_4_2_7P474
scripts/ntptrace/ntptrace-opts@1.27 +2 -2
NTP_4_2_7P474
scripts/ntptrace/ntptrace.1ntptraceman@1.66 +3 -3
NTP_4_2_7P474
scripts/ntptrace/ntptrace.1ntptracemdoc@1.66 +2 -2
NTP_4_2_7P474
scripts/ntptrace/ntptrace.html@1.79 +2 -2
NTP_4_2_7P474
scripts/ntptrace/ntptrace.man.in@1.66 +3 -3
NTP_4_2_7P474
scripts/ntptrace/ntptrace.mdoc.in@1.67 +2 -2
NTP_4_2_7P474
scripts/plot_summary-opts@1.27 +2 -2
NTP_4_2_7P474
scripts/plot_summary.1plot_summaryman@1.78 +3 -3
NTP_4_2_7P474
scripts/plot_summary.1plot_summarymdoc@1.78 +2 -2
NTP_4_2_7P474
scripts/plot_summary.html@1.81 +2 -2
NTP_4_2_7P474
scripts/plot_summary.man.in@1.78 +3 -3
NTP_4_2_7P474
scripts/plot_summary.mdoc.in@1.78 +2 -2
NTP_4_2_7P474
scripts/summary-opts@1.27 +2 -2
NTP_4_2_7P474
scripts/summary.1summaryman@1.78 +3 -3
NTP_4_2_7P474
scripts/summary.1summarymdoc@1.78 +2 -2
NTP_4_2_7P474
scripts/summary.html@1.81 +2 -2
NTP_4_2_7P474
scripts/summary.man.in@1.78 +3 -3
NTP_4_2_7P474
scripts/summary.mdoc.in@1.78 +2 -2
NTP_4_2_7P474
sntp/invoke-sntp.texi@1.465 +2 -2
NTP_4_2_7P474
sntp/sntp-opts.c@1.483 +7 -7
NTP_4_2_7P474
sntp/sntp-opts.h@1.482 +3 -3
NTP_4_2_7P474
sntp/sntp.1sntpman@1.300 +3 -3
NTP_4_2_7P474
sntp/sntp.1sntpmdoc@1.300 +2 -2
NTP_4_2_7P474
sntp/sntp.html@1.480 +2 -2
NTP_4_2_7P474
sntp/sntp.man.in@1.300 +3 -3
NTP_4_2_7P474
sntp/sntp.mdoc.in@1.300 +2 -2
NTP_4_2_7P474
util/invoke-ntp-keygen.texi@1.469 +2 -2
NTP_4_2_7P474
util/ntp-keygen-opts.c@1.486 +7 -7
NTP_4_2_7P474
util/ntp-keygen-opts.h@1.485 +3 -3
NTP_4_2_7P474
util/ntp-keygen.1ntp-keygenman@1.297 +3 -3
NTP_4_2_7P474
util/ntp-keygen.1ntp-keygenmdoc@1.297 +2 -2
NTP_4_2_7P474
util/ntp-keygen.html@1.144 +2 -2
NTP_4_2_7P474
util/ntp-keygen.man.in@1.297 +3 -3
NTP_4_2_7P474
util/ntp-keygen.mdoc.in@1.297 +2 -2
NTP_4_2_7P474
ChangeSet@1.3217, 2014-09-10 08:56:05+00:00, stenn@psp-fb1.ntp.org
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeLog@1.1552 +1 -0
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
configure.ac@1.576 +40 -0
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ntpd/ntpd.c@1.157 +4 -4
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeSet@1.3216, 2014-09-10 08:25:33+00:00, stenn@psp-fb1.ntp.org
[Bug 2649] Clean up html/ page installation
ChangeLog@1.1551 +1 -0
[Bug 2649] Clean up html/ page installation
Makefile.am@1.123 +1 -1
[Bug 2649] Clean up html/ page installation
ChangeSet@1.3215, 2014-09-07 02:04:00+00:00, stenn@deacon.udel.edu
NTP_4_2_7P473
TAG: NTP_4_2_7P473
ChangeLog@1.1550 +1 -0
NTP_4_2_7P473
ntpd/invoke-ntp.conf.texi@1.153 +1 -1
NTP_4_2_7P473
ntpd/invoke-ntp.keys.texi@1.151 +1 -1
NTP_4_2_7P473
ntpd/invoke-ntpd.texi@1.467 +2 -2
NTP_4_2_7P473
ntpd/ntp.conf.5man@1.187 +0 -2990
NTP_4_2_7P473
ntpd/ntp.conf.5mdoc@1.187 +1 -1
NTP_4_2_7P473
ntpd/ntp.conf.html@1.147 +1 -1
NTP_4_2_7P473
ntpd/ntp.conf.man.in@1.187 +0 -2990
NTP_4_2_7P473
ntpd/ntp.conf.mdoc.in@1.187 +1 -1
NTP_4_2_7P473
ntpd/ntp.keys.5man@1.185 +2 -2
NTP_4_2_7P473
ntpd/ntp.keys.5mdoc@1.185 +1 -1
NTP_4_2_7P473
ntpd/ntp.keys.html@1.148 +1 -1
NTP_4_2_7P473
ntpd/ntp.keys.man.in@1.185 +2 -2
NTP_4_2_7P473
ntpd/ntp.keys.mdoc.in@1.185 +1 -1
NTP_4_2_7P473
ntpd/ntpd-opts.c@1.488 +7 -7
NTP_4_2_7P473
ntpd/ntpd-opts.h@1.487 +3 -3
NTP_4_2_7P473
ntpd/ntpd.1ntpdman@1.296 +3 -3
NTP_4_2_7P473
ntpd/ntpd.1ntpdmdoc@1.296 +1 -1
NTP_4_2_7P473
ntpd/ntpd.html@1.142 +2 -2
NTP_4_2_7P473
ntpd/ntpd.man.in@1.296 +3 -3
NTP_4_2_7P473
ntpd/ntpd.mdoc.in@1.296 +1 -1
NTP_4_2_7P473
ntpdc/invoke-ntpdc.texi@1.465 +2 -2
NTP_4_2_7P473
ntpdc/ntpdc-opts.c@1.483 +7 -7
NTP_4_2_7P473
ntpdc/ntpdc-opts.h@1.482 +3 -3
NTP_4_2_7P473
ntpdc/ntpdc.1ntpdcman@1.296 +3 -3
NTP_4_2_7P473
ntpdc/ntpdc.1ntpdcmdoc@1.296 +1 -1
NTP_4_2_7P473
ntpdc/ntpdc.html@1.309 +2 -2
NTP_4_2_7P473
ntpdc/ntpdc.man.in@1.296 +3 -3
NTP_4_2_7P473
ntpdc/ntpdc.mdoc.in@1.296 +1 -1
NTP_4_2_7P473
ntpq/invoke-ntpq.texi@1.471 +2 -2
NTP_4_2_7P473
ntpq/ntpq-opts.c@1.488 +7 -7
NTP_4_2_7P473
ntpq/ntpq-opts.h@1.486 +3 -3
NTP_4_2_7P473
ntpq/ntpq.1ntpqman@1.299 +3 -3
NTP_4_2_7P473
ntpq/ntpq.1ntpqmdoc@1.299 +1 -1
NTP_4_2_7P473
ntpq/ntpq.html@1.139 +56 -11
NTP_4_2_7P473
ntpq/ntpq.man.in@1.299 +3 -3
NTP_4_2_7P473
ntpq/ntpq.mdoc.in@1.299 +1 -1
NTP_4_2_7P473
ntpsnmpd/invoke-ntpsnmpd.texi@1.467 +2 -2
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd-opts.c@1.485 +7 -7
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd-opts.h@1.484 +3 -3
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.296 +3 -3
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.296 +1 -1
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd.html@1.137 +1 -1
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd.man.in@1.296 +3 -3
NTP_4_2_7P473
ntpsnmpd/ntpsnmpd.mdoc.in@1.296 +1 -1
NTP_4_2_7P473
packageinfo.sh@1.477 +1 -1
NTP_4_2_7P473
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.58 +3 -3
NTP_4_2_7P473
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.58 +1 -1
NTP_4_2_7P473
scripts/calc_tickadj/calc_tickadj.html@1.60 +1 -1
NTP_4_2_7P473
scripts/calc_tickadj/calc_tickadj.man.in@1.57 +3 -3
NTP_4_2_7P473
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.58 +1 -1
NTP_4_2_7P473
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.62 +1 -1
NTP_4_2_7P473
scripts/invoke-plot_summary.texi@1.79 +1 -1
NTP_4_2_7P473
scripts/invoke-summary.texi@1.79 +1 -1
NTP_4_2_7P473
scripts/ntp-wait/invoke-ntp-wait.texi@1.288 +2 -2
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait-opts@1.24 +2 -2
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.286 +3 -3
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.286 +1 -1
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait.html@1.305 +2 -2
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait.man.in@1.286 +3 -3
NTP_4_2_7P473
scripts/ntp-wait/ntp-wait.mdoc.in@1.286 +1 -1
NTP_4_2_7P473
scripts/ntpsweep/invoke-ntpsweep.texi@1.77 +2 -2
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep-opts@1.26 +2 -2
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.65 +3 -3
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.65 +1 -1
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep.html@1.78 +2 -2
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep.man.in@1.65 +3 -3
NTP_4_2_7P473
scripts/ntpsweep/ntpsweep.mdoc.in@1.66 +1 -1
NTP_4_2_7P473
scripts/ntptrace/invoke-ntptrace.texi@1.77 +2 -2
NTP_4_2_7P473
scripts/ntptrace/ntptrace-opts@1.26 +2 -2
NTP_4_2_7P473
scripts/ntptrace/ntptrace.1ntptraceman@1.65 +3 -3
NTP_4_2_7P473
scripts/ntptrace/ntptrace.1ntptracemdoc@1.65 +1 -1
NTP_4_2_7P473
scripts/ntptrace/ntptrace.html@1.78 +2 -2
NTP_4_2_7P473
scripts/ntptrace/ntptrace.man.in@1.65 +3 -3
NTP_4_2_7P473
scripts/ntptrace/ntptrace.mdoc.in@1.66 +1 -1
NTP_4_2_7P473
scripts/plot_summary-opts@1.26 +1 -1
NTP_4_2_7P473
scripts/plot_summary.1plot_summaryman@1.77 +2 -2
NTP_4_2_7P473
scripts/plot_summary.1plot_summarymdoc@1.77 +1 -1
NTP_4_2_7P473
scripts/plot_summary.html@1.80 +2 -2
NTP_4_2_7P473
scripts/plot_summary.man.in@1.77 +2 -2
NTP_4_2_7P473
scripts/plot_summary.mdoc.in@1.77 +1 -1
NTP_4_2_7P473
scripts/summary-opts@1.26 +1 -1
NTP_4_2_7P473
scripts/summary.1summaryman@1.77 +2 -2
NTP_4_2_7P473
scripts/summary.1summarymdoc@1.77 +1 -1
NTP_4_2_7P473
scripts/summary.html@1.80 +2 -2
NTP_4_2_7P473
scripts/summary.man.in@1.77 +2 -2
NTP_4_2_7P473
scripts/summary.mdoc.in@1.77 +1 -1
NTP_4_2_7P473
sntp/invoke-sntp.texi@1.464 +2 -2
NTP_4_2_7P473
sntp/sntp-opts.c@1.482 +7 -7
NTP_4_2_7P473
sntp/sntp-opts.h@1.481 +3 -3
NTP_4_2_7P473
sntp/sntp.1sntpman@1.299 +3 -3
NTP_4_2_7P473
sntp/sntp.1sntpmdoc@1.299 +1 -1
NTP_4_2_7P473
sntp/sntp.html@1.479 +2 -2
NTP_4_2_7P473
sntp/sntp.man.in@1.299 +3 -3
NTP_4_2_7P473
sntp/sntp.mdoc.in@1.299 +1 -1
NTP_4_2_7P473
util/invoke-ntp-keygen.texi@1.468 +2 -2
NTP_4_2_7P473
util/ntp-keygen-opts.c@1.485 +7 -7
NTP_4_2_7P473
util/ntp-keygen-opts.h@1.484 +3 -3
NTP_4_2_7P473
util/ntp-keygen.1ntp-keygenman@1.296 +3 -3
NTP_4_2_7P473
util/ntp-keygen.1ntp-keygenmdoc@1.296 +1 -1
NTP_4_2_7P473
util/ntp-keygen.html@1.143 +2 -2
NTP_4_2_7P473
util/ntp-keygen.man.in@1.296 +3 -3
NTP_4_2_7P473
util/ntp-keygen.mdoc.in@1.296 +1 -1
NTP_4_2_7P473
ChangeSet@1.3214, 2014-09-06 22:03:18-04:00, stenn@deacon.udel.edu
Autogen DNE fix
scripts/Makefile.am@1.39 +1 -1
Autogen DNE fix
ChangeSet@1.3213, 2014-09-06 05:38:30-04:00, stenn@deacon.udel.edu
[Bug 2649] Clean up html/ page installation
Makefile.am@1.122 +2 -0
[Bug 2649] Clean up html/ page installation
ChangeSet@1.3212, 2014-09-06 09:27:29+00:00, stenn@psp-fb1.ntp.org
[Bug 2649] Clean up html/ page installation
ChangeLog@1.1549 +1 -0
[Bug 2649] Clean up html/ page installation
Makefile.am@1.121 +1 -1
[Bug 2649] Clean up html/ page installation
ChangeSet@1.3211, 2014-09-06 08:58:30+00:00, stenn@deacon.udel.edu
NTP_4_2_7P472
TAG: NTP_4_2_7P472
ChangeLog@1.1548 +1 -0
NTP_4_2_7P472
ntpd/invoke-ntp.conf.texi@1.152 +1 -1
NTP_4_2_7P472
ntpd/invoke-ntp.keys.texi@1.150 +1 -1
NTP_4_2_7P472
ntpd/invoke-ntpd.texi@1.466 +2 -2
NTP_4_2_7P472
ntpd/ntp.conf.5man@1.186 +3 -3
NTP_4_2_7P472
ntpd/ntp.conf.5mdoc@1.186 +2 -2
NTP_4_2_7P472
ntpd/ntp.conf.html@1.146 +1 -1
NTP_4_2_7P472
ntpd/ntp.conf.man.in@1.186 +3 -3
NTP_4_2_7P472
ntpd/ntp.conf.mdoc.in@1.186 +2 -2
NTP_4_2_7P472
ntpd/ntp.keys.5man@1.184 +2 -2
NTP_4_2_7P472
ntpd/ntp.keys.5mdoc@1.184 +2 -2
NTP_4_2_7P472
ntpd/ntp.keys.html@1.147 +1 -1
NTP_4_2_7P472
ntpd/ntp.keys.man.in@1.184 +2 -2
NTP_4_2_7P472
ntpd/ntp.keys.mdoc.in@1.184 +2 -2
NTP_4_2_7P472
ntpd/ntpd-opts.c@1.487 +7 -7
NTP_4_2_7P472
ntpd/ntpd-opts.h@1.486 +3 -3
NTP_4_2_7P472
ntpd/ntpd.1ntpdman@1.295 +3 -3
NTP_4_2_7P472
ntpd/ntpd.1ntpdmdoc@1.295 +2 -2
NTP_4_2_7P472
ntpd/ntpd.html@1.141 +2 -2
NTP_4_2_7P472
ntpd/ntpd.man.in@1.295 +3 -3
NTP_4_2_7P472
ntpd/ntpd.mdoc.in@1.295 +2 -2
NTP_4_2_7P472
ntpdc/invoke-ntpdc.texi@1.464 +2 -2
NTP_4_2_7P472
ntpdc/ntpdc-opts.c@1.482 +7 -7
NTP_4_2_7P472
ntpdc/ntpdc-opts.h@1.481 +3 -3
NTP_4_2_7P472
ntpdc/ntpdc.1ntpdcman@1.295 +3 -3
NTP_4_2_7P472
ntpdc/ntpdc.1ntpdcmdoc@1.295 +2 -2
NTP_4_2_7P472
ntpdc/ntpdc.html@1.308 +2 -2
NTP_4_2_7P472
ntpdc/ntpdc.man.in@1.295 +3 -3
NTP_4_2_7P472
ntpdc/ntpdc.mdoc.in@1.295 +2 -2
NTP_4_2_7P472
ntpq/invoke-ntpq.texi@1.470 +72 -13
NTP_4_2_7P472
ntpq/ntpq-opts.c@1.487 +7 -7
NTP_4_2_7P472
ntpq/ntpq-opts.h@1.485 +3 -3
NTP_4_2_7P472
ntpq/ntpq.1ntpqman@1.298 +119 -15
NTP_4_2_7P472
ntpq/ntpq.1ntpqmdoc@1.298 +92 -14
NTP_4_2_7P472
ntpq/ntpq.html@1.138 +2 -2
NTP_4_2_7P472
ntpq/ntpq.man.in@1.298 +119 -15
NTP_4_2_7P472
ntpq/ntpq.mdoc.in@1.298 +92 -14
NTP_4_2_7P472
ntpsnmpd/invoke-ntpsnmpd.texi@1.466 +2 -2
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd-opts.c@1.484 +7 -7
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd-opts.h@1.483 +3 -3
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.295 +3 -3
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.295 +2 -2
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd.html@1.136 +1 -1
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd.man.in@1.295 +3 -3
NTP_4_2_7P472
ntpsnmpd/ntpsnmpd.mdoc.in@1.295 +2 -2
NTP_4_2_7P472
packageinfo.sh@1.476 +1 -1
NTP_4_2_7P472
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.57 +3 -3
NTP_4_2_7P472
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.57 +2 -2
NTP_4_2_7P472
scripts/calc_tickadj/calc_tickadj.html@1.59 +1 -1
NTP_4_2_7P472
scripts/calc_tickadj/calc_tickadj.man.in@1.56 +3 -3
NTP_4_2_7P472
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.57 +2 -2
NTP_4_2_7P472
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.61 +1 -1
NTP_4_2_7P472
scripts/invoke-plot_summary.texi@1.78 +1 -1
NTP_4_2_7P472
scripts/invoke-summary.texi@1.78 +1 -1
NTP_4_2_7P472
scripts/ntp-wait/invoke-ntp-wait.texi@1.287 +2 -2
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait-opts@1.23 +2 -2
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.285 +3 -3
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.285 +2 -2
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait.html@1.304 +2 -2
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait.man.in@1.285 +3 -3
NTP_4_2_7P472
scripts/ntp-wait/ntp-wait.mdoc.in@1.285 +2 -2
NTP_4_2_7P472
scripts/ntpsweep/invoke-ntpsweep.texi@1.76 +2 -2
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep-opts@1.25 +2 -2
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.64 +3 -3
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.64 +2 -2
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep.html@1.77 +2 -2
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep.man.in@1.64 +3 -3
NTP_4_2_7P472
scripts/ntpsweep/ntpsweep.mdoc.in@1.65 +2 -2
NTP_4_2_7P472
scripts/ntptrace/invoke-ntptrace.texi@1.76 +2 -2
NTP_4_2_7P472
scripts/ntptrace/ntptrace-opts@1.25 +2 -2
NTP_4_2_7P472
scripts/ntptrace/ntptrace.1ntptraceman@1.64 +3 -3
NTP_4_2_7P472
scripts/ntptrace/ntptrace.1ntptracemdoc@1.64 +2 -2
NTP_4_2_7P472
scripts/ntptrace/ntptrace.html@1.77 +2 -2
NTP_4_2_7P472
scripts/ntptrace/ntptrace.man.in@1.64 +3 -3
NTP_4_2_7P472
scripts/ntptrace/ntptrace.mdoc.in@1.65 +2 -2
NTP_4_2_7P472
scripts/plot_summary-opts@1.25 +1 -1
NTP_4_2_7P472
scripts/plot_summary.1plot_summaryman@1.76 +2 -2
NTP_4_2_7P472
scripts/plot_summary.1plot_summarymdoc@1.76 +1 -1
NTP_4_2_7P472
scripts/plot_summary.html@1.79 +2 -2
NTP_4_2_7P472
scripts/plot_summary.man.in@1.76 +2 -2
NTP_4_2_7P472
scripts/plot_summary.mdoc.in@1.76 +1 -1
NTP_4_2_7P472
scripts/summary-opts@1.25 +1 -1
NTP_4_2_7P472
scripts/summary.1summaryman@1.76 +2 -2
NTP_4_2_7P472
scripts/summary.1summarymdoc@1.76 +1 -1
NTP_4_2_7P472
scripts/summary.html@1.79 +2 -2
NTP_4_2_7P472
scripts/summary.man.in@1.76 +2 -2
NTP_4_2_7P472
scripts/summary.mdoc.in@1.76 +1 -1
NTP_4_2_7P472
sntp/invoke-sntp.texi@1.463 +2 -2
NTP_4_2_7P472
sntp/sntp-opts.c@1.481 +7 -7
NTP_4_2_7P472
sntp/sntp-opts.h@1.480 +3 -3
NTP_4_2_7P472
sntp/sntp.1sntpman@1.298 +3 -3
NTP_4_2_7P472
sntp/sntp.1sntpmdoc@1.298 +2 -2
NTP_4_2_7P472
sntp/sntp.html@1.478 +2 -2
NTP_4_2_7P472
sntp/sntp.man.in@1.298 +3 -3
NTP_4_2_7P472
sntp/sntp.mdoc.in@1.298 +2 -2
NTP_4_2_7P472
util/invoke-ntp-keygen.texi@1.467 +2 -2
NTP_4_2_7P472
util/ntp-keygen-opts.c@1.484 +7 -7
NTP_4_2_7P472
util/ntp-keygen-opts.h@1.483 +3 -3
NTP_4_2_7P472
util/ntp-keygen.1ntp-keygenman@1.295 +3 -3
NTP_4_2_7P472
util/ntp-keygen.1ntp-keygenmdoc@1.295 +2 -2
NTP_4_2_7P472
util/ntp-keygen.html@1.142 +2 -2
NTP_4_2_7P472
util/ntp-keygen.man.in@1.295 +3 -3
NTP_4_2_7P472
util/ntp-keygen.mdoc.in@1.295 +2 -2
NTP_4_2_7P472
ChangeSet@1.3210, 2014-09-05 10:34:18+00:00, stenn@psp-deb1.ntp.org
[Bug 2556] mrulist is missing from the generated ntpq man page
ChangeLog@1.1547 +1 -0
[Bug 2556] mrulist is missing from the generated ntpq man page
ntpq/ntpq-opts.def@1.24 +91 -12
[Bug 2556] mrulist is missing from the generated ntpq man page
ChangeSet@1.3209, 2014-09-05 08:58:36+00:00, stenn@deacon.udel.edu
NTP_4_2_7P471
TAG: NTP_4_2_7P471
ChangeLog@1.1546 +1 -0
NTP_4_2_7P471
ntpd/invoke-ntp.conf.texi@1.151 +1 -1
NTP_4_2_7P471
ntpd/invoke-ntp.keys.texi@1.149 +1 -1
NTP_4_2_7P471
ntpd/invoke-ntpd.texi@1.465 +2 -2
NTP_4_2_7P471
ntpd/ntp.conf.5man@1.185 +3 -3
NTP_4_2_7P471
ntpd/ntp.conf.5mdoc@1.185 +2 -2
NTP_4_2_7P471
ntpd/ntp.conf.html@1.145 +1 -1
NTP_4_2_7P471
ntpd/ntp.conf.man.in@1.185 +3 -3
NTP_4_2_7P471
ntpd/ntp.conf.mdoc.in@1.185 +2 -2
NTP_4_2_7P471
ntpd/ntp.keys.5man@1.183 +2 -2
NTP_4_2_7P471
ntpd/ntp.keys.5mdoc@1.183 +2 -2
NTP_4_2_7P471
ntpd/ntp.keys.html@1.146 +1 -1
NTP_4_2_7P471
ntpd/ntp.keys.man.in@1.183 +2 -2
NTP_4_2_7P471
ntpd/ntp.keys.mdoc.in@1.183 +2 -2
NTP_4_2_7P471
ntpd/ntpd-opts.c@1.486 +7 -7
NTP_4_2_7P471
ntpd/ntpd-opts.h@1.485 +3 -3
NTP_4_2_7P471
ntpd/ntpd.1ntpdman@1.294 +3 -3
NTP_4_2_7P471
ntpd/ntpd.1ntpdmdoc@1.294 +2 -2
NTP_4_2_7P471
ntpd/ntpd.html@1.140 +2 -2
NTP_4_2_7P471
ntpd/ntpd.man.in@1.294 +3 -3
NTP_4_2_7P471
ntpd/ntpd.mdoc.in@1.294 +2 -2
NTP_4_2_7P471
ntpdc/invoke-ntpdc.texi@1.463 +2 -2
NTP_4_2_7P471
ntpdc/ntpdc-opts.c@1.481 +7 -7
NTP_4_2_7P471
ntpdc/ntpdc-opts.h@1.480 +3 -3
NTP_4_2_7P471
ntpdc/ntpdc.1ntpdcman@1.294 +3 -3
NTP_4_2_7P471
ntpdc/ntpdc.1ntpdcmdoc@1.294 +2 -2
NTP_4_2_7P471
ntpdc/ntpdc.html@1.307 +2 -2
NTP_4_2_7P471
ntpdc/ntpdc.man.in@1.294 +3 -3
NTP_4_2_7P471
ntpdc/ntpdc.mdoc.in@1.294 +2 -2
NTP_4_2_7P471
ntpq/invoke-ntpq.texi@1.469 +2 -2
NTP_4_2_7P471
ntpq/ntpq-opts.c@1.486 +7 -7
NTP_4_2_7P471
ntpq/ntpq-opts.h@1.484 +3 -3
NTP_4_2_7P471
ntpq/ntpq.1ntpqman@1.297 +3 -3
NTP_4_2_7P471
ntpq/ntpq.1ntpqmdoc@1.297 +2 -2
NTP_4_2_7P471
ntpq/ntpq.html@1.137 +2 -2
NTP_4_2_7P471
ntpq/ntpq.man.in@1.297 +3 -3
NTP_4_2_7P471
ntpq/ntpq.mdoc.in@1.297 +2 -2
NTP_4_2_7P471
ntpsnmpd/invoke-ntpsnmpd.texi@1.465 +2 -2
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd-opts.c@1.483 +7 -7
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd-opts.h@1.482 +3 -3
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.294 +3 -3
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.294 +2 -2
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd.html@1.135 +1 -1
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd.man.in@1.294 +3 -3
NTP_4_2_7P471
ntpsnmpd/ntpsnmpd.mdoc.in@1.294 +2 -2
NTP_4_2_7P471
packageinfo.sh@1.475 +1 -1
NTP_4_2_7P471
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.56 +3 -3
NTP_4_2_7P471
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.56 +2 -2
NTP_4_2_7P471
scripts/calc_tickadj/calc_tickadj.html@1.58 +1 -1
NTP_4_2_7P471
scripts/calc_tickadj/calc_tickadj.man.in@1.55 +3 -3
NTP_4_2_7P471
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.56 +2 -2
NTP_4_2_7P471
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.60 +1 -1
NTP_4_2_7P471
scripts/invoke-plot_summary.texi@1.77 +1 -1
NTP_4_2_7P471
scripts/invoke-summary.texi@1.77 +1 -1
NTP_4_2_7P471
scripts/ntp-wait/invoke-ntp-wait.texi@1.286 +2 -2
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait-opts@1.22 +2 -2
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.284 +3 -3
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.284 +2 -2
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait.html@1.303 +2 -2
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait.man.in@1.284 +3 -3
NTP_4_2_7P471
scripts/ntp-wait/ntp-wait.mdoc.in@1.284 +2 -2
NTP_4_2_7P471
scripts/ntpsweep/invoke-ntpsweep.texi@1.75 +2 -2
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep-opts@1.24 +2 -2
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.63 +3 -3
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.63 +2 -2
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep.html@1.76 +2 -2
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep.man.in@1.63 +3 -3
NTP_4_2_7P471
scripts/ntpsweep/ntpsweep.mdoc.in@1.64 +2 -2
NTP_4_2_7P471
scripts/ntptrace/invoke-ntptrace.texi@1.75 +2 -2
NTP_4_2_7P471
scripts/ntptrace/ntptrace-opts@1.24 +2 -2
NTP_4_2_7P471
scripts/ntptrace/ntptrace.1ntptraceman@1.63 +3 -3
NTP_4_2_7P471
scripts/ntptrace/ntptrace.1ntptracemdoc@1.63 +2 -2
NTP_4_2_7P471
scripts/ntptrace/ntptrace.html@1.76 +2 -2
NTP_4_2_7P471
scripts/ntptrace/ntptrace.man.in@1.63 +3 -3
NTP_4_2_7P471
scripts/ntptrace/ntptrace.mdoc.in@1.64 +2 -2
NTP_4_2_7P471
scripts/plot_summary-opts@1.24 +1 -1
NTP_4_2_7P471
scripts/plot_summary.1plot_summaryman@1.75 +2 -2
NTP_4_2_7P471
scripts/plot_summary.1plot_summarymdoc@1.75 +1 -1
NTP_4_2_7P471
scripts/plot_summary.html@1.78 +2 -2
NTP_4_2_7P471
scripts/plot_summary.man.in@1.75 +2 -2
NTP_4_2_7P471
scripts/plot_summary.mdoc.in@1.75 +1 -1
NTP_4_2_7P471
scripts/summary-opts@1.24 +1 -1
NTP_4_2_7P471
scripts/summary.1summaryman@1.75 +2 -2
NTP_4_2_7P471
scripts/summary.1summarymdoc@1.75 +1 -1
NTP_4_2_7P471
scripts/summary.html@1.78 +2 -2
NTP_4_2_7P471
scripts/summary.man.in@1.75 +2 -2
NTP_4_2_7P471
scripts/summary.mdoc.in@1.75 +1 -1
NTP_4_2_7P471
sntp/invoke-sntp.texi@1.462 +2 -2
NTP_4_2_7P471
sntp/sntp-opts.c@1.480 +7 -7
NTP_4_2_7P471
sntp/sntp-opts.h@1.479 +3 -3
NTP_4_2_7P471
sntp/sntp.1sntpman@1.297 +3 -3
NTP_4_2_7P471
sntp/sntp.1sntpmdoc@1.297 +2 -2
NTP_4_2_7P471
sntp/sntp.html@1.477 +2 -2
NTP_4_2_7P471
sntp/sntp.man.in@1.297 +3 -3
NTP_4_2_7P471
sntp/sntp.mdoc.in@1.297 +2 -2
NTP_4_2_7P471
util/invoke-ntp-keygen.texi@1.466 +2 -2
NTP_4_2_7P471
util/ntp-keygen-opts.c@1.483 +7 -7
NTP_4_2_7P471
util/ntp-keygen-opts.h@1.482 +3 -3
NTP_4_2_7P471
util/ntp-keygen.1ntp-keygenman@1.294 +3 -3
NTP_4_2_7P471
util/ntp-keygen.1ntp-keygenmdoc@1.294 +2 -2
NTP_4_2_7P471
util/ntp-keygen.html@1.141 +2 -2
NTP_4_2_7P471
util/ntp-keygen.man.in@1.294 +3 -3
NTP_4_2_7P471
util/ntp-keygen.mdoc.in@1.294 +2 -2
NTP_4_2_7P471
ChangeSet@1.3208, 2014-09-05 02:34:19+00:00, stenn@psp-fb1.ntp.org
[Bug 2649] "make install" leaves wrong owner for files in html/
ChangeLog@1.1545 +1 -0
[Bug 2649] "make install" leaves wrong owner for files in html/
Makefile.am@1.120 +2 -2
[Bug 2649] "make install" leaves wrong owner for files in html/
ChangeSet@1.3207, 2014-09-05 02:29:49+00:00, stenn@psp-fb1.ntp.org
[Bug 2652] Windows hates directory names that contain a :
ChangeLog@1.1544 +1 -0
[Bug 2652] Windows hates directory names that contain a :
sntp/ag-tpl/0-old/Mdoc.pm@1.4 +0 -0
Rename: sntp/ag-tpl/:Old/Mdoc.pm -> sntp/ag-tpl/0-old/Mdoc.pm
sntp/ag-tpl/0-old/agman-cmd.tpl@1.3 +0 -0
Rename: sntp/ag-tpl/:Old/agman-cmd.tpl -> sntp/ag-tpl/0-old/agman-cmd.tpl
sntp/ag-tpl/0-old/agmdoc-cmd.tpl@1.4 +0 -0
Rename: sntp/ag-tpl/:Old/agmdoc-cmd.tpl -> sntp/ag-tpl/0-old/agmdoc-cmd.tpl
sntp/ag-tpl/0-old/cmd-doc.tlib@1.3 +0 -0
Rename: sntp/ag-tpl/:Old/cmd-doc.tlib -> sntp/ag-tpl/0-old/cmd-doc.tlib
sntp/ag-tpl/0-old/mdoc-synopsis.tlib@1.3 +0 -0
Rename: sntp/ag-tpl/:Old/mdoc-synopsis.tlib -> sntp/ag-tpl/0-old/mdoc-synopsis.tlib
sntp/ag-tpl/0-old/mdoc2man@1.4 +0 -0
Rename: sntp/ag-tpl/:Old/mdoc2man -> sntp/ag-tpl/0-old/mdoc2man
sntp/ag-tpl/0-old/mdoc2texi@1.11 +0 -0
Rename: sntp/ag-tpl/:Old/mdoc2texi -> sntp/ag-tpl/0-old/mdoc2texi
sntp/ag-tpl/0-old/perlopt.tpl@1.5 +0 -0
Rename: sntp/ag-tpl/:Old/perlopt.tpl -> sntp/ag-tpl/0-old/perlopt.tpl
ChangeSet@1.3206, 2014-09-02 08:58:48+00:00, stenn@deacon.udel.edu
NTP_4_2_7P470
TAG: NTP_4_2_7P470
ChangeLog@1.1543 +1 -0
NTP_4_2_7P470
ntpd/invoke-ntp.conf.texi@1.150 +1 -1
NTP_4_2_7P470
ntpd/invoke-ntp.keys.texi@1.148 +1 -1
NTP_4_2_7P470
ntpd/invoke-ntpd.texi@1.464 +2 -2
NTP_4_2_7P470
ntpd/ntp.conf.5man@1.184 +3 -54
NTP_4_2_7P470
ntpd/ntp.conf.5mdoc@1.184 +2 -44
NTP_4_2_7P470
ntpd/ntp.conf.html@1.144 +1 -1
NTP_4_2_7P470
ntpd/ntp.conf.man.in@1.184 +3 -54
NTP_4_2_7P470
ntpd/ntp.conf.mdoc.in@1.184 +2 -44
NTP_4_2_7P470
ntpd/ntp.keys.5man@1.182 +2 -43
NTP_4_2_7P470
ntpd/ntp.keys.5mdoc@1.182 +2 -44
NTP_4_2_7P470
ntpd/ntp.keys.html@1.145 +1 -1
NTP_4_2_7P470
ntpd/ntp.keys.man.in@1.182 +2 -43
NTP_4_2_7P470
ntpd/ntp.keys.mdoc.in@1.182 +2 -44
NTP_4_2_7P470
ntpd/ntpd-opts.c@1.485 +7 -7
NTP_4_2_7P470
ntpd/ntpd-opts.h@1.484 +3 -3
NTP_4_2_7P470
ntpd/ntpd.1ntpdman@1.293 +3 -54
NTP_4_2_7P470
ntpd/ntpd.1ntpdmdoc@1.293 +2 -44
NTP_4_2_7P470
ntpd/ntpd.html@1.139 +2 -2
NTP_4_2_7P470
ntpd/ntpd.man.in@1.293 +3 -54
NTP_4_2_7P470
ntpd/ntpd.mdoc.in@1.293 +2 -44
NTP_4_2_7P470
ntpdc/invoke-ntpdc.texi@1.462 +2 -2
NTP_4_2_7P470
ntpdc/ntpdc-opts.c@1.480 +7 -7
NTP_4_2_7P470
ntpdc/ntpdc-opts.h@1.479 +3 -3
NTP_4_2_7P470
ntpdc/ntpdc.1ntpdcman@1.293 +3 -54
NTP_4_2_7P470
ntpdc/ntpdc.1ntpdcmdoc@1.293 +2 -44
NTP_4_2_7P470
ntpdc/ntpdc.html@1.306 +2 -2
NTP_4_2_7P470
ntpdc/ntpdc.man.in@1.293 +3 -54
NTP_4_2_7P470
ntpdc/ntpdc.mdoc.in@1.293 +2 -44
NTP_4_2_7P470
ntpq/invoke-ntpq.texi@1.468 +2 -2
NTP_4_2_7P470
ntpq/ntpq-opts.c@1.485 +7 -7
NTP_4_2_7P470
ntpq/ntpq-opts.h@1.483 +3 -3
NTP_4_2_7P470
ntpq/ntpq.1ntpqman@1.296 +3 -54
NTP_4_2_7P470
ntpq/ntpq.1ntpqmdoc@1.296 +2 -44
NTP_4_2_7P470
ntpq/ntpq.html@1.136 +2 -2
NTP_4_2_7P470
ntpq/ntpq.man.in@1.296 +3 -54
NTP_4_2_7P470
ntpq/ntpq.mdoc.in@1.296 +2 -44
NTP_4_2_7P470
ntpsnmpd/invoke-ntpsnmpd.texi@1.464 +2 -2
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd-opts.c@1.482 +7 -7
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd-opts.h@1.481 +3 -3
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.293 +3 -54
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.293 +2 -44
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd.html@1.134 +1 -1
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd.man.in@1.293 +3 -54
NTP_4_2_7P470
ntpsnmpd/ntpsnmpd.mdoc.in@1.293 +2 -44
NTP_4_2_7P470
packageinfo.sh@1.474 +1 -1
NTP_4_2_7P470
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.55 +3 -54
NTP_4_2_7P470
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.55 +2 -44
NTP_4_2_7P470
scripts/calc_tickadj/calc_tickadj.html@1.57 +1 -1
NTP_4_2_7P470
scripts/calc_tickadj/calc_tickadj.man.in@1.54 +3 -54
NTP_4_2_7P470
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.55 +2 -44
NTP_4_2_7P470
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.59 +1 -1
NTP_4_2_7P470
scripts/invoke-plot_summary.texi@1.76 +1 -1
NTP_4_2_7P470
scripts/invoke-summary.texi@1.76 +1 -1
NTP_4_2_7P470
scripts/ntp-wait/invoke-ntp-wait.texi@1.285 +2 -2
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait-opts@1.21 +2 -2
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.283 +3 -54
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.283 +2 -44
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait.html@1.302 +2 -2
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait.man.in@1.283 +3 -54
NTP_4_2_7P470
scripts/ntp-wait/ntp-wait.mdoc.in@1.283 +2 -44
NTP_4_2_7P470
scripts/ntpsweep/invoke-ntpsweep.texi@1.74 +2 -2
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep-opts@1.23 +2 -2
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.62 +3 -54
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.62 +2 -44
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep.html@1.75 +2 -2
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep.man.in@1.62 +3 -54
NTP_4_2_7P470
scripts/ntpsweep/ntpsweep.mdoc.in@1.63 +2 -44
NTP_4_2_7P470
scripts/ntptrace/invoke-ntptrace.texi@1.74 +2 -2
NTP_4_2_7P470
scripts/ntptrace/ntptrace-opts@1.23 +2 -2
NTP_4_2_7P470
scripts/ntptrace/ntptrace.1ntptraceman@1.62 +3 -54
NTP_4_2_7P470
scripts/ntptrace/ntptrace.1ntptracemdoc@1.62 +2 -44
NTP_4_2_7P470
scripts/ntptrace/ntptrace.html@1.75 +2 -2
NTP_4_2_7P470
scripts/ntptrace/ntptrace.man.in@1.62 +3 -54
NTP_4_2_7P470
scripts/ntptrace/ntptrace.mdoc.in@1.63 +2 -44
NTP_4_2_7P470
scripts/plot_summary-opts@1.23 +1 -1
NTP_4_2_7P470
scripts/plot_summary.1plot_summaryman@1.74 +2 -54
NTP_4_2_7P470
scripts/plot_summary.1plot_summarymdoc@1.74 +1 -44
NTP_4_2_7P470
scripts/plot_summary.html@1.77 +2 -2
NTP_4_2_7P470
scripts/plot_summary.man.in@1.74 +2 -54
NTP_4_2_7P470
scripts/plot_summary.mdoc.in@1.74 +1 -44
NTP_4_2_7P470
scripts/summary-opts@1.23 +1 -1
NTP_4_2_7P470
scripts/summary.1summaryman@1.74 +2 -53
NTP_4_2_7P470
scripts/summary.1summarymdoc@1.74 +1 -43
NTP_4_2_7P470
scripts/summary.html@1.77 +2 -2
NTP_4_2_7P470
scripts/summary.man.in@1.74 +2 -53
NTP_4_2_7P470
scripts/summary.mdoc.in@1.74 +1 -43
NTP_4_2_7P470
sntp/invoke-sntp.texi@1.461 +2 -2
NTP_4_2_7P470
sntp/sntp-opts.c@1.479 +7 -7
NTP_4_2_7P470
sntp/sntp-opts.h@1.478 +3 -3
NTP_4_2_7P470
sntp/sntp.1sntpman@1.296 +3 -54
NTP_4_2_7P470
sntp/sntp.1sntpmdoc@1.296 +2 -44
NTP_4_2_7P470
sntp/sntp.html@1.476 +2 -2
NTP_4_2_7P470
sntp/sntp.man.in@1.296 +3 -54
NTP_4_2_7P470
sntp/sntp.mdoc.in@1.296 +2 -44
NTP_4_2_7P470
util/invoke-ntp-keygen.texi@1.465 +2 -2
NTP_4_2_7P470
util/ntp-keygen-opts.c@1.482 +7 -7
NTP_4_2_7P470
util/ntp-keygen-opts.h@1.481 +3 -3
NTP_4_2_7P470
util/ntp-keygen.1ntp-keygenman@1.293 +3 -54
NTP_4_2_7P470
util/ntp-keygen.1ntp-keygenmdoc@1.293 +2 -44
NTP_4_2_7P470
util/ntp-keygen.html@1.140 +2 -2
NTP_4_2_7P470
util/ntp-keygen.man.in@1.293 +3 -54
NTP_4_2_7P470
util/ntp-keygen.mdoc.in@1.293 +2 -44
NTP_4_2_7P470
ChangeSet@1.3205, 2014-09-01 23:43:55-04:00, stenn@pogo.udel.edu
html/ cleanups from Hal Murray
ChangeLog@1.1542 +1 -0
html/ cleanups from Hal Murray
html/clockopt.html@1.25 +1 -1
html/ cleanups from Hal Murray
html/miscopt.html@1.79 +2 -2
html/ cleanups from Hal Murray
html/refclock.html@1.44 +1 -1
html/ cleanups from Hal Murray
ChangeSet@1.3204, 2014-09-01 19:13:08-04:00, stenn@deacon.udel.edu
autogen-5.18.5pre1 fixes [Bug 2502] Autogen text replacement errors
ChangeLog@1.1541 +2 -0
autogen-5.18.5pre1 fixes [Bug 2502] Autogen text replacement errors
ChangeSet@1.3203, 2014-09-01 08:58:56+00:00, stenn@deacon.udel.edu
NTP_4_2_7P469
TAG: NTP_4_2_7P469
ChangeLog@1.1540 +1 -0
NTP_4_2_7P469
ntpd/invoke-ntp.conf.texi@1.149 +1 -1
NTP_4_2_7P469
ntpd/invoke-ntp.keys.texi@1.147 +1 -1
NTP_4_2_7P469
ntpd/invoke-ntpd.texi@1.463 +2 -2
NTP_4_2_7P469
ntpd/ntp.conf.5man@1.183 +16 -6
NTP_4_2_7P469
ntpd/ntp.conf.5mdoc@1.183 +12 -2
NTP_4_2_7P469
ntpd/ntp.conf.html@1.143 +1 -1
NTP_4_2_7P469
ntpd/ntp.conf.man.in@1.183 +16 -6
NTP_4_2_7P469
ntpd/ntp.conf.mdoc.in@1.183 +12 -2
NTP_4_2_7P469
ntpd/ntp.keys.5man@1.181 +12 -2
NTP_4_2_7P469
ntpd/ntp.keys.5mdoc@1.181 +12 -2
NTP_4_2_7P469
ntpd/ntp.keys.html@1.144 +1 -1
NTP_4_2_7P469
ntpd/ntp.keys.man.in@1.181 +12 -2
NTP_4_2_7P469
ntpd/ntp.keys.mdoc.in@1.181 +12 -2
NTP_4_2_7P469
ntpd/ntpd-opts.c@1.484 +7 -7
NTP_4_2_7P469
ntpd/ntpd-opts.h@1.483 +3 -3
NTP_4_2_7P469
ntpd/ntpd.1ntpdman@1.292 +16 -6
NTP_4_2_7P469
ntpd/ntpd.1ntpdmdoc@1.292 +12 -2
NTP_4_2_7P469
ntpd/ntpd.html@1.138 +4 -4
NTP_4_2_7P469
ntpd/ntpd.man.in@1.292 +16 -6
NTP_4_2_7P469
ntpd/ntpd.mdoc.in@1.292 +12 -2
NTP_4_2_7P469
ntpdc/invoke-ntpdc.texi@1.461 +2 -2
NTP_4_2_7P469
ntpdc/ntpdc-opts.c@1.479 +7 -7
NTP_4_2_7P469
ntpdc/ntpdc-opts.h@1.478 +3 -3
NTP_4_2_7P469
ntpdc/ntpdc.1ntpdcman@1.292 +16 -6
NTP_4_2_7P469
ntpdc/ntpdc.1ntpdcmdoc@1.292 +12 -2
NTP_4_2_7P469
ntpdc/ntpdc.html@1.305 +2 -2
NTP_4_2_7P469
ntpdc/ntpdc.man.in@1.292 +16 -6
NTP_4_2_7P469
ntpdc/ntpdc.mdoc.in@1.292 +12 -2
NTP_4_2_7P469
ntpq/invoke-ntpq.texi@1.467 +2 -2
NTP_4_2_7P469
ntpq/ntpq-opts.c@1.484 +7 -7
NTP_4_2_7P469
ntpq/ntpq-opts.h@1.482 +3 -3
NTP_4_2_7P469
ntpq/ntpq.1ntpqman@1.295 +16 -6
NTP_4_2_7P469
ntpq/ntpq.1ntpqmdoc@1.295 +12 -2
NTP_4_2_7P469
ntpq/ntpq.html@1.135 +2 -2
NTP_4_2_7P469
ntpq/ntpq.man.in@1.295 +16 -6
NTP_4_2_7P469
ntpq/ntpq.mdoc.in@1.295 +12 -2
NTP_4_2_7P469
ntpsnmpd/invoke-ntpsnmpd.texi@1.463 +2 -2
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd-opts.c@1.481 +7 -7
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd-opts.h@1.480 +3 -3
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.292 +23 -13
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.292 +12 -2
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd.html@1.133 +1 -1
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd.man.in@1.292 +23 -13
NTP_4_2_7P469
ntpsnmpd/ntpsnmpd.mdoc.in@1.292 +12 -2
NTP_4_2_7P469
packageinfo.sh@1.473 +1 -1
NTP_4_2_7P469
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.54 +16 -6
NTP_4_2_7P469
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.54 +12 -2
NTP_4_2_7P469
scripts/calc_tickadj/calc_tickadj.html@1.56 +1 -1
NTP_4_2_7P469
scripts/calc_tickadj/calc_tickadj.man.in@1.53 +16 -6
NTP_4_2_7P469
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.54 +12 -2
NTP_4_2_7P469
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.58 +1 -1
NTP_4_2_7P469
scripts/invoke-plot_summary.texi@1.75 +1 -1
NTP_4_2_7P469
scripts/invoke-summary.texi@1.75 +1 -1
NTP_4_2_7P469
scripts/ntp-wait/invoke-ntp-wait.texi@1.284 +2 -2
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait-opts@1.20 +2 -2
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.282 +16 -6
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.282 +12 -2
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait.html@1.301 +2 -2
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait.man.in@1.282 +16 -6
NTP_4_2_7P469
scripts/ntp-wait/ntp-wait.mdoc.in@1.282 +12 -2
NTP_4_2_7P469
scripts/ntpsweep/invoke-ntpsweep.texi@1.73 +2 -2
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep-opts@1.22 +2 -2
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.61 +16 -6
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.61 +12 -2
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep.html@1.74 +2 -2
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep.man.in@1.61 +16 -6
NTP_4_2_7P469
scripts/ntpsweep/ntpsweep.mdoc.in@1.62 +12 -2
NTP_4_2_7P469
scripts/ntptrace/invoke-ntptrace.texi@1.73 +2 -2
NTP_4_2_7P469
scripts/ntptrace/ntptrace-opts@1.22 +2 -2
NTP_4_2_7P469
scripts/ntptrace/ntptrace.1ntptraceman@1.61 +23 -13
NTP_4_2_7P469
scripts/ntptrace/ntptrace.1ntptracemdoc@1.61 +12 -2
NTP_4_2_7P469
scripts/ntptrace/ntptrace.html@1.74 +2 -2
NTP_4_2_7P469
scripts/ntptrace/ntptrace.man.in@1.61 +23 -13
NTP_4_2_7P469
scripts/ntptrace/ntptrace.mdoc.in@1.62 +12 -2
NTP_4_2_7P469
scripts/plot_summary-opts@1.22 +1 -1
NTP_4_2_7P469
scripts/plot_summary.1plot_summaryman@1.73 +14 -4
NTP_4_2_7P469
scripts/plot_summary.1plot_summarymdoc@1.73 +11 -1
NTP_4_2_7P469
scripts/plot_summary.html@1.76 +2 -2
NTP_4_2_7P469
scripts/plot_summary.man.in@1.73 +14 -4
NTP_4_2_7P469
scripts/plot_summary.mdoc.in@1.73 +11 -1
NTP_4_2_7P469
scripts/summary-opts@1.22 +1 -1
NTP_4_2_7P469
scripts/summary.1summaryman@1.73 +14 -4
NTP_4_2_7P469
scripts/summary.1summarymdoc@1.73 +11 -1
NTP_4_2_7P469
scripts/summary.html@1.76 +2 -2
NTP_4_2_7P469
scripts/summary.man.in@1.73 +14 -4
NTP_4_2_7P469
scripts/summary.mdoc.in@1.73 +11 -1
NTP_4_2_7P469
sntp/invoke-sntp.texi@1.460 +2 -2
NTP_4_2_7P469
sntp/sntp-opts.c@1.478 +7 -7
NTP_4_2_7P469
sntp/sntp-opts.h@1.477 +3 -3
NTP_4_2_7P469
sntp/sntp.1sntpman@1.295 +16 -6
NTP_4_2_7P469
sntp/sntp.1sntpmdoc@1.295 +12 -2
NTP_4_2_7P469
sntp/sntp.html@1.475 +2 -2
NTP_4_2_7P469
sntp/sntp.man.in@1.295 +16 -6
NTP_4_2_7P469
sntp/sntp.mdoc.in@1.295 +12 -2
NTP_4_2_7P469
util/invoke-ntp-keygen.texi@1.464 +2 -2
NTP_4_2_7P469
util/ntp-keygen-opts.c@1.481 +7 -7
NTP_4_2_7P469
util/ntp-keygen-opts.h@1.480 +3 -3
NTP_4_2_7P469
util/ntp-keygen.1ntp-keygenman@1.292 +16 -6
NTP_4_2_7P469
util/ntp-keygen.1ntp-keygenmdoc@1.292 +12 -2
NTP_4_2_7P469
util/ntp-keygen.html@1.139 +2 -2
NTP_4_2_7P469
util/ntp-keygen.man.in@1.292 +16 -6
NTP_4_2_7P469
util/ntp-keygen.mdoc.in@1.292 +12 -2
NTP_4_2_7P469
ChangeSet@1.3202, 2014-09-01 03:12:34+00:00, stenn@psp-deb1.ntp.org
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeLog@1.1539 +1 -0
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ntpd/ntpd.c@1.156 +2 -2
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeSet@1.3201, 2014-08-31 09:00:12+00:00, stenn@deacon.udel.edu
NTP_4_2_7P468
TAG: NTP_4_2_7P468
ChangeLog@1.1538 +1 -0
NTP_4_2_7P468
ntpd/invoke-ntp.conf.texi@1.148 +1 -1
NTP_4_2_7P468
ntpd/invoke-ntp.keys.texi@1.146 +1 -1
NTP_4_2_7P468
ntpd/invoke-ntpd.texi@1.462 +4 -4
NTP_4_2_7P468
ntpd/ntp.conf.5man@1.182 +44 -3
NTP_4_2_7P468
ntpd/ntp.conf.5mdoc@1.182 +32 -1
NTP_4_2_7P468
ntpd/ntp.conf.html@1.142 +1 -1
NTP_4_2_7P468
ntpd/ntp.conf.man.in@1.182 +44 -3
NTP_4_2_7P468
ntpd/ntp.conf.mdoc.in@1.182 +32 -1
NTP_4_2_7P468
ntpd/ntp.keys.5man@1.180 +33 -2
NTP_4_2_7P468
ntpd/ntp.keys.5mdoc@1.180 +33 -2
NTP_4_2_7P468
ntpd/ntp.keys.html@1.143 +1 -1
NTP_4_2_7P468
ntpd/ntp.keys.man.in@1.180 +33 -2
NTP_4_2_7P468
ntpd/ntp.keys.mdoc.in@1.180 +33 -2
NTP_4_2_7P468
ntpd/ntpd-opts.c@1.483 +7 -7
NTP_4_2_7P468
ntpd/ntpd-opts.h@1.482 +3 -3
NTP_4_2_7P468
ntpd/ntpd.1ntpdman@1.291 +44 -3
NTP_4_2_7P468
ntpd/ntpd.1ntpdmdoc@1.291 +32 -1
NTP_4_2_7P468
ntpd/ntpd.html@1.137 +4 -4
NTP_4_2_7P468
ntpd/ntpd.man.in@1.291 +44 -3
NTP_4_2_7P468
ntpd/ntpd.mdoc.in@1.291 +32 -1
NTP_4_2_7P468
ntpdc/invoke-ntpdc.texi@1.460 +2 -2
NTP_4_2_7P468
ntpdc/ntpdc-opts.c@1.478 +7 -7
NTP_4_2_7P468
ntpdc/ntpdc-opts.h@1.477 +3 -3
NTP_4_2_7P468
ntpdc/ntpdc.1ntpdcman@1.291 +44 -3
NTP_4_2_7P468
ntpdc/ntpdc.1ntpdcmdoc@1.291 +32 -1
NTP_4_2_7P468
ntpdc/ntpdc.html@1.304 +57 -77
NTP_4_2_7P468
ntpdc/ntpdc.man.in@1.291 +44 -3
NTP_4_2_7P468
ntpdc/ntpdc.mdoc.in@1.291 +32 -1
NTP_4_2_7P468
ntpq/invoke-ntpq.texi@1.466 +2 -2
NTP_4_2_7P468
ntpq/ntpq-opts.c@1.483 +7 -7
NTP_4_2_7P468
ntpq/ntpq-opts.h@1.481 +3 -3
NTP_4_2_7P468
ntpq/ntpq.1ntpqman@1.294 +44 -3
NTP_4_2_7P468
ntpq/ntpq.1ntpqmdoc@1.294 +32 -1
NTP_4_2_7P468
ntpq/ntpq.html@1.134 +3 -3
NTP_4_2_7P468
ntpq/ntpq.man.in@1.294 +44 -3
NTP_4_2_7P468
ntpq/ntpq.mdoc.in@1.294 +32 -1
NTP_4_2_7P468
ntpsnmpd/invoke-ntpsnmpd.texi@1.462 +2 -2
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd-opts.c@1.480 +7 -7
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd-opts.h@1.479 +3 -3
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.291 +44 -3
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.291 +32 -1
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd.html@1.132 +1 -1
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd.man.in@1.291 +44 -3
NTP_4_2_7P468
ntpsnmpd/ntpsnmpd.mdoc.in@1.291 +32 -1
NTP_4_2_7P468
packageinfo.sh@1.472 +1 -1
NTP_4_2_7P468
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.53 +44 -3
NTP_4_2_7P468
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.53 +32 -1
NTP_4_2_7P468
scripts/calc_tickadj/calc_tickadj.html@1.55 +23 -35
NTP_4_2_7P468
scripts/calc_tickadj/calc_tickadj.man.in@1.52 +44 -3
NTP_4_2_7P468
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.53 +32 -1
NTP_4_2_7P468
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.57 +2 -2
NTP_4_2_7P468
scripts/invoke-plot_summary.texi@1.74 +1 -1
NTP_4_2_7P468
scripts/invoke-summary.texi@1.74 +1 -1
NTP_4_2_7P468
scripts/ntp-wait/invoke-ntp-wait.texi@1.283 +2 -2
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait-opts@1.19 +2 -2
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.281 +44 -3
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.281 +32 -1
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait.html@1.300 +31 -49
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait.man.in@1.281 +44 -3
NTP_4_2_7P468
scripts/ntp-wait/ntp-wait.mdoc.in@1.281 +32 -1
NTP_4_2_7P468
scripts/ntpsweep/invoke-ntpsweep.texi@1.72 +2 -2
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep-opts@1.21 +2 -2
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.60 +44 -3
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.60 +32 -1
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep.html@1.73 +33 -44
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep.man.in@1.60 +44 -3
NTP_4_2_7P468
scripts/ntpsweep/ntpsweep.mdoc.in@1.61 +32 -1
NTP_4_2_7P468
scripts/ntptrace/invoke-ntptrace.texi@1.72 +2 -2
NTP_4_2_7P468
scripts/ntptrace/ntptrace-opts@1.21 +2 -2
NTP_4_2_7P468
scripts/ntptrace/ntptrace.1ntptraceman@1.60 +44 -3
NTP_4_2_7P468
scripts/ntptrace/ntptrace.1ntptracemdoc@1.60 +32 -1
NTP_4_2_7P468
scripts/ntptrace/ntptrace.html@1.73 +27 -36
NTP_4_2_7P468
scripts/ntptrace/ntptrace.man.in@1.60 +44 -3
NTP_4_2_7P468
scripts/ntptrace/ntptrace.mdoc.in@1.61 +32 -1
NTP_4_2_7P468
scripts/plot_summary-opts@1.21 +1 -1
NTP_4_2_7P468
scripts/plot_summary.1plot_summaryman@1.72 +44 -2
NTP_4_2_7P468
scripts/plot_summary.1plot_summarymdoc@1.72 +32 -0
NTP_4_2_7P468
scripts/plot_summary.html@1.75 +29 -47
NTP_4_2_7P468
scripts/plot_summary.man.in@1.72 +44 -2
NTP_4_2_7P468
scripts/plot_summary.mdoc.in@1.72 +32 -0
NTP_4_2_7P468
scripts/summary-opts@1.21 +1 -1
NTP_4_2_7P468
scripts/summary.1summaryman@1.72 +43 -2
NTP_4_2_7P468
scripts/summary.1summarymdoc@1.72 +31 -0
NTP_4_2_7P468
scripts/summary.html@1.75 +27 -39
NTP_4_2_7P468
scripts/summary.man.in@1.72 +43 -2
NTP_4_2_7P468
scripts/summary.mdoc.in@1.72 +31 -0
NTP_4_2_7P468
sntp/invoke-sntp.texi@1.459 +2 -2
NTP_4_2_7P468
sntp/sntp-opts.c@1.477 +7 -7
NTP_4_2_7P468
sntp/sntp-opts.h@1.476 +3 -3
NTP_4_2_7P468
sntp/sntp.1sntpman@1.294 +44 -3
NTP_4_2_7P468
sntp/sntp.1sntpmdoc@1.294 +32 -1
NTP_4_2_7P468
sntp/sntp.html@1.474 +85 -109
NTP_4_2_7P468
sntp/sntp.man.in@1.294 +44 -3
NTP_4_2_7P468
sntp/sntp.mdoc.in@1.294 +32 -1
NTP_4_2_7P468
util/invoke-ntp-keygen.texi@1.463 +2 -2
NTP_4_2_7P468
util/ntp-keygen-opts.c@1.480 +7 -7
NTP_4_2_7P468
util/ntp-keygen-opts.h@1.479 +3 -3
NTP_4_2_7P468
util/ntp-keygen.1ntp-keygenman@1.291 +44 -3
NTP_4_2_7P468
util/ntp-keygen.1ntp-keygenmdoc@1.291 +32 -1
NTP_4_2_7P468
util/ntp-keygen.html@1.138 +2 -2
NTP_4_2_7P468
util/ntp-keygen.man.in@1.291 +44 -3
NTP_4_2_7P468
util/ntp-keygen.mdoc.in@1.291 +32 -1
NTP_4_2_7P468
ChangeSet@1.3200, 2014-08-31 05:07:43+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4
ChangeLog@1.1537 +1 -0
autogen-5.18.4
ntpd/invoke-ntp.conf.texi@1.147 +1 -1
autogen-5.18.4
ntpd/invoke-ntp.keys.texi@1.145 +1 -1
autogen-5.18.4
ntpd/invoke-ntpd.texi@1.461 +3 -3
autogen-5.18.4
ntpd/ntp.conf.5man@1.181 +3 -32
autogen-5.18.4
ntpd/ntp.conf.5mdoc@1.181 +3 -21
autogen-5.18.4
ntpd/ntp.conf.man.in@1.181 +3 -32
autogen-5.18.4
ntpd/ntp.conf.mdoc.in@1.181 +3 -21
autogen-5.18.4
ntpd/ntp.keys.5man@1.179 +2 -21
autogen-5.18.4
ntpd/ntp.keys.5mdoc@1.179 +4 -22
autogen-5.18.4
ntpd/ntp.keys.man.in@1.179 +2 -21
autogen-5.18.4
ntpd/ntp.keys.mdoc.in@1.179 +4 -22
autogen-5.18.4
ntpd/ntpd-opts.c@1.482 +1 -1
autogen-5.18.4
ntpd/ntpd-opts.h@1.481 +1 -1
autogen-5.18.4
ntpd/ntpd.1ntpdman@1.290 +3 -32
autogen-5.18.4
ntpd/ntpd.1ntpdmdoc@1.290 +3 -21
autogen-5.18.4
ntpd/ntpd.man.in@1.290 +3 -32
autogen-5.18.4
ntpd/ntpd.mdoc.in@1.290 +3 -21
autogen-5.18.4
ntpdc/invoke-ntpdc.texi@1.459 +1 -1
autogen-5.18.4
ntpdc/ntpdc-opts.c@1.477 +1 -1
autogen-5.18.4
ntpdc/ntpdc-opts.h@1.476 +1 -1
autogen-5.18.4
ntpdc/ntpdc.1ntpdcman@1.290 +3 -32
autogen-5.18.4
ntpdc/ntpdc.1ntpdcmdoc@1.290 +3 -21
autogen-5.18.4
ntpdc/ntpdc.html@1.303 +75 -55
autogen-5.18.4
ntpdc/ntpdc.man.in@1.290 +3 -32
autogen-5.18.4
ntpdc/ntpdc.mdoc.in@1.290 +3 -21
autogen-5.18.4
ntpq/invoke-ntpq.texi@1.465 +2 -2
autogen-5.18.4
ntpq/ntpq-opts.c@1.482 +1 -1
autogen-5.18.4
ntpq/ntpq-opts.h@1.480 +1 -1
autogen-5.18.4
ntpq/ntpq.1ntpqman@1.293 +4 -33
autogen-5.18.4
ntpq/ntpq.1ntpqmdoc@1.293 +4 -22
autogen-5.18.4
ntpq/ntpq.man.in@1.293 +4 -33
autogen-5.18.4
ntpq/ntpq.mdoc.in@1.293 +4 -22
autogen-5.18.4
ntpsnmpd/invoke-ntpsnmpd.texi@1.461 +1 -1
autogen-5.18.4
ntpsnmpd/ntpsnmpd-opts.c@1.479 +1 -1
autogen-5.18.4
ntpsnmpd/ntpsnmpd-opts.h@1.478 +1 -1
autogen-5.18.4
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.290 +3 -32
autogen-5.18.4
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.290 +3 -21
autogen-5.18.4
ntpsnmpd/ntpsnmpd.man.in@1.290 +3 -32
autogen-5.18.4
ntpsnmpd/ntpsnmpd.mdoc.in@1.290 +3 -21
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj-opts@1.9 +2 -2
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.52 +3 -32
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.52 +3 -21
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj.html@1.54 +33 -21
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj.man.in@1.51 +3 -32
autogen-5.18.4
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.52 +3 -21
autogen-5.18.4
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.56 +1 -1
autogen-5.18.4
scripts/ntp-wait/invoke-ntp-wait.texi@1.282 +1 -1
autogen-5.18.4
scripts/ntp-wait/ntp-wait-opts@1.18 +1 -1
autogen-5.18.4
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.280 +3 -32
autogen-5.18.4
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.280 +3 -21
autogen-5.18.4
scripts/ntp-wait/ntp-wait.html@1.299 +47 -29
autogen-5.18.4
scripts/ntp-wait/ntp-wait.man.in@1.280 +3 -32
autogen-5.18.4
scripts/ntp-wait/ntp-wait.mdoc.in@1.280 +3 -21
autogen-5.18.4
scripts/ntpsweep/invoke-ntpsweep.texi@1.71 +1 -1
autogen-5.18.4
scripts/ntpsweep/ntpsweep-opts@1.20 +1 -1
autogen-5.18.4
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.59 +3 -32
autogen-5.18.4
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.59 +3 -21
autogen-5.18.4
scripts/ntpsweep/ntpsweep.html@1.72 +42 -31
autogen-5.18.4
scripts/ntpsweep/ntpsweep.man.in@1.59 +3 -32
autogen-5.18.4
scripts/ntpsweep/ntpsweep.mdoc.in@1.60 +3 -21
autogen-5.18.4
scripts/ntptrace/invoke-ntptrace.texi@1.71 +1 -1
autogen-5.18.4
scripts/ntptrace/ntptrace-opts@1.20 +1 -1
autogen-5.18.4
scripts/ntptrace/ntptrace.1ntptraceman@1.59 +3 -32
autogen-5.18.4
scripts/ntptrace/ntptrace.1ntptracemdoc@1.59 +3 -21
autogen-5.18.4
scripts/ntptrace/ntptrace.html@1.72 +34 -25
autogen-5.18.4
scripts/ntptrace/ntptrace.man.in@1.59 +3 -32
autogen-5.18.4
scripts/ntptrace/ntptrace.mdoc.in@1.60 +3 -21
autogen-5.18.4
scripts/plot_summary.1plot_summaryman@1.71 +2 -32
autogen-5.18.4
scripts/plot_summary.1plot_summarymdoc@1.71 +2 -21
autogen-5.18.4
scripts/plot_summary.html@1.74 +45 -27
autogen-5.18.4
scripts/plot_summary.man.in@1.71 +2 -32
autogen-5.18.4
scripts/plot_summary.mdoc.in@1.71 +2 -21
autogen-5.18.4
scripts/summary.1summaryman@1.71 +2 -31
autogen-5.18.4
scripts/summary.1summarymdoc@1.71 +2 -20
autogen-5.18.4
scripts/summary.html@1.74 +37 -25
autogen-5.18.4
scripts/summary.man.in@1.71 +2 -31
autogen-5.18.4
scripts/summary.mdoc.in@1.71 +2 -20
autogen-5.18.4
sntp/include/autogen-version.def@1.21 +2 -2
autogen-5.18.4
sntp/invoke-sntp.texi@1.458 +1 -1
autogen-5.18.4
sntp/sntp-opts.c@1.476 +1 -1
autogen-5.18.4
sntp/sntp-opts.h@1.475 +1 -1
autogen-5.18.4
sntp/sntp.1sntpman@1.293 +3 -32
autogen-5.18.4
sntp/sntp.1sntpmdoc@1.293 +3 -21
autogen-5.18.4
sntp/sntp.html@1.473 +107 -83
autogen-5.18.4
sntp/sntp.man.in@1.293 +3 -32
autogen-5.18.4
sntp/sntp.mdoc.in@1.293 +3 -21
autogen-5.18.4
util/invoke-ntp-keygen.texi@1.462 +1 -1
autogen-5.18.4
util/ntp-keygen-opts.c@1.479 +1 -1
autogen-5.18.4
util/ntp-keygen-opts.h@1.478 +1 -1
autogen-5.18.4
util/ntp-keygen.1ntp-keygenman@1.290 +3 -32
autogen-5.18.4
util/ntp-keygen.1ntp-keygenmdoc@1.290 +3 -21
autogen-5.18.4
util/ntp-keygen.man.in@1.290 +3 -32
autogen-5.18.4
util/ntp-keygen.mdoc.in@1.290 +3 -21
autogen-5.18.4
ChangeSet@1.3199, 2014-08-31 04:47:39+00:00, stenn@psp-fb1.ntp.org
[Bug 2556] ntpq man page cleanup
ChangeLog@1.1536 +1 -0
[Bug 2556] ntpq man page cleanup
ntpq/ntpq-opts.def@1.23 +1 -1
[Bug 2556] ntpq man page cleanup
ChangeSet@1.3198, 2014-08-28 08:58:35+00:00, stenn@deacon.udel.edu
NTP_4_2_7P467
TAG: NTP_4_2_7P467
ChangeLog@1.1535 +1 -0
NTP_4_2_7P467
ntpd/invoke-ntp.conf.texi@1.146 +1 -1
NTP_4_2_7P467
ntpd/invoke-ntp.keys.texi@1.144 +1 -1
NTP_4_2_7P467
ntpd/invoke-ntpd.texi@1.460 +2 -2
NTP_4_2_7P467
ntpd/ntp.conf.5man@1.180 +6 -6
NTP_4_2_7P467
ntpd/ntp.conf.5mdoc@1.180 +2 -2
NTP_4_2_7P467
ntpd/ntp.conf.html@1.141 +1 -1
NTP_4_2_7P467
ntpd/ntp.conf.man.in@1.180 +6 -6
NTP_4_2_7P467
ntpd/ntp.conf.mdoc.in@1.180 +2 -2
NTP_4_2_7P467
ntpd/ntp.keys.5man@1.178 +2 -2
NTP_4_2_7P467
ntpd/ntp.keys.5mdoc@1.178 +2 -2
NTP_4_2_7P467
ntpd/ntp.keys.html@1.142 +1 -1
NTP_4_2_7P467
ntpd/ntp.keys.man.in@1.178 +2 -2
NTP_4_2_7P467
ntpd/ntp.keys.mdoc.in@1.178 +2 -2
NTP_4_2_7P467
ntpd/ntpd-opts.c@1.481 +7 -7
NTP_4_2_7P467
ntpd/ntpd-opts.h@1.480 +3 -3
NTP_4_2_7P467
ntpd/ntpd.1ntpdman@1.289 +6 -6
NTP_4_2_7P467
ntpd/ntpd.1ntpdmdoc@1.289 +2 -2
NTP_4_2_7P467
ntpd/ntpd.html@1.136 +2 -2
NTP_4_2_7P467
ntpd/ntpd.man.in@1.289 +6 -6
NTP_4_2_7P467
ntpd/ntpd.mdoc.in@1.289 +2 -2
NTP_4_2_7P467
ntpdc/invoke-ntpdc.texi@1.458 +2 -2
NTP_4_2_7P467
ntpdc/ntpdc-opts.c@1.476 +7 -7
NTP_4_2_7P467
ntpdc/ntpdc-opts.h@1.475 +3 -3
NTP_4_2_7P467
ntpdc/ntpdc.1ntpdcman@1.289 +6 -6
NTP_4_2_7P467
ntpdc/ntpdc.1ntpdcmdoc@1.289 +2 -2
NTP_4_2_7P467
ntpdc/ntpdc.html@1.302 +2 -2
NTP_4_2_7P467
ntpdc/ntpdc.man.in@1.289 +6 -6
NTP_4_2_7P467
ntpdc/ntpdc.mdoc.in@1.289 +2 -2
NTP_4_2_7P467
ntpq/invoke-ntpq.texi@1.464 +2 -2
NTP_4_2_7P467
ntpq/ntpq-opts.c@1.481 +7 -7
NTP_4_2_7P467
ntpq/ntpq-opts.h@1.479 +3 -3
NTP_4_2_7P467
ntpq/ntpq.1ntpqman@1.292 +6 -6
NTP_4_2_7P467
ntpq/ntpq.1ntpqmdoc@1.292 +2 -2
NTP_4_2_7P467
ntpq/ntpq.html@1.133 +2 -2
NTP_4_2_7P467
ntpq/ntpq.man.in@1.292 +6 -6
NTP_4_2_7P467
ntpq/ntpq.mdoc.in@1.292 +2 -2
NTP_4_2_7P467
ntpsnmpd/invoke-ntpsnmpd.texi@1.460 +2 -2
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd-opts.c@1.478 +7 -7
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd-opts.h@1.477 +3 -3
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.289 +6 -6
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.289 +2 -2
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd.html@1.131 +1 -1
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd.man.in@1.289 +6 -6
NTP_4_2_7P467
ntpsnmpd/ntpsnmpd.mdoc.in@1.289 +2 -2
NTP_4_2_7P467
packageinfo.sh@1.471 +1 -1
NTP_4_2_7P467
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.51 +6 -6
NTP_4_2_7P467
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.51 +2 -2
NTP_4_2_7P467
scripts/calc_tickadj/calc_tickadj.html@1.53 +1 -1
NTP_4_2_7P467
scripts/calc_tickadj/calc_tickadj.man.in@1.50 +6 -6
NTP_4_2_7P467
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.51 +2 -2
NTP_4_2_7P467
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.55 +1 -1
NTP_4_2_7P467
scripts/invoke-plot_summary.texi@1.73 +1 -1
NTP_4_2_7P467
scripts/invoke-summary.texi@1.73 +1 -1
NTP_4_2_7P467
scripts/ntp-wait/invoke-ntp-wait.texi@1.281 +2 -2
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait-opts@1.17 +2 -2
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.279 +6 -6
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.279 +2 -2
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait.html@1.298 +2 -2
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait.man.in@1.279 +6 -6
NTP_4_2_7P467
scripts/ntp-wait/ntp-wait.mdoc.in@1.279 +2 -2
NTP_4_2_7P467
scripts/ntpsweep/invoke-ntpsweep.texi@1.70 +2 -2
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep-opts@1.19 +2 -2
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.58 +6 -6
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.58 +2 -2
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep.html@1.71 +2 -2
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep.man.in@1.58 +6 -6
NTP_4_2_7P467
scripts/ntpsweep/ntpsweep.mdoc.in@1.59 +2 -2
NTP_4_2_7P467
scripts/ntptrace/invoke-ntptrace.texi@1.70 +2 -2
NTP_4_2_7P467
scripts/ntptrace/ntptrace-opts@1.19 +2 -2
NTP_4_2_7P467
scripts/ntptrace/ntptrace.1ntptraceman@1.58 +6 -6
NTP_4_2_7P467
scripts/ntptrace/ntptrace.1ntptracemdoc@1.58 +2 -2
NTP_4_2_7P467
scripts/ntptrace/ntptrace.html@1.71 +2 -2
NTP_4_2_7P467
scripts/ntptrace/ntptrace.man.in@1.58 +6 -6
NTP_4_2_7P467
scripts/ntptrace/ntptrace.mdoc.in@1.59 +2 -2
NTP_4_2_7P467
scripts/plot_summary-opts@1.20 +1 -1
NTP_4_2_7P467
scripts/plot_summary.1plot_summaryman@1.70 +4 -4
NTP_4_2_7P467
scripts/plot_summary.1plot_summarymdoc@1.70 +1 -1
NTP_4_2_7P467
scripts/plot_summary.html@1.73 +2 -2
NTP_4_2_7P467
scripts/plot_summary.man.in@1.70 +4 -4
NTP_4_2_7P467
scripts/plot_summary.mdoc.in@1.70 +1 -1
NTP_4_2_7P467
scripts/summary-opts@1.20 +1 -1
NTP_4_2_7P467
scripts/summary.1summaryman@1.70 +4 -4
NTP_4_2_7P467
scripts/summary.1summarymdoc@1.70 +1 -1
NTP_4_2_7P467
scripts/summary.html@1.73 +2 -2
NTP_4_2_7P467
scripts/summary.man.in@1.70 +4 -4
NTP_4_2_7P467
scripts/summary.mdoc.in@1.70 +1 -1
NTP_4_2_7P467
sntp/invoke-sntp.texi@1.457 +2 -2
NTP_4_2_7P467
sntp/sntp-opts.c@1.475 +7 -7
NTP_4_2_7P467
sntp/sntp-opts.h@1.474 +3 -3
NTP_4_2_7P467
sntp/sntp.1sntpman@1.292 +6 -6
NTP_4_2_7P467
sntp/sntp.1sntpmdoc@1.292 +2 -2
NTP_4_2_7P467
sntp/sntp.html@1.472 +2 -2
NTP_4_2_7P467
sntp/sntp.man.in@1.292 +6 -6
NTP_4_2_7P467
sntp/sntp.mdoc.in@1.292 +2 -2
NTP_4_2_7P467
util/invoke-ntp-keygen.texi@1.461 +2 -2
NTP_4_2_7P467
util/ntp-keygen-opts.c@1.478 +7 -7
NTP_4_2_7P467
util/ntp-keygen-opts.h@1.477 +3 -3
NTP_4_2_7P467
util/ntp-keygen.1ntp-keygenman@1.289 +6 -6
NTP_4_2_7P467
util/ntp-keygen.1ntp-keygenmdoc@1.289 +2 -2
NTP_4_2_7P467
util/ntp-keygen.html@1.137 +2 -2
NTP_4_2_7P467
util/ntp-keygen.man.in@1.289 +6 -6
NTP_4_2_7P467
util/ntp-keygen.mdoc.in@1.289 +2 -2
NTP_4_2_7P467
ChangeSet@1.3197, 2014-08-28 03:33:02-04:00, stenn@deacon.udel.edu
[Bug 2640] STA_NANO can result in invalid ntv.constant
ChangeLog@1.1534 +1 -0
[Bug 2640] STA_NANO can result in invalid ntv.constant
ntpd/ntp_loopfilter.c@1.172 +3 -0
[Bug 2640] STA_NANO can result in invalid ntv.constant
ChangeSet@1.3196, 2014-08-28 07:13:56+00:00, stenn@psp-fb1.ntp.org
[Bug 2639] Check return value of ntp_adjtime()
ChangeLog@1.1533 +1 -0
[Bug 2639] Check return value of ntp_adjtime()
ntpd/ntp_loopfilter.c@1.171 +24 -6
[Bug 2639] Check return value of ntp_adjtime()
ChangeSet@1.3195, 2014-08-27 08:59:37+00:00, stenn@deacon.udel.edu
NTP_4_2_7P466
TAG: NTP_4_2_7P466
ChangeLog@1.1532 +1 -0
NTP_4_2_7P466
ntpd/invoke-ntp.conf.texi@1.145 +1 -1
NTP_4_2_7P466
ntpd/invoke-ntp.keys.texi@1.143 +1 -1
NTP_4_2_7P466
ntpd/invoke-ntpd.texi@1.459 +2 -2
NTP_4_2_7P466
ntpd/ntp.conf.5man@1.179 +6 -6
NTP_4_2_7P466
ntpd/ntp.conf.5mdoc@1.179 +2 -2
NTP_4_2_7P466
ntpd/ntp.conf.html@1.140 +1 -1
NTP_4_2_7P466
ntpd/ntp.conf.man.in@1.179 +6 -6
NTP_4_2_7P466
ntpd/ntp.conf.mdoc.in@1.179 +2 -2
NTP_4_2_7P466
ntpd/ntp.keys.5man@1.177 +2 -2
NTP_4_2_7P466
ntpd/ntp.keys.5mdoc@1.177 +2 -2
NTP_4_2_7P466
ntpd/ntp.keys.html@1.141 +1 -1
NTP_4_2_7P466
ntpd/ntp.keys.man.in@1.177 +2 -2
NTP_4_2_7P466
ntpd/ntp.keys.mdoc.in@1.177 +2 -2
NTP_4_2_7P466
ntpd/ntpd-opts.c@1.480 +7 -7
NTP_4_2_7P466
ntpd/ntpd-opts.h@1.479 +3 -3
NTP_4_2_7P466
ntpd/ntpd.1ntpdman@1.288 +6 -6
NTP_4_2_7P466
ntpd/ntpd.1ntpdmdoc@1.288 +2 -2
NTP_4_2_7P466
ntpd/ntpd.html@1.135 +2 -4
NTP_4_2_7P466
ntpd/ntpd.man.in@1.288 +6 -6
NTP_4_2_7P466
ntpd/ntpd.mdoc.in@1.288 +2 -2
NTP_4_2_7P466
ntpdc/invoke-ntpdc.texi@1.457 +2 -2
NTP_4_2_7P466
ntpdc/ntpdc-opts.c@1.475 +7 -7
NTP_4_2_7P466
ntpdc/ntpdc-opts.h@1.474 +3 -3
NTP_4_2_7P466
ntpdc/ntpdc.1ntpdcman@1.288 +6 -6
NTP_4_2_7P466
ntpdc/ntpdc.1ntpdcmdoc@1.288 +2 -2
NTP_4_2_7P466
ntpdc/ntpdc.html@1.301 +2 -2
NTP_4_2_7P466
ntpdc/ntpdc.man.in@1.288 +6 -6
NTP_4_2_7P466
ntpdc/ntpdc.mdoc.in@1.288 +2 -2
NTP_4_2_7P466
ntpq/invoke-ntpq.texi@1.463 +2 -2
NTP_4_2_7P466
ntpq/ntpq-opts.c@1.480 +7 -7
NTP_4_2_7P466
ntpq/ntpq-opts.h@1.478 +3 -3
NTP_4_2_7P466
ntpq/ntpq.1ntpqman@1.291 +6 -6
NTP_4_2_7P466
ntpq/ntpq.1ntpqmdoc@1.291 +2 -2
NTP_4_2_7P466
ntpq/ntpq.html@1.132 +2 -4
NTP_4_2_7P466
ntpq/ntpq.man.in@1.291 +6 -6
NTP_4_2_7P466
ntpq/ntpq.mdoc.in@1.291 +2 -2
NTP_4_2_7P466
ntpsnmpd/invoke-ntpsnmpd.texi@1.459 +2 -2
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd-opts.c@1.477 +7 -7
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd-opts.h@1.476 +3 -3
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.288 +6 -6
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.288 +2 -2
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd.html@1.130 +1 -1
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd.man.in@1.288 +6 -6
NTP_4_2_7P466
ntpsnmpd/ntpsnmpd.mdoc.in@1.288 +2 -2
NTP_4_2_7P466
packageinfo.sh@1.470 +1 -1
NTP_4_2_7P466
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.50 +6 -6
NTP_4_2_7P466
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.50 +2 -2
NTP_4_2_7P466
scripts/calc_tickadj/calc_tickadj.html@1.52 +1 -1
NTP_4_2_7P466
scripts/calc_tickadj/calc_tickadj.man.in@1.49 +6 -6
NTP_4_2_7P466
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.50 +2 -2
NTP_4_2_7P466
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.54 +1 -1
NTP_4_2_7P466
scripts/invoke-plot_summary.texi@1.72 +1 -1
NTP_4_2_7P466
scripts/invoke-summary.texi@1.72 +1 -1
NTP_4_2_7P466
scripts/ntp-wait/invoke-ntp-wait.texi@1.280 +2 -2
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait-opts@1.16 +2 -2
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.278 +6 -6
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.278 +2 -2
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait.html@1.297 +2 -2
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait.man.in@1.278 +6 -6
NTP_4_2_7P466
scripts/ntp-wait/ntp-wait.mdoc.in@1.278 +2 -2
NTP_4_2_7P466
scripts/ntpsweep/invoke-ntpsweep.texi@1.69 +2 -2
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep-opts@1.18 +2 -2
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.57 +6 -6
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.57 +2 -2
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep.html@1.70 +2 -2
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep.man.in@1.57 +6 -6
NTP_4_2_7P466
scripts/ntpsweep/ntpsweep.mdoc.in@1.58 +2 -2
NTP_4_2_7P466
scripts/ntptrace/invoke-ntptrace.texi@1.69 +2 -2
NTP_4_2_7P466
scripts/ntptrace/ntptrace-opts@1.18 +2 -2
NTP_4_2_7P466
scripts/ntptrace/ntptrace.1ntptraceman@1.57 +6 -6
NTP_4_2_7P466
scripts/ntptrace/ntptrace.1ntptracemdoc@1.57 +2 -2
NTP_4_2_7P466
scripts/ntptrace/ntptrace.html@1.70 +2 -2
NTP_4_2_7P466
scripts/ntptrace/ntptrace.man.in@1.57 +6 -6
NTP_4_2_7P466
scripts/ntptrace/ntptrace.mdoc.in@1.58 +2 -2
NTP_4_2_7P466
scripts/plot_summary-opts@1.19 +1 -1
NTP_4_2_7P466
scripts/plot_summary.1plot_summaryman@1.69 +4 -4
NTP_4_2_7P466
scripts/plot_summary.1plot_summarymdoc@1.69 +1 -1
NTP_4_2_7P466
scripts/plot_summary.html@1.72 +2 -2
NTP_4_2_7P466
scripts/plot_summary.man.in@1.69 +4 -4
NTP_4_2_7P466
scripts/plot_summary.mdoc.in@1.69 +1 -1
NTP_4_2_7P466
scripts/summary-opts@1.19 +1 -1
NTP_4_2_7P466
scripts/summary.1summaryman@1.69 +4 -4
NTP_4_2_7P466
scripts/summary.1summarymdoc@1.69 +1 -1
NTP_4_2_7P466
scripts/summary.html@1.72 +2 -2
NTP_4_2_7P466
scripts/summary.man.in@1.69 +4 -4
NTP_4_2_7P466
scripts/summary.mdoc.in@1.69 +1 -1
NTP_4_2_7P466
sntp/invoke-sntp.texi@1.456 +2 -2
NTP_4_2_7P466
sntp/sntp-opts.c@1.474 +7 -7
NTP_4_2_7P466
sntp/sntp-opts.h@1.473 +3 -3
NTP_4_2_7P466
sntp/sntp.1sntpman@1.291 +6 -6
NTP_4_2_7P466
sntp/sntp.1sntpmdoc@1.291 +2 -2
NTP_4_2_7P466
sntp/sntp.html@1.471 +2 -2
NTP_4_2_7P466
sntp/sntp.man.in@1.291 +6 -6
NTP_4_2_7P466
sntp/sntp.mdoc.in@1.291 +2 -2
NTP_4_2_7P466
util/invoke-ntp-keygen.texi@1.460 +2 -2
NTP_4_2_7P466
util/ntp-keygen-opts.c@1.477 +7 -7
NTP_4_2_7P466
util/ntp-keygen-opts.h@1.476 +3 -3
NTP_4_2_7P466
util/ntp-keygen.1ntp-keygenman@1.288 +6 -6
NTP_4_2_7P466
util/ntp-keygen.1ntp-keygenmdoc@1.288 +2 -2
NTP_4_2_7P466
util/ntp-keygen.html@1.136 +2 -4
NTP_4_2_7P466
util/ntp-keygen.man.in@1.288 +6 -6
NTP_4_2_7P466
util/ntp-keygen.mdoc.in@1.288 +2 -2
NTP_4_2_7P466
ChangeSet@1.3194, 2014-08-27 04:53:42+00:00, stenn@psp-fb1.ntp.org
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeLog@1.1531 +1 -0
ntpd/ntpd.c@1.155 +10 -3
ChangeSet@1.3193, 2014-08-23 08:59:05+00:00, stenn@deacon.udel.edu
NTP_4_2_7P465
TAG: NTP_4_2_7P465
ChangeLog@1.1530 +1 -0
NTP_4_2_7P465
ntpd/invoke-ntp.conf.texi@1.144 +1 -1
NTP_4_2_7P465
ntpd/invoke-ntp.keys.texi@1.142 +1 -1
NTP_4_2_7P465
ntpd/invoke-ntpd.texi@1.458 +2 -4
NTP_4_2_7P465
ntpd/ntp.conf.5man@1.178 +6 -6
NTP_4_2_7P465
ntpd/ntp.conf.5mdoc@1.178 +2 -2
NTP_4_2_7P465
ntpd/ntp.conf.html@1.139 +1 -1
NTP_4_2_7P465
ntpd/ntp.conf.man.in@1.178 +6 -6
NTP_4_2_7P465
ntpd/ntp.conf.mdoc.in@1.178 +2 -2
NTP_4_2_7P465
ntpd/ntp.keys.5man@1.176 +2 -2
NTP_4_2_7P465
ntpd/ntp.keys.5mdoc@1.176 +2 -2
NTP_4_2_7P465
ntpd/ntp.keys.html@1.140 +1 -1
NTP_4_2_7P465
ntpd/ntp.keys.man.in@1.176 +2 -2
NTP_4_2_7P465
ntpd/ntp.keys.mdoc.in@1.176 +2 -2
NTP_4_2_7P465
ntpd/ntpd-opts.c@1.479 +7 -7
NTP_4_2_7P465
ntpd/ntpd-opts.h@1.478 +3 -3
NTP_4_2_7P465
ntpd/ntpd.1ntpdman@1.287 +22 -13
NTP_4_2_7P465
ntpd/ntpd.1ntpdmdoc@1.287 +18 -9
NTP_4_2_7P465
ntpd/ntpd.html@1.134 +2 -2
NTP_4_2_7P465
ntpd/ntpd.man.in@1.287 +22 -13
NTP_4_2_7P465
ntpd/ntpd.mdoc.in@1.287 +18 -9
NTP_4_2_7P465
ntpdc/invoke-ntpdc.texi@1.456 +2 -4
NTP_4_2_7P465
ntpdc/ntpdc-opts.c@1.474 +7 -7
NTP_4_2_7P465
ntpdc/ntpdc-opts.h@1.473 +3 -3
NTP_4_2_7P465
ntpdc/ntpdc.1ntpdcman@1.287 +6 -6
NTP_4_2_7P465
ntpdc/ntpdc.1ntpdcmdoc@1.287 +2 -2
NTP_4_2_7P465
ntpdc/ntpdc.html@1.300 +2 -4
NTP_4_2_7P465
ntpdc/ntpdc.man.in@1.287 +6 -6
NTP_4_2_7P465
ntpdc/ntpdc.mdoc.in@1.287 +2 -2
NTP_4_2_7P465
ntpq/invoke-ntpq.texi@1.462 +2 -4
NTP_4_2_7P465
ntpq/ntpq-opts.c@1.479 +7 -7
NTP_4_2_7P465
ntpq/ntpq-opts.h@1.477 +3 -3
NTP_4_2_7P465
ntpq/ntpq.1ntpqman@1.290 +6 -6
NTP_4_2_7P465
ntpq/ntpq.1ntpqmdoc@1.290 +2 -2
NTP_4_2_7P465
ntpq/ntpq.html@1.131 +2 -2
NTP_4_2_7P465
ntpq/ntpq.man.in@1.290 +6 -6
NTP_4_2_7P465
ntpq/ntpq.mdoc.in@1.290 +2 -2
NTP_4_2_7P465
ntpsnmpd/invoke-ntpsnmpd.texi@1.458 +2 -4
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd-opts.c@1.476 +7 -7
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd-opts.h@1.475 +3 -3
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.287 +6 -6
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.287 +2 -2
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd.html@1.129 +1 -1
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd.man.in@1.287 +6 -6
NTP_4_2_7P465
ntpsnmpd/ntpsnmpd.mdoc.in@1.287 +2 -2
NTP_4_2_7P465
packageinfo.sh@1.469 +1 -1
NTP_4_2_7P465
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.49 +6 -6
NTP_4_2_7P465
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.49 +2 -2
NTP_4_2_7P465
scripts/calc_tickadj/calc_tickadj.html@1.51 +22 -34
NTP_4_2_7P465
scripts/calc_tickadj/calc_tickadj.man.in@1.48 +6 -6
NTP_4_2_7P465
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.49 +2 -2
NTP_4_2_7P465
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.53 +1 -1
NTP_4_2_7P465
scripts/invoke-plot_summary.texi@1.71 +1 -1
NTP_4_2_7P465
scripts/invoke-summary.texi@1.71 +1 -1
NTP_4_2_7P465
scripts/ntp-wait/invoke-ntp-wait.texi@1.279 +2 -2
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait-opts@1.15 +2 -2
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.277 +6 -6
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.277 +2 -2
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait.html@1.296 +31 -49
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait.man.in@1.277 +6 -6
NTP_4_2_7P465
scripts/ntp-wait/ntp-wait.mdoc.in@1.277 +2 -2
NTP_4_2_7P465
scripts/ntpsweep/invoke-ntpsweep.texi@1.68 +2 -2
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep-opts@1.17 +2 -2
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.56 +6 -6
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.56 +2 -2
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep.html@1.69 +33 -44
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep.man.in@1.56 +6 -6
NTP_4_2_7P465
scripts/ntpsweep/ntpsweep.mdoc.in@1.57 +2 -2
NTP_4_2_7P465
scripts/ntptrace/invoke-ntptrace.texi@1.68 +2 -2
NTP_4_2_7P465
scripts/ntptrace/ntptrace-opts@1.17 +2 -2
NTP_4_2_7P465
scripts/ntptrace/ntptrace.1ntptraceman@1.56 +13 -13
NTP_4_2_7P465
scripts/ntptrace/ntptrace.1ntptracemdoc@1.56 +2 -2
NTP_4_2_7P465
scripts/ntptrace/ntptrace.html@1.69 +27 -36
NTP_4_2_7P465
scripts/ntptrace/ntptrace.man.in@1.56 +13 -13
NTP_4_2_7P465
scripts/ntptrace/ntptrace.mdoc.in@1.57 +2 -2
NTP_4_2_7P465
scripts/plot_summary-opts@1.18 +1 -1
NTP_4_2_7P465
scripts/plot_summary.1plot_summaryman@1.68 +6 -6
NTP_4_2_7P465
scripts/plot_summary.1plot_summarymdoc@1.68 +3 -3
NTP_4_2_7P465
scripts/plot_summary.html@1.71 +29 -47
NTP_4_2_7P465
scripts/plot_summary.man.in@1.68 +6 -6
NTP_4_2_7P465
scripts/plot_summary.mdoc.in@1.68 +3 -3
NTP_4_2_7P465
scripts/summary-opts@1.18 +1 -1
NTP_4_2_7P465
scripts/summary.1summaryman@1.68 +6 -6
NTP_4_2_7P465
scripts/summary.1summarymdoc@1.68 +2 -2
NTP_4_2_7P465
scripts/summary.html@1.71 +27 -39
NTP_4_2_7P465
scripts/summary.man.in@1.68 +6 -6
NTP_4_2_7P465
scripts/summary.mdoc.in@1.68 +2 -2
NTP_4_2_7P465
sntp/invoke-sntp.texi@1.455 +2 -4
NTP_4_2_7P465
sntp/sntp-opts.c@1.473 +7 -7
NTP_4_2_7P465
sntp/sntp-opts.h@1.472 +3 -3
NTP_4_2_7P465
sntp/sntp.1sntpman@1.290 +6 -6
NTP_4_2_7P465
sntp/sntp.1sntpmdoc@1.290 +2 -2
NTP_4_2_7P465
sntp/sntp.html@1.470 +2 -4
NTP_4_2_7P465
sntp/sntp.man.in@1.290 +6 -6
NTP_4_2_7P465
sntp/sntp.mdoc.in@1.290 +2 -2
NTP_4_2_7P465
util/invoke-ntp-keygen.texi@1.459 +2 -4
NTP_4_2_7P465
util/ntp-keygen-opts.c@1.476 +7 -7
NTP_4_2_7P465
util/ntp-keygen-opts.h@1.475 +3 -3
NTP_4_2_7P465
util/ntp-keygen.1ntp-keygenman@1.287 +6 -6
NTP_4_2_7P465
util/ntp-keygen.1ntp-keygenmdoc@1.287 +2 -2
NTP_4_2_7P465
util/ntp-keygen.html@1.135 +2 -2
NTP_4_2_7P465
util/ntp-keygen.man.in@1.287 +6 -6
NTP_4_2_7P465
util/ntp-keygen.mdoc.in@1.287 +2 -2
NTP_4_2_7P465
ChangeSet@1.3192, 2014-08-23 08:37:07+00:00, stenn@psp-fb1.ntp.org
[Bug 2595] Man page quirks: ntpdate references in ntpd
ChangeLog@1.1529 +1 -0
[Bug 2595] Man page quirks: ntpdate references in ntpd
ntpd/ntpd-opts.def@1.12 +16 -7
[Bug 2595] Man page quirks: ntpdate references in ntpd
ChangeSet@1.3191, 2014-08-23 05:39:03+00:00, stenn@psp-fb1.ntp.org
[Bug 2613] www.ntp.org/bugs.html tells folks to email doc bugs to DLM
ChangeLog@1.1528 +1 -0
[Bug 2613] www.ntp.org/bugs.html tells folks to email doc bugs to DLM
html/bugs.html@1.8 +4 -7
[Bug 2613] www.ntp.org/bugs.html tells folks to email doc bugs to DLM
ChangeSet@1.3190, 2014-08-23 00:23:55+00:00, stenn@psp-fb1.ntp.org
[Bug 2538] NTP programs print exit code in help/usage text
ChangeLog@1.1527 +1 -0
[Bug 2538] NTP programs print exit code in help/usage text
ntpd/Makefile.am@1.131 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
ntpd/ntpd-opts.c@1.478 +3 -60
[Bug 2538] NTP programs print exit code in help/usage text
ntpd/ntpdbase-opts.def@1.27 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
ntpd/ntpdsim-opts.c@1.28 +9 -66
[Bug 2538] NTP programs print exit code in help/usage text
ntpd/ntpdsim-opts.h@1.28 +2 -2
[Bug 2538] NTP programs print exit code in help/usage text
ntpdc/Makefile.am@1.75 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
ntpdc/ntpdc-opts.c@1.473 +3 -60
[Bug 2538] NTP programs print exit code in help/usage text
ntpdc/ntpdc-opts.def@1.23 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
ntpq/Makefile.am@1.71 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
ntpq/ntpq-opts.c@1.478 +5 -69
[Bug 2538] NTP programs print exit code in help/usage text
ntpq/ntpq-opts.def@1.22 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
ntpsnmpd/Makefile.am@1.40 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
ntpsnmpd/ntpsnmpd-opts.c@1.475 +2 -44
[Bug 2538] NTP programs print exit code in help/usage text
ntpsnmpd/ntpsnmpd-opts.def@1.11 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
scripts/build/Makefile.am@1.4 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/calc_tickadj/Makefile.am@1.10 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/calc_tickadj/calc_tickadj-opts@1.8 +2 -2
[Bug 2538] NTP programs print exit code in help/usage text
scripts/calc_tickadj/calc_tickadj.html@1.50 +34 -22
[Bug 2538] NTP programs print exit code in help/usage text
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.52 +2 -2
[Bug 2538] NTP programs print exit code in help/usage text
scripts/invoke-plot_summary.texi@1.70 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/invoke-summary.texi@1.70 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntp-wait/Makefile.am@1.9 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntp-wait/invoke-ntp-wait.texi@1.278 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntp-wait/ntp-wait-opts@1.14 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntp-wait/ntp-wait-opts.def@1.11 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntp-wait/ntp-wait.html@1.295 +47 -29
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntpsweep/Makefile.am@1.10 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntpsweep/invoke-ntpsweep.texi@1.67 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntpsweep/ntpsweep-opts@1.16 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntpsweep/ntpsweep.html@1.68 +42 -31
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntptrace/Makefile.am@1.10 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntptrace/invoke-ntptrace.texi@1.67 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntptrace/ntptrace-opts@1.16 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/ntptrace/ntptrace.html@1.68 +34 -25
[Bug 2538] NTP programs print exit code in help/usage text
scripts/plot_summary-opts@1.17 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/plot_summary.html@1.70 +45 -27
[Bug 2538] NTP programs print exit code in help/usage text
scripts/summary-opts@1.17 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
scripts/summary.html@1.70 +37 -25
[Bug 2538] NTP programs print exit code in help/usage text
sntp/Makefile.am@1.76 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
sntp/sntp-opts.c@1.472 +3 -61
[Bug 2538] NTP programs print exit code in help/usage text
sntp/sntp-opts.def@1.44 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
util/Makefile.am@1.76 +1 -1
[Bug 2538] NTP programs print exit code in help/usage text
util/ntp-keygen-opts.c@1.475 +3 -60
[Bug 2538] NTP programs print exit code in help/usage text
util/ntp-keygen-opts.def@1.27 +0 -2
[Bug 2538] NTP programs print exit code in help/usage text
ChangeSet@1.3189, 2014-08-22 22:14:11+02:00, jnperlin@hydra.(none)
[Bug 2636] Clutter in syslog if gpsd not running
- log GPSD revision and release numbers with protocol version
ChangeLog@1.1526 +1 -0
[Bug 2636] Clutter in syslog if gpsd not running
- log GPSD revision and release numbers with protocol version
ntpd/refclock_gpsdjson.c@1.14 +8 -1
[Bug 2636] Clutter in syslog if gpsd not running
- log GPSD revision and release numbers with protocol version
ChangeSet@1.3188, 2014-08-22 18:36:17+02:00, jnperlin@hydra.(none)
[Bug 2636] Clutter in syslog if gpsd not running
- found (hopefully) last cause for clutter in protocol version
ChangeLog@1.1525 +2 -0
[Bug 2636] Clutter in syslog if gpsd not running
- found (hopefully) last cause for clutter in protocol version
ntpd/refclock_gpsdjson.c@1.13 +12 -13
[Bug 2636] Clutter in syslog if gpsd not running
- found (hopefully) last cause for clutter in protocol version
ChangeSet@1.3187, 2014-08-22 08:58:48+00:00, stenn@deacon.udel.edu
NTP_4_2_7P464
TAG: NTP_4_2_7P464
ChangeLog@1.1524 +1 -0
NTP_4_2_7P464
ntpd/invoke-ntp.conf.texi@1.143 +1 -1
NTP_4_2_7P464
ntpd/invoke-ntp.keys.texi@1.141 +1 -1
NTP_4_2_7P464
ntpd/invoke-ntpd.texi@1.457 +2 -2
NTP_4_2_7P464
ntpd/ntp.conf.5man@1.177 +6 -6
NTP_4_2_7P464
ntpd/ntp.conf.5mdoc@1.177 +2 -2
NTP_4_2_7P464
ntpd/ntp.conf.html@1.138 +1 -1
NTP_4_2_7P464
ntpd/ntp.conf.man.in@1.177 +6 -6
NTP_4_2_7P464
ntpd/ntp.conf.mdoc.in@1.177 +2 -2
NTP_4_2_7P464
ntpd/ntp.keys.5man@1.175 +2 -2
NTP_4_2_7P464
ntpd/ntp.keys.5mdoc@1.175 +2 -2
NTP_4_2_7P464
ntpd/ntp.keys.html@1.139 +1 -1
NTP_4_2_7P464
ntpd/ntp.keys.man.in@1.175 +2 -2
NTP_4_2_7P464
ntpd/ntp.keys.mdoc.in@1.175 +2 -2
NTP_4_2_7P464
ntpd/ntpd-opts.c@1.477 +6 -6
NTP_4_2_7P464
ntpd/ntpd-opts.h@1.477 +2 -2
NTP_4_2_7P464
ntpd/ntpd.1ntpdman@1.286 +6 -6
NTP_4_2_7P464
ntpd/ntpd.1ntpdmdoc@1.286 +2 -2
NTP_4_2_7P464
ntpd/ntpd.html@1.133 +2 -2
NTP_4_2_7P464
ntpd/ntpd.man.in@1.286 +6 -6
NTP_4_2_7P464
ntpd/ntpd.mdoc.in@1.286 +2 -2
NTP_4_2_7P464
ntpdc/invoke-ntpdc.texi@1.455 +2 -2
NTP_4_2_7P464
ntpdc/ntpdc-opts.c@1.472 +6 -6
NTP_4_2_7P464
ntpdc/ntpdc-opts.h@1.472 +2 -2
NTP_4_2_7P464
ntpdc/ntpdc.1ntpdcman@1.286 +6 -6
NTP_4_2_7P464
ntpdc/ntpdc.1ntpdcmdoc@1.286 +2 -2
NTP_4_2_7P464
ntpdc/ntpdc.html@1.299 +2 -2
NTP_4_2_7P464
ntpdc/ntpdc.man.in@1.286 +6 -6
NTP_4_2_7P464
ntpdc/ntpdc.mdoc.in@1.286 +2 -2
NTP_4_2_7P464
ntpq/invoke-ntpq.texi@1.461 +2 -2
NTP_4_2_7P464
ntpq/ntpq-opts.c@1.477 +6 -6
NTP_4_2_7P464
ntpq/ntpq-opts.h@1.476 +2 -2
NTP_4_2_7P464
ntpq/ntpq.1ntpqman@1.289 +6 -6
NTP_4_2_7P464
ntpq/ntpq.1ntpqmdoc@1.289 +2 -2
NTP_4_2_7P464
ntpq/ntpq.html@1.130 +2 -2
NTP_4_2_7P464
ntpq/ntpq.man.in@1.289 +6 -6
NTP_4_2_7P464
ntpq/ntpq.mdoc.in@1.289 +2 -2
NTP_4_2_7P464
ntpsnmpd/invoke-ntpsnmpd.texi@1.457 +2 -2
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd-opts.c@1.474 +6 -6
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd-opts.h@1.474 +2 -2
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.286 +6 -6
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.286 +2 -2
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd.html@1.128 +1 -1
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd.man.in@1.286 +6 -6
NTP_4_2_7P464
ntpsnmpd/ntpsnmpd.mdoc.in@1.286 +2 -2
NTP_4_2_7P464
packageinfo.sh@1.468 +1 -1
NTP_4_2_7P464
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.48 +6 -6
NTP_4_2_7P464
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.48 +2 -2
NTP_4_2_7P464
scripts/calc_tickadj/calc_tickadj.html@1.49 +1 -1
NTP_4_2_7P464
scripts/calc_tickadj/calc_tickadj.man.in@1.47 +6 -6
NTP_4_2_7P464
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.48 +2 -2
NTP_4_2_7P464
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.51 +1 -1
NTP_4_2_7P464
scripts/invoke-plot_summary.texi@1.69 +2 -2
NTP_4_2_7P464
scripts/invoke-summary.texi@1.69 +2 -2
NTP_4_2_7P464
scripts/ntp-wait/invoke-ntp-wait.texi@1.277 +2 -2
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait-opts@1.13 +2 -2
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.276 +6 -6
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.276 +2 -2
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait.html@1.294 +2 -2
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait.man.in@1.276 +6 -6
NTP_4_2_7P464
scripts/ntp-wait/ntp-wait.mdoc.in@1.276 +2 -2
NTP_4_2_7P464
scripts/ntpsweep/invoke-ntpsweep.texi@1.66 +2 -2
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep-opts@1.15 +2 -2
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.55 +6 -6
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.55 +2 -2
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep.html@1.67 +2 -2
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep.man.in@1.55 +6 -6
NTP_4_2_7P464
scripts/ntpsweep/ntpsweep.mdoc.in@1.56 +2 -2
NTP_4_2_7P464
scripts/ntptrace/invoke-ntptrace.texi@1.66 +2 -2
NTP_4_2_7P464
scripts/ntptrace/ntptrace-opts@1.15 +2 -2
NTP_4_2_7P464
scripts/ntptrace/ntptrace.1ntptraceman@1.55 +13 -13
NTP_4_2_7P464
scripts/ntptrace/ntptrace.1ntptracemdoc@1.55 +2 -2
NTP_4_2_7P464
scripts/ntptrace/ntptrace.html@1.67 +2 -2
NTP_4_2_7P464
scripts/ntptrace/ntptrace.man.in@1.55 +13 -13
NTP_4_2_7P464
scripts/ntptrace/ntptrace.mdoc.in@1.56 +2 -2
NTP_4_2_7P464
scripts/plot_summary-opts@1.16 +2 -2
NTP_4_2_7P464
scripts/plot_summary.1plot_summaryman@1.67 +14 -14
NTP_4_2_7P464
scripts/plot_summary.1plot_summarymdoc@1.67 +3 -3
NTP_4_2_7P464
scripts/plot_summary.html@1.69 +2 -2
NTP_4_2_7P464
scripts/plot_summary.man.in@1.67 +14 -14
NTP_4_2_7P464
scripts/plot_summary.mdoc.in@1.67 +3 -3
NTP_4_2_7P464
scripts/summary-opts@1.16 +2 -2
NTP_4_2_7P464
scripts/summary.1summaryman@1.67 +6 -6
NTP_4_2_7P464
scripts/summary.1summarymdoc@1.67 +2 -2
NTP_4_2_7P464
scripts/summary.html@1.69 +2 -2
NTP_4_2_7P464
scripts/summary.man.in@1.67 +6 -6
NTP_4_2_7P464
scripts/summary.mdoc.in@1.67 +2 -2
NTP_4_2_7P464
sntp/invoke-sntp.texi@1.454 +2 -2
NTP_4_2_7P464
sntp/sntp-opts.c@1.471 +6 -6
NTP_4_2_7P464
sntp/sntp-opts.h@1.471 +2 -2
NTP_4_2_7P464
sntp/sntp.1sntpman@1.289 +6 -6
NTP_4_2_7P464
sntp/sntp.1sntpmdoc@1.289 +2 -2
NTP_4_2_7P464
sntp/sntp.html@1.469 +2 -2
NTP_4_2_7P464
sntp/sntp.man.in@1.289 +6 -6
NTP_4_2_7P464
sntp/sntp.mdoc.in@1.289 +2 -2
NTP_4_2_7P464
util/invoke-ntp-keygen.texi@1.458 +2 -2
NTP_4_2_7P464
util/ntp-keygen-opts.c@1.474 +6 -6
NTP_4_2_7P464
util/ntp-keygen-opts.h@1.474 +2 -2
NTP_4_2_7P464
util/ntp-keygen.1ntp-keygenman@1.286 +6 -6
NTP_4_2_7P464
util/ntp-keygen.1ntp-keygenmdoc@1.286 +2 -2
NTP_4_2_7P464
util/ntp-keygen.html@1.134 +2 -2
NTP_4_2_7P464
util/ntp-keygen.man.in@1.286 +6 -6
NTP_4_2_7P464
util/ntp-keygen.mdoc.in@1.286 +2 -2
NTP_4_2_7P464
ChangeSet@1.3186, 2014-08-22 02:15:10-04:00, stenn@deacon.udel.edu
typos
ChangeLog@1.1523 +1 -1
typos
ChangeSet@1.3185, 2014-08-21 21:40:54+00:00, stenn@psp-fb1.ntp.org
[Bug 2636] Fix coverity warning from previous patch
ChangeLog@1.1522 +1 -0
[Bug 2636] Fix coverity warning from previous patch
ChangeSet@1.3184, 2014-08-21 18:17:07+02:00, jnperlin@hydra.(none)
refclock_gpsdjson: Fix coverity warning. Did not cause a bug, but the code was not excatly as intented.
ntpd/refclock_gpsdjson.c@1.12 +11 -5
Fix coverity warning. Did not cause a bug, but the code was not excatly as intented.
ChangeSet@1.3183, 2014-08-21 08:59:13+00:00, stenn@deacon.udel.edu
NTP_4_2_7P463
TAG: NTP_4_2_7P463
ChangeLog@1.1521 +1 -0
NTP_4_2_7P463
ntpd/invoke-ntp.conf.texi@1.142 +1 -1
NTP_4_2_7P463
ntpd/invoke-ntp.keys.texi@1.140 +1 -1
NTP_4_2_7P463
ntpd/invoke-ntpd.texi@1.456 +2 -2
NTP_4_2_7P463
ntpd/ntp.conf.5man@1.176 +6 -6
NTP_4_2_7P463
ntpd/ntp.conf.5mdoc@1.176 +2 -2
NTP_4_2_7P463
ntpd/ntp.conf.html@1.137 +1 -1
NTP_4_2_7P463
ntpd/ntp.conf.man.in@1.176 +6 -6
NTP_4_2_7P463
ntpd/ntp.conf.mdoc.in@1.176 +2 -2
NTP_4_2_7P463
ntpd/ntp.keys.5man@1.174 +2 -2
NTP_4_2_7P463
ntpd/ntp.keys.5mdoc@1.174 +2 -2
NTP_4_2_7P463
ntpd/ntp.keys.html@1.138 +1 -1
NTP_4_2_7P463
ntpd/ntp.keys.man.in@1.174 +2 -2
NTP_4_2_7P463
ntpd/ntp.keys.mdoc.in@1.174 +2 -2
NTP_4_2_7P463
ntpd/ntpd-opts.c@1.476 +6 -6
NTP_4_2_7P463
ntpd/ntpd-opts.h@1.476 +2 -2
NTP_4_2_7P463
ntpd/ntpd.1ntpdman@1.285 +6 -6
NTP_4_2_7P463
ntpd/ntpd.1ntpdmdoc@1.285 +2 -2
NTP_4_2_7P463
ntpd/ntpd.html@1.132 +2 -2
NTP_4_2_7P463
ntpd/ntpd.man.in@1.285 +6 -6
NTP_4_2_7P463
ntpd/ntpd.mdoc.in@1.285 +2 -2
NTP_4_2_7P463
ntpdc/invoke-ntpdc.texi@1.454 +2 -2
NTP_4_2_7P463
ntpdc/ntpdc-opts.c@1.471 +6 -6
NTP_4_2_7P463
ntpdc/ntpdc-opts.h@1.471 +2 -2
NTP_4_2_7P463
ntpdc/ntpdc.1ntpdcman@1.285 +13 -13
NTP_4_2_7P463
ntpdc/ntpdc.1ntpdcmdoc@1.285 +2 -2
NTP_4_2_7P463
ntpdc/ntpdc.html@1.298 +2 -2
NTP_4_2_7P463
ntpdc/ntpdc.man.in@1.285 +13 -13
NTP_4_2_7P463
ntpdc/ntpdc.mdoc.in@1.285 +2 -2
NTP_4_2_7P463
ntpq/invoke-ntpq.texi@1.460 +2 -2
NTP_4_2_7P463
ntpq/ntpq-opts.c@1.476 +6 -6
NTP_4_2_7P463
ntpq/ntpq-opts.h@1.475 +2 -2
NTP_4_2_7P463
ntpq/ntpq.1ntpqman@1.288 +6 -6
NTP_4_2_7P463
ntpq/ntpq.1ntpqmdoc@1.288 +2 -2
NTP_4_2_7P463
ntpq/ntpq.html@1.129 +2 -2
NTP_4_2_7P463
ntpq/ntpq.man.in@1.288 +6 -6
NTP_4_2_7P463
ntpq/ntpq.mdoc.in@1.288 +2 -2
NTP_4_2_7P463
ntpsnmpd/invoke-ntpsnmpd.texi@1.456 +2 -2
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd-opts.c@1.473 +6 -6
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd-opts.h@1.473 +2 -2
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.285 +6 -6
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.285 +2 -2
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd.html@1.127 +1 -1
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd.man.in@1.285 +6 -6
NTP_4_2_7P463
ntpsnmpd/ntpsnmpd.mdoc.in@1.285 +2 -2
NTP_4_2_7P463
packageinfo.sh@1.467 +1 -1
NTP_4_2_7P463
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.47 +6 -6
NTP_4_2_7P463
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.47 +2 -2
NTP_4_2_7P463
scripts/calc_tickadj/calc_tickadj.html@1.48 +1 -1
NTP_4_2_7P463
scripts/calc_tickadj/calc_tickadj.man.in@1.46 +6 -6
NTP_4_2_7P463
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.47 +2 -2
NTP_4_2_7P463
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.50 +1 -1
NTP_4_2_7P463
scripts/invoke-plot_summary.texi@1.68 +2 -2
NTP_4_2_7P463
scripts/invoke-summary.texi@1.68 +2 -2
NTP_4_2_7P463
scripts/ntp-wait/invoke-ntp-wait.texi@1.276 +2 -2
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait-opts@1.12 +2 -2
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.275 +6 -6
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.275 +2 -2
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait.html@1.293 +2 -2
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait.man.in@1.275 +6 -6
NTP_4_2_7P463
scripts/ntp-wait/ntp-wait.mdoc.in@1.275 +2 -2
NTP_4_2_7P463
scripts/ntpsweep/invoke-ntpsweep.texi@1.65 +2 -2
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep-opts@1.14 +2 -2
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.54 +6 -6
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.54 +2 -2
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep.html@1.66 +2 -2
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep.man.in@1.54 +6 -6
NTP_4_2_7P463
scripts/ntpsweep/ntpsweep.mdoc.in@1.55 +2 -2
NTP_4_2_7P463
scripts/ntptrace/invoke-ntptrace.texi@1.65 +2 -2
NTP_4_2_7P463
scripts/ntptrace/ntptrace-opts@1.14 +2 -2
NTP_4_2_7P463
scripts/ntptrace/ntptrace.1ntptraceman@1.54 +6 -6
NTP_4_2_7P463
scripts/ntptrace/ntptrace.1ntptracemdoc@1.54 +2 -2
NTP_4_2_7P463
scripts/ntptrace/ntptrace.html@1.66 +2 -2
NTP_4_2_7P463
scripts/ntptrace/ntptrace.man.in@1.54 +6 -6
NTP_4_2_7P463
scripts/ntptrace/ntptrace.mdoc.in@1.55 +2 -2
NTP_4_2_7P463
scripts/plot_summary-opts@1.15 +2 -2
NTP_4_2_7P463
scripts/plot_summary.1plot_summaryman@1.66 +14 -14
NTP_4_2_7P463
scripts/plot_summary.1plot_summarymdoc@1.66 +2 -2
NTP_4_2_7P463
scripts/plot_summary.html@1.68 +2 -2
NTP_4_2_7P463
scripts/plot_summary.man.in@1.66 +14 -14
NTP_4_2_7P463
scripts/plot_summary.mdoc.in@1.66 +2 -2
NTP_4_2_7P463
scripts/summary-opts@1.15 +2 -2
NTP_4_2_7P463
scripts/summary.1summaryman@1.66 +6 -6
NTP_4_2_7P463
scripts/summary.1summarymdoc@1.66 +2 -2
NTP_4_2_7P463
scripts/summary.html@1.68 +2 -2
NTP_4_2_7P463
scripts/summary.man.in@1.66 +6 -6
NTP_4_2_7P463
scripts/summary.mdoc.in@1.66 +2 -2
NTP_4_2_7P463
sntp/invoke-sntp.texi@1.453 +2 -2
NTP_4_2_7P463
sntp/sntp-opts.c@1.470 +6 -6
NTP_4_2_7P463
sntp/sntp-opts.h@1.470 +2 -2
NTP_4_2_7P463
sntp/sntp.1sntpman@1.288 +6 -6
NTP_4_2_7P463
sntp/sntp.1sntpmdoc@1.288 +2 -2
NTP_4_2_7P463
sntp/sntp.html@1.468 +2 -2
NTP_4_2_7P463
sntp/sntp.man.in@1.288 +6 -6
NTP_4_2_7P463
sntp/sntp.mdoc.in@1.288 +2 -2
NTP_4_2_7P463
util/invoke-ntp-keygen.texi@1.457 +2 -2
NTP_4_2_7P463
util/ntp-keygen-opts.c@1.473 +6 -6
NTP_4_2_7P463
util/ntp-keygen-opts.h@1.473 +2 -2
NTP_4_2_7P463
util/ntp-keygen.1ntp-keygenman@1.285 +6 -6
NTP_4_2_7P463
util/ntp-keygen.1ntp-keygenmdoc@1.285 +2 -2
NTP_4_2_7P463
util/ntp-keygen.html@1.133 +2 -2
NTP_4_2_7P463
util/ntp-keygen.man.in@1.285 +6 -6
NTP_4_2_7P463
util/ntp-keygen.mdoc.in@1.285 +2 -2
NTP_4_2_7P463
ChangeSet@1.3182, 2014-08-20 22:14:09+02:00, jnperlin@hydra.(none)
[Bug 2636] Clutter in syslog if gpsd not running
- make driver work with PSD protocol versio 3.9
- use exponential back-off for connection problems
- implement rate-limit for syslog entries
ChangeLog@1.1520 +4 -0
[Bug 2636] Clutter in syslog if gpsd not running
- make driver work with PSD protocol versio 3.9
- use exponential back-off for connection problems
- implement rate-limit for syslog entries
html/drivers/driver46.html@1.4 +102 -43
[Bug 2636] Clutter in syslog if gpsd not running
- documentation update and extension
ntpd/refclock_gpsdjson.c@1.11 +125 -74
[Bug 2636] Clutter in syslog if gpsd not running
- make driver work with PSD protocol versio 3.9
- use exponential back-off for connection problems
- implement rate-limit for syslog entries
ChangeSet@1.3181, 2014-08-19 22:39:42+02:00, jnperlin@hydra.(none)
[Bug 2636] reduce logging of recurrent/persistent errors to avoid syslog flooding;
adapt to protocol version 3.9 and nanosecond PPS precision.
html/drivers/driver46.html@1.3 +10 -3
[Bug 2636] describe fudge flags used for clock stats and log throttle
ntpd/refclock_gpsdjson.c@1.10 +271 -121
[Bug 2636] imlement log throttling, adapt to GPSD protoco verdion 3.9
ChangeSet@1.3180, 2014-08-16 06:28:32+00:00, stenn@deacon.udel.edu
NTP_4_2_7P462
TAG: NTP_4_2_7P462
ChangeLog@1.1519 +1 -0
NTP_4_2_7P462
ntpd/invoke-ntp.conf.texi@1.141 +1 -1
NTP_4_2_7P462
ntpd/invoke-ntp.keys.texi@1.139 +1 -1
NTP_4_2_7P462
ntpd/invoke-ntpd.texi@1.455 +2 -2
NTP_4_2_7P462
ntpd/ntp.conf.5man@1.175 +6 -6
NTP_4_2_7P462
ntpd/ntp.conf.5mdoc@1.175 +2 -2
NTP_4_2_7P462
ntpd/ntp.conf.html@1.136 +1 -1
NTP_4_2_7P462
ntpd/ntp.conf.man.in@1.175 +6 -6
NTP_4_2_7P462
ntpd/ntp.conf.mdoc.in@1.175 +2 -2
NTP_4_2_7P462
ntpd/ntp.keys.5man@1.173 +2 -2
NTP_4_2_7P462
ntpd/ntp.keys.5mdoc@1.173 +2 -2
NTP_4_2_7P462
ntpd/ntp.keys.html@1.137 +1 -1
NTP_4_2_7P462
ntpd/ntp.keys.man.in@1.173 +2 -2
NTP_4_2_7P462
ntpd/ntp.keys.mdoc.in@1.173 +2 -2
NTP_4_2_7P462
ntpd/ntpd-opts.c@1.475 +6 -6
NTP_4_2_7P462
ntpd/ntpd-opts.h@1.475 +2 -2
NTP_4_2_7P462
ntpd/ntpd.1ntpdman@1.284 +6 -6
NTP_4_2_7P462
ntpd/ntpd.1ntpdmdoc@1.284 +2 -2
NTP_4_2_7P462
ntpd/ntpd.html@1.131 +2 -2
NTP_4_2_7P462
ntpd/ntpd.man.in@1.284 +6 -6
NTP_4_2_7P462
ntpd/ntpd.mdoc.in@1.284 +2 -2
NTP_4_2_7P462
ntpdc/invoke-ntpdc.texi@1.453 +2 -2
NTP_4_2_7P462
ntpdc/ntpdc-opts.c@1.470 +6 -6
NTP_4_2_7P462
ntpdc/ntpdc-opts.h@1.470 +2 -2
NTP_4_2_7P462
ntpdc/ntpdc.1ntpdcman@1.284 +13 -13
NTP_4_2_7P462
ntpdc/ntpdc.1ntpdcmdoc@1.284 +2 -2
NTP_4_2_7P462
ntpdc/ntpdc.html@1.297 +2 -2
NTP_4_2_7P462
ntpdc/ntpdc.man.in@1.284 +13 -13
NTP_4_2_7P462
ntpdc/ntpdc.mdoc.in@1.284 +2 -2
NTP_4_2_7P462
ntpq/invoke-ntpq.texi@1.459 +2 -2
NTP_4_2_7P462
ntpq/ntpq-opts.c@1.475 +6 -6
NTP_4_2_7P462
ntpq/ntpq-opts.h@1.474 +2 -2
NTP_4_2_7P462
ntpq/ntpq.1ntpqman@1.287 +6 -6
NTP_4_2_7P462
ntpq/ntpq.1ntpqmdoc@1.287 +2 -2
NTP_4_2_7P462
ntpq/ntpq.html@1.128 +2 -2
NTP_4_2_7P462
ntpq/ntpq.man.in@1.287 +6 -6
NTP_4_2_7P462
ntpq/ntpq.mdoc.in@1.287 +2 -2
NTP_4_2_7P462
ntpsnmpd/invoke-ntpsnmpd.texi@1.455 +2 -2
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd-opts.c@1.472 +6 -6
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd-opts.h@1.472 +2 -2
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.284 +6 -6
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.284 +2 -2
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd.html@1.126 +1 -1
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd.man.in@1.284 +6 -6
NTP_4_2_7P462
ntpsnmpd/ntpsnmpd.mdoc.in@1.284 +2 -2
NTP_4_2_7P462
packageinfo.sh@1.466 +1 -1
NTP_4_2_7P462
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.46 +6 -6
NTP_4_2_7P462
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.46 +2 -2
NTP_4_2_7P462
scripts/calc_tickadj/calc_tickadj.html@1.47 +1 -1
NTP_4_2_7P462
scripts/calc_tickadj/calc_tickadj.man.in@1.45 +6 -6
NTP_4_2_7P462
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.46 +2 -2
NTP_4_2_7P462
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.49 +1 -1
NTP_4_2_7P462
scripts/invoke-plot_summary.texi@1.67 +3 -3
NTP_4_2_7P462
scripts/invoke-summary.texi@1.67 +3 -3
NTP_4_2_7P462
scripts/ntp-wait/invoke-ntp-wait.texi@1.275 +2 -2
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait-opts@1.11 +2 -2
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.274 +6 -6
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.274 +2 -2
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait.html@1.292 +2 -2
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait.man.in@1.274 +6 -6
NTP_4_2_7P462
scripts/ntp-wait/ntp-wait.mdoc.in@1.274 +2 -2
NTP_4_2_7P462
scripts/ntpsweep/invoke-ntpsweep.texi@1.64 +2 -2
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep-opts@1.13 +2 -2
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.53 +6 -6
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.53 +2 -2
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep.html@1.65 +2 -2
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep.man.in@1.53 +6 -6
NTP_4_2_7P462
scripts/ntpsweep/ntpsweep.mdoc.in@1.54 +2 -2
NTP_4_2_7P462
scripts/ntptrace/invoke-ntptrace.texi@1.64 +2 -2
NTP_4_2_7P462
scripts/ntptrace/ntptrace-opts@1.13 +2 -2
NTP_4_2_7P462
scripts/ntptrace/ntptrace.1ntptraceman@1.53 +6 -6
NTP_4_2_7P462
scripts/ntptrace/ntptrace.1ntptracemdoc@1.53 +2 -2
NTP_4_2_7P462
scripts/ntptrace/ntptrace.html@1.65 +2 -2
NTP_4_2_7P462
scripts/ntptrace/ntptrace.man.in@1.53 +6 -6
NTP_4_2_7P462
scripts/ntptrace/ntptrace.mdoc.in@1.54 +2 -2
NTP_4_2_7P462
scripts/plot_summary-opts@1.14 +3 -3
NTP_4_2_7P462
scripts/plot_summary.1plot_summaryman@1.65 +6 -6
NTP_4_2_7P462
scripts/plot_summary.1plot_summarymdoc@1.65 +3 -3
NTP_4_2_7P462
scripts/plot_summary.html@1.67 +3 -3
NTP_4_2_7P462
scripts/plot_summary.man.in@1.65 +6 -6
NTP_4_2_7P462
scripts/plot_summary.mdoc.in@1.65 +3 -3
NTP_4_2_7P462
scripts/summary-opts@1.14 +2 -2
NTP_4_2_7P462
scripts/summary.1summaryman@1.65 +6 -6
NTP_4_2_7P462
scripts/summary.1summarymdoc@1.65 +3 -3
NTP_4_2_7P462
scripts/summary.html@1.67 +3 -3
NTP_4_2_7P462
scripts/summary.man.in@1.65 +6 -6
NTP_4_2_7P462
scripts/summary.mdoc.in@1.65 +2 -2
NTP_4_2_7P462
sntp/invoke-sntp.texi@1.452 +2 -2
NTP_4_2_7P462
sntp/sntp-opts.c@1.469 +6 -6
NTP_4_2_7P462
sntp/sntp-opts.h@1.469 +2 -2
NTP_4_2_7P462
sntp/sntp.1sntpman@1.287 +6 -6
NTP_4_2_7P462
sntp/sntp.1sntpmdoc@1.287 +2 -2
NTP_4_2_7P462
sntp/sntp.html@1.467 +2 -2
NTP_4_2_7P462
sntp/sntp.man.in@1.287 +6 -6
NTP_4_2_7P462
sntp/sntp.mdoc.in@1.287 +2 -2
NTP_4_2_7P462
util/invoke-ntp-keygen.texi@1.456 +2 -2
NTP_4_2_7P462
util/ntp-keygen-opts.c@1.472 +6 -6
NTP_4_2_7P462
util/ntp-keygen-opts.h@1.472 +2 -2
NTP_4_2_7P462
util/ntp-keygen.1ntp-keygenman@1.284 +6 -6
NTP_4_2_7P462
util/ntp-keygen.1ntp-keygenmdoc@1.284 +2 -2
NTP_4_2_7P462
util/ntp-keygen.html@1.132 +2 -2
NTP_4_2_7P462
util/ntp-keygen.man.in@1.284 +6 -6
NTP_4_2_7P462
util/ntp-keygen.mdoc.in@1.284 +2 -2
NTP_4_2_7P462
ChangeSet@1.3177.1.5, 2014-08-14 09:32:20+00:00, stenn@deacon.udel.edu
NTP_4_2_7P461
TAG: NTP_4_2_7P461
ChangeLog@1.1516.1.5 +2 -0
NTP_4_2_7P461
ntpd/invoke-ntp.conf.texi@1.140 +1 -1
NTP_4_2_7P461
ntpd/invoke-ntp.keys.texi@1.138 +1 -1
NTP_4_2_7P461
ntpd/invoke-ntpd.texi@1.454 +2 -2
NTP_4_2_7P461
ntpd/ntp.conf.5man@1.174 +6 -6
NTP_4_2_7P461
ntpd/ntp.conf.5mdoc@1.174 +2 -2
NTP_4_2_7P461
ntpd/ntp.conf.html@1.135 +1 -1
NTP_4_2_7P461
ntpd/ntp.conf.man.in@1.174 +6 -6
NTP_4_2_7P461
ntpd/ntp.conf.mdoc.in@1.174 +2 -2
NTP_4_2_7P461
ntpd/ntp.keys.5man@1.172 +2 -2
NTP_4_2_7P461
ntpd/ntp.keys.5mdoc@1.172 +2 -2
NTP_4_2_7P461
ntpd/ntp.keys.html@1.136 +1 -1
NTP_4_2_7P461
ntpd/ntp.keys.man.in@1.172 +2 -2
NTP_4_2_7P461
ntpd/ntp.keys.mdoc.in@1.172 +2 -2
NTP_4_2_7P461
ntpd/ntpd-opts.c@1.474 +6 -6
NTP_4_2_7P461
ntpd/ntpd-opts.h@1.474 +2 -2
NTP_4_2_7P461
ntpd/ntpd.1ntpdman@1.283 +6 -6
NTP_4_2_7P461
ntpd/ntpd.1ntpdmdoc@1.283 +2 -2
NTP_4_2_7P461
ntpd/ntpd.html@1.130 +2 -2
NTP_4_2_7P461
ntpd/ntpd.man.in@1.283 +6 -6
NTP_4_2_7P461
ntpd/ntpd.mdoc.in@1.283 +2 -2
NTP_4_2_7P461
ntpdc/invoke-ntpdc.texi@1.452 +2 -2
NTP_4_2_7P461
ntpdc/ntpdc-opts.c@1.469 +6 -6
NTP_4_2_7P461
ntpdc/ntpdc-opts.h@1.469 +2 -2
NTP_4_2_7P461
ntpdc/ntpdc.1ntpdcman@1.283 +6 -6
NTP_4_2_7P461
ntpdc/ntpdc.1ntpdcmdoc@1.283 +2 -2
NTP_4_2_7P461
ntpdc/ntpdc.html@1.296 +2 -2
NTP_4_2_7P461
ntpdc/ntpdc.man.in@1.283 +6 -6
NTP_4_2_7P461
ntpdc/ntpdc.mdoc.in@1.283 +2 -2
NTP_4_2_7P461
ntpq/invoke-ntpq.texi@1.458 +2 -2
NTP_4_2_7P461
ntpq/ntpq-opts.c@1.474 +6 -6
NTP_4_2_7P461
ntpq/ntpq-opts.h@1.473 +2 -2
NTP_4_2_7P461
ntpq/ntpq.1ntpqman@1.286 +32 -3
NTP_4_2_7P461
ntpq/ntpq.1ntpqmdoc@1.286 +20 -1
NTP_4_2_7P461
ntpq/ntpq.html@1.127 +63 -41
NTP_4_2_7P461
ntpq/ntpq.man.in@1.286 +32 -3
NTP_4_2_7P461
ntpq/ntpq.mdoc.in@1.286 +20 -1
NTP_4_2_7P461
ntpsnmpd/invoke-ntpsnmpd.texi@1.454 +2 -2
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd-opts.c@1.471 +6 -6
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd-opts.h@1.471 +2 -2
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.283 +6 -6
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.283 +2 -2
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd.html@1.125 +1 -1
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd.man.in@1.283 +6 -6
NTP_4_2_7P461
ntpsnmpd/ntpsnmpd.mdoc.in@1.283 +2 -2
NTP_4_2_7P461
packageinfo.sh@1.465 +1 -1
NTP_4_2_7P461
scripts/Makefile.am@1.38 +1 -0
More autogen-5.18.4pre14 cleanup
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.45 +6 -6
NTP_4_2_7P461
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.45 +2 -2
NTP_4_2_7P461
scripts/calc_tickadj/calc_tickadj.html@1.46 +1 -1
NTP_4_2_7P461
scripts/calc_tickadj/calc_tickadj.man.in@1.44 +6 -6
NTP_4_2_7P461
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.45 +2 -2
NTP_4_2_7P461
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.48 +1 -1
NTP_4_2_7P461
scripts/invoke-plot_summary.texi@1.66 +1 -1
NTP_4_2_7P461
scripts/invoke-plot_summary.texi@1.65 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/invoke-summary.texi@1.66 +1 -1
NTP_4_2_7P461
scripts/invoke-summary.texi@1.65 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/Makefile.am@1.8 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/invoke-ntp-wait.texi@1.274 +2 -2
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait-opts@1.10 +2 -2
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.273 +6 -6
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.273 +2 -2
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait.html@1.291 +2 -2
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait.man.in@1.273 +6 -6
NTP_4_2_7P461
scripts/ntp-wait/ntp-wait.mdoc.in@1.273 +2 -2
NTP_4_2_7P461
scripts/ntpsweep/Makefile.am@1.9 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntpsweep/invoke-ntpsweep.texi@1.63 +2 -2
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep-opts@1.12 +2 -2
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.52 +13 -13
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.52 +2 -2
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep.html@1.64 +2 -2
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep.man.in@1.52 +13 -13
NTP_4_2_7P461
scripts/ntpsweep/ntpsweep.mdoc.in@1.53 +2 -2
NTP_4_2_7P461
scripts/ntptrace/Makefile.am@1.9 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntptrace/invoke-ntptrace.texi@1.63 +2 -2
NTP_4_2_7P461
scripts/ntptrace/ntptrace-opts@1.12 +2 -2
NTP_4_2_7P461
scripts/ntptrace/ntptrace.1ntptraceman@1.52 +6 -6
NTP_4_2_7P461
scripts/ntptrace/ntptrace.1ntptracemdoc@1.52 +2 -2
NTP_4_2_7P461
scripts/ntptrace/ntptrace.html@1.64 +2 -2
NTP_4_2_7P461
scripts/ntptrace/ntptrace.man.in@1.52 +6 -6
NTP_4_2_7P461
scripts/ntptrace/ntptrace.mdoc.in@1.53 +2 -2
NTP_4_2_7P461
scripts/plot_summary-opts@1.13 +1 -1
NTP_4_2_7P461
scripts/plot_summary-opts@1.12 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.1plot_summaryman@1.64 +1 -1
NTP_4_2_7P461
scripts/plot_summary.1plot_summaryman@1.63 +6 -6
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.1plot_summarymdoc@1.64 +1 -1
NTP_4_2_7P461
scripts/plot_summary.1plot_summarymdoc@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.html@1.66 +1 -1
NTP_4_2_7P461
scripts/plot_summary.html@1.65 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.man.in@1.64 +1 -1
NTP_4_2_7P461
scripts/plot_summary.man.in@1.63 +6 -6
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.mdoc.in@1.64 +1 -1
NTP_4_2_7P461
scripts/plot_summary.mdoc.in@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/summary-opts@1.13 +1 -1
NTP_4_2_7P461
scripts/summary-opts@1.12 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/summary.1summaryman@1.64 +1 -1
NTP_4_2_7P461
scripts/summary.1summaryman@1.63 +6 -6
More autogen-5.18.4pre14 cleanup
scripts/summary.1summarymdoc@1.64 +1 -1
NTP_4_2_7P461
scripts/summary.1summarymdoc@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/summary.html@1.66 +1 -1
NTP_4_2_7P461
scripts/summary.html@1.65 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/summary.man.in@1.64 +1 -1
NTP_4_2_7P461
scripts/summary.man.in@1.63 +6 -6
More autogen-5.18.4pre14 cleanup
scripts/summary.mdoc.in@1.64 +1 -1
NTP_4_2_7P461
scripts/summary.mdoc.in@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
sntp/invoke-sntp.texi@1.451 +2 -2
NTP_4_2_7P461
sntp/sntp-opts.c@1.468 +6 -6
NTP_4_2_7P461
sntp/sntp-opts.h@1.468 +2 -2
NTP_4_2_7P461
sntp/sntp.1sntpman@1.286 +6 -6
NTP_4_2_7P461
sntp/sntp.1sntpmdoc@1.286 +2 -2
NTP_4_2_7P461
sntp/sntp.html@1.466 +2 -2
NTP_4_2_7P461
sntp/sntp.man.in@1.286 +6 -6
NTP_4_2_7P461
sntp/sntp.mdoc.in@1.286 +2 -2
NTP_4_2_7P461
util/invoke-ntp-keygen.texi@1.455 +2 -2
NTP_4_2_7P461
util/ntp-keygen-opts.c@1.471 +6 -6
NTP_4_2_7P461
util/ntp-keygen-opts.h@1.471 +2 -2
NTP_4_2_7P461
util/ntp-keygen.1ntp-keygenman@1.283 +6 -6
NTP_4_2_7P461
util/ntp-keygen.1ntp-keygenmdoc@1.283 +2 -2
NTP_4_2_7P461
util/ntp-keygen.html@1.131 +2 -2
NTP_4_2_7P461
util/ntp-keygen.man.in@1.283 +6 -6
NTP_4_2_7P461
util/ntp-keygen.mdoc.in@1.283 +2 -2
NTP_4_2_7P461
ChangeSet@1.3177.1.4, 2014-08-14 08:27:49+00:00, stenn@psp-fb1.ntp.org
[Bug 1128] ntpq truncates "remote" host information
ChangeLog@1.1516.1.4 +1 -0
[Bug 1128] ntpq truncates "remote" host information
ntpq/invoke-ntpq.texi@1.457 +38 -23
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq-opts.c@1.473 +129 -99
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq-opts.def@1.21 +30 -14
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq-opts.h@1.472 +23 -16
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq-subs.c@1.100 +5 -1
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq.1ntpqman@1.285 +24 -41
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq.1ntpqmdoc@1.285 +22 -30
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq.c@1.152 +4 -0
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq.man.in@1.285 +24 -41
[Bug 1128] ntpq truncates "remote" host information
ntpq/ntpq.mdoc.in@1.285 +22 -30
[Bug 1128] ntpq truncates "remote" host information
ChangeSet@1.3177.1.3, 2014-08-13 11:49:32+00:00, stenn@deacon.udel.edu
NTP_4_2_7P460
TAG: NTP_4_2_7P460
ChangeLog@1.1516.1.3 +1 -0
NTP_4_2_7P460
ntpd/invoke-ntp.conf.texi@1.139 +1 -1
NTP_4_2_7P460
ntpd/invoke-ntp.keys.texi@1.137 +1 -1
NTP_4_2_7P460
ntpd/invoke-ntpd.texi@1.453 +2 -2
NTP_4_2_7P460
ntpd/ntp.conf.5man@1.173 +4 -4
NTP_4_2_7P460
ntpd/ntp.conf.5mdoc@1.173 +1 -1
NTP_4_2_7P460
ntpd/ntp.conf.html@1.134 +1 -1
NTP_4_2_7P460
ntpd/ntp.conf.man.in@1.173 +4 -4
NTP_4_2_7P460
ntpd/ntp.conf.mdoc.in@1.173 +1 -1
NTP_4_2_7P460
ntpd/ntp.keys.5man@1.171 +11 -4
NTP_4_2_7P460
ntpd/ntp.keys.5mdoc@1.171 +7 -3
NTP_4_2_7P460
ntpd/ntp.keys.html@1.135 +1 -1
NTP_4_2_7P460
ntpd/ntp.keys.man.in@1.171 +11 -4
NTP_4_2_7P460
ntpd/ntp.keys.mdoc.in@1.171 +7 -3
NTP_4_2_7P460
ntpd/ntpd-opts.c@1.473 +6 -6
NTP_4_2_7P460
ntpd/ntpd-opts.h@1.473 +2 -2
NTP_4_2_7P460
ntpd/ntpd.1ntpdman@1.282 +4 -4
NTP_4_2_7P460
ntpd/ntpd.1ntpdmdoc@1.282 +1 -1
NTP_4_2_7P460
ntpd/ntpd.html@1.129 +2 -2
NTP_4_2_7P460
ntpd/ntpd.man.in@1.282 +4 -4
NTP_4_2_7P460
ntpd/ntpd.mdoc.in@1.282 +1 -1
NTP_4_2_7P460
ntpdc/invoke-ntpdc.texi@1.451 +2 -2
NTP_4_2_7P460
ntpdc/ntpdc-opts.c@1.468 +6 -6
NTP_4_2_7P460
ntpdc/ntpdc-opts.h@1.468 +2 -2
NTP_4_2_7P460
ntpdc/ntpdc.1ntpdcman@1.282 +4 -4
NTP_4_2_7P460
ntpdc/ntpdc.1ntpdcmdoc@1.282 +1 -1
NTP_4_2_7P460
ntpdc/ntpdc.html@1.295 +2 -2
NTP_4_2_7P460
ntpdc/ntpdc.man.in@1.282 +4 -4
NTP_4_2_7P460
ntpdc/ntpdc.mdoc.in@1.282 +1 -1
NTP_4_2_7P460
ntpq/invoke-ntpq.texi@1.456 +2 -2
NTP_4_2_7P460
ntpq/ntpq-opts.c@1.472 +6 -6
NTP_4_2_7P460
ntpq/ntpq-opts.h@1.471 +2 -2
NTP_4_2_7P460
ntpq/ntpq.1ntpqman@1.284 +4 -4
NTP_4_2_7P460
ntpq/ntpq.1ntpqmdoc@1.284 +1 -1
NTP_4_2_7P460
ntpq/ntpq.html@1.126 +2 -2
NTP_4_2_7P460
ntpq/ntpq.man.in@1.284 +4 -4
NTP_4_2_7P460
ntpq/ntpq.mdoc.in@1.284 +1 -1
NTP_4_2_7P460
ntpsnmpd/invoke-ntpsnmpd.texi@1.453 +2 -2
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd-opts.c@1.470 +6 -6
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd-opts.h@1.470 +2 -2
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.282 +4 -4
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.282 +1 -1
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd.html@1.124 +1 -1
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd.man.in@1.282 +4 -4
NTP_4_2_7P460
ntpsnmpd/ntpsnmpd.mdoc.in@1.282 +1 -1
NTP_4_2_7P460
packageinfo.sh@1.464 +1 -1
NTP_4_2_7P460
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.44 +4 -4
NTP_4_2_7P460
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.44 +1 -1
NTP_4_2_7P460
scripts/calc_tickadj/calc_tickadj.html@1.45 +22 -34
NTP_4_2_7P460
scripts/calc_tickadj/calc_tickadj.man.in@1.43 +4 -4
NTP_4_2_7P460
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.44 +1 -1
NTP_4_2_7P460
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.47 +1 -1
NTP_4_2_7P460
scripts/invoke-plot_summary.texi@1.64 +2 -2
NTP_4_2_7P460
scripts/invoke-summary.texi@1.64 +2 -2
NTP_4_2_7P460
scripts/ntp-wait/invoke-ntp-wait.texi@1.273 +2 -2
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait-opts@1.9 +2 -2
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.272 +4 -4
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.272 +1 -1
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait.html@1.290 +31 -49
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait.man.in@1.272 +4 -4
NTP_4_2_7P460
scripts/ntp-wait/ntp-wait.mdoc.in@1.272 +1 -1
NTP_4_2_7P460
scripts/ntpsweep/invoke-ntpsweep.texi@1.62 +2 -2
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep-opts@1.11 +2 -2
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.51 +12 -12
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.51 +1 -1
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep.html@1.63 +33 -44
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep.man.in@1.51 +12 -12
NTP_4_2_7P460
scripts/ntpsweep/ntpsweep.mdoc.in@1.52 +1 -1
NTP_4_2_7P460
scripts/ntptrace/invoke-ntptrace.texi@1.62 +2 -2
NTP_4_2_7P460
scripts/ntptrace/ntptrace-opts@1.11 +2 -2
NTP_4_2_7P460
scripts/ntptrace/ntptrace.1ntptraceman@1.51 +4 -4
NTP_4_2_7P460
scripts/ntptrace/ntptrace.1ntptracemdoc@1.51 +1 -1
NTP_4_2_7P460
scripts/ntptrace/ntptrace.html@1.63 +27 -36
NTP_4_2_7P460
scripts/ntptrace/ntptrace.man.in@1.51 +4 -4
NTP_4_2_7P460
scripts/ntptrace/ntptrace.mdoc.in@1.52 +1 -1
NTP_4_2_7P460
scripts/plot_summary-opts@1.11 +2 -2
NTP_4_2_7P460
scripts/plot_summary.1plot_summaryman@1.62 +4 -4
NTP_4_2_7P460
scripts/plot_summary.1plot_summarymdoc@1.62 +1 -1
NTP_4_2_7P460
scripts/plot_summary.html@1.64 +29 -47
NTP_4_2_7P460
scripts/plot_summary.man.in@1.62 +4 -4
NTP_4_2_7P460
scripts/plot_summary.mdoc.in@1.62 +1 -1
NTP_4_2_7P460
scripts/summary-opts@1.11 +2 -2
NTP_4_2_7P460
scripts/summary.1summaryman@1.62 +4 -4
NTP_4_2_7P460
scripts/summary.1summarymdoc@1.62 +1 -1
NTP_4_2_7P460
scripts/summary.html@1.64 +27 -39
NTP_4_2_7P460
scripts/summary.man.in@1.62 +4 -4
NTP_4_2_7P460
scripts/summary.mdoc.in@1.62 +1 -1
NTP_4_2_7P460
sntp/invoke-sntp.texi@1.450 +2 -2
NTP_4_2_7P460
sntp/sntp-opts.c@1.467 +6 -6
NTP_4_2_7P460
sntp/sntp-opts.h@1.467 +2 -2
NTP_4_2_7P460
sntp/sntp.1sntpman@1.285 +4 -4
NTP_4_2_7P460
sntp/sntp.1sntpmdoc@1.285 +1 -1
NTP_4_2_7P460
sntp/sntp.html@1.465 +2 -2
NTP_4_2_7P460
sntp/sntp.man.in@1.285 +4 -4
NTP_4_2_7P460
sntp/sntp.mdoc.in@1.285 +1 -1
NTP_4_2_7P460
util/invoke-ntp-keygen.texi@1.454 +2 -2
NTP_4_2_7P460
util/ntp-keygen-opts.c@1.470 +6 -6
NTP_4_2_7P460
util/ntp-keygen-opts.h@1.470 +2 -2
NTP_4_2_7P460
util/ntp-keygen.1ntp-keygenman@1.282 +4 -4
NTP_4_2_7P460
util/ntp-keygen.1ntp-keygenmdoc@1.282 +1 -1
NTP_4_2_7P460
util/ntp-keygen.html@1.130 +2 -2
NTP_4_2_7P460
util/ntp-keygen.man.in@1.282 +4 -4
NTP_4_2_7P460
util/ntp-keygen.mdoc.in@1.282 +1 -1
NTP_4_2_7P460
ChangeSet@1.3177.1.2, 2014-08-13 10:36:39+00:00, stenn@psp-fb1.ntp.org
More autogen-5.18.4pre14 cleanup
BitKeeper/deleted/00/mdoc2man~8fe2ef1ce14f0f8e@1.4 +0 -0
Delete: sntp/ag-tpl/Old/mdoc2man
BitKeeper/deleted/0f/agman-file.tpl~e66d0c3c8f6fdd@1.4 +0 -0
Delete: sntp/ag-tpl/Old/agman-file.tpl
BitKeeper/deleted/63/agtexi-cmd.tpl~2f8da79991e6b4d4@1.4 +0 -0
Delete: sntp/ag-tpl/Old/agtexi-cmd.tpl
BitKeeper/deleted/80/agmdoc-file.tpl~4fa7cc72899a18a3@1.4 +0 -0
Delete: sntp/ag-tpl/Old/agmdoc-file.tpl
BitKeeper/deleted/a6/cmd-doc.tlib~e55de6df878a7dcc@1.4 +0 -0
Delete: sntp/ag-tpl/Old/cmd-doc.tlib
ChangeLog@1.1516.1.2 +1 -0
More autogen-5.18.4pre14 cleanup
ntpd/ntpdsim-opts.c@1.27 +6 -6
More autogen-5.18.4pre14 cleanup
ntpd/ntpdsim-opts.h@1.27 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/Makefile.am@1.37 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/calc_tickadj/Makefile.am@1.9 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/calc_tickadj/calc_tickadj-opts@1.7 +3 -3
More autogen-5.18.4pre14 cleanup
scripts/calc_tickadj/calc_tickadj.html@1.44 +35 -23
More autogen-5.18.4pre14 cleanup
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.46 +3 -3
More autogen-5.18.4pre14 cleanup
scripts/invoke-plot_summary.texi@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/invoke-summary.texi@1.63 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/Makefile.am@1.7 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/invoke-ntp-wait.texi@1.272 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/ntp-wait-opts@1.8 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntp-wait/ntp-wait.html@1.289 +48 -30
More autogen-5.18.4pre14 cleanup
scripts/ntpsweep/Makefile.am@1.8 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntpsweep/invoke-ntpsweep.texi@1.61 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntpsweep/ntpsweep-opts@1.10 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntpsweep/ntpsweep.html@1.62 +43 -32
More autogen-5.18.4pre14 cleanup
scripts/ntptrace/Makefile.am@1.8 +1 -1
More autogen-5.18.4pre14 cleanup
scripts/ntptrace/invoke-ntptrace.texi@1.61 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntptrace/ntptrace-opts@1.10 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/ntptrace/ntptrace.html@1.62 +35 -26
More autogen-5.18.4pre14 cleanup
scripts/plot_summary-opts@1.10 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/plot_summary.html@1.63 +46 -28
More autogen-5.18.4pre14 cleanup
scripts/summary-opts@1.10 +2 -2
More autogen-5.18.4pre14 cleanup
scripts/summary.html@1.63 +38 -26
More autogen-5.18.4pre14 cleanup
sntp/ag-tpl/:Old/Mdoc.pm@1.3 +0 -0
Rename: sntp/ag-tpl/Mdoc.pm -> sntp/ag-tpl/:Old/Mdoc.pm
sntp/ag-tpl/:Old/agman-cmd.tpl@1.2 +0 -0
Rename: sntp/ag-tpl/agman-cmd.tpl -> sntp/ag-tpl/:Old/agman-cmd.tpl
sntp/ag-tpl/:Old/agmdoc-cmd.tpl@1.3 +0 -0
Rename: sntp/ag-tpl/agmdoc-cmd.tpl -> sntp/ag-tpl/:Old/agmdoc-cmd.tpl
sntp/ag-tpl/:Old/cmd-doc.tlib@1.2 +0 -0
Rename: sntp/ag-tpl/cmd-doc.tlib -> sntp/ag-tpl/:Old/cmd-doc.tlib
sntp/ag-tpl/:Old/mdoc-synopsis.tlib@1.2 +0 -0
Rename: sntp/ag-tpl/mdoc-synopsis.tlib -> sntp/ag-tpl/:Old/mdoc-synopsis.tlib
sntp/ag-tpl/:Old/mdoc2man@1.3 +0 -0
Rename: sntp/ag-tpl/mdoc2man -> sntp/ag-tpl/:Old/mdoc2man
sntp/ag-tpl/:Old/mdoc2texi@1.10 +0 -0
Rename: sntp/ag-tpl/mdoc2texi -> sntp/ag-tpl/:Old/mdoc2texi
sntp/ag-tpl/:Old/perlopt.tpl@1.4 +0 -0
Rename: sntp/ag-tpl/perlopt.tpl -> sntp/ag-tpl/:Old/perlopt.tpl
ChangeSet@1.3177.1.1, 2014-08-13 08:38:10+00:00, stenn@deacon.udel.edu
NTP_4_2_7P459
TAG: NTP_4_2_7P459
ChangeLog@1.1516.1.1 +1 -0
NTP_4_2_7P459
ntpd/invoke-ntp.conf.texi@1.138 +1 -1
NTP_4_2_7P459
ntpd/invoke-ntp.keys.texi@1.136 +1 -1
NTP_4_2_7P459
ntpd/invoke-ntpd.texi@1.452 +2 -2
NTP_4_2_7P459
ntpd/ntp.conf.5man@1.172 +4 -4
NTP_4_2_7P459
ntpd/ntp.conf.5mdoc@1.172 +1 -1
NTP_4_2_7P459
ntpd/ntp.conf.html@1.133 +1 -1
NTP_4_2_7P459
ntpd/ntp.conf.man.in@1.172 +4 -4
NTP_4_2_7P459
ntpd/ntp.conf.mdoc.in@1.172 +1 -1
NTP_4_2_7P459
ntpd/ntp.keys.5man@1.170 +1 -1
NTP_4_2_7P459
ntpd/ntp.keys.5mdoc@1.170 +1 -1
NTP_4_2_7P459
ntpd/ntp.keys.html@1.134 +1 -1
NTP_4_2_7P459
ntpd/ntp.keys.man.in@1.170 +1 -1
NTP_4_2_7P459
ntpd/ntp.keys.mdoc.in@1.170 +1 -1
NTP_4_2_7P459
ntpd/ntpd-opts.c@1.472 +6 -6
NTP_4_2_7P459
ntpd/ntpd-opts.h@1.472 +2 -2
NTP_4_2_7P459
ntpd/ntpd.1ntpdman@1.281 +4 -4
NTP_4_2_7P459
ntpd/ntpd.1ntpdmdoc@1.281 +1 -1
NTP_4_2_7P459
ntpd/ntpd.html@1.128 +2 -2
NTP_4_2_7P459
ntpd/ntpd.man.in@1.281 +4 -4
NTP_4_2_7P459
ntpd/ntpd.mdoc.in@1.281 +1 -1
NTP_4_2_7P459
ntpdc/invoke-ntpdc.texi@1.450 +2 -2
NTP_4_2_7P459
ntpdc/ntpdc-opts.c@1.467 +6 -6
NTP_4_2_7P459
ntpdc/ntpdc-opts.h@1.467 +2 -2
NTP_4_2_7P459
ntpdc/ntpdc.1ntpdcman@1.281 +12 -12
NTP_4_2_7P459
ntpdc/ntpdc.1ntpdcmdoc@1.281 +1 -1
NTP_4_2_7P459
ntpdc/ntpdc.html@1.294 +2 -2
NTP_4_2_7P459
ntpdc/ntpdc.man.in@1.281 +12 -12
NTP_4_2_7P459
ntpdc/ntpdc.mdoc.in@1.281 +1 -1
NTP_4_2_7P459
ntpq/invoke-ntpq.texi@1.455 +2 -2
NTP_4_2_7P459
ntpq/ntpq-opts.c@1.471 +6 -6
NTP_4_2_7P459
ntpq/ntpq-opts.h@1.470 +2 -2
NTP_4_2_7P459
ntpq/ntpq.1ntpqman@1.283 +4 -4
NTP_4_2_7P459
ntpq/ntpq.1ntpqmdoc@1.283 +1 -1
NTP_4_2_7P459
ntpq/ntpq.html@1.125 +4 -4
NTP_4_2_7P459
ntpq/ntpq.man.in@1.283 +4 -4
NTP_4_2_7P459
ntpq/ntpq.mdoc.in@1.283 +1 -1
NTP_4_2_7P459
ntpsnmpd/invoke-ntpsnmpd.texi@1.452 +2 -2
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd-opts.c@1.469 +6 -6
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd-opts.h@1.469 +2 -2
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.281 +4 -4
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.281 +1 -1
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd.html@1.123 +1 -1
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd.man.in@1.281 +4 -4
NTP_4_2_7P459
ntpsnmpd/ntpsnmpd.mdoc.in@1.281 +1 -1
NTP_4_2_7P459
packageinfo.sh@1.463 +1 -1
NTP_4_2_7P459
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.43 +4 -4
NTP_4_2_7P459
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.43 +1 -1
NTP_4_2_7P459
scripts/calc_tickadj/calc_tickadj.html@1.43 +1 -1
NTP_4_2_7P459
scripts/calc_tickadj/calc_tickadj.man.in@1.42 +4 -4
NTP_4_2_7P459
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.43 +1 -1
NTP_4_2_7P459
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.45 +1 -1
NTP_4_2_7P459
scripts/invoke-plot_summary.texi@1.62 +2 -2
NTP_4_2_7P459
scripts/invoke-summary.texi@1.62 +2 -2
NTP_4_2_7P459
scripts/ntp-wait/invoke-ntp-wait.texi@1.271 +2 -2
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait-opts@1.7 +1 -1
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.271 +4 -4
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.271 +1 -1
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait.html@1.288 +2 -2
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait.man.in@1.271 +4 -4
NTP_4_2_7P459
scripts/ntp-wait/ntp-wait.mdoc.in@1.271 +1 -1
NTP_4_2_7P459
scripts/ntpsweep/invoke-ntpsweep.texi@1.60 +2 -2
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep-opts@1.9 +1 -1
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.50 +4 -4
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.50 +1 -1
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep.html@1.61 +2 -2
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep.man.in@1.50 +4 -4
NTP_4_2_7P459
scripts/ntpsweep/ntpsweep.mdoc.in@1.51 +1 -1
NTP_4_2_7P459
scripts/ntptrace/invoke-ntptrace.texi@1.60 +2 -2
NTP_4_2_7P459
scripts/ntptrace/ntptrace-opts@1.9 +1 -1
NTP_4_2_7P459
scripts/ntptrace/ntptrace.1ntptraceman@1.50 +4 -4
NTP_4_2_7P459
scripts/ntptrace/ntptrace.1ntptracemdoc@1.50 +1 -1
NTP_4_2_7P459
scripts/ntptrace/ntptrace.html@1.61 +2 -2
NTP_4_2_7P459
scripts/ntptrace/ntptrace.man.in@1.50 +4 -4
NTP_4_2_7P459
scripts/ntptrace/ntptrace.mdoc.in@1.51 +1 -1
NTP_4_2_7P459
scripts/plot_summary-opts@1.9 +1 -1
NTP_4_2_7P459
scripts/plot_summary.1plot_summaryman@1.61 +4 -4
NTP_4_2_7P459
scripts/plot_summary.1plot_summarymdoc@1.61 +1 -1
NTP_4_2_7P459
scripts/plot_summary.html@1.62 +2 -2
NTP_4_2_7P459
scripts/plot_summary.man.in@1.61 +4 -4
NTP_4_2_7P459
scripts/plot_summary.mdoc.in@1.61 +1 -1
NTP_4_2_7P459
scripts/summary-opts@1.9 +1 -1
NTP_4_2_7P459
scripts/summary.1summaryman@1.61 +4 -4
NTP_4_2_7P459
scripts/summary.1summarymdoc@1.61 +1 -1
NTP_4_2_7P459
scripts/summary.html@1.62 +2 -2
NTP_4_2_7P459
scripts/summary.man.in@1.61 +4 -4
NTP_4_2_7P459
scripts/summary.mdoc.in@1.61 +1 -1
NTP_4_2_7P459
sntp/invoke-sntp.texi@1.449 +2 -2
NTP_4_2_7P459
sntp/sntp-opts.c@1.466 +6 -6
NTP_4_2_7P459
sntp/sntp-opts.h@1.466 +2 -2
NTP_4_2_7P459
sntp/sntp.1sntpman@1.284 +4 -4
NTP_4_2_7P459
sntp/sntp.1sntpmdoc@1.284 +1 -1
NTP_4_2_7P459
sntp/sntp.html@1.464 +2 -2
NTP_4_2_7P459
sntp/sntp.man.in@1.284 +4 -4
NTP_4_2_7P459
sntp/sntp.mdoc.in@1.284 +1 -1
NTP_4_2_7P459
util/invoke-ntp-keygen.texi@1.453 +2 -2
NTP_4_2_7P459
util/ntp-keygen-opts.c@1.469 +6 -6
NTP_4_2_7P459
util/ntp-keygen-opts.h@1.469 +2 -2
NTP_4_2_7P459
util/ntp-keygen.1ntp-keygenman@1.281 +4 -4
NTP_4_2_7P459
util/ntp-keygen.1ntp-keygenmdoc@1.281 +1 -1
NTP_4_2_7P459
util/ntp-keygen.html@1.129 +2 -2
NTP_4_2_7P459
util/ntp-keygen.man.in@1.281 +4 -4
NTP_4_2_7P459
util/ntp-keygen.mdoc.in@1.281 +1 -1
NTP_4_2_7P459
ChangeSet@1.3178, 2014-08-12 20:29:54+02:00, jnperlin@hydra.(none)
[Bug 2622] Synchronisation problem using SHM [...]
Add 'control' function to SHM driver-- fudge values not available during start.
ChangeLog@1.1517 +2 -0
[Bug 2622] Synchronisation problem using SHM [...]
Add 'control' function -- fudge values not available during start.
ntpd/refclock_shm.c@1.29 +38 -9
[Bug 2622] Synchronisation problem using SHM [...]
Add 'control' function -- fudge values not available during start.
ChangeSet@1.3177, 2014-08-12 02:08:55-04:00, stenn@deacon.udel.edu
Try bison-3.0.2 instead of bison-2.5
ChangeLog@1.1516 +1 -0
Try bison-3.0.2 instead of bison-2.5
ntpd/ntp_parser.c@1.88 +1109 -1510
Try bison-3.0.2 instead of bison-2.5
ntpd/ntp_parser.h@1.54 +215 -211
Try bison-3.0.2 instead of bison-2.5
ChangeSet@1.3176, 2014-08-12 02:01:01-04:00, stenn@deacon.udel.edu
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ChangeLog@1.1515 +1 -0
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/invoke-ntpq.texi@1.454 +3 -3
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq-opts.c@1.470 +1 -1
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq-opts.def@1.20 +1 -1
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq.1ntpqman@1.282 +5 -5
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq.1ntpqmdoc@1.282 +2 -2
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq.man.in@1.282 +5 -5
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ntpq/ntpq.mdoc.in@1.282 +2 -2
[Bug 2630] Limit the ntpq command buffer to 512 bytes
ChangeSet@1.3175, 2014-08-12 02:08:30+00:00, stenn@psp-fb1.ntp.org
FlexeLint cleanups
ChangeLog@1.1514 +1 -0
FlexeLint cleanups
ChangeSet@1.3172.1.2, 2014-08-12 01:27:26+00:00, stenn@deacon.udel.edu
NTP_4_2_7P458
TAG: NTP_4_2_7P458
ChangeLog@1.1513 +1 -0
NTP_4_2_7P458
ntpd/invoke-ntp.conf.texi@1.137 +1 -1
NTP_4_2_7P458
ntpd/invoke-ntp.keys.texi@1.135 +1 -1
NTP_4_2_7P458
ntpd/invoke-ntpd.texi@1.451 +1 -1
NTP_4_2_7P458
ntpd/ntp.conf.5man@1.171 +4 -4
NTP_4_2_7P458
ntpd/ntp.conf.5mdoc@1.171 +1 -1
NTP_4_2_7P458
ntpd/ntp.conf.html@1.132 +1 -1
NTP_4_2_7P458
ntpd/ntp.conf.man.in@1.171 +4 -4
NTP_4_2_7P458
ntpd/ntp.conf.mdoc.in@1.171 +1 -1
NTP_4_2_7P458
ntpd/ntp.keys.5man@1.169 +1 -1
NTP_4_2_7P458
ntpd/ntp.keys.5mdoc@1.169 +1 -1
NTP_4_2_7P458
ntpd/ntp.keys.html@1.133 +1 -1
NTP_4_2_7P458
ntpd/ntp.keys.man.in@1.169 +1 -1
NTP_4_2_7P458
ntpd/ntp.keys.mdoc.in@1.169 +1 -1
NTP_4_2_7P458
ntpd/ntpd-opts.c@1.471 +6 -6
NTP_4_2_7P458
ntpd/ntpd-opts.h@1.471 +2 -2
NTP_4_2_7P458
ntpd/ntpd.1ntpdman@1.280 +4 -4
NTP_4_2_7P458
ntpd/ntpd.1ntpdmdoc@1.280 +1 -1
NTP_4_2_7P458
ntpd/ntpd.html@1.127 +2 -2
NTP_4_2_7P458
ntpd/ntpd.man.in@1.280 +4 -4
NTP_4_2_7P458
ntpd/ntpd.mdoc.in@1.280 +1 -1
NTP_4_2_7P458
ntpdc/invoke-ntpdc.texi@1.449 +1 -1
NTP_4_2_7P458
ntpdc/ntpdc-opts.c@1.466 +6 -6
NTP_4_2_7P458
ntpdc/ntpdc-opts.h@1.466 +2 -2
NTP_4_2_7P458
ntpdc/ntpdc.1ntpdcman@1.280 +4 -4
NTP_4_2_7P458
ntpdc/ntpdc.1ntpdcmdoc@1.280 +1 -1
NTP_4_2_7P458
ntpdc/ntpdc.html@1.293 +2 -2
NTP_4_2_7P458
ntpdc/ntpdc.man.in@1.280 +4 -4
NTP_4_2_7P458
ntpdc/ntpdc.mdoc.in@1.280 +1 -1
NTP_4_2_7P458
ntpq/invoke-ntpq.texi@1.453 +1 -1
NTP_4_2_7P458
ntpq/ntpq-opts.c@1.469 +6 -6
NTP_4_2_7P458
ntpq/ntpq-opts.h@1.469 +2 -2
NTP_4_2_7P458
ntpq/ntpq.1ntpqman@1.281 +4 -4
NTP_4_2_7P458
ntpq/ntpq.1ntpqmdoc@1.281 +1 -1
NTP_4_2_7P458
ntpq/ntpq.html@1.124 +27 -26
NTP_4_2_7P458
ntpq/ntpq.man.in@1.281 +4 -4
NTP_4_2_7P458
ntpq/ntpq.mdoc.in@1.281 +1 -1
NTP_4_2_7P458
ntpsnmpd/invoke-ntpsnmpd.texi@1.451 +1 -1
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd-opts.c@1.468 +6 -6
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd-opts.h@1.468 +2 -2
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.280 +4 -4
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.280 +1 -1
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd.html@1.122 +1 -1
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd.man.in@1.280 +4 -4
NTP_4_2_7P458
ntpsnmpd/ntpsnmpd.mdoc.in@1.280 +1 -1
NTP_4_2_7P458
packageinfo.sh@1.462 +1 -1
NTP_4_2_7P458
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.42 +4 -4
NTP_4_2_7P458
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.42 +1 -1
NTP_4_2_7P458
scripts/calc_tickadj/calc_tickadj.html@1.42 +1 -1
NTP_4_2_7P458
scripts/calc_tickadj/calc_tickadj.man.in@1.41 +4 -4
NTP_4_2_7P458
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.42 +1 -1
NTP_4_2_7P458
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.44 +1 -1
NTP_4_2_7P458
scripts/invoke-plot_summary.texi@1.61 +1 -1
NTP_4_2_7P458
scripts/invoke-summary.texi@1.61 +1 -1
NTP_4_2_7P458
scripts/ntp-wait/invoke-ntp-wait.texi@1.270 +1 -1
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait-opts@1.6 +1 -1
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.270 +4 -4
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.270 +1 -1
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait.html@1.287 +2 -2
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait.man.in@1.270 +4 -4
NTP_4_2_7P458
scripts/ntp-wait/ntp-wait.mdoc.in@1.270 +1 -1
NTP_4_2_7P458
scripts/ntpsweep/invoke-ntpsweep.texi@1.59 +1 -1
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep-opts@1.8 +1 -1
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.49 +4 -4
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.49 +1 -1
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep.html@1.60 +2 -2
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep.man.in@1.49 +4 -4
NTP_4_2_7P458
scripts/ntpsweep/ntpsweep.mdoc.in@1.50 +1 -1
NTP_4_2_7P458
scripts/ntptrace/invoke-ntptrace.texi@1.59 +1 -1
NTP_4_2_7P458
scripts/ntptrace/ntptrace-opts@1.8 +1 -1
NTP_4_2_7P458
scripts/ntptrace/ntptrace.1ntptraceman@1.49 +4 -4
NTP_4_2_7P458
scripts/ntptrace/ntptrace.1ntptracemdoc@1.49 +1 -1
NTP_4_2_7P458
scripts/ntptrace/ntptrace.html@1.60 +2 -2
NTP_4_2_7P458
scripts/ntptrace/ntptrace.man.in@1.49 +4 -4
NTP_4_2_7P458
scripts/ntptrace/ntptrace.mdoc.in@1.50 +1 -1
NTP_4_2_7P458
scripts/plot_summary-opts@1.8 +1 -1
NTP_4_2_7P458
scripts/plot_summary.1plot_summaryman@1.60 +4 -4
NTP_4_2_7P458
scripts/plot_summary.1plot_summarymdoc@1.60 +1 -1
NTP_4_2_7P458
scripts/plot_summary.html@1.61 +2 -2
NTP_4_2_7P458
scripts/plot_summary.man.in@1.60 +4 -4
NTP_4_2_7P458
scripts/plot_summary.mdoc.in@1.60 +1 -1
NTP_4_2_7P458
scripts/summary-opts@1.8 +1 -1
NTP_4_2_7P458
scripts/summary.1summaryman@1.60 +4 -4
NTP_4_2_7P458
scripts/summary.1summarymdoc@1.60 +1 -1
NTP_4_2_7P458
scripts/summary.html@1.61 +2 -2
NTP_4_2_7P458
scripts/summary.man.in@1.60 +4 -4
NTP_4_2_7P458
scripts/summary.mdoc.in@1.60 +1 -1
NTP_4_2_7P458
sntp/invoke-sntp.texi@1.448 +1 -1
NTP_4_2_7P458
sntp/sntp-opts.c@1.465 +6 -6
NTP_4_2_7P458
sntp/sntp-opts.h@1.465 +2 -2
NTP_4_2_7P458
sntp/sntp.1sntpman@1.283 +4 -4
NTP_4_2_7P458
sntp/sntp.1sntpmdoc@1.283 +1 -1
NTP_4_2_7P458
sntp/sntp.html@1.463 +2 -2
NTP_4_2_7P458
sntp/sntp.man.in@1.283 +4 -4
NTP_4_2_7P458
sntp/sntp.mdoc.in@1.283 +1 -1
NTP_4_2_7P458
util/invoke-ntp-keygen.texi@1.452 +1 -1
NTP_4_2_7P458
util/ntp-keygen-opts.c@1.468 +6 -6
NTP_4_2_7P458
util/ntp-keygen-opts.h@1.468 +2 -2
NTP_4_2_7P458
util/ntp-keygen.1ntp-keygenman@1.280 +4 -4
NTP_4_2_7P458
util/ntp-keygen.1ntp-keygenmdoc@1.280 +1 -1
NTP_4_2_7P458
util/ntp-keygen.html@1.128 +2 -2
NTP_4_2_7P458
util/ntp-keygen.man.in@1.280 +4 -4
NTP_4_2_7P458
util/ntp-keygen.mdoc.in@1.280 +1 -1
NTP_4_2_7P458
ChangeSet@1.3172.1.1, 2014-08-10 22:26:19+00:00, stenn@psp-fb1.ntp.org
[Bug 2633] Provide stdnoreturn.h for windows port
ChangeLog@1.1512 +1 -0
[Bug 2633] Provide stdnoreturn.h for windows port
ports/winnt/include/hopf_PCI_io.h@1.3 +0 -0
Change mode to -rw-rw-r--
ports/winnt/include/stdnoreturn.h@1.1 +61 -0
BitKeeper file /a/etc/amd.stage/thump2-g3/export/ntp/home/stenn/ntp-dev/ports/winnt/include/stdnoreturn.h
ports/winnt/include/stdnoreturn.h@1.0 +0 -0
ChangeSet@1.3173, 2014-08-09 20:32:45+00:00, phk@psp-fb1.ntp.org
ntp.h, ntp_proto.c:
Don't do arithmetic on NULL pointer when we have a real pointer to use
ntp_parser.y, ntp_config.c:
A set of no-op pedantic changes inspired by FlexeLints complaints,
while looking for ways to make the simulator work again:
Add prototype for yyparser() until bison joins the century of the fruit-bat.
Make some functions static.
Spell NTP_INSIST() INSIST()
Deal with "SIM-only" stuff in ntp_parser.y rather than later.
Mark knowingly unused arguments
Signed/Unsigned/Long fixes to constants.
Const char* argument to fprintf(3).
ntp_assert.h:
Use systems assert(3) for FlexeLint analysis
include/ntp.h@1.210 +1 -2
Don't do arithmetic on NULL pointer when we have a real pointer to use
include/ntp_assert.h@1.8 +12 -1
Use systems assert(3) for FlexeLint analysis
ntpd/ntp_config.c@1.320 +59 -50
A set of no-op pedantic changes inspired by FlexeLints complaints,
while looking for ways to make the simulator work again:
Add prototype for yyparser() until bison joins the century of the fruit-bat.
Make some functions static.
Spell NTP_INSIST() INSIST()
Deal with "SIM-only" stuff in ntp_parser.y rather than later.
Mark knowingly unused arguments
Signed/Unsigned/Long fixes to constants.
Const char* argument to fprintf(3).
ntpd/ntp_parser.c@1.87 +187 -181
A set of no-op pedantic changes inspired by FlexeLints complaints,
while looking for ways to make the simulator work again:
Add prototype for yyparser() until bison joins the century of the fruit-bat.
Make some functions static.
Spell NTP_INSIST() INSIST()
Deal with "SIM-only" stuff in ntp_parser.y rather than later.
Mark knowingly unused arguments
Signed/Unsigned/Long fixes to constants.
Const char* argument to fprintf(3).
ntpd/ntp_parser.h@1.53 +1 -1
ntpd/ntp_parser.y@1.81 +8 -2
ntpd/ntp_proto.c@1.349 +1 -1
Don't do arithmetic on NULL pointer when we have a real pointer to use
ChangeSet@1.3172, 2014-08-09 11:04:13+00:00, stenn@deacon.udel.edu
NTP_4_2_7P457
TAG: NTP_4_2_7P457
ChangeLog@1.1511 +1 -0
NTP_4_2_7P457
ntpd/invoke-ntp.conf.texi@1.136 +1 -1
NTP_4_2_7P457
ntpd/invoke-ntp.keys.texi@1.134 +1 -1
NTP_4_2_7P457
ntpd/invoke-ntpd.texi@1.450 +2 -2
NTP_4_2_7P457
ntpd/ntp.conf.5man@1.170 +6 -6
NTP_4_2_7P457
ntpd/ntp.conf.5mdoc@1.170 +2 -2
NTP_4_2_7P457
ntpd/ntp.conf.html@1.131 +1 -1
NTP_4_2_7P457
ntpd/ntp.conf.man.in@1.170 +6 -6
NTP_4_2_7P457
ntpd/ntp.conf.mdoc.in@1.170 +2 -2
NTP_4_2_7P457
ntpd/ntp.keys.5man@1.168 +2 -2
NTP_4_2_7P457
ntpd/ntp.keys.5mdoc@1.168 +2 -2
NTP_4_2_7P457
ntpd/ntp.keys.html@1.132 +1 -1
NTP_4_2_7P457
ntpd/ntp.keys.man.in@1.168 +2 -2
NTP_4_2_7P457
ntpd/ntp.keys.mdoc.in@1.168 +2 -2
NTP_4_2_7P457
ntpd/ntpd-opts.c@1.470 +6 -6
NTP_4_2_7P457
ntpd/ntpd-opts.h@1.470 +2 -2
NTP_4_2_7P457
ntpd/ntpd.1ntpdman@1.279 +6 -6
NTP_4_2_7P457
ntpd/ntpd.1ntpdmdoc@1.279 +2 -2
NTP_4_2_7P457
ntpd/ntpd.html@1.126 +2 -2
NTP_4_2_7P457
ntpd/ntpd.man.in@1.279 +6 -6
NTP_4_2_7P457
ntpd/ntpd.mdoc.in@1.279 +2 -2
NTP_4_2_7P457
ntpdc/invoke-ntpdc.texi@1.448 +2 -2
NTP_4_2_7P457
ntpdc/ntpdc-opts.c@1.465 +6 -6
NTP_4_2_7P457
ntpdc/ntpdc-opts.h@1.465 +2 -2
NTP_4_2_7P457
ntpdc/ntpdc.1ntpdcman@1.279 +13 -13
NTP_4_2_7P457
ntpdc/ntpdc.1ntpdcmdoc@1.279 +2 -2
NTP_4_2_7P457
ntpdc/ntpdc.html@1.292 +2 -2
NTP_4_2_7P457
ntpdc/ntpdc.man.in@1.279 +13 -13
NTP_4_2_7P457
ntpdc/ntpdc.mdoc.in@1.279 +2 -2
NTP_4_2_7P457
ntpq/invoke-ntpq.texi@1.452 +28 -26
NTP_4_2_7P457
ntpq/ntpq-opts.c@1.468 +6 -6
NTP_4_2_7P457
ntpq/ntpq-opts.h@1.468 +2 -2
NTP_4_2_7P457
ntpq/ntpq.1ntpqman@1.280 +43 -34
NTP_4_2_7P457
ntpq/ntpq.1ntpqmdoc@1.280 +31 -28
NTP_4_2_7P457
ntpq/ntpq.html@1.123 +2 -2
NTP_4_2_7P457
ntpq/ntpq.man.in@1.280 +43 -34
NTP_4_2_7P457
ntpq/ntpq.mdoc.in@1.280 +31 -28
NTP_4_2_7P457
ntpsnmpd/invoke-ntpsnmpd.texi@1.450 +2 -2
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd-opts.c@1.467 +6 -6
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd-opts.h@1.467 +2 -2
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.279 +6 -6
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.279 +2 -2
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd.html@1.121 +1 -1
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd.man.in@1.279 +6 -6
NTP_4_2_7P457
ntpsnmpd/ntpsnmpd.mdoc.in@1.279 +2 -2
NTP_4_2_7P457
packageinfo.sh@1.461 +1 -1
NTP_4_2_7P457
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.41 +6 -6
NTP_4_2_7P457
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.41 +2 -2
NTP_4_2_7P457
scripts/calc_tickadj/calc_tickadj.html@1.41 +23 -35
NTP_4_2_7P457
scripts/calc_tickadj/calc_tickadj.man.in@1.40 +6 -6
NTP_4_2_7P457
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.41 +2 -2
NTP_4_2_7P457
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.43 +1 -1
NTP_4_2_7P457
scripts/invoke-plot_summary.texi@1.60 +1 -1
NTP_4_2_7P457
scripts/invoke-summary.texi@1.60 +1 -1
NTP_4_2_7P457
scripts/ntp-wait/invoke-ntp-wait.texi@1.269 +1 -1
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait-opts@1.5 +1 -1
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.269 +6 -6
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.269 +2 -2
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait.html@1.286 +31 -49
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait.man.in@1.269 +6 -6
NTP_4_2_7P457
scripts/ntp-wait/ntp-wait.mdoc.in@1.269 +2 -2
NTP_4_2_7P457
scripts/ntpsweep/invoke-ntpsweep.texi@1.58 +1 -1
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep-opts@1.7 +1 -1
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.48 +6 -6
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.48 +2 -2
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep.html@1.59 +33 -44
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep.man.in@1.48 +6 -6
NTP_4_2_7P457
scripts/ntpsweep/ntpsweep.mdoc.in@1.49 +2 -2
NTP_4_2_7P457
scripts/ntptrace/invoke-ntptrace.texi@1.58 +1 -1
NTP_4_2_7P457
scripts/ntptrace/ntptrace-opts@1.7 +1 -1
NTP_4_2_7P457
scripts/ntptrace/ntptrace.1ntptraceman@1.48 +6 -6
NTP_4_2_7P457
scripts/ntptrace/ntptrace.1ntptracemdoc@1.48 +2 -2
NTP_4_2_7P457
scripts/ntptrace/ntptrace.html@1.59 +27 -36
NTP_4_2_7P457
scripts/ntptrace/ntptrace.man.in@1.48 +6 -6
NTP_4_2_7P457
scripts/ntptrace/ntptrace.mdoc.in@1.49 +2 -2
NTP_4_2_7P457
scripts/plot_summary-opts@1.7 +1 -1
NTP_4_2_7P457
scripts/plot_summary.1plot_summaryman@1.59 +6 -6
NTP_4_2_7P457
scripts/plot_summary.1plot_summarymdoc@1.59 +2 -2
NTP_4_2_7P457
scripts/plot_summary.html@1.60 +29 -47
NTP_4_2_7P457
scripts/plot_summary.man.in@1.59 +6 -6
NTP_4_2_7P457
scripts/plot_summary.mdoc.in@1.59 +2 -2
NTP_4_2_7P457
scripts/summary-opts@1.7 +1 -1
NTP_4_2_7P457
scripts/summary.1summaryman@1.59 +6 -6
NTP_4_2_7P457
scripts/summary.1summarymdoc@1.59 +2 -2
NTP_4_2_7P457
scripts/summary.html@1.60 +27 -39
NTP_4_2_7P457
scripts/summary.man.in@1.59 +6 -6
NTP_4_2_7P457
scripts/summary.mdoc.in@1.59 +2 -2
NTP_4_2_7P457
sntp/invoke-sntp.texi@1.447 +2 -2
NTP_4_2_7P457
sntp/sntp-opts.c@1.464 +6 -6
NTP_4_2_7P457
sntp/sntp-opts.h@1.464 +2 -2
NTP_4_2_7P457
sntp/sntp.1sntpman@1.282 +6 -6
NTP_4_2_7P457
sntp/sntp.1sntpmdoc@1.282 +2 -2
NTP_4_2_7P457
sntp/sntp.html@1.462 +2 -2
NTP_4_2_7P457
sntp/sntp.man.in@1.282 +6 -6
NTP_4_2_7P457
sntp/sntp.mdoc.in@1.282 +2 -2
NTP_4_2_7P457
util/invoke-ntp-keygen.texi@1.451 +2 -2
NTP_4_2_7P457
util/ntp-keygen-opts.c@1.467 +6 -6
NTP_4_2_7P457
util/ntp-keygen-opts.h@1.467 +2 -2
NTP_4_2_7P457
util/ntp-keygen.1ntp-keygenman@1.279 +6 -6
NTP_4_2_7P457
util/ntp-keygen.1ntp-keygenmdoc@1.279 +2 -2
NTP_4_2_7P457
util/ntp-keygen.html@1.127 +2 -2
NTP_4_2_7P457
util/ntp-keygen.man.in@1.279 +6 -6
NTP_4_2_7P457
util/ntp-keygen.mdoc.in@1.279 +2 -2
NTP_4_2_7P457
ChangeSet@1.3171, 2014-08-09 07:02:16-04:00, stenn@deacon.udel.edu
Update .point-changed-filelist
.point-changed-filelist@1.25 +5 -0
Update .point-changed-filelist
ChangeSet@1.3156.2.2, 2014-08-09 08:17:47+00:00, phk@psp-fb1.ntp.org
Typo fix
ChangeLog@1.1502.2.2 +1 -1
Typo fix
ChangeSet@1.3168, 2014-08-09 08:00:44+00:00, stenn@psp-fb1.ntp.org
Added Brian Utterback to the copyright file
html/copyright.html@1.65 +2 -1
Added Brian Utterback to the copyright file
ChangeSet@1.3167, 2014-08-09 07:51:01+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre14
scripts/calc_tickadj/calc_tickadj.html@1.40 +1 -1
autogen-5.18.4pre14
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.42 +3 -3
autogen-5.18.4pre14
scripts/invoke-plot_summary.texi@1.59 +10 -10
autogen-5.18.4pre14
scripts/invoke-summary.texi@1.59 +9 -9
autogen-5.18.4pre14
scripts/ntp-wait/invoke-ntp-wait.texi@1.268 +3 -3
autogen-5.18.4pre14
scripts/ntp-wait/ntp-wait.html@1.285 +49 -31
autogen-5.18.4pre14
scripts/ntpsweep/invoke-ntpsweep.texi@1.57 +3 -3
autogen-5.18.4pre14
scripts/ntpsweep/ntpsweep.html@1.58 +1 -1
autogen-5.18.4pre14
scripts/ntptrace/invoke-ntptrace.texi@1.57 +3 -3
autogen-5.18.4pre14
scripts/ntptrace/ntptrace.html@1.58 +1 -1
autogen-5.18.4pre14
scripts/plot_summary.html@1.59 +1 -1
autogen-5.18.4pre14
scripts/summary.html@1.59 +1 -1
autogen-5.18.4pre14
ChangeSet@1.3166, 2014-08-09 07:27:03+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre14
ntpd/ntpd-opts.c@1.469 +7 -7
autogen-5.18.4pre14
ntpd/ntpd-opts.h@1.469 +3 -3
autogen-5.18.4pre14
ntpd/ntpdsim-opts.c@1.26 +7 -7
autogen-5.18.4pre14
ntpd/ntpdsim-opts.h@1.26 +3 -3
autogen-5.18.4pre14
ntpdc/ntpdc-opts.c@1.464 +7 -7
autogen-5.18.4pre14
ntpdc/ntpdc-opts.h@1.464 +3 -3
autogen-5.18.4pre14
ntpq/ntpq-opts.c@1.467 +7 -7
autogen-5.18.4pre14
ntpq/ntpq-opts.h@1.467 +3 -3
autogen-5.18.4pre14
ntpsnmpd/ntpsnmpd-opts.c@1.466 +7 -7
autogen-5.18.4pre14
ntpsnmpd/ntpsnmpd-opts.h@1.466 +3 -3
autogen-5.18.4pre14
scripts/calc_tickadj/calc_tickadj-opts@1.6 +2 -2
autogen-5.18.4pre14
scripts/ntp-wait/ntp-wait-opts@1.4 +2 -2
autogen-5.18.4pre14
scripts/ntpsweep/ntpsweep-opts@1.6 +2 -2
autogen-5.18.4pre14
scripts/ntptrace/ntptrace-opts@1.6 +2 -2
autogen-5.18.4pre14
scripts/plot_summary-opts@1.6 +2 -2
autogen-5.18.4pre14
scripts/summary-opts@1.6 +2 -2
autogen-5.18.4pre14
sntp/sntp-opts.c@1.463 +7 -7
autogen-5.18.4pre14
sntp/sntp-opts.h@1.463 +3 -3
autogen-5.18.4pre14
util/ntp-keygen-opts.c@1.466 +7 -7
autogen-5.18.4pre14
util/ntp-keygen-opts.h@1.466 +3 -3
autogen-5.18.4pre14
ChangeSet@1.3165, 2014-08-09 07:16:25+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre14
ChangeLog@1.1508 +1 -1
autogen-5.18.4pre14
sntp/libopts/Makefile.am@1.27 +3 -3
autogen-5.18.4pre14
sntp/libopts/ag-char-map.h@1.30 +1 -1
autogen-5.18.4pre14
sntp/libopts/ao-strs.c@1.16 +1 -1
autogen-5.18.4pre14
sntp/libopts/ao-strs.h@1.15 +1 -1
autogen-5.18.4pre14
sntp/libopts/genshell.c@1.30 +1 -1
autogen-5.18.4pre14
sntp/libopts/genshell.h@1.30 +1 -1
autogen-5.18.4pre14
sntp/libopts/option-value-type.c@1.17 +1 -1
autogen-5.18.4pre14
sntp/libopts/option-value-type.h@1.31 +1 -1
autogen-5.18.4pre14
sntp/libopts/option-xat-attribute.c@1.17 +1 -1
autogen-5.18.4pre14
sntp/libopts/option-xat-attribute.h@1.31 +1 -1
autogen-5.18.4pre14
sntp/libopts/proto.h@1.30 +1 -1
autogen-5.18.4pre14
ChangeSet@1.3156.1.12, 2014-08-08 22:47:50+02:00, jnperlin@hydra.(none)
implement new logic to define difference limit and limit check with SHM clock (driver28)
html/drivers/driver28.html@1.16 +25 -5
updated docs to describe flag1 and time2
ntpd/refclock_shm.c@1.28 +125 -55
use time2 for difference limit and flag1 to disable distance limit check
ChangeSet@1.3156.2.1, 2014-08-08 09:54:12+00:00, phk@psp-fb1.ntp.org
Pass the configration source into the parser as argument rather than through a global variable
ChangeLog@1.1502.2.1 +2 -0
Changelog entry
ntpd/ntp_config.c@1.319 +2 -5
Pass config file source to yyparse() as argument, not through global variable
ntpd/ntp_parser.c@1.86 +610 -558
Pass config file source to yyparse() as argument, not through global variable
ntpd/ntp_parser.h@1.52 +7 -9
Pass config file source to yyparse() as argument, not through global variable
ntpd/ntp_parser.y@1.80 +13 -13
Pass config file source to yyparse() as argument, not through global variable
ntpd/ntp_scanner.c@1.44 +13 -15
Pass config file source to yyparse() as argument, not through global variable
ntpd/ntp_scanner.h@1.18 +1 -5
Pass config file source to yyparse() as argument, not through global variable
ChangeSet@1.3164, 2014-08-08 09:31:03+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre12
ntpd/ntpd-opts.c@1.468 +8 -8
autogen-5.18.4pre12
ntpd/ntpd-opts.h@1.468 +11 -11
autogen-5.18.4pre12
ntpd/ntpdsim-opts.c@1.25 +7 -7
autogen-5.18.4pre12
ntpd/ntpdsim-opts.h@1.25 +3 -3
autogen-5.18.4pre12
ntpdc/ntpdc-opts.c@1.463 +8 -8
autogen-5.18.4pre12
ntpdc/ntpdc-opts.h@1.463 +13 -13
autogen-5.18.4pre12
ntpq/ntpq-opts.c@1.466 +8 -8
autogen-5.18.4pre12
ntpq/ntpq-opts.h@1.466 +13 -13
autogen-5.18.4pre12
ntpsnmpd/ntpsnmpd-opts.c@1.465 +8 -8
autogen-5.18.4pre12
ntpsnmpd/ntpsnmpd-opts.h@1.465 +13 -13
autogen-5.18.4pre12
scripts/calc_tickadj/calc_tickadj-opts@1.5 +2 -2
autogen-5.18.4pre12
scripts/ntpsweep/ntpsweep-opts@1.5 +2 -2
autogen-5.18.4pre12
scripts/ntptrace/ntptrace-opts@1.5 +2 -2
autogen-5.18.4pre12
scripts/plot_summary-opts@1.5 +2 -2
autogen-5.18.4pre12
scripts/summary-opts@1.5 +2 -2
autogen-5.18.4pre12
util/ntp-keygen-opts.c@1.465 +8 -8
autogen-5.18.4pre12
util/ntp-keygen-opts.h@1.465 +13 -13
autogen-5.18.4pre12
ChangeSet@1.3163, 2014-08-08 09:24:12+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre12
sntp/libopts/Makefile.am@1.26 +19 -26
autogen-5.18.4pre12
sntp/libopts/ag-char-map.h@1.29 +1 -1
autogen-5.18.4pre12
sntp/libopts/ao-strs.c@1.15 +1 -1
autogen-5.18.4pre12
sntp/libopts/ao-strs.h@1.14 +1 -1
autogen-5.18.4pre12
sntp/libopts/autoopts/options.h@1.28 +26 -5
autogen-5.18.4pre12
sntp/libopts/autoopts/usage-txt.h@1.28 +1 -1
autogen-5.18.4pre12
sntp/libopts/genshell.c@1.29 +1 -1
autogen-5.18.4pre12
sntp/libopts/genshell.h@1.29 +1 -1
autogen-5.18.4pre12
sntp/libopts/m4/libopts.m4@1.32 +1 -1
autogen-5.18.4pre12
sntp/libopts/option-value-type.c@1.16 +1 -1
autogen-5.18.4pre12
sntp/libopts/option-value-type.h@1.30 +1 -1
autogen-5.18.4pre12
sntp/libopts/option-xat-attribute.c@1.16 +1 -1
autogen-5.18.4pre12
sntp/libopts/option-xat-attribute.h@1.30 +1 -1
autogen-5.18.4pre12
sntp/libopts/proto.h@1.29 +1 -1
autogen-5.18.4pre12
sntp/libopts/version.c@1.18 +0 -2
autogen-5.18.4pre12
sntp/sntp-opts.c@1.462 +8 -8
autogen-5.18.4pre12
sntp/sntp-opts.h@1.462 +13 -13
autogen-5.18.4pre12
ChangeSet@1.3156.1.11, 2014-08-07 21:24:29+02:00, jnperlin@hydra.(none)
[Bug 2622] Change SHM driver so TOY restricted API is not used any more. (Plus some minor cleanup in logic and flow control)
ChangeLog@1.1502.1.9 +3 -0
[Bug 2622] change SHM driver so TOY restricted API is not used any more. (Plus some minor cleanup in logic and flow control)
ntpd/refclock_shm.c@1.27 +106 -103
[Bug 2622] Change SHM driver so TOY restricted API is not used any more. (Plus some minor cleanup in logic and flow control)
ChangeSet@1.3156.1.10, 2014-08-07 09:34:03+00:00, stenn@deacon.udel.edu
NTP_4_2_7P456
TAG: NTP_4_2_7P456
ChangeLog@1.1502.1.8 +1 -0
NTP_4_2_7P456
ntpd/invoke-ntp.conf.texi@1.135 +1 -1
NTP_4_2_7P456
ntpd/invoke-ntp.keys.texi@1.133 +1 -1
NTP_4_2_7P456
ntpd/invoke-ntpd.texi@1.449 +2 -2
NTP_4_2_7P456
ntpd/ntp.conf.5man@1.169 +6 -6
NTP_4_2_7P456
ntpd/ntp.conf.5mdoc@1.169 +2 -2
NTP_4_2_7P456
ntpd/ntp.conf.html@1.130 +1 -1
NTP_4_2_7P456
ntpd/ntp.conf.man.in@1.169 +6 -6
NTP_4_2_7P456
ntpd/ntp.conf.mdoc.in@1.169 +2 -2
NTP_4_2_7P456
ntpd/ntp.keys.5man@1.167 +2 -2
NTP_4_2_7P456
ntpd/ntp.keys.5mdoc@1.167 +2 -2
NTP_4_2_7P456
ntpd/ntp.keys.html@1.131 +1 -1
NTP_4_2_7P456
ntpd/ntp.keys.man.in@1.167 +2 -2
NTP_4_2_7P456
ntpd/ntp.keys.mdoc.in@1.167 +2 -2
NTP_4_2_7P456
ntpd/ntpd-opts.c@1.464.1.3 +7 -7
NTP_4_2_7P456
ntpd/ntpd-opts.h@1.464.1.3 +3 -3
NTP_4_2_7P456
ntpd/ntpd.1ntpdman@1.278 +6 -6
NTP_4_2_7P456
ntpd/ntpd.1ntpdmdoc@1.278 +2 -2
NTP_4_2_7P456
ntpd/ntpd.html@1.125 +2 -2
NTP_4_2_7P456
ntpd/ntpd.man.in@1.278 +6 -6
NTP_4_2_7P456
ntpd/ntpd.mdoc.in@1.278 +2 -2
NTP_4_2_7P456
ntpdc/invoke-ntpdc.texi@1.447 +2 -2
NTP_4_2_7P456
ntpdc/ntpdc-opts.c@1.459.1.3 +7 -7
NTP_4_2_7P456
ntpdc/ntpdc-opts.h@1.459.1.3 +3 -3
NTP_4_2_7P456
ntpdc/ntpdc.1ntpdcman@1.278 +6 -6
NTP_4_2_7P456
ntpdc/ntpdc.1ntpdcmdoc@1.278 +2 -2
NTP_4_2_7P456
ntpdc/ntpdc.html@1.291 +2 -2
NTP_4_2_7P456
ntpdc/ntpdc.man.in@1.278 +6 -6
NTP_4_2_7P456
ntpdc/ntpdc.mdoc.in@1.278 +2 -2
NTP_4_2_7P456
ntpq/invoke-ntpq.texi@1.448.1.3 +2 -2
NTP_4_2_7P456
ntpq/ntpq-opts.c@1.462.1.3 +7 -7
NTP_4_2_7P456
ntpq/ntpq-opts.h@1.462.1.3 +3 -3
NTP_4_2_7P456
ntpq/ntpq.1ntpqman@1.276.1.3 +6 -6
NTP_4_2_7P456
ntpq/ntpq.1ntpqmdoc@1.276.1.3 +2 -2
NTP_4_2_7P456
ntpq/ntpq.html@1.122 +2 -2
NTP_4_2_7P456
ntpq/ntpq.man.in@1.276.1.3 +6 -6
NTP_4_2_7P456
ntpq/ntpq.mdoc.in@1.276.1.3 +2 -2
NTP_4_2_7P456
ntpsnmpd/invoke-ntpsnmpd.texi@1.449 +2 -2
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd-opts.c@1.461.1.3 +7 -7
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd-opts.h@1.461.1.3 +3 -3
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.278 +6 -6
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.278 +2 -2
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd.html@1.120 +1 -1
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd.man.in@1.278 +6 -6
NTP_4_2_7P456
ntpsnmpd/ntpsnmpd.mdoc.in@1.278 +2 -2
NTP_4_2_7P456
packageinfo.sh@1.460 +1 -1
NTP_4_2_7P456
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.40 +6 -6
NTP_4_2_7P456
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.40 +2 -2
NTP_4_2_7P456
scripts/calc_tickadj/calc_tickadj.html@1.36.1.3 +1 -1
NTP_4_2_7P456
scripts/calc_tickadj/calc_tickadj.man.in@1.39 +6 -6
NTP_4_2_7P456
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.40 +2 -2
NTP_4_2_7P456
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.38.1.3 +1 -1
NTP_4_2_7P456
scripts/invoke-plot_summary.texi@1.55.1.3 +1 -1
NTP_4_2_7P456
scripts/invoke-summary.texi@1.55.1.3 +1 -1
NTP_4_2_7P456
scripts/ntp-wait/invoke-ntp-wait.texi@1.267 +1 -1
NTP_4_2_7P456
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.268 +6 -6
NTP_4_2_7P456
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.268 +2 -2
NTP_4_2_7P456
scripts/ntp-wait/ntp-wait.html@1.284 +1 -1
NTP_4_2_7P456
scripts/ntp-wait/ntp-wait.man.in@1.268 +6 -6
NTP_4_2_7P456
scripts/ntp-wait/ntp-wait.mdoc.in@1.268 +2 -2
NTP_4_2_7P456
scripts/ntpsweep/invoke-ntpsweep.texi@1.53.1.3 +1 -1
NTP_4_2_7P456
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.47 +6 -6
NTP_4_2_7P456
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.47 +2 -2
NTP_4_2_7P456
scripts/ntpsweep/ntpsweep.html@1.54.1.3 +1 -1
NTP_4_2_7P456
scripts/ntpsweep/ntpsweep.man.in@1.47 +6 -6
NTP_4_2_7P456
scripts/ntpsweep/ntpsweep.mdoc.in@1.48 +2 -2
NTP_4_2_7P456
scripts/ntptrace/invoke-ntptrace.texi@1.53.1.3 +1 -1
NTP_4_2_7P456
scripts/ntptrace/ntptrace.1ntptraceman@1.47 +6 -6
NTP_4_2_7P456
scripts/ntptrace/ntptrace.1ntptracemdoc@1.47 +2 -2
NTP_4_2_7P456
scripts/ntptrace/ntptrace.html@1.54.1.3 +1 -1
NTP_4_2_7P456
scripts/ntptrace/ntptrace.man.in@1.47 +6 -6
NTP_4_2_7P456
scripts/ntptrace/ntptrace.mdoc.in@1.48 +2 -2
NTP_4_2_7P456
scripts/plot_summary.1plot_summaryman@1.58 +6 -6
NTP_4_2_7P456
scripts/plot_summary.1plot_summarymdoc@1.58 +2 -2
NTP_4_2_7P456
scripts/plot_summary.html@1.55.1.3 +1 -1
NTP_4_2_7P456
scripts/plot_summary.man.in@1.58 +6 -6
NTP_4_2_7P456
scripts/plot_summary.mdoc.in@1.58 +2 -2
NTP_4_2_7P456
scripts/summary.1summaryman@1.58 +6 -6
NTP_4_2_7P456
scripts/summary.1summarymdoc@1.58 +2 -2
NTP_4_2_7P456
scripts/summary.html@1.55.1.3 +1 -1
NTP_4_2_7P456
scripts/summary.man.in@1.58 +6 -6
NTP_4_2_7P456
scripts/summary.mdoc.in@1.58 +2 -2
NTP_4_2_7P456
sntp/invoke-sntp.texi@1.446 +2 -2
NTP_4_2_7P456
sntp/sntp-opts.c@1.458.1.3 +7 -7
NTP_4_2_7P456
sntp/sntp-opts.h@1.458.1.3 +3 -3
NTP_4_2_7P456
sntp/sntp.1sntpman@1.281 +6 -6
NTP_4_2_7P456
sntp/sntp.1sntpmdoc@1.281 +2 -2
NTP_4_2_7P456
sntp/sntp.html@1.461 +2 -2
NTP_4_2_7P456
sntp/sntp.man.in@1.281 +6 -6
NTP_4_2_7P456
sntp/sntp.mdoc.in@1.281 +2 -2
NTP_4_2_7P456
util/invoke-ntp-keygen.texi@1.450 +2 -2
NTP_4_2_7P456
util/ntp-keygen-opts.c@1.461.1.3 +7 -7
NTP_4_2_7P456
util/ntp-keygen-opts.h@1.461.1.3 +3 -3
NTP_4_2_7P456
util/ntp-keygen.1ntp-keygenman@1.278 +13 -13
NTP_4_2_7P456
util/ntp-keygen.1ntp-keygenmdoc@1.278 +2 -2
NTP_4_2_7P456
util/ntp-keygen.html@1.126 +2 -2
NTP_4_2_7P456
util/ntp-keygen.man.in@1.278 +13 -13
NTP_4_2_7P456
util/ntp-keygen.mdoc.in@1.278 +2 -2
NTP_4_2_7P456
ChangeSet@1.3156.1.9, 2014-08-07 07:07:31+00:00, stenn@psp-fb1.ntp.org
CID 739722: Change the way the extention and MAC fields are processed
ChangeLog@1.1502.1.7 +1 -0
CID 739722: Change the way the extention and MAC fields are processed
sntp/networking.c@1.64 +6 -6
CID 739722: Change the way the extention and MAC fields are processed
ChangeSet@1.3156.1.8, 2014-08-06 22:22:18+02:00, jnperlin@hydra.(none)
Work around Coverity issue over mismatch of formal and paket layout.
sntp/networking.c@1.63 +47 -24
Move skipping over extension fields into a pointer-based separate function.
Should deal with coverity issue with formal/actual structure layout.
Also easier to read.
ChangeSet@1.3156.1.7, 2014-08-03 09:34:31+00:00, stenn@deacon.udel.edu
NTP_4_2_7P455
TAG: NTP_4_2_7P455
ChangeLog@1.1502.1.6 +1 -0
NTP_4_2_7P455
ntpd/invoke-ntp.conf.texi@1.134 +1 -1
NTP_4_2_7P455
ntpd/invoke-ntp.keys.texi@1.132 +1 -1
NTP_4_2_7P455
ntpd/invoke-ntpd.texi@1.448 +2 -2
NTP_4_2_7P455
ntpd/ntp.conf.5man@1.168 +6 -6
NTP_4_2_7P455
ntpd/ntp.conf.5mdoc@1.168 +2 -2
NTP_4_2_7P455
ntpd/ntp.conf.html@1.129 +1 -1
NTP_4_2_7P455
ntpd/ntp.conf.man.in@1.168 +6 -6
NTP_4_2_7P455
ntpd/ntp.conf.mdoc.in@1.168 +2 -2
NTP_4_2_7P455
ntpd/ntp.keys.5man@1.166 +2 -2
NTP_4_2_7P455
ntpd/ntp.keys.5mdoc@1.166 +2 -2
NTP_4_2_7P455
ntpd/ntp.keys.html@1.130 +1 -1
NTP_4_2_7P455
ntpd/ntp.keys.man.in@1.166 +2 -2
NTP_4_2_7P455
ntpd/ntp.keys.mdoc.in@1.166 +2 -2
NTP_4_2_7P455
ntpd/ntpd-opts.c@1.464.1.2 +7 -7
NTP_4_2_7P455
ntpd/ntpd-opts.h@1.464.1.2 +3 -3
NTP_4_2_7P455
ntpd/ntpd.1ntpdman@1.277 +6 -6
NTP_4_2_7P455
ntpd/ntpd.1ntpdmdoc@1.277 +2 -2
NTP_4_2_7P455
ntpd/ntpd.html@1.124 +2 -2
NTP_4_2_7P455
ntpd/ntpd.man.in@1.277 +6 -6
NTP_4_2_7P455
ntpd/ntpd.mdoc.in@1.277 +2 -2
NTP_4_2_7P455
ntpdc/invoke-ntpdc.texi@1.446 +2 -2
NTP_4_2_7P455
ntpdc/ntpdc-opts.c@1.459.1.2 +7 -7
NTP_4_2_7P455
ntpdc/ntpdc-opts.h@1.459.1.2 +3 -3
NTP_4_2_7P455
ntpdc/ntpdc.1ntpdcman@1.277 +6 -6
NTP_4_2_7P455
ntpdc/ntpdc.1ntpdcmdoc@1.277 +2 -2
NTP_4_2_7P455
ntpdc/ntpdc.html@1.290 +2 -2
NTP_4_2_7P455
ntpdc/ntpdc.man.in@1.277 +6 -6
NTP_4_2_7P455
ntpdc/ntpdc.mdoc.in@1.277 +2 -2
NTP_4_2_7P455
ntpq/invoke-ntpq.texi@1.448.1.2 +2 -2
NTP_4_2_7P455
ntpq/ntpq-opts.c@1.462.1.2 +7 -7
NTP_4_2_7P455
ntpq/ntpq-opts.h@1.462.1.2 +3 -3
NTP_4_2_7P455
ntpq/ntpq.1ntpqman@1.276.1.2 +6 -6
NTP_4_2_7P455
ntpq/ntpq.1ntpqmdoc@1.276.1.2 +2 -2
NTP_4_2_7P455
ntpq/ntpq.html@1.121 +2 -2
NTP_4_2_7P455
ntpq/ntpq.man.in@1.276.1.2 +6 -6
NTP_4_2_7P455
ntpq/ntpq.mdoc.in@1.276.1.2 +2 -2
NTP_4_2_7P455
ntpsnmpd/invoke-ntpsnmpd.texi@1.448 +2 -2
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd-opts.c@1.461.1.2 +7 -7
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd-opts.h@1.461.1.2 +3 -3
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.277 +6 -6
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.277 +2 -2
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd.html@1.119 +1 -1
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd.man.in@1.277 +6 -6
NTP_4_2_7P455
ntpsnmpd/ntpsnmpd.mdoc.in@1.277 +2 -2
NTP_4_2_7P455
packageinfo.sh@1.459 +1 -1
NTP_4_2_7P455
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.39 +6 -6
NTP_4_2_7P455
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.39 +2 -2
NTP_4_2_7P455
scripts/calc_tickadj/calc_tickadj.html@1.36.1.2 +1 -1
NTP_4_2_7P455
scripts/calc_tickadj/calc_tickadj.man.in@1.38 +6 -6
NTP_4_2_7P455
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.39 +2 -2
NTP_4_2_7P455
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.38.1.2 +1 -1
NTP_4_2_7P455
scripts/invoke-plot_summary.texi@1.55.1.2 +1 -1
NTP_4_2_7P455
scripts/invoke-summary.texi@1.55.1.2 +1 -1
NTP_4_2_7P455
scripts/ntp-wait/invoke-ntp-wait.texi@1.266 +1 -1
NTP_4_2_7P455
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.267 +6 -6
NTP_4_2_7P455
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.267 +2 -2
NTP_4_2_7P455
scripts/ntp-wait/ntp-wait.html@1.283 +1 -1
NTP_4_2_7P455
scripts/ntp-wait/ntp-wait.man.in@1.267 +6 -6
NTP_4_2_7P455
scripts/ntp-wait/ntp-wait.mdoc.in@1.267 +2 -2
NTP_4_2_7P455
scripts/ntpsweep/invoke-ntpsweep.texi@1.53.1.2 +1 -1
NTP_4_2_7P455
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.46 +6 -6
NTP_4_2_7P455
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.46 +2 -2
NTP_4_2_7P455
scripts/ntpsweep/ntpsweep.html@1.54.1.2 +1 -1
NTP_4_2_7P455
scripts/ntpsweep/ntpsweep.man.in@1.46 +6 -6
NTP_4_2_7P455
scripts/ntpsweep/ntpsweep.mdoc.in@1.47 +2 -2
NTP_4_2_7P455
scripts/ntptrace/invoke-ntptrace.texi@1.53.1.2 +1 -1
NTP_4_2_7P455
scripts/ntptrace/ntptrace.1ntptraceman@1.46 +6 -6
NTP_4_2_7P455
scripts/ntptrace/ntptrace.1ntptracemdoc@1.46 +2 -2
NTP_4_2_7P455
scripts/ntptrace/ntptrace.html@1.54.1.2 +1 -1
NTP_4_2_7P455
scripts/ntptrace/ntptrace.man.in@1.46 +6 -6
NTP_4_2_7P455
scripts/ntptrace/ntptrace.mdoc.in@1.47 +2 -2
NTP_4_2_7P455
scripts/plot_summary.1plot_summaryman@1.57 +6 -6
NTP_4_2_7P455
scripts/plot_summary.1plot_summarymdoc@1.57 +2 -2
NTP_4_2_7P455
scripts/plot_summary.html@1.55.1.2 +1 -1
NTP_4_2_7P455
scripts/plot_summary.man.in@1.57 +6 -6
NTP_4_2_7P455
scripts/plot_summary.mdoc.in@1.57 +2 -2
NTP_4_2_7P455
scripts/summary.1summaryman@1.57 +13 -13
NTP_4_2_7P455
scripts/summary.1summarymdoc@1.57 +2 -2
NTP_4_2_7P455
scripts/summary.html@1.55.1.2 +1 -1
NTP_4_2_7P455
scripts/summary.man.in@1.57 +13 -13
NTP_4_2_7P455
scripts/summary.mdoc.in@1.57 +2 -2
NTP_4_2_7P455
sntp/invoke-sntp.texi@1.445 +2 -2
NTP_4_2_7P455
sntp/sntp-opts.c@1.458.1.2 +7 -7
NTP_4_2_7P455
sntp/sntp-opts.h@1.458.1.2 +3 -3
NTP_4_2_7P455
sntp/sntp.1sntpman@1.280 +6 -6
NTP_4_2_7P455
sntp/sntp.1sntpmdoc@1.280 +2 -2
NTP_4_2_7P455
sntp/sntp.html@1.460 +2 -2
NTP_4_2_7P455
sntp/sntp.man.in@1.280 +6 -6
NTP_4_2_7P455
sntp/sntp.mdoc.in@1.280 +2 -2
NTP_4_2_7P455
util/invoke-ntp-keygen.texi@1.449 +2 -2
NTP_4_2_7P455
util/ntp-keygen-opts.c@1.461.1.2 +7 -7
NTP_4_2_7P455
util/ntp-keygen-opts.h@1.461.1.2 +3 -3
NTP_4_2_7P455
util/ntp-keygen.1ntp-keygenman@1.277 +13 -13
NTP_4_2_7P455
util/ntp-keygen.1ntp-keygenmdoc@1.277 +2 -2
NTP_4_2_7P455
util/ntp-keygen.html@1.125 +2 -2
NTP_4_2_7P455
util/ntp-keygen.man.in@1.277 +13 -13
NTP_4_2_7P455
util/ntp-keygen.mdoc.in@1.277 +2 -2
NTP_4_2_7P455
ChangeSet@1.3156.1.6, 2014-08-03 05:03:03+00:00, stenn@psp-fb1.ntp.org
[Bug 2565] ntpd sometimes logs unexpected getifaddrs() errors
ChangeLog@1.1502.1.5 +1 -0
[Bug 2565] ntpd sometimes logs unexpected getifaddrs() errors
lib/isc/unix/ifiter_getifaddrs.c@1.12 +14 -17
[Bug 2565] ntpd sometimes logs unexpected getifaddrs() errors
ChangeSet@1.3156.1.5, 2014-08-02 19:56:24-04:00, stenn@deacon.udel.edu
CID 739722: Clean up the definition of the exten field of struct pkt
ChangeLog@1.1502.1.4 +1 -1
CID 739722: Clean up the definition of the exten field of struct pkt
ChangeSet@1.3156.1.4, 2014-08-02 23:44:12+00:00, stenn@psp-fb1.ntp.org
Clean up the definition of the exten field of struct pkt
ChangeLog@1.1502.1.3 +1 -0
Clean up the definition of the exten field of struct pkt
ChangeSet@1.3156.1.3, 2014-08-02 13:15:10+02:00, jnperlin@hydra.(none)
make consistent layout for 'struct pkt'
include/ntp.h@1.209 +9 -3
make consistent layout for 'struct pkt'
libntp/work_thread.c@1.17 +1 -1
fix minor 64-bit casting issue for 'thread_exit()' macro
sntp/main.c@1.93 +2 -6
make consistent layout for 'struct pkt'
ChangeSet@1.3156.1.2, 2014-07-30 09:34:37+00:00, stenn@deacon.udel.edu
NTP_4_2_7P454
TAG: NTP_4_2_7P454
ChangeLog@1.1502.1.2 +1 -0
NTP_4_2_7P454
ntpd/invoke-ntp.conf.texi@1.133 +1 -1
NTP_4_2_7P454
ntpd/invoke-ntp.keys.texi@1.131 +1 -1
NTP_4_2_7P454
ntpd/invoke-ntpd.texi@1.447 +2 -2
NTP_4_2_7P454
ntpd/ntp.conf.5man@1.167 +6 -6
NTP_4_2_7P454
ntpd/ntp.conf.5mdoc@1.167 +2 -2
NTP_4_2_7P454
ntpd/ntp.conf.html@1.128 +1 -1
NTP_4_2_7P454
ntpd/ntp.conf.man.in@1.167 +6 -6
NTP_4_2_7P454
ntpd/ntp.conf.mdoc.in@1.167 +2 -2
NTP_4_2_7P454
ntpd/ntp.keys.5man@1.165 +2 -2
NTP_4_2_7P454
ntpd/ntp.keys.5mdoc@1.165 +2 -2
NTP_4_2_7P454
ntpd/ntp.keys.html@1.129 +1 -1
NTP_4_2_7P454
ntpd/ntp.keys.man.in@1.165 +2 -2
NTP_4_2_7P454
ntpd/ntp.keys.mdoc.in@1.165 +2 -2
NTP_4_2_7P454
ntpd/ntpd-opts.c@1.464.1.1 +7 -7
NTP_4_2_7P454
ntpd/ntpd-opts.h@1.464.1.1 +3 -3
NTP_4_2_7P454
ntpd/ntpd.1ntpdman@1.276 +6 -6
NTP_4_2_7P454
ntpd/ntpd.1ntpdmdoc@1.276 +2 -2
NTP_4_2_7P454
ntpd/ntpd.html@1.123 +2 -2
NTP_4_2_7P454
ntpd/ntpd.man.in@1.276 +6 -6
NTP_4_2_7P454
ntpd/ntpd.mdoc.in@1.276 +2 -2
NTP_4_2_7P454
ntpdc/invoke-ntpdc.texi@1.445 +2 -2
NTP_4_2_7P454
ntpdc/ntpdc-opts.c@1.459.1.1 +7 -7
NTP_4_2_7P454
ntpdc/ntpdc-opts.h@1.459.1.1 +3 -3
NTP_4_2_7P454
ntpdc/ntpdc.1ntpdcman@1.276 +6 -6
NTP_4_2_7P454
ntpdc/ntpdc.1ntpdcmdoc@1.276 +2 -2
NTP_4_2_7P454
ntpdc/ntpdc.html@1.289 +2 -2
NTP_4_2_7P454
ntpdc/ntpdc.man.in@1.276 +6 -6
NTP_4_2_7P454
ntpdc/ntpdc.mdoc.in@1.276 +2 -2
NTP_4_2_7P454
ntpq/invoke-ntpq.texi@1.448.1.1 +2 -2
NTP_4_2_7P454
ntpq/ntpq-opts.c@1.462.1.1 +7 -7
NTP_4_2_7P454
ntpq/ntpq-opts.h@1.462.1.1 +3 -3
NTP_4_2_7P454
ntpq/ntpq.1ntpqman@1.276.1.1 +6 -6
NTP_4_2_7P454
ntpq/ntpq.1ntpqmdoc@1.276.1.1 +2 -2
NTP_4_2_7P454
ntpq/ntpq.html@1.120 +2 -2
NTP_4_2_7P454
ntpq/ntpq.man.in@1.276.1.1 +6 -6
NTP_4_2_7P454
ntpq/ntpq.mdoc.in@1.276.1.1 +2 -2
NTP_4_2_7P454
ntpsnmpd/invoke-ntpsnmpd.texi@1.447 +2 -2
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd-opts.c@1.461.1.1 +7 -7
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd-opts.h@1.461.1.1 +3 -3
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.276 +6 -6
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.276 +2 -2
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd.html@1.118 +1 -1
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd.man.in@1.276 +6 -6
NTP_4_2_7P454
ntpsnmpd/ntpsnmpd.mdoc.in@1.276 +2 -2
NTP_4_2_7P454
packageinfo.sh@1.458 +1 -1
NTP_4_2_7P454
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.38 +6 -6
NTP_4_2_7P454
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.38 +2 -2
NTP_4_2_7P454
scripts/calc_tickadj/calc_tickadj.html@1.36.1.1 +1 -1
NTP_4_2_7P454
scripts/calc_tickadj/calc_tickadj.man.in@1.37 +6 -6
NTP_4_2_7P454
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.38 +2 -2
NTP_4_2_7P454
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.38.1.1 +1 -1
NTP_4_2_7P454
scripts/invoke-plot_summary.texi@1.55.1.1 +1 -1
NTP_4_2_7P454
scripts/invoke-summary.texi@1.55.1.1 +1 -1
NTP_4_2_7P454
scripts/ntp-wait/invoke-ntp-wait.texi@1.265 +1 -1
NTP_4_2_7P454
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.266 +13 -13
NTP_4_2_7P454
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.266 +2 -2
NTP_4_2_7P454
scripts/ntp-wait/ntp-wait.html@1.282 +1 -1
NTP_4_2_7P454
scripts/ntp-wait/ntp-wait.man.in@1.266 +13 -13
NTP_4_2_7P454
scripts/ntp-wait/ntp-wait.mdoc.in@1.266 +2 -2
NTP_4_2_7P454
scripts/ntpsweep/invoke-ntpsweep.texi@1.53.1.1 +1 -1
NTP_4_2_7P454
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.45 +6 -6
NTP_4_2_7P454
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.45 +2 -2
NTP_4_2_7P454
scripts/ntpsweep/ntpsweep.html@1.54.1.1 +1 -1
NTP_4_2_7P454
scripts/ntpsweep/ntpsweep.man.in@1.45 +6 -6
NTP_4_2_7P454
scripts/ntpsweep/ntpsweep.mdoc.in@1.46 +2 -2
NTP_4_2_7P454
scripts/ntptrace/invoke-ntptrace.texi@1.53.1.1 +1 -1
NTP_4_2_7P454
scripts/ntptrace/ntptrace.1ntptraceman@1.45 +6 -6
NTP_4_2_7P454
scripts/ntptrace/ntptrace.1ntptracemdoc@1.45 +2 -2
NTP_4_2_7P454
scripts/ntptrace/ntptrace.html@1.54.1.1 +1 -1
NTP_4_2_7P454
scripts/ntptrace/ntptrace.man.in@1.45 +6 -6
NTP_4_2_7P454
scripts/ntptrace/ntptrace.mdoc.in@1.46 +2 -2
NTP_4_2_7P454
scripts/plot_summary.1plot_summaryman@1.56 +6 -6
NTP_4_2_7P454
scripts/plot_summary.1plot_summarymdoc@1.56 +2 -2
NTP_4_2_7P454
scripts/plot_summary.html@1.55.1.1 +1 -1
NTP_4_2_7P454
scripts/plot_summary.man.in@1.56 +6 -6
NTP_4_2_7P454
scripts/plot_summary.mdoc.in@1.56 +2 -2
NTP_4_2_7P454
scripts/summary.1summaryman@1.56 +13 -13
NTP_4_2_7P454
scripts/summary.1summarymdoc@1.56 +2 -2
NTP_4_2_7P454
scripts/summary.html@1.55.1.1 +1 -1
NTP_4_2_7P454
scripts/summary.man.in@1.56 +13 -13
NTP_4_2_7P454
scripts/summary.mdoc.in@1.56 +2 -2
NTP_4_2_7P454
sntp/invoke-sntp.texi@1.444 +2 -2
NTP_4_2_7P454
sntp/sntp-opts.c@1.458.1.1 +7 -7
NTP_4_2_7P454
sntp/sntp-opts.h@1.458.1.1 +3 -3
NTP_4_2_7P454
sntp/sntp.1sntpman@1.279 +6 -6
NTP_4_2_7P454
sntp/sntp.1sntpmdoc@1.279 +2 -2
NTP_4_2_7P454
sntp/sntp.html@1.459 +2 -2
NTP_4_2_7P454
sntp/sntp.man.in@1.279 +6 -6
NTP_4_2_7P454
sntp/sntp.mdoc.in@1.279 +2 -2
NTP_4_2_7P454
util/invoke-ntp-keygen.texi@1.448 +2 -2
NTP_4_2_7P454
util/ntp-keygen-opts.c@1.461.1.1 +7 -7
NTP_4_2_7P454
util/ntp-keygen-opts.h@1.461.1.1 +3 -3
NTP_4_2_7P454
util/ntp-keygen.1ntp-keygenman@1.276 +6 -6
NTP_4_2_7P454
util/ntp-keygen.1ntp-keygenmdoc@1.276 +2 -2
NTP_4_2_7P454
util/ntp-keygen.html@1.124 +2 -2
NTP_4_2_7P454
util/ntp-keygen.man.in@1.276 +6 -6
NTP_4_2_7P454
util/ntp-keygen.mdoc.in@1.276 +2 -2
NTP_4_2_7P454
ChangeSet@1.3156.1.1, 2014-07-29 20:35:32+02:00, jnperlin@hydra.(none)
[Bug 2628] 'mon_getmoremem()' relies on undefined behaviour
ChangeLog@1.1502.1.1 +1 -0
[Bug 2628] 'mon_getmoremem()' relies on undefined behaviour
ntpd/ntp_monitor.c@1.41 +8 -7
[Bug 2628] 'mon_getmoremem()' relies on undefined behaviour
ChangeSet@1.3160, 2014-07-20 09:44:32+00:00, stenn@psp-fb1.ntp.org
autogen-5.18.4pre9
ntpd/ntpd-opts.c@1.465 +2 -2
autogen-5.18.4pre9
ntpd/ntpd-opts.h@1.465 +9 -9
autogen-5.18.4pre9
ntpd/ntpdsim-opts.c@1.24 +11 -11
autogen-5.18.4pre9
ntpd/ntpdsim-opts.h@1.24 +14 -14
autogen-5.18.4pre9
ntpdc/ntpdc-opts.c@1.460 +2 -2
autogen-5.18.4pre9
ntpdc/ntpdc-opts.h@1.460 +11 -11
autogen-5.18.4pre9
ntpq/invoke-ntpq.texi@1.449 +27 -25
autogen-5.18.4pre9
ntpq/ntpq-opts.c@1.463 +2 -2
autogen-5.18.4pre9
ntpq/ntpq-opts.h@1.463 +11 -11
autogen-5.18.4pre9
ntpq/ntpq.1ntpqman@1.277 +40 -60
autogen-5.18.4pre9
ntpq/ntpq.1ntpqmdoc@1.277 +31 -47
autogen-5.18.4pre9
ntpq/ntpq.man.in@1.277 +40 -60
autogen-5.18.4pre9
ntpq/ntpq.mdoc.in@1.277 +31 -47
autogen-5.18.4pre9
ntpsnmpd/ntpsnmpd-opts.c@1.462 +2 -2
autogen-5.18.4pre9
ntpsnmpd/ntpsnmpd-opts.h@1.462 +11 -11
autogen-5.18.4pre9
scripts/calc_tickadj/calc_tickadj-opts@1.4 +6 -6
autogen-5.18.4pre9
scripts/calc_tickadj/calc_tickadj.html@1.37 +35 -23
autogen-5.18.4pre9
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.39 +3 -3
autogen-5.18.4pre9
scripts/invoke-plot_summary.texi@1.56 +10 -10
autogen-5.18.4pre9
scripts/invoke-summary.texi@1.56 +9 -9
autogen-5.18.4pre9
scripts/ntp-wait/ntp-wait-opts@1.3 +6 -6
autogen-5.18.4pre9
scripts/ntpsweep/invoke-ntpsweep.texi@1.54 +3 -3
autogen-5.18.4pre9
scripts/ntpsweep/ntpsweep-opts@1.4 +6 -11
autogen-5.18.4pre9
scripts/ntpsweep/ntpsweep.html@1.55 +44 -33
autogen-5.18.4pre9
scripts/ntptrace/invoke-ntptrace.texi@1.54 +3 -3
autogen-5.18.4pre9
scripts/ntptrace/ntptrace-opts@1.4 +6 -11
autogen-5.18.4pre9
scripts/ntptrace/ntptrace.html@1.55 +36 -27
autogen-5.18.4pre9
scripts/plot_summary-opts@1.4 +13 -13
autogen-5.18.4pre9
scripts/plot_summary.html@1.56 +54 -36
autogen-5.18.4pre9
scripts/summary-opts@1.4 +12 -12
autogen-5.18.4pre9
scripts/summary.html@1.56 +45 -33
autogen-5.18.4pre9
sntp/sntp-opts.c@1.459 +2 -2
autogen-5.18.4pre9
sntp/sntp-opts.h@1.459 +11 -11
autogen-5.18.4pre9
util/ntp-keygen-opts.c@1.462 +2 -2
autogen-5.18.4pre9
util/ntp-keygen-opts.h@1.462 +11 -11
autogen-5.18.4pre9
ChangeSet@1.3159, 2014-07-20 09:34:20+00:00, stenn@psp-fb1.ntp.org
Fix nits in the ntpq man page
ChangeLog@1.1505 +1 -1
Fix nits in the ntpq man page
ntpq/ntpq-opts.def@1.19 +28 -28
Fix nits in the ntpq man page
ChangeSet@1.3158, 2014-07-20 07:31:46+00:00, stenn@psp-deb1.ntp.org
Fix a nit in the ntpq man page
ChangeLog@1.1504 +1 -0
Fix a nit in the ntpq man page
ntpq/ntpq-opts.def@1.18 +1 -1
Fix a nit in the ntpq man page
ChangeSet@1.3157, 2014-07-20 07:30:06+00:00, stenn@psp-deb1.ntp.org
autogen-5.18.4pre9
ChangeLog@1.1503 +1 -0
autogen-5.18.4pre9
sntp/libopts/Makefile.am@1.25 +52 -16
autogen-5.18.4pre9
sntp/libopts/ag-char-map.h@1.28 +1 -1
autogen-5.18.4pre9
sntp/libopts/ao-strs.c@1.14 +1 -1
autogen-5.18.4pre9
sntp/libopts/ao-strs.h@1.13 +1 -1
autogen-5.18.4pre9
sntp/libopts/autoopts.h@1.18 +1 -0
autogen-5.18.4pre9
sntp/libopts/autoopts/options.h@1.27 +6 -4
autogen-5.18.4pre9
sntp/libopts/autoopts/usage-txt.h@1.27 +1 -1
autogen-5.18.4pre9
sntp/libopts/compat/_Noreturn.h@1.1 +10 -0
BitKeeper file /home/stenn/ntp-dev-autogen-5.18.4/sntp/libopts/compat/_Noreturn.h
sntp/libopts/compat/_Noreturn.h@1.0 +0 -0
sntp/libopts/genshell.c@1.28 +2 -2
autogen-5.18.4pre9
sntp/libopts/genshell.h@1.28 +9 -9
autogen-5.18.4pre9
sntp/libopts/intprops.h@1.1 +320 -0
BitKeeper file /home/stenn/ntp-dev-autogen-5.18.4/sntp/libopts/intprops.h
sntp/libopts/intprops.h@1.0 +0 -0
sntp/libopts/m4/libopts.m4@1.31 +2 -1
autogen-5.18.4pre9
sntp/libopts/m4/stdnoreturn.m4@1.1 +41 -0
BitKeeper file /home/stenn/ntp-dev-autogen-5.18.4/sntp/libopts/m4/stdnoreturn.m4
sntp/libopts/m4/stdnoreturn.m4@1.0 +0 -0
sntp/libopts/makeshell.c@1.18 +3 -3
autogen-5.18.4pre9
sntp/libopts/option-value-type.c@1.15 +1 -1
autogen-5.18.4pre9
sntp/libopts/option-value-type.h@1.29 +1 -1
autogen-5.18.4pre9
sntp/libopts/option-xat-attribute.c@1.15 +1 -1
autogen-5.18.4pre9
sntp/libopts/option-xat-attribute.h@1.29 +1 -1
autogen-5.18.4pre9
sntp/libopts/parse-duration.c@1.12 +6 -3
autogen-5.18.4pre9
sntp/libopts/proto.h@1.28 +4 -4
autogen-5.18.4pre9
sntp/libopts/stdnoreturn.in.h@1.1 +50 -0
BitKeeper file /home/stenn/ntp-dev-autogen-5.18.4/sntp/libopts/stdnoreturn.in.h
sntp/libopts/stdnoreturn.in.h@1.0 +0 -0
sntp/libopts/version.c@1.17 +24 -4
autogen-5.18.4pre9
ChangeSet@1.3156, 2014-07-19 09:33:29+00:00, stenn@deacon.udel.edu
NTP_4_2_7P453
TAG: NTP_4_2_7P453
ChangeLog@1.1502 +1 -0
NTP_4_2_7P453
ntpd/invoke-ntp.conf.texi@1.132 +1 -1
NTP_4_2_7P453
ntpd/invoke-ntp.keys.texi@1.130 +1 -1
NTP_4_2_7P453
ntpd/invoke-ntpd.texi@1.446 +2 -2
NTP_4_2_7P453
ntpd/ntp.conf.5man@1.166 +6 -6
NTP_4_2_7P453
ntpd/ntp.conf.5mdoc@1.166 +2 -2
NTP_4_2_7P453
ntpd/ntp.conf.html@1.127 +1 -1
NTP_4_2_7P453
ntpd/ntp.conf.man.in@1.166 +6 -6
NTP_4_2_7P453
ntpd/ntp.conf.mdoc.in@1.166 +2 -2
NTP_4_2_7P453
ntpd/ntp.keys.5man@1.164 +2 -2
NTP_4_2_7P453
ntpd/ntp.keys.5mdoc@1.164 +2 -2
NTP_4_2_7P453
ntpd/ntp.keys.html@1.128 +1 -1
NTP_4_2_7P453
ntpd/ntp.keys.man.in@1.164 +2 -2
NTP_4_2_7P453
ntpd/ntp.keys.mdoc.in@1.164 +2 -2
NTP_4_2_7P453
ntpd/ntpd-opts.c@1.464 +7 -7
NTP_4_2_7P453
ntpd/ntpd-opts.h@1.464 +3 -3
NTP_4_2_7P453
ntpd/ntpd.1ntpdman@1.275 +13 -13
NTP_4_2_7P453
ntpd/ntpd.1ntpdmdoc@1.275 +2 -2
NTP_4_2_7P453
ntpd/ntpd.html@1.122 +2 -2
NTP_4_2_7P453
ntpd/ntpd.man.in@1.275 +13 -13
NTP_4_2_7P453
ntpd/ntpd.mdoc.in@1.275 +2 -2
NTP_4_2_7P453
ntpdc/invoke-ntpdc.texi@1.444 +2 -2
NTP_4_2_7P453
ntpdc/ntpdc-opts.c@1.459 +7 -7
NTP_4_2_7P453
ntpdc/ntpdc-opts.h@1.459 +3 -3
NTP_4_2_7P453
ntpdc/ntpdc.1ntpdcman@1.275 +6 -6
NTP_4_2_7P453
ntpdc/ntpdc.1ntpdcmdoc@1.275 +2 -2
NTP_4_2_7P453
ntpdc/ntpdc.html@1.288 +2 -2
NTP_4_2_7P453
ntpdc/ntpdc.man.in@1.275 +6 -6
NTP_4_2_7P453
ntpdc/ntpdc.mdoc.in@1.275 +2 -2
NTP_4_2_7P453
ntpq/invoke-ntpq.texi@1.448 +2 -2
NTP_4_2_7P453
ntpq/ntpq-opts.c@1.462 +7 -7
NTP_4_2_7P453
ntpq/ntpq-opts.h@1.462 +3 -3
NTP_4_2_7P453
ntpq/ntpq.1ntpqman@1.276 +6 -6
NTP_4_2_7P453
ntpq/ntpq.1ntpqmdoc@1.276 +2 -2
NTP_4_2_7P453
ntpq/ntpq.html@1.119 +2 -2
NTP_4_2_7P453
ntpq/ntpq.man.in@1.276 +6 -6
NTP_4_2_7P453
ntpq/ntpq.mdoc.in@1.276 +2 -2
NTP_4_2_7P453
ntpsnmpd/invoke-ntpsnmpd.texi@1.446 +2 -2
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd-opts.c@1.461 +7 -7
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd-opts.h@1.461 +3 -3
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.275 +6 -6
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.275 +2 -2
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd.html@1.117 +1 -1
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd.man.in@1.275 +6 -6
NTP_4_2_7P453
ntpsnmpd/ntpsnmpd.mdoc.in@1.275 +2 -2
NTP_4_2_7P453
packageinfo.sh@1.457 +1 -1
NTP_4_2_7P453
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.37 +6 -6
NTP_4_2_7P453
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.37 +2 -2
NTP_4_2_7P453
scripts/calc_tickadj/calc_tickadj.html@1.36 +1 -1
NTP_4_2_7P453
scripts/calc_tickadj/calc_tickadj.man.in@1.36 +6 -6
NTP_4_2_7P453
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.37 +2 -2
NTP_4_2_7P453
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.38 +1 -1
NTP_4_2_7P453
scripts/invoke-plot_summary.texi@1.55 +1 -1
NTP_4_2_7P453
scripts/invoke-summary.texi@1.55 +1 -1
NTP_4_2_7P453
scripts/ntp-wait/invoke-ntp-wait.texi@1.264 +1 -1
NTP_4_2_7P453
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.265 +13 -13
NTP_4_2_7P453
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.265 +2 -2
NTP_4_2_7P453
scripts/ntp-wait/ntp-wait.html@1.281 +1 -1
NTP_4_2_7P453
scripts/ntp-wait/ntp-wait.man.in@1.265 +13 -13
NTP_4_2_7P453
scripts/ntp-wait/ntp-wait.mdoc.in@1.265 +2 -2
NTP_4_2_7P453
scripts/ntpsweep/invoke-ntpsweep.texi@1.53 +1 -1
NTP_4_2_7P453
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.44 +6 -6
NTP_4_2_7P453
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.44 +2 -2
NTP_4_2_7P453
scripts/ntpsweep/ntpsweep.html@1.54 +1 -1
NTP_4_2_7P453
scripts/ntpsweep/ntpsweep.man.in@1.44 +6 -6
NTP_4_2_7P453
scripts/ntpsweep/ntpsweep.mdoc.in@1.45 +2 -2
NTP_4_2_7P453
scripts/ntptrace/invoke-ntptrace.texi@1.53 +1 -1
NTP_4_2_7P453
scripts/ntptrace/ntptrace.1ntptraceman@1.44 +6 -6
NTP_4_2_7P453
scripts/ntptrace/ntptrace.1ntptracemdoc@1.44 +2 -2
NTP_4_2_7P453
scripts/ntptrace/ntptrace.html@1.54 +1 -1
NTP_4_2_7P453
scripts/ntptrace/ntptrace.man.in@1.44 +6 -6
NTP_4_2_7P453
scripts/ntptrace/ntptrace.mdoc.in@1.45 +2 -2
NTP_4_2_7P453
scripts/plot_summary.1plot_summaryman@1.55 +6 -6
NTP_4_2_7P453
scripts/plot_summary.1plot_summarymdoc@1.55 +2 -2
NTP_4_2_7P453
scripts/plot_summary.html@1.55 +1 -1
NTP_4_2_7P453
scripts/plot_summary.man.in@1.55 +6 -6
NTP_4_2_7P453
scripts/plot_summary.mdoc.in@1.55 +2 -2
NTP_4_2_7P453
scripts/summary.1summaryman@1.55 +6 -6
NTP_4_2_7P453
scripts/summary.1summarymdoc@1.55 +2 -2
NTP_4_2_7P453
scripts/summary.html@1.55 +1 -1
NTP_4_2_7P453
scripts/summary.man.in@1.55 +6 -6
NTP_4_2_7P453
scripts/summary.mdoc.in@1.55 +2 -2
NTP_4_2_7P453
sntp/invoke-sntp.texi@1.443 +2 -2
NTP_4_2_7P453
sntp/sntp-opts.c@1.458 +7 -7
NTP_4_2_7P453
sntp/sntp-opts.h@1.458 +3 -3
NTP_4_2_7P453
sntp/sntp.1sntpman@1.278 +6 -6
NTP_4_2_7P453
sntp/sntp.1sntpmdoc@1.278 +2 -2
NTP_4_2_7P453
sntp/sntp.html@1.458 +2 -2
NTP_4_2_7P453
sntp/sntp.man.in@1.278 +6 -6
NTP_4_2_7P453
sntp/sntp.mdoc.in@1.278 +2 -2
NTP_4_2_7P453
util/invoke-ntp-keygen.texi@1.447 +2 -2
NTP_4_2_7P453
util/ntp-keygen-opts.c@1.461 +7 -7
NTP_4_2_7P453
util/ntp-keygen-opts.h@1.461 +3 -3
NTP_4_2_7P453
util/ntp-keygen.1ntp-keygenman@1.275 +6 -6
NTP_4_2_7P453
util/ntp-keygen.1ntp-keygenmdoc@1.275 +2 -2
NTP_4_2_7P453
util/ntp-keygen.html@1.123 +2 -2
NTP_4_2_7P453
util/ntp-keygen.man.in@1.275 +6 -6
NTP_4_2_7P453
util/ntp-keygen.mdoc.in@1.275 +2 -2
NTP_4_2_7P453
ChangeSet@1.3154, 2014-07-18 09:33:45+00:00, stenn@deacon.udel.edu
NTP_4_2_7P452
TAG: NTP_4_2_7P452
ChangeLog@1.1500 +1 -0
NTP_4_2_7P452
ntpd/invoke-ntp.conf.texi@1.131 +1 -1
NTP_4_2_7P452
ntpd/invoke-ntp.keys.texi@1.129 +1 -1
NTP_4_2_7P452
ntpd/invoke-ntpd.texi@1.445 +2 -2
NTP_4_2_7P452
ntpd/ntp.conf.5man@1.165 +6 -6
NTP_4_2_7P452
ntpd/ntp.conf.5mdoc@1.165 +2 -2
NTP_4_2_7P452
ntpd/ntp.conf.html@1.126 +1 -1
NTP_4_2_7P452
ntpd/ntp.conf.man.in@1.165 +6 -6
NTP_4_2_7P452
ntpd/ntp.conf.mdoc.in@1.165 +2 -2
NTP_4_2_7P452
ntpd/ntp.keys.5man@1.163 +2 -2
NTP_4_2_7P452
ntpd/ntp.keys.5mdoc@1.163 +2 -2
NTP_4_2_7P452
ntpd/ntp.keys.html@1.127 +1 -1
NTP_4_2_7P452
ntpd/ntp.keys.man.in@1.163 +2 -2
NTP_4_2_7P452
ntpd/ntp.keys.mdoc.in@1.163 +2 -2
NTP_4_2_7P452
ntpd/ntpd-opts.c@1.463 +7 -7
NTP_4_2_7P452
ntpd/ntpd-opts.h@1.463 +3 -3
NTP_4_2_7P452
ntpd/ntpd.1ntpdman@1.274 +13 -13
NTP_4_2_7P452
ntpd/ntpd.1ntpdmdoc@1.274 +2 -2
NTP_4_2_7P452
ntpd/ntpd.html@1.121 +2 -2
NTP_4_2_7P452
ntpd/ntpd.man.in@1.274 +13 -13
NTP_4_2_7P452
ntpd/ntpd.mdoc.in@1.274 +2 -2
NTP_4_2_7P452
ntpdc/invoke-ntpdc.texi@1.443 +2 -2
NTP_4_2_7P452
ntpdc/ntpdc-opts.c@1.458 +7 -7
NTP_4_2_7P452
ntpdc/ntpdc-opts.h@1.458 +3 -3
NTP_4_2_7P452
ntpdc/ntpdc.1ntpdcman@1.274 +6 -6
NTP_4_2_7P452
ntpdc/ntpdc.1ntpdcmdoc@1.274 +2 -2
NTP_4_2_7P452
ntpdc/ntpdc.html@1.287 +2 -2
NTP_4_2_7P452
ntpdc/ntpdc.man.in@1.274 +6 -6
NTP_4_2_7P452
ntpdc/ntpdc.mdoc.in@1.274 +2 -2
NTP_4_2_7P452
ntpq/invoke-ntpq.texi@1.447 +2 -2
NTP_4_2_7P452
ntpq/ntpq-opts.c@1.461 +7 -7
NTP_4_2_7P452
ntpq/ntpq-opts.h@1.461 +3 -3
NTP_4_2_7P452
ntpq/ntpq.1ntpqman@1.275 +6 -6
NTP_4_2_7P452
ntpq/ntpq.1ntpqmdoc@1.275 +2 -2
NTP_4_2_7P452
ntpq/ntpq.html@1.118 +2 -2
NTP_4_2_7P452
ntpq/ntpq.man.in@1.275 +6 -6
NTP_4_2_7P452
ntpq/ntpq.mdoc.in@1.275 +2 -2
NTP_4_2_7P452
ntpsnmpd/invoke-ntpsnmpd.texi@1.445 +2 -2
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd-opts.c@1.460 +7 -7
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd-opts.h@1.460 +3 -3
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.274 +6 -6
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.274 +2 -2
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd.html@1.116 +1 -1
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd.man.in@1.274 +6 -6
NTP_4_2_7P452
ntpsnmpd/ntpsnmpd.mdoc.in@1.274 +2 -2
NTP_4_2_7P452
packageinfo.sh@1.456 +1 -1
NTP_4_2_7P452
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.36 +6 -6
NTP_4_2_7P452
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.36 +2 -2
NTP_4_2_7P452
scripts/calc_tickadj/calc_tickadj.html@1.35 +1 -1
NTP_4_2_7P452
scripts/calc_tickadj/calc_tickadj.man.in@1.35 +6 -6
NTP_4_2_7P452
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.36 +2 -2
NTP_4_2_7P452
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.37 +1 -1
NTP_4_2_7P452
scripts/invoke-plot_summary.texi@1.54 +1 -1
NTP_4_2_7P452
scripts/invoke-summary.texi@1.54 +1 -1
NTP_4_2_7P452
scripts/ntp-wait/invoke-ntp-wait.texi@1.263 +1 -1
NTP_4_2_7P452
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.264 +6 -6
NTP_4_2_7P452
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.264 +2 -2
NTP_4_2_7P452
scripts/ntp-wait/ntp-wait.html@1.280 +1 -1
NTP_4_2_7P452
scripts/ntp-wait/ntp-wait.man.in@1.264 +6 -6
NTP_4_2_7P452
scripts/ntp-wait/ntp-wait.mdoc.in@1.264 +2 -2
NTP_4_2_7P452
scripts/ntpsweep/invoke-ntpsweep.texi@1.52 +1 -1
NTP_4_2_7P452
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.43 +6 -6
NTP_4_2_7P452
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.43 +2 -2
NTP_4_2_7P452
scripts/ntpsweep/ntpsweep.html@1.53 +1 -1
NTP_4_2_7P452
scripts/ntpsweep/ntpsweep.man.in@1.43 +6 -6
NTP_4_2_7P452
scripts/ntpsweep/ntpsweep.mdoc.in@1.44 +2 -2
NTP_4_2_7P452
scripts/ntptrace/invoke-ntptrace.texi@1.52 +1 -1
NTP_4_2_7P452
scripts/ntptrace/ntptrace.1ntptraceman@1.43 +6 -6
NTP_4_2_7P452
scripts/ntptrace/ntptrace.1ntptracemdoc@1.43 +2 -2
NTP_4_2_7P452
scripts/ntptrace/ntptrace.html@1.53 +1 -1
NTP_4_2_7P452
scripts/ntptrace/ntptrace.man.in@1.43 +6 -6
NTP_4_2_7P452
scripts/ntptrace/ntptrace.mdoc.in@1.44 +2 -2
NTP_4_2_7P452
scripts/plot_summary.1plot_summaryman@1.54 +6 -6
NTP_4_2_7P452
scripts/plot_summary.1plot_summarymdoc@1.54 +2 -2
NTP_4_2_7P452
scripts/plot_summary.html@1.54 +1 -1
NTP_4_2_7P452
scripts/plot_summary.man.in@1.54 +6 -6
NTP_4_2_7P452
scripts/plot_summary.mdoc.in@1.54 +2 -2
NTP_4_2_7P452
scripts/summary.1summaryman@1.54 +6 -6
NTP_4_2_7P452
scripts/summary.1summarymdoc@1.54 +2 -2
NTP_4_2_7P452
scripts/summary.html@1.54 +1 -1
NTP_4_2_7P452
scripts/summary.man.in@1.54 +6 -6
NTP_4_2_7P452
scripts/summary.mdoc.in@1.54 +2 -2
NTP_4_2_7P452
sntp/invoke-sntp.texi@1.442 +2 -2
NTP_4_2_7P452
sntp/sntp-opts.c@1.457 +7 -7
NTP_4_2_7P452
sntp/sntp-opts.h@1.457 +3 -3
NTP_4_2_7P452
sntp/sntp.1sntpman@1.277 +6 -6
NTP_4_2_7P452
sntp/sntp.1sntpmdoc@1.277 +2 -2
NTP_4_2_7P452
sntp/sntp.html@1.457 +2 -2
NTP_4_2_7P452
sntp/sntp.man.in@1.277 +6 -6
NTP_4_2_7P452
sntp/sntp.mdoc.in@1.277 +2 -2
NTP_4_2_7P452
util/invoke-ntp-keygen.texi@1.446 +2 -2
NTP_4_2_7P452
util/ntp-keygen-opts.c@1.460 +7 -7
NTP_4_2_7P452
util/ntp-keygen-opts.h@1.460 +3 -3
NTP_4_2_7P452
util/ntp-keygen.1ntp-keygenman@1.274 +6 -6
NTP_4_2_7P452
util/ntp-keygen.1ntp-keygenmdoc@1.274 +2 -2
NTP_4_2_7P452
util/ntp-keygen.html@1.122 +2 -2
NTP_4_2_7P452
util/ntp-keygen.man.in@1.274 +6 -6
NTP_4_2_7P452
util/ntp-keygen.mdoc.in@1.274 +2 -2
NTP_4_2_7P452
ChangeSet@1.3153, 2014-07-18 04:36:57-04:00, stenn@deacon.udel.edu
Make all of the html/ .html files use the same format for "Last update"
ChangeLog@1.1499 +1 -0
Make all of the html/ .html files use the same format for "Last update"
html/assoc.html@1.41 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/comdex.html@1.7 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/config.html@1.25 +3 -2
Make all of the html/ .html files use the same format for "Last update"
html/confopt.html@1.62 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/copyright.html@1.64 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/decode.html@1.25 +3 -2
Make all of the html/ .html files use the same format for "Last update"
html/discipline.html@1.10 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/discover.html@1.6 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver16.html@1.13 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver20.html@1.29 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver26.html@1.11 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver27.html@1.17 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver28.html@1.15 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver29.html@1.17 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver30.html@1.21 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver31.html@1.4 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver32.html@1.14 +3 -1
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver33.html@1.14 +3 -2
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver34.html@1.13 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver35.html@1.16 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver37.html@1.14 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver38.html@1.16 +3 -1
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver39.html@1.15 +3 -1
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver40.html@1.16 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver42.html@1.14 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver43.html@1.12 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver44.html@1.15 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver45.html@1.4 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver46.html@1.2 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver6.html@1.30 +2 -2
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver7.html@1.31 +2 -1
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver8.html@1.31 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/driver9.html@1.16 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/mx4200data.html@1.3 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/oncore-shmem.html@1.14 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/drivers/tf582_4.html@1.4 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/extern.html@1.21 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/filter.html@1.8 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/hints.html@1.20 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/hints/sco.html@1.12 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/hints/solaris.html@1.12 +4 -1
Make all of the html/ .html files use the same format for "Last update"
html/hints/vxworks.html@1.11 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/history.html@1.4 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/howto.html@1.25 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/huffpuff.html@1.6 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/kern.html@1.22 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/kernpps.html@1.5 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/keygen.html@1.34 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/leap.html@1.7 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/miscopt.html@1.78 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/monopt.html@1.38 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/msyslog.html@1.12 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntp-wait.html@1.2 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/ntpd.html@1.62 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntpdate.html@1.28 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntpdc.html@1.39 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntpdsim_new.html@1.9 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntpq.html@1.50 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/ntptrace.html@1.21 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/parsedata.html@1.14 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/parsenew.html@1.13 +3 -0
Make all of the html/ .html files use the same format for "Last update"
html/poll.html@1.5 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/pps.html@1.26 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/prefer.html@1.33 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/rate.html@1.13 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/rdebug.html@1.19 +4 -4
Make all of the html/ .html files use the same format for "Last update"
html/refclock.html@1.43 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/select.html@1.10 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/stats.html@1.3 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/tickadj.html@1.19 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/warp.html@1.24 +3 -3
Make all of the html/ .html files use the same format for "Last update"
html/xleave.html@1.10 +3 -3
Make all of the html/ .html files use the same format for "Last update"
ChangeSet@1.3152, 2014-07-17 09:33:26+00:00, stenn@deacon.udel.edu
NTP_4_2_7P451
TAG: NTP_4_2_7P451
ChangeLog@1.1498 +1 -0
NTP_4_2_7P451
ntpd/invoke-ntp.conf.texi@1.130 +1 -1
NTP_4_2_7P451
ntpd/invoke-ntp.keys.texi@1.128 +1 -1
NTP_4_2_7P451
ntpd/invoke-ntpd.texi@1.444 +2 -2
NTP_4_2_7P451
ntpd/ntp.conf.5man@1.164 +6 -6
NTP_4_2_7P451
ntpd/ntp.conf.5mdoc@1.164 +2 -2
NTP_4_2_7P451
ntpd/ntp.conf.html@1.125 +1 -1
NTP_4_2_7P451
ntpd/ntp.conf.man.in@1.164 +6 -6
NTP_4_2_7P451
ntpd/ntp.conf.mdoc.in@1.164 +2 -2
NTP_4_2_7P451
ntpd/ntp.keys.5man@1.162 +2 -2
NTP_4_2_7P451
ntpd/ntp.keys.5mdoc@1.162 +2 -2
NTP_4_2_7P451
ntpd/ntp.keys.html@1.126 +1 -1
NTP_4_2_7P451
ntpd/ntp.keys.man.in@1.162 +2 -2
NTP_4_2_7P451
ntpd/ntp.keys.mdoc.in@1.162 +2 -2
NTP_4_2_7P451
ntpd/ntpd-opts.c@1.462 +7 -7
NTP_4_2_7P451
ntpd/ntpd-opts.h@1.462 +3 -3
NTP_4_2_7P451
ntpd/ntpd.1ntpdman@1.273 +6 -6
NTP_4_2_7P451
ntpd/ntpd.1ntpdmdoc@1.273 +2 -2
NTP_4_2_7P451
ntpd/ntpd.html@1.120 +2 -2
NTP_4_2_7P451
ntpd/ntpd.man.in@1.273 +6 -6
NTP_4_2_7P451
ntpd/ntpd.mdoc.in@1.273 +2 -2
NTP_4_2_7P451
ntpdc/invoke-ntpdc.texi@1.442 +2 -2
NTP_4_2_7P451
ntpdc/ntpdc-opts.c@1.457 +7 -7
NTP_4_2_7P451
ntpdc/ntpdc-opts.h@1.457 +3 -3
NTP_4_2_7P451
ntpdc/ntpdc.1ntpdcman@1.273 +6 -6
NTP_4_2_7P451
ntpdc/ntpdc.1ntpdcmdoc@1.273 +2 -2
NTP_4_2_7P451
ntpdc/ntpdc.html@1.286 +2 -2
NTP_4_2_7P451
ntpdc/ntpdc.man.in@1.273 +6 -6
NTP_4_2_7P451
ntpdc/ntpdc.mdoc.in@1.273 +2 -2
NTP_4_2_7P451
ntpq/invoke-ntpq.texi@1.446 +2 -2
NTP_4_2_7P451
ntpq/ntpq-opts.c@1.460 +7 -7
NTP_4_2_7P451
ntpq/ntpq-opts.h@1.460 +3 -3
NTP_4_2_7P451
ntpq/ntpq.1ntpqman@1.274 +6 -6
NTP_4_2_7P451
ntpq/ntpq.1ntpqmdoc@1.274 +2 -2
NTP_4_2_7P451
ntpq/ntpq.html@1.117 +2 -2
NTP_4_2_7P451
ntpq/ntpq.man.in@1.274 +6 -6
NTP_4_2_7P451
ntpq/ntpq.mdoc.in@1.274 +2 -2
NTP_4_2_7P451
ntpsnmpd/invoke-ntpsnmpd.texi@1.444 +2 -2
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd-opts.c@1.459 +7 -7
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd-opts.h@1.459 +3 -3
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.273 +6 -6
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.273 +2 -2
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd.html@1.115 +1 -1
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd.man.in@1.273 +6 -6
NTP_4_2_7P451
ntpsnmpd/ntpsnmpd.mdoc.in@1.273 +2 -2
NTP_4_2_7P451
packageinfo.sh@1.455 +1 -1
NTP_4_2_7P451
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.35 +6 -6
NTP_4_2_7P451
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.35 +2 -2
NTP_4_2_7P451
scripts/calc_tickadj/calc_tickadj.html@1.34 +1 -1
NTP_4_2_7P451
scripts/calc_tickadj/calc_tickadj.man.in@1.34 +6 -6
NTP_4_2_7P451
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.35 +2 -2
NTP_4_2_7P451
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.36 +1 -1
NTP_4_2_7P451
scripts/invoke-plot_summary.texi@1.53 +1 -1
NTP_4_2_7P451
scripts/invoke-summary.texi@1.53 +1 -1
NTP_4_2_7P451
scripts/ntp-wait/invoke-ntp-wait.texi@1.262 +1 -1
NTP_4_2_7P451
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.263 +6 -6
NTP_4_2_7P451
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.263 +2 -2
NTP_4_2_7P451
scripts/ntp-wait/ntp-wait.html@1.279 +1 -1
NTP_4_2_7P451
scripts/ntp-wait/ntp-wait.man.in@1.263 +6 -6
NTP_4_2_7P451
scripts/ntp-wait/ntp-wait.mdoc.in@1.263 +2 -2
NTP_4_2_7P451
scripts/ntpsweep/invoke-ntpsweep.texi@1.51 +1 -1
NTP_4_2_7P451
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.42 +6 -6
NTP_4_2_7P451
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.42 +2 -2
NTP_4_2_7P451
scripts/ntpsweep/ntpsweep.html@1.52 +1 -1
NTP_4_2_7P451
scripts/ntpsweep/ntpsweep.man.in@1.42 +6 -6
NTP_4_2_7P451
scripts/ntpsweep/ntpsweep.mdoc.in@1.43 +2 -2
NTP_4_2_7P451
scripts/ntptrace/invoke-ntptrace.texi@1.51 +1 -1
NTP_4_2_7P451
scripts/ntptrace/ntptrace.1ntptraceman@1.42 +6 -6
NTP_4_2_7P451
scripts/ntptrace/ntptrace.1ntptracemdoc@1.42 +2 -2
NTP_4_2_7P451
scripts/ntptrace/ntptrace.html@1.52 +1 -1
NTP_4_2_7P451
scripts/ntptrace/ntptrace.man.in@1.42 +6 -6
NTP_4_2_7P451
scripts/ntptrace/ntptrace.mdoc.in@1.43 +2 -2
NTP_4_2_7P451
scripts/plot_summary.1plot_summaryman@1.53 +6 -6
NTP_4_2_7P451
scripts/plot_summary.1plot_summarymdoc@1.53 +2 -2
NTP_4_2_7P451
scripts/plot_summary.html@1.53 +1 -1
NTP_4_2_7P451
scripts/plot_summary.man.in@1.53 +6 -6
NTP_4_2_7P451
scripts/plot_summary.mdoc.in@1.53 +2 -2
NTP_4_2_7P451
scripts/summary.1summaryman@1.53 +6 -6
NTP_4_2_7P451
scripts/summary.1summarymdoc@1.53 +2 -2
NTP_4_2_7P451
scripts/summary.html@1.53 +1 -1
NTP_4_2_7P451
scripts/summary.man.in@1.53 +6 -6
NTP_4_2_7P451
scripts/summary.mdoc.in@1.53 +2 -2
NTP_4_2_7P451
sntp/invoke-sntp.texi@1.441 +2 -2
NTP_4_2_7P451
sntp/sntp-opts.c@1.456 +7 -7
NTP_4_2_7P451
sntp/sntp-opts.h@1.456 +3 -3
NTP_4_2_7P451
sntp/sntp.1sntpman@1.276 +6 -6
NTP_4_2_7P451
sntp/sntp.1sntpmdoc@1.276 +2 -2
NTP_4_2_7P451
sntp/sntp.html@1.456 +2 -2
NTP_4_2_7P451
sntp/sntp.man.in@1.276 +6 -6
NTP_4_2_7P451
sntp/sntp.mdoc.in@1.276 +2 -2
NTP_4_2_7P451
util/invoke-ntp-keygen.texi@1.445 +2 -2
NTP_4_2_7P451
util/ntp-keygen-opts.c@1.459 +7 -7
NTP_4_2_7P451
util/ntp-keygen-opts.h@1.459 +3 -3
NTP_4_2_7P451
util/ntp-keygen.1ntp-keygenman@1.273 +6 -6
NTP_4_2_7P451
util/ntp-keygen.1ntp-keygenmdoc@1.273 +2 -2
NTP_4_2_7P451
util/ntp-keygen.html@1.121 +2 -2
NTP_4_2_7P451
util/ntp-keygen.man.in@1.273 +6 -6
NTP_4_2_7P451
util/ntp-keygen.mdoc.in@1.273 +2 -2
NTP_4_2_7P451
ChangeSet@1.3151, 2014-07-17 06:13:14+00:00, stenn@psp-deb1.ntp.org
Fix the "Last update" entries in the html/ subtree
ChangeLog@1.1497 +1 -0
Fix the "Last update" entries in the html/ subtree
html/access.html@1.2 +1 -1
Fix the "Last update" entries in the html/ subtree
html/accopt.html@1.42 +1 -1
Fix the "Last update" entries in the html/ subtree
html/audio.html@1.23 +1 -1
Fix the "Last update" entries in the html/ subtree
html/authentic.html@1.14 +1 -1
Fix the "Last update" entries in the html/ subtree
html/authopt.html@1.74 +1 -1
Fix the "Last update" entries in the html/ subtree
html/autokey.html@1.22 +1 -1
Fix the "Last update" entries in the html/ subtree
html/bugs.html@1.7 +1 -1
Fix the "Last update" entries in the html/ subtree
html/build.html@1.27 +1 -1
Fix the "Last update" entries in the html/ subtree
html/clock.html@1.4 +1 -1
Fix the "Last update" entries in the html/ subtree
html/clockopt.html@1.24 +1 -1
Fix the "Last update" entries in the html/ subtree
html/cluster.html@1.9 +1 -1
Fix the "Last update" entries in the html/ subtree
html/debug.html@1.33 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver1.html@1.22 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver10.html@1.14 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver11.html@1.14 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver12.html@1.13 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver18.html@1.20 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver19.html@1.13 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver22.html@1.22 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver3.html@1.13 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver36.html@1.35 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver4.html@1.17 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver6.html@1.29 +1 -1
Fix the "Last update" entries in the html/ subtree
html/drivers/driver7.html@1.30 +1 -1
Fix the "Last update" entries in the html/ subtree
html/hints/winnt.html@1.24 +1 -1
Fix the "Last update" entries in the html/ subtree
html/index.html@1.47 +1 -1
Fix the "Last update" entries in the html/ subtree
html/ntp_conf.html@1.7 +1 -1
Fix the "Last update" entries in the html/ subtree
html/ntpdsim.html@1.9 +1 -1
Fix the "Last update" entries in the html/ subtree
html/ntptime.html@1.18 +1 -1
Fix the "Last update" entries in the html/ subtree
html/orphan.html@1.4 +1 -1
Fix the "Last update" entries in the html/ subtree
html/quick.html@1.25 +2 -2
Fix the "Last update" entries in the html/ subtree
html/release.html@1.43 +1 -1
Fix the "Last update" entries in the html/ subtree
html/sitemap.html@1.5 +1 -1
Fix the "Last update" entries in the html/ subtree
html/sntp.html@1.10 +1 -1
Fix the "Last update" entries in the html/ subtree
ChangeSet@1.3148.1.1, 2014-07-17 00:02:39+02:00, jnperlin@hydra.(none)
[Bug 2597] leap file loose ends
- uniform log messages for timer and config triggered leap file loads
- timer triggered load errors only once per day
ChangeLog@1.1494.1.1 +4 -0
[Bug 2597] leap file loose ends
- uniform log messages for timer and config triggered leap file loads
- timer triggered load errors only once per day
ntpd/ntp_leapsec.c@1.13 +37 -32
[Bug 2597] file/stream load supports 'logall' flag to enable silent operation
ntpd/ntp_leapsec.h@1.8 +3 -2
[Bug 2597] file/stream load supports 'logall' flag to enable silent operation
ntpd/ntp_timer.c@1.82 +4 -4
[Bug 2597] proper setup for leap file check timer
ntpd/ntp_util.c@1.115 +32 -11
[Bug 2597] unified expiration check messages for timer and config triggered leap file load
ChangeSet@1.3150, 2014-07-16 21:57:44+00:00, stenn@deacon.udel.edu
NTP_4_2_7P450
TAG: NTP_4_2_7P450
ChangeLog@1.1496 +1 -0
NTP_4_2_7P450
ntpd/invoke-ntp.conf.texi@1.129 +1 -1
NTP_4_2_7P450
ntpd/invoke-ntp.keys.texi@1.127 +1 -1
NTP_4_2_7P450
ntpd/invoke-ntpd.texi@1.443 +2 -2
NTP_4_2_7P450
ntpd/ntp.conf.5man@1.163 +6 -6
NTP_4_2_7P450
ntpd/ntp.conf.5mdoc@1.163 +1 -1
NTP_4_2_7P450
ntpd/ntp.conf.html@1.124 +1 -1
NTP_4_2_7P450
ntpd/ntp.conf.man.in@1.163 +6 -6
NTP_4_2_7P450
ntpd/ntp.conf.mdoc.in@1.163 +1 -1
NTP_4_2_7P450
ntpd/ntp.keys.5man@1.161 +2 -2
NTP_4_2_7P450
ntpd/ntp.keys.5mdoc@1.161 +1 -1
NTP_4_2_7P450
ntpd/ntp.keys.html@1.125 +1 -1
NTP_4_2_7P450
ntpd/ntp.keys.man.in@1.161 +2 -2
NTP_4_2_7P450
ntpd/ntp.keys.mdoc.in@1.161 +1 -1
NTP_4_2_7P450
ntpd/ntpd-opts.c@1.461 +7 -7
NTP_4_2_7P450
ntpd/ntpd-opts.h@1.461 +3 -3
NTP_4_2_7P450
ntpd/ntpd.1ntpdman@1.272 +6 -6
NTP_4_2_7P450
ntpd/ntpd.1ntpdmdoc@1.272 +1 -1
NTP_4_2_7P450
ntpd/ntpd.html@1.119 +2 -2
NTP_4_2_7P450
ntpd/ntpd.man.in@1.272 +6 -6
NTP_4_2_7P450
ntpd/ntpd.mdoc.in@1.272 +1 -1
NTP_4_2_7P450
ntpdc/invoke-ntpdc.texi@1.441 +2 -2
NTP_4_2_7P450
ntpdc/ntpdc-opts.c@1.456 +7 -7
NTP_4_2_7P450
ntpdc/ntpdc-opts.h@1.456 +3 -3
NTP_4_2_7P450
ntpdc/ntpdc.1ntpdcman@1.272 +6 -6
NTP_4_2_7P450
ntpdc/ntpdc.1ntpdcmdoc@1.272 +1 -1
NTP_4_2_7P450
ntpdc/ntpdc.html@1.285 +2 -2
NTP_4_2_7P450
ntpdc/ntpdc.man.in@1.272 +6 -6
NTP_4_2_7P450
ntpdc/ntpdc.mdoc.in@1.272 +1 -1
NTP_4_2_7P450
ntpq/invoke-ntpq.texi@1.445 +2 -2
NTP_4_2_7P450
ntpq/ntpq-opts.c@1.459 +7 -7
NTP_4_2_7P450
ntpq/ntpq-opts.h@1.459 +3 -3
NTP_4_2_7P450
ntpq/ntpq.1ntpqman@1.273 +6 -6
NTP_4_2_7P450
ntpq/ntpq.1ntpqmdoc@1.273 +1 -1
NTP_4_2_7P450
ntpq/ntpq.html@1.116 +2 -2
NTP_4_2_7P450
ntpq/ntpq.man.in@1.273 +6 -6
NTP_4_2_7P450
ntpq/ntpq.mdoc.in@1.273 +1 -1
NTP_4_2_7P450
ntpsnmpd/invoke-ntpsnmpd.texi@1.443 +2 -2
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd-opts.c@1.458 +7 -7
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd-opts.h@1.458 +3 -3
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.272 +6 -6
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.272 +1 -1
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd.html@1.114 +1 -1
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd.man.in@1.272 +6 -6
NTP_4_2_7P450
ntpsnmpd/ntpsnmpd.mdoc.in@1.272 +1 -1
NTP_4_2_7P450
packageinfo.sh@1.454 +1 -1
NTP_4_2_7P450
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.34 +6 -6
NTP_4_2_7P450
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.34 +1 -1
NTP_4_2_7P450
scripts/calc_tickadj/calc_tickadj.html@1.33 +1 -1
NTP_4_2_7P450
scripts/calc_tickadj/calc_tickadj.man.in@1.33 +6 -6
NTP_4_2_7P450
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.34 +1 -1
NTP_4_2_7P450
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.35 +1 -1
NTP_4_2_7P450
scripts/invoke-plot_summary.texi@1.52 +1 -1
NTP_4_2_7P450
scripts/invoke-summary.texi@1.52 +1 -1
NTP_4_2_7P450
scripts/ntp-wait/invoke-ntp-wait.texi@1.261 +1 -1
NTP_4_2_7P450
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.262 +6 -6
NTP_4_2_7P450
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.262 +1 -1
NTP_4_2_7P450
scripts/ntp-wait/ntp-wait.html@1.278 +1 -1
NTP_4_2_7P450
scripts/ntp-wait/ntp-wait.man.in@1.262 +6 -6
NTP_4_2_7P450
scripts/ntp-wait/ntp-wait.mdoc.in@1.262 +1 -1
NTP_4_2_7P450
scripts/ntpsweep/invoke-ntpsweep.texi@1.50 +1 -1
NTP_4_2_7P450
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.41 +6 -6
NTP_4_2_7P450
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.41 +1 -1
NTP_4_2_7P450
scripts/ntpsweep/ntpsweep.html@1.51 +1 -1
NTP_4_2_7P450
scripts/ntpsweep/ntpsweep.man.in@1.41 +6 -6
NTP_4_2_7P450
scripts/ntpsweep/ntpsweep.mdoc.in@1.42 +1 -1
NTP_4_2_7P450
scripts/ntptrace/invoke-ntptrace.texi@1.50 +1 -1
NTP_4_2_7P450
scripts/ntptrace/ntptrace.1ntptraceman@1.41 +6 -6
NTP_4_2_7P450
scripts/ntptrace/ntptrace.1ntptracemdoc@1.41 +1 -1
NTP_4_2_7P450
scripts/ntptrace/ntptrace.html@1.51 +1 -1
NTP_4_2_7P450
scripts/ntptrace/ntptrace.man.in@1.41 +6 -6
NTP_4_2_7P450
scripts/ntptrace/ntptrace.mdoc.in@1.42 +1 -1
NTP_4_2_7P450
scripts/plot_summary.1plot_summaryman@1.52 +6 -6
NTP_4_2_7P450
scripts/plot_summary.1plot_summarymdoc@1.52 +2 -2
NTP_4_2_7P450
scripts/plot_summary.html@1.52 +1 -1
NTP_4_2_7P450
scripts/plot_summary.man.in@1.52 +6 -6
NTP_4_2_7P450
scripts/plot_summary.mdoc.in@1.52 +2 -2
NTP_4_2_7P450
scripts/summary.1summaryman@1.52 +6 -6
NTP_4_2_7P450
scripts/summary.1summarymdoc@1.52 +1 -1
NTP_4_2_7P450
scripts/summary.html@1.52 +1 -1
NTP_4_2_7P450
scripts/summary.man.in@1.52 +6 -6
NTP_4_2_7P450
scripts/summary.mdoc.in@1.52 +1 -1
NTP_4_2_7P450
sntp/invoke-sntp.texi@1.440 +2 -2
NTP_4_2_7P450
sntp/sntp-opts.c@1.455 +7 -7
NTP_4_2_7P450
sntp/sntp-opts.h@1.455 +3 -3
NTP_4_2_7P450
sntp/sntp.1sntpman@1.275 +6 -6
NTP_4_2_7P450
sntp/sntp.1sntpmdoc@1.275 +1 -1
NTP_4_2_7P450
sntp/sntp.html@1.455 +2 -2
NTP_4_2_7P450
sntp/sntp.man.in@1.275 +6 -6
NTP_4_2_7P450
sntp/sntp.mdoc.in@1.275 +1 -1
NTP_4_2_7P450
util/invoke-ntp-keygen.texi@1.444 +2 -2
NTP_4_2_7P450
util/ntp-keygen-opts.c@1.458 +7 -7
NTP_4_2_7P450
util/ntp-keygen-opts.h@1.458 +3 -3
NTP_4_2_7P450
util/ntp-keygen.1ntp-keygenman@1.272 +6 -6
NTP_4_2_7P450
util/ntp-keygen.1ntp-keygenmdoc@1.272 +1 -1
NTP_4_2_7P450
util/ntp-keygen.html@1.120 +2 -2
NTP_4_2_7P450
util/ntp-keygen.man.in@1.272 +6 -6
NTP_4_2_7P450
util/ntp-keygen.mdoc.in@1.272 +1 -1
NTP_4_2_7P450
ChangeSet@1.3149, 2014-07-16 17:20:01-04:00, stenn@deacon.udel.edu
Distribute the scripts needed for the fix for Bug 2547
ChangeLog@1.1495 +1 -0
Distribute the scripts needed for the fix for Bug 2547
scripts/build/Makefile.am@1.3 +5 -1
Distribute the scripts needed for the fix for Bug 2547
scripts/build/Makefile.am@1.2 +0 -0
Change mode to -rw-rw-r--
ChangeSet@1.3148, 2014-07-16 09:33:29+00:00, stenn@deacon.udel.edu
NTP_4_2_7P449
TAG: NTP_4_2_7P449
ChangeLog@1.1494 +1 -0
NTP_4_2_7P449
ntpd/invoke-ntp.conf.texi@1.128 +1 -1
NTP_4_2_7P449
ntpd/invoke-ntp.keys.texi@1.126 +1 -1
NTP_4_2_7P449
ntpd/invoke-ntpd.texi@1.442 +2 -2
NTP_4_2_7P449
ntpd/ntp.conf.5man@1.162 +6 -6
NTP_4_2_7P449
ntpd/ntp.conf.5mdoc@1.162 +2 -2
NTP_4_2_7P449
ntpd/ntp.conf.html@1.123 +1 -1
NTP_4_2_7P449
ntpd/ntp.conf.man.in@1.162 +6 -6
NTP_4_2_7P449
ntpd/ntp.conf.mdoc.in@1.162 +2 -2
NTP_4_2_7P449
ntpd/ntp.keys.5man@1.160 +2 -2
NTP_4_2_7P449
ntpd/ntp.keys.5mdoc@1.160 +2 -2
NTP_4_2_7P449
ntpd/ntp.keys.html@1.124 +1 -1
NTP_4_2_7P449
ntpd/ntp.keys.man.in@1.160 +2 -2
NTP_4_2_7P449
ntpd/ntp.keys.mdoc.in@1.160 +2 -2
NTP_4_2_7P449
ntpd/ntpd-opts.c@1.460 +7 -7
NTP_4_2_7P449
ntpd/ntpd-opts.h@1.460 +3 -3
NTP_4_2_7P449
ntpd/ntpd.1ntpdman@1.271 +6 -6
NTP_4_2_7P449
ntpd/ntpd.1ntpdmdoc@1.271 +2 -2
NTP_4_2_7P449
ntpd/ntpd.html@1.118 +2 -2
NTP_4_2_7P449
ntpd/ntpd.man.in@1.271 +6 -6
NTP_4_2_7P449
ntpd/ntpd.mdoc.in@1.271 +2 -2
NTP_4_2_7P449
ntpdc/invoke-ntpdc.texi@1.440 +2 -2
NTP_4_2_7P449
ntpdc/ntpdc-opts.c@1.455 +7 -7
NTP_4_2_7P449
ntpdc/ntpdc-opts.h@1.455 +3 -3
NTP_4_2_7P449
ntpdc/ntpdc.1ntpdcman@1.271 +6 -6
NTP_4_2_7P449
ntpdc/ntpdc.1ntpdcmdoc@1.271 +2 -2
NTP_4_2_7P449
ntpdc/ntpdc.html@1.284 +2 -2
NTP_4_2_7P449
ntpdc/ntpdc.man.in@1.271 +6 -6
NTP_4_2_7P449
ntpdc/ntpdc.mdoc.in@1.271 +2 -2
NTP_4_2_7P449
ntpq/invoke-ntpq.texi@1.444 +2 -2
NTP_4_2_7P449
ntpq/ntpq-opts.c@1.458 +7 -7
NTP_4_2_7P449
ntpq/ntpq-opts.h@1.458 +3 -3
NTP_4_2_7P449
ntpq/ntpq.1ntpqman@1.272 +6 -6
NTP_4_2_7P449
ntpq/ntpq.1ntpqmdoc@1.272 +2 -2
NTP_4_2_7P449
ntpq/ntpq.html@1.115 +2 -2
NTP_4_2_7P449
ntpq/ntpq.man.in@1.272 +6 -6
NTP_4_2_7P449
ntpq/ntpq.mdoc.in@1.272 +2 -2
NTP_4_2_7P449
ntpsnmpd/invoke-ntpsnmpd.texi@1.442 +2 -2
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd-opts.c@1.457 +7 -7
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd-opts.h@1.457 +3 -3
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.271 +6 -6
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.271 +2 -2
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd.html@1.113 +1 -1
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd.man.in@1.271 +6 -6
NTP_4_2_7P449
ntpsnmpd/ntpsnmpd.mdoc.in@1.271 +2 -2
NTP_4_2_7P449
packageinfo.sh@1.453 +1 -1
NTP_4_2_7P449
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.33 +6 -6
NTP_4_2_7P449
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.33 +2 -2
NTP_4_2_7P449
scripts/calc_tickadj/calc_tickadj.html@1.32 +1 -1
NTP_4_2_7P449
scripts/calc_tickadj/calc_tickadj.man.in@1.32 +6 -6
NTP_4_2_7P449
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.33 +2 -2
NTP_4_2_7P449
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.34 +1 -1
NTP_4_2_7P449
scripts/invoke-plot_summary.texi@1.51 +1 -1
NTP_4_2_7P449
scripts/invoke-summary.texi@1.51 +1 -1
NTP_4_2_7P449
scripts/ntp-wait/invoke-ntp-wait.texi@1.260 +1 -1
NTP_4_2_7P449
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.261 +6 -6
NTP_4_2_7P449
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.261 +2 -2
NTP_4_2_7P449
scripts/ntp-wait/ntp-wait.html@1.277 +1 -1
NTP_4_2_7P449
scripts/ntp-wait/ntp-wait.man.in@1.261 +6 -6
NTP_4_2_7P449
scripts/ntp-wait/ntp-wait.mdoc.in@1.261 +2 -2
NTP_4_2_7P449
scripts/ntpsweep/invoke-ntpsweep.texi@1.49 +1 -1
NTP_4_2_7P449
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.40 +6 -6
NTP_4_2_7P449
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.40 +2 -2
NTP_4_2_7P449
scripts/ntpsweep/ntpsweep.html@1.50 +1 -1
NTP_4_2_7P449
scripts/ntpsweep/ntpsweep.man.in@1.40 +6 -6
NTP_4_2_7P449
scripts/ntpsweep/ntpsweep.mdoc.in@1.41 +2 -2
NTP_4_2_7P449
scripts/ntptrace/invoke-ntptrace.texi@1.49 +1 -1
NTP_4_2_7P449
scripts/ntptrace/ntptrace.1ntptraceman@1.40 +6 -6
NTP_4_2_7P449
scripts/ntptrace/ntptrace.1ntptracemdoc@1.40 +2 -2
NTP_4_2_7P449
scripts/ntptrace/ntptrace.html@1.50 +1 -1
NTP_4_2_7P449
scripts/ntptrace/ntptrace.man.in@1.40 +6 -6
NTP_4_2_7P449
scripts/ntptrace/ntptrace.mdoc.in@1.41 +2 -2
NTP_4_2_7P449
scripts/plot_summary.1plot_summaryman@1.51 +6 -6
NTP_4_2_7P449
scripts/plot_summary.1plot_summarymdoc@1.51 +3 -3
NTP_4_2_7P449
scripts/plot_summary.html@1.51 +1 -1
NTP_4_2_7P449
scripts/plot_summary.man.in@1.51 +6 -6
NTP_4_2_7P449
scripts/plot_summary.mdoc.in@1.51 +3 -3
NTP_4_2_7P449
scripts/summary.1summaryman@1.51 +6 -6
NTP_4_2_7P449
scripts/summary.1summarymdoc@1.51 +2 -2
NTP_4_2_7P449
scripts/summary.html@1.51 +1 -1
NTP_4_2_7P449
scripts/summary.man.in@1.51 +6 -6
NTP_4_2_7P449
scripts/summary.mdoc.in@1.51 +2 -2
NTP_4_2_7P449
sntp/invoke-sntp.texi@1.439 +2 -2
NTP_4_2_7P449
sntp/sntp-opts.c@1.454 +7 -7
NTP_4_2_7P449
sntp/sntp-opts.h@1.454 +3 -3
NTP_4_2_7P449
sntp/sntp.1sntpman@1.274 +6 -6
NTP_4_2_7P449
sntp/sntp.1sntpmdoc@1.274 +2 -2
NTP_4_2_7P449
sntp/sntp.html@1.454 +2 -2
NTP_4_2_7P449
sntp/sntp.man.in@1.274 +6 -6
NTP_4_2_7P449
sntp/sntp.mdoc.in@1.274 +2 -2
NTP_4_2_7P449
util/invoke-ntp-keygen.texi@1.443 +2 -2
NTP_4_2_7P449
util/ntp-keygen-opts.c@1.457 +7 -7
NTP_4_2_7P449
util/ntp-keygen-opts.h@1.457 +3 -3
NTP_4_2_7P449
util/ntp-keygen.1ntp-keygenman@1.271 +6 -6
NTP_4_2_7P449
util/ntp-keygen.1ntp-keygenmdoc@1.271 +2 -2
NTP_4_2_7P449
util/ntp-keygen.html@1.119 +2 -2
NTP_4_2_7P449
util/ntp-keygen.man.in@1.271 +6 -6
NTP_4_2_7P449
util/ntp-keygen.mdoc.in@1.271 +2 -2
NTP_4_2_7P449
ChangeSet@1.3147, 2014-07-16 01:37:41-07:00, harlan@hms-mbp11.pfcs.com
Fix typos in decode.html and debug.html
ChangeLog@1.1493 +1 -0
Fix typos in decode.html and debug.html
html/debug.html@1.32 +3 -3
Fix typos in decode.html and debug.html
html/decode.html@1.24 +1 -1
Fix typos in decode.html and debug.html
ChangeSet@1.3146, 2014-07-16 01:33:06-07:00, harlan@hms-mbp11.pfcs.com
[Bug 2547] Automate update of "Last Update" datestamps in .html files
ChangeLog@1.1492 +1 -0
[Bug 2547] Automate update of "Last Update" datestamps in .html files
Makefile.am@1.119 +24 -19
[Bug 2547] Automate update of "Last Update" datestamps in .html files
scripts/build/checkHtmlFileDates@1.1 +16 -0
BitKeeper file /Users/harlan/src/ntp-dev/scripts/build/checkHtmlFileDates
scripts/build/checkHtmlFileDates@1.0 +0 -0
scripts/build/updateBEDate@1.1 +53 -0
BitKeeper file /Users/harlan/src/ntp-dev/scripts/build/updateBEDate
scripts/build/updateBEDate@1.0 +0 -0
ChangeSet@1.3145, 2014-07-16 02:45:17-04:00, stenn@deacon.udel.edu
Quiet warnings from ntp_calendar.h: avoid using argument names
ChangeLog@1.1491 +1 -0
Quiet warnings from ntp_calendar.h: avoid using argument names
include/ntp_calendar.h@1.16 +41 -38
Quiet warnings from ntp_calendar.h: avoid using argument names
ChangeSet@1.3144, 2014-07-16 04:17:40+00:00, stenn@psp-fb1.ntp.org
[Bug 2623] Missing {} in refclock_oncore.c
ChangeLog@1.1490 +1 -0
[Bug 2623] Missing {} in refclock_oncore.c
ntpd/refclock_oncore.c@1.100 +2 -1
[Bug 2623] Missing {} in refclock_oncore.c
ChangeSet@1.3143, 2014-07-15 09:34:14+00:00, stenn@deacon.udel.edu
NTP_4_2_7P448
TAG: NTP_4_2_7P448
ChangeLog@1.1489 +1 -0
NTP_4_2_7P448
ntpd/invoke-ntp.conf.texi@1.127 +1 -1
NTP_4_2_7P448
ntpd/invoke-ntp.keys.texi@1.125 +1 -1
NTP_4_2_7P448
ntpd/invoke-ntpd.texi@1.441 +2 -2
NTP_4_2_7P448
ntpd/ntp.conf.5man@1.161 +6 -6
NTP_4_2_7P448
ntpd/ntp.conf.5mdoc@1.161 +2 -2
NTP_4_2_7P448
ntpd/ntp.conf.html@1.122 +1 -1
NTP_4_2_7P448
ntpd/ntp.conf.man.in@1.161 +6 -6
NTP_4_2_7P448
ntpd/ntp.conf.mdoc.in@1.161 +2 -2
NTP_4_2_7P448
ntpd/ntp.keys.5man@1.159 +2 -2
NTP_4_2_7P448
ntpd/ntp.keys.5mdoc@1.159 +2 -2
NTP_4_2_7P448
ntpd/ntp.keys.html@1.123 +1 -1
NTP_4_2_7P448
ntpd/ntp.keys.man.in@1.159 +2 -2
NTP_4_2_7P448
ntpd/ntp.keys.mdoc.in@1.159 +2 -2
NTP_4_2_7P448
ntpd/ntpd-opts.c@1.459 +7 -7
NTP_4_2_7P448
ntpd/ntpd-opts.h@1.459 +3 -3
NTP_4_2_7P448
ntpd/ntpd.1ntpdman@1.270 +6 -6
NTP_4_2_7P448
ntpd/ntpd.1ntpdmdoc@1.270 +2 -2
NTP_4_2_7P448
ntpd/ntpd.html@1.117 +2 -2
NTP_4_2_7P448
ntpd/ntpd.man.in@1.270 +6 -6
NTP_4_2_7P448
ntpd/ntpd.mdoc.in@1.270 +2 -2
NTP_4_2_7P448
ntpdc/invoke-ntpdc.texi@1.439 +2 -2
NTP_4_2_7P448
ntpdc/ntpdc-opts.c@1.454 +7 -7
NTP_4_2_7P448
ntpdc/ntpdc-opts.h@1.454 +3 -3
NTP_4_2_7P448
ntpdc/ntpdc.1ntpdcman@1.270 +6 -6
NTP_4_2_7P448
ntpdc/ntpdc.1ntpdcmdoc@1.270 +2 -2
NTP_4_2_7P448
ntpdc/ntpdc.html@1.283 +2 -2
NTP_4_2_7P448
ntpdc/ntpdc.man.in@1.270 +6 -6
NTP_4_2_7P448
ntpdc/ntpdc.mdoc.in@1.270 +2 -2
NTP_4_2_7P448
ntpq/invoke-ntpq.texi@1.443 +2 -2
NTP_4_2_7P448
ntpq/ntpq-opts.c@1.457 +7 -7
NTP_4_2_7P448
ntpq/ntpq-opts.h@1.457 +3 -3
NTP_4_2_7P448
ntpq/ntpq.1ntpqman@1.271 +6 -6
NTP_4_2_7P448
ntpq/ntpq.1ntpqmdoc@1.271 +2 -2
NTP_4_2_7P448
ntpq/ntpq.html@1.114 +2 -2
NTP_4_2_7P448
ntpq/ntpq.man.in@1.271 +6 -6
NTP_4_2_7P448
ntpq/ntpq.mdoc.in@1.271 +2 -2
NTP_4_2_7P448
ntpsnmpd/invoke-ntpsnmpd.texi@1.441 +2 -2
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd-opts.c@1.456 +7 -7
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd-opts.h@1.456 +3 -3
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.270 +6 -6
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.270 +2 -2
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd.html@1.112 +1 -1
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd.man.in@1.270 +6 -6
NTP_4_2_7P448
ntpsnmpd/ntpsnmpd.mdoc.in@1.270 +2 -2
NTP_4_2_7P448
packageinfo.sh@1.452 +1 -1
NTP_4_2_7P448
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.32 +6 -6
NTP_4_2_7P448
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.32 +2 -2
NTP_4_2_7P448
scripts/calc_tickadj/calc_tickadj.html@1.31 +1 -1
NTP_4_2_7P448
scripts/calc_tickadj/calc_tickadj.man.in@1.31 +6 -6
NTP_4_2_7P448
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.32 +2 -2
NTP_4_2_7P448
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.33 +1 -1
NTP_4_2_7P448
scripts/invoke-plot_summary.texi@1.50 +1 -1
NTP_4_2_7P448
scripts/invoke-summary.texi@1.50 +1 -1
NTP_4_2_7P448
scripts/ntp-wait/invoke-ntp-wait.texi@1.259 +1 -1
NTP_4_2_7P448
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.260 +6 -6
NTP_4_2_7P448
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.260 +2 -2
NTP_4_2_7P448
scripts/ntp-wait/ntp-wait.html@1.276 +1 -1
NTP_4_2_7P448
scripts/ntp-wait/ntp-wait.man.in@1.260 +6 -6
NTP_4_2_7P448
scripts/ntp-wait/ntp-wait.mdoc.in@1.260 +2 -2
NTP_4_2_7P448
scripts/ntpsweep/invoke-ntpsweep.texi@1.48 +1 -1
NTP_4_2_7P448
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.39 +6 -6
NTP_4_2_7P448
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.39 +2 -2
NTP_4_2_7P448
scripts/ntpsweep/ntpsweep.html@1.49 +1 -1
NTP_4_2_7P448
scripts/ntpsweep/ntpsweep.man.in@1.39 +6 -6
NTP_4_2_7P448
scripts/ntpsweep/ntpsweep.mdoc.in@1.40 +2 -2
NTP_4_2_7P448
scripts/ntptrace/invoke-ntptrace.texi@1.48 +1 -1
NTP_4_2_7P448
scripts/ntptrace/ntptrace.1ntptraceman@1.39 +6 -6
NTP_4_2_7P448
scripts/ntptrace/ntptrace.1ntptracemdoc@1.39 +2 -2
NTP_4_2_7P448
scripts/ntptrace/ntptrace.html@1.49 +1 -1
NTP_4_2_7P448
scripts/ntptrace/ntptrace.man.in@1.39 +6 -6
NTP_4_2_7P448
scripts/ntptrace/ntptrace.mdoc.in@1.40 +2 -2
NTP_4_2_7P448
scripts/plot_summary.1plot_summaryman@1.50 +6 -6
NTP_4_2_7P448
scripts/plot_summary.1plot_summarymdoc@1.50 +3 -3
NTP_4_2_7P448
scripts/plot_summary.html@1.50 +1 -1
NTP_4_2_7P448
scripts/plot_summary.man.in@1.50 +6 -6
NTP_4_2_7P448
scripts/plot_summary.mdoc.in@1.50 +3 -3
NTP_4_2_7P448
scripts/summary.1summaryman@1.50 +6 -6
NTP_4_2_7P448
scripts/summary.1summarymdoc@1.50 +2 -2
NTP_4_2_7P448
scripts/summary.html@1.50 +1 -1
NTP_4_2_7P448
scripts/summary.man.in@1.50 +6 -6
NTP_4_2_7P448
scripts/summary.mdoc.in@1.50 +2 -2
NTP_4_2_7P448
sntp/invoke-sntp.texi@1.438 +2 -2
NTP_4_2_7P448
sntp/sntp-opts.c@1.453 +7 -7
NTP_4_2_7P448
sntp/sntp-opts.h@1.453 +3 -3
NTP_4_2_7P448
sntp/sntp.1sntpman@1.273 +6 -6
NTP_4_2_7P448
sntp/sntp.1sntpmdoc@1.273 +2 -2
NTP_4_2_7P448
sntp/sntp.html@1.453 +2 -2
NTP_4_2_7P448
sntp/sntp.man.in@1.273 +6 -6
NTP_4_2_7P448
sntp/sntp.mdoc.in@1.273 +2 -2
NTP_4_2_7P448
util/invoke-ntp-keygen.texi@1.442 +2 -2
NTP_4_2_7P448
util/ntp-keygen-opts.c@1.456 +7 -7
NTP_4_2_7P448
util/ntp-keygen-opts.h@1.456 +3 -3
NTP_4_2_7P448
util/ntp-keygen.1ntp-keygenman@1.270 +6 -6
NTP_4_2_7P448
util/ntp-keygen.1ntp-keygenmdoc@1.270 +2 -2
NTP_4_2_7P448
util/ntp-keygen.html@1.118 +2 -2
NTP_4_2_7P448
util/ntp-keygen.man.in@1.270 +6 -6
NTP_4_2_7P448
util/ntp-keygen.mdoc.in@1.270 +2 -2
NTP_4_2_7P448
ChangeSet@1.3142, 2014-07-15 08:41:34+00:00, stenn@psp-deb1.ntp.org
Quiet warnings from ntp_calendar.h: avoid using argument names
ChangeLog@1.1488 +1 -0
Quiet warnings from ntp_calendar.h: avoid using argument names
include/ntp_calendar.h@1.15 +8 -8
Quiet warnings from ntp_calendar.h: avoid using argument names
ChangeSet@1.3141, 2014-07-12 12:26:38+02:00, jnperlin@hydra.(none)
[Bug 2621] Avoid use of indeterminate address after 'free()'
ChangeLog@1.1487 +2 -0
[Bug 2621] Avoid use of indeterminate address after 'free()'
libntp/recvbuff.c@1.39 +11 -9
[Bug 2621] Avoid use of indeterminate address after 'free()'
ntpd/ntp_config.c@1.318 +62 -61
[Bug 2621] Avoid use of indeterminate address after 'free()', unification of cleanup pattern
ntpd/ntp_io.c@1.392 +8 -8
[Bug 2621] Avoid use of indeterminate address after 'free()'
ChangeSet@1.3140, 2014-07-05 11:09:17+00:00, stenn@deacon.udel.edu
NTP_4_2_7P447
TAG: NTP_4_2_7P447
ChangeLog@1.1486 +1 -0
NTP_4_2_7P447
ntpd/invoke-ntp.conf.texi@1.126 +1 -1
NTP_4_2_7P447
ntpd/invoke-ntp.keys.texi@1.124 +1 -1
NTP_4_2_7P447
ntpd/invoke-ntpd.texi@1.440 +2 -2
NTP_4_2_7P447
ntpd/ntp.conf.5man@1.160 +6 -6
NTP_4_2_7P447
ntpd/ntp.conf.5mdoc@1.160 +2 -2
NTP_4_2_7P447
ntpd/ntp.conf.html@1.121 +1 -1
NTP_4_2_7P447
ntpd/ntp.conf.man.in@1.160 +6 -6
NTP_4_2_7P447
ntpd/ntp.conf.mdoc.in@1.160 +2 -2
NTP_4_2_7P447
ntpd/ntp.keys.5man@1.158 +2 -2
NTP_4_2_7P447
ntpd/ntp.keys.5mdoc@1.158 +2 -2
NTP_4_2_7P447
ntpd/ntp.keys.html@1.122 +1 -1
NTP_4_2_7P447
ntpd/ntp.keys.man.in@1.158 +2 -2
NTP_4_2_7P447
ntpd/ntp.keys.mdoc.in@1.158 +2 -2
NTP_4_2_7P447
ntpd/ntpd-opts.c@1.458 +7 -7
NTP_4_2_7P447
ntpd/ntpd-opts.h@1.458 +3 -3
NTP_4_2_7P447
ntpd/ntpd.1ntpdman@1.269 +6 -6
NTP_4_2_7P447
ntpd/ntpd.1ntpdmdoc@1.269 +2 -2
NTP_4_2_7P447
ntpd/ntpd.html@1.116 +2 -2
NTP_4_2_7P447
ntpd/ntpd.man.in@1.269 +6 -6
NTP_4_2_7P447
ntpd/ntpd.mdoc.in@1.269 +2 -2
NTP_4_2_7P447
ntpdc/invoke-ntpdc.texi@1.438 +2 -2
NTP_4_2_7P447
ntpdc/ntpdc-opts.c@1.453 +7 -7
NTP_4_2_7P447
ntpdc/ntpdc-opts.h@1.453 +3 -3
NTP_4_2_7P447
ntpdc/ntpdc.1ntpdcman@1.269 +6 -6
NTP_4_2_7P447
ntpdc/ntpdc.1ntpdcmdoc@1.269 +2 -2
NTP_4_2_7P447
ntpdc/ntpdc.html@1.282 +2 -2
NTP_4_2_7P447
ntpdc/ntpdc.man.in@1.269 +6 -6
NTP_4_2_7P447
ntpdc/ntpdc.mdoc.in@1.269 +2 -2
NTP_4_2_7P447
ntpq/invoke-ntpq.texi@1.442 +2 -2
NTP_4_2_7P447
ntpq/ntpq-opts.c@1.456 +7 -7
NTP_4_2_7P447
ntpq/ntpq-opts.h@1.456 +3 -3
NTP_4_2_7P447
ntpq/ntpq.1ntpqman@1.270 +6 -6
NTP_4_2_7P447
ntpq/ntpq.1ntpqmdoc@1.270 +2 -2
NTP_4_2_7P447
ntpq/ntpq.html@1.113 +2 -2
NTP_4_2_7P447
ntpq/ntpq.man.in@1.270 +6 -6
NTP_4_2_7P447
ntpq/ntpq.mdoc.in@1.270 +2 -2
NTP_4_2_7P447
ntpsnmpd/invoke-ntpsnmpd.texi@1.440 +2 -2
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd-opts.c@1.455 +7 -7
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd-opts.h@1.455 +3 -3
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.269 +6 -6
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.269 +2 -2
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd.html@1.111 +1 -1
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd.man.in@1.269 +6 -6
NTP_4_2_7P447
ntpsnmpd/ntpsnmpd.mdoc.in@1.269 +2 -2
NTP_4_2_7P447
packageinfo.sh@1.451 +1 -1
NTP_4_2_7P447
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.31 +6 -6
NTP_4_2_7P447
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.31 +2 -2
NTP_4_2_7P447
scripts/calc_tickadj/calc_tickadj.html@1.30 +1 -1
NTP_4_2_7P447
scripts/calc_tickadj/calc_tickadj.man.in@1.30 +6 -6
NTP_4_2_7P447
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.31 +2 -2
NTP_4_2_7P447
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.32 +1 -1
NTP_4_2_7P447
scripts/invoke-plot_summary.texi@1.49 +1 -1
NTP_4_2_7P447
scripts/invoke-summary.texi@1.49 +1 -1
NTP_4_2_7P447
scripts/ntp-wait/invoke-ntp-wait.texi@1.258 +1 -1
NTP_4_2_7P447
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.259 +6 -6
NTP_4_2_7P447
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.259 +2 -2
NTP_4_2_7P447
scripts/ntp-wait/ntp-wait.html@1.275 +1 -1
NTP_4_2_7P447
scripts/ntp-wait/ntp-wait.man.in@1.259 +6 -6
NTP_4_2_7P447
scripts/ntp-wait/ntp-wait.mdoc.in@1.259 +2 -2
NTP_4_2_7P447
scripts/ntpsweep/invoke-ntpsweep.texi@1.47 +1 -1
NTP_4_2_7P447
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.38 +6 -6
NTP_4_2_7P447
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.38 +2 -2
NTP_4_2_7P447
scripts/ntpsweep/ntpsweep.html@1.48 +1 -1
NTP_4_2_7P447
scripts/ntpsweep/ntpsweep.man.in@1.38 +6 -6
NTP_4_2_7P447
scripts/ntpsweep/ntpsweep.mdoc.in@1.39 +2 -2
NTP_4_2_7P447
scripts/ntptrace/invoke-ntptrace.texi@1.47 +1 -1
NTP_4_2_7P447
scripts/ntptrace/ntptrace.1ntptraceman@1.38 +6 -6
NTP_4_2_7P447
scripts/ntptrace/ntptrace.1ntptracemdoc@1.38 +2 -2
NTP_4_2_7P447
scripts/ntptrace/ntptrace.html@1.48 +1 -1
NTP_4_2_7P447
scripts/ntptrace/ntptrace.man.in@1.38 +6 -6
NTP_4_2_7P447
scripts/ntptrace/ntptrace.mdoc.in@1.39 +2 -2
NTP_4_2_7P447
scripts/plot_summary.1plot_summaryman@1.49 +6 -6
NTP_4_2_7P447
scripts/plot_summary.1plot_summarymdoc@1.49 +3 -3
NTP_4_2_7P447
scripts/plot_summary.html@1.49 +1 -1
NTP_4_2_7P447
scripts/plot_summary.man.in@1.49 +6 -6
NTP_4_2_7P447
scripts/plot_summary.mdoc.in@1.49 +3 -3
NTP_4_2_7P447
scripts/summary.1summaryman@1.49 +6 -6
NTP_4_2_7P447
scripts/summary.1summarymdoc@1.49 +2 -2
NTP_4_2_7P447
scripts/summary.html@1.49 +1 -1
NTP_4_2_7P447
scripts/summary.man.in@1.49 +6 -6
NTP_4_2_7P447
scripts/summary.mdoc.in@1.49 +2 -2
NTP_4_2_7P447
sntp/invoke-sntp.texi@1.437 +2 -2
NTP_4_2_7P447
sntp/sntp-opts.c@1.452 +7 -7
NTP_4_2_7P447
sntp/sntp-opts.h@1.452 +3 -3
NTP_4_2_7P447
sntp/sntp.1sntpman@1.272 +6 -6
NTP_4_2_7P447
sntp/sntp.1sntpmdoc@1.272 +2 -2
NTP_4_2_7P447
sntp/sntp.html@1.452 +2 -2
NTP_4_2_7P447
sntp/sntp.man.in@1.272 +6 -6
NTP_4_2_7P447
sntp/sntp.mdoc.in@1.272 +2 -2
NTP_4_2_7P447
util/invoke-ntp-keygen.texi@1.441 +2 -2
NTP_4_2_7P447
util/ntp-keygen-opts.c@1.455 +7 -7
NTP_4_2_7P447
util/ntp-keygen-opts.h@1.455 +3 -3
NTP_4_2_7P447
util/ntp-keygen.1ntp-keygenman@1.269 +6 -6
NTP_4_2_7P447
util/ntp-keygen.1ntp-keygenmdoc@1.269 +2 -2
NTP_4_2_7P447
util/ntp-keygen.html@1.117 +2 -2
NTP_4_2_7P447
util/ntp-keygen.man.in@1.269 +6 -6
NTP_4_2_7P447
util/ntp-keygen.mdoc.in@1.269 +2 -2
NTP_4_2_7P447
ChangeSet@1.3139, 2014-07-05 08:22:01+00:00, stenn@psp-deb1.ntp.org
[Bug 2624] Fix signed compare on 'l_fp'
ChangeLog@1.1485 +1 -1
[Bug 2624] Fix signed compare on 'l_fp'
ChangeSet@1.3131.3.2, 2014-07-05 09:34:14+02:00, jnperlin@hydra.(none)
[Bug 2618) (side work) added unit test for 'l_fp' operations
ChangeLog@1.1478.3.1 +1 -0
[Bug 2618) (side work) added unit test for 'l_fp' operations
include/ntp_fp.h@1.31 +3 -3
fixed a sign/unsigned compare problem inside signed compare macros
tests/libntp/lfpfunc.cpp@1.2 +224 -28
added relational operation tests
cleanup and more independent reference implementations
ChangeSet@1.3137, 2014-07-04 16:57:21-04:00, stenn@deacon.udel.edu
Remove extraneous NULs
readme.y2kfixes@1.6 +1 -75
Remove extraneous NULs
ChangeSet@1.3136, 2014-07-04 03:12:30+00:00, stenn@psp-deb1.ntp.org
[Bug 2620] Use version.pm for checking version numbers in NTP::Util
ChangeLog@1.1483 +1 -0
[Bug 2620] Use version.pm for checking version numbers in NTP::Util
scripts/lib/NTP/Util.pm@1.2 +2 -1
[Bug 2620] Use version.pm for checking version numbers in NTP::Util
ChangeSet@1.3131.3.1, 2014-07-01 00:59:29+02:00, jnperlin@hydra.(none)
added first tests for 'l_fp'
tests/libntp/Makefile.am@1.42 +1 -0
added first tests for 'l_fp'
tests/libntp/lfpfunc.cpp@1.1 +351 -0
added first tests for 'l_fp'
tests/libntp/lfpfunc.cpp@1.0 +0 -0
ChangeSet@1.3135, 2014-06-28 09:33:58+00:00, stenn@deacon.udel.edu
NTP_4_2_7P446
TAG: NTP_4_2_7P446
ChangeLog@1.1482 +1 -0
NTP_4_2_7P446
ntpd/invoke-ntp.conf.texi@1.125 +1 -1
NTP_4_2_7P446
ntpd/invoke-ntp.keys.texi@1.123 +1 -1
NTP_4_2_7P446
ntpd/invoke-ntpd.texi@1.439 +2 -2
NTP_4_2_7P446
ntpd/ntp.conf.5man@1.159 +6 -6
NTP_4_2_7P446
ntpd/ntp.conf.5mdoc@1.159 +2 -2
NTP_4_2_7P446
ntpd/ntp.conf.html@1.120 +1 -1
NTP_4_2_7P446
ntpd/ntp.conf.man.in@1.159 +6 -6
NTP_4_2_7P446
ntpd/ntp.conf.mdoc.in@1.159 +2 -2
NTP_4_2_7P446
ntpd/ntp.keys.5man@1.157 +2 -2
NTP_4_2_7P446
ntpd/ntp.keys.5mdoc@1.157 +2 -2
NTP_4_2_7P446
ntpd/ntp.keys.html@1.121 +1 -1
NTP_4_2_7P446
ntpd/ntp.keys.man.in@1.157 +2 -2
NTP_4_2_7P446
ntpd/ntp.keys.mdoc.in@1.157 +2 -2
NTP_4_2_7P446
ntpd/ntpd-opts.c@1.457 +7 -7
NTP_4_2_7P446
ntpd/ntpd-opts.h@1.457 +3 -3
NTP_4_2_7P446
ntpd/ntpd.1ntpdman@1.268 +6 -6
NTP_4_2_7P446
ntpd/ntpd.1ntpdmdoc@1.268 +2 -2
NTP_4_2_7P446
ntpd/ntpd.html@1.115 +2 -2
NTP_4_2_7P446
ntpd/ntpd.man.in@1.268 +6 -6
NTP_4_2_7P446
ntpd/ntpd.mdoc.in@1.268 +2 -2
NTP_4_2_7P446
ntpdc/invoke-ntpdc.texi@1.437 +2 -2
NTP_4_2_7P446
ntpdc/ntpdc-opts.c@1.452 +7 -7
NTP_4_2_7P446
ntpdc/ntpdc-opts.h@1.452 +3 -3
NTP_4_2_7P446
ntpdc/ntpdc.1ntpdcman@1.268 +6 -6
NTP_4_2_7P446
ntpdc/ntpdc.1ntpdcmdoc@1.268 +2 -2
NTP_4_2_7P446
ntpdc/ntpdc.html@1.281 +2 -2
NTP_4_2_7P446
ntpdc/ntpdc.man.in@1.268 +6 -6
NTP_4_2_7P446
ntpdc/ntpdc.mdoc.in@1.268 +2 -2
NTP_4_2_7P446
ntpq/invoke-ntpq.texi@1.441 +2 -2
NTP_4_2_7P446
ntpq/ntpq-opts.c@1.455 +7 -7
NTP_4_2_7P446
ntpq/ntpq-opts.h@1.455 +3 -3
NTP_4_2_7P446
ntpq/ntpq.1ntpqman@1.269 +6 -6
NTP_4_2_7P446
ntpq/ntpq.1ntpqmdoc@1.269 +2 -2
NTP_4_2_7P446
ntpq/ntpq.html@1.112 +3 -3
NTP_4_2_7P446
ntpq/ntpq.man.in@1.269 +6 -6
NTP_4_2_7P446
ntpq/ntpq.mdoc.in@1.269 +2 -2
NTP_4_2_7P446
ntpsnmpd/invoke-ntpsnmpd.texi@1.439 +2 -2
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd-opts.c@1.454 +7 -7
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd-opts.h@1.454 +3 -3
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.268 +6 -6
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.268 +2 -2
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd.html@1.110 +1 -1
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd.man.in@1.268 +6 -6
NTP_4_2_7P446
ntpsnmpd/ntpsnmpd.mdoc.in@1.268 +2 -2
NTP_4_2_7P446
packageinfo.sh@1.450 +1 -1
NTP_4_2_7P446
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.30 +6 -6
NTP_4_2_7P446
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.30 +2 -2
NTP_4_2_7P446
scripts/calc_tickadj/calc_tickadj.html@1.29 +1 -1
NTP_4_2_7P446
scripts/calc_tickadj/calc_tickadj.man.in@1.29 +6 -6
NTP_4_2_7P446
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.30 +2 -2
NTP_4_2_7P446
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.31 +1 -1
NTP_4_2_7P446
scripts/invoke-plot_summary.texi@1.48 +1 -1
NTP_4_2_7P446
scripts/invoke-summary.texi@1.48 +1 -1
NTP_4_2_7P446
scripts/ntp-wait/invoke-ntp-wait.texi@1.257 +1 -1
NTP_4_2_7P446
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.258 +13 -13
NTP_4_2_7P446
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.258 +2 -2
NTP_4_2_7P446
scripts/ntp-wait/ntp-wait.html@1.274 +1 -1
NTP_4_2_7P446
scripts/ntp-wait/ntp-wait.man.in@1.258 +13 -13
NTP_4_2_7P446
scripts/ntp-wait/ntp-wait.mdoc.in@1.258 +2 -2
NTP_4_2_7P446
scripts/ntpsweep/invoke-ntpsweep.texi@1.46 +1 -1
NTP_4_2_7P446
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.37 +6 -6
NTP_4_2_7P446
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.37 +2 -2
NTP_4_2_7P446
scripts/ntpsweep/ntpsweep.html@1.47 +1 -1
NTP_4_2_7P446
scripts/ntpsweep/ntpsweep.man.in@1.37 +6 -6
NTP_4_2_7P446
scripts/ntpsweep/ntpsweep.mdoc.in@1.38 +2 -2
NTP_4_2_7P446
scripts/ntptrace/invoke-ntptrace.texi@1.46 +1 -1
NTP_4_2_7P446
scripts/ntptrace/ntptrace.1ntptraceman@1.37 +6 -6
NTP_4_2_7P446
scripts/ntptrace/ntptrace.1ntptracemdoc@1.37 +2 -2
NTP_4_2_7P446
scripts/ntptrace/ntptrace.html@1.47 +1 -1
NTP_4_2_7P446
scripts/ntptrace/ntptrace.man.in@1.37 +6 -6
NTP_4_2_7P446
scripts/ntptrace/ntptrace.mdoc.in@1.38 +2 -2
NTP_4_2_7P446
scripts/plot_summary.1plot_summaryman@1.48 +6 -6
NTP_4_2_7P446
scripts/plot_summary.1plot_summarymdoc@1.48 +2 -2
NTP_4_2_7P446
scripts/plot_summary.html@1.48 +1 -1
NTP_4_2_7P446
scripts/plot_summary.man.in@1.48 +6 -6
NTP_4_2_7P446
scripts/plot_summary.mdoc.in@1.48 +2 -2
NTP_4_2_7P446
scripts/summary.1summaryman@1.48 +6 -6
NTP_4_2_7P446
scripts/summary.1summarymdoc@1.48 +2 -2
NTP_4_2_7P446
scripts/summary.html@1.48 +1 -1
NTP_4_2_7P446
scripts/summary.man.in@1.48 +6 -6
NTP_4_2_7P446
scripts/summary.mdoc.in@1.48 +2 -2
NTP_4_2_7P446
sntp/invoke-sntp.texi@1.436 +2 -2
NTP_4_2_7P446
sntp/sntp-opts.c@1.451 +7 -7
NTP_4_2_7P446
sntp/sntp-opts.h@1.451 +3 -3
NTP_4_2_7P446
sntp/sntp.1sntpman@1.271 +6 -6
NTP_4_2_7P446
sntp/sntp.1sntpmdoc@1.271 +2 -2
NTP_4_2_7P446
sntp/sntp.html@1.451 +2 -2
NTP_4_2_7P446
sntp/sntp.man.in@1.271 +6 -6
NTP_4_2_7P446
sntp/sntp.mdoc.in@1.271 +2 -2
NTP_4_2_7P446
util/invoke-ntp-keygen.texi@1.440 +2 -2
NTP_4_2_7P446
util/ntp-keygen-opts.c@1.454 +7 -7
NTP_4_2_7P446
util/ntp-keygen-opts.h@1.454 +3 -3
NTP_4_2_7P446
util/ntp-keygen.1ntp-keygenman@1.268 +6 -6
NTP_4_2_7P446
util/ntp-keygen.1ntp-keygenmdoc@1.268 +2 -2
NTP_4_2_7P446
util/ntp-keygen.html@1.116 +2 -2
NTP_4_2_7P446
util/ntp-keygen.man.in@1.268 +6 -6
NTP_4_2_7P446
util/ntp-keygen.mdoc.in@1.268 +2 -2
NTP_4_2_7P446
ChangeSet@1.3134, 2014-06-28 05:00:22-04:00, stenn@deacon.udel.edu
Allow for version suffix in libevent in ntp_libevent.m4
ChangeLog@1.1481 +1 -0
Allow for version suffix in libevent in ntp_libevent.m4
sntp/m4/ntp_libevent.m4@1.11 +19 -1
Allow for version suffix in libevent in ntp_libevent.m4
ChangeSet@1.3131.1.4, 2014-06-28 07:48:23+00:00, stenn@psp-fb1.ntp.org
ntp_crypto.c, ChangeLog:
[Bug 2619] Save a signed int copy of the return value of i2d_DSA_SIG().
Provide missing msyslog() message in crypto_alice().
ChangeLog@1.1478.1.3 +2 -0
[Bug 2619] Save a signed int copy of the return value of i2d_DSA_SIG().
Provide missing msyslog() message in crypto_alice().
ntpd/ntp_crypto.c@1.167 +6 -3
[Bug 2619] Save a signed int copy of the return value of i2d_DSA_SIG().
Provide missing msyslog() message in crypto_alice().
ChangeSet@1.3131.2.1, 2014-06-28 07:25:32+00:00, stenn@psp-fb1.ntp.org
[Bug 2597] leap file processing -- loose ends
ChangeLog@1.1478.2.1 +1 -0
[Bug 2597] leap file processing -- loose ends
ntpd/ntp_util.c@1.114 +1 -1
[Bug 2597] leap file processing -- loose ends
ChangeSet@1.3131.1.2, 2014-06-28 06:27:42+00:00, phk@psp-fb1.ntp.org
ChangeLog:
fix a variable lifetime issue
ChangeLog@1.1478.1.1 +1 -0
fix a variable lifetime issue
ChangeSet@1.3131.1.1, 2014-06-28 06:19:58+00:00, phk@psp-fb1.ntp.org
ntp_crypto.c:
Don't assign stack variables to globals.
ntpd/ntp_crypto.c@1.166 +1 -1
Don't assign stack variables to globals.
ChangeSet@1.3132, 2014-06-20 10:59:35+02:00, jnperlin@hydra.(none)
[Bug 2614] use 'unsigned long' consistently in 'ntp_random.c' to avoid undefined signed int overflow
ChangeLog@1.1479 +2 -0
[Bug 2614] use 'unsigned long' consistently in 'ntp_random.c' to avoid undefined signed int overflow
libntp/ntp_random.c@1.11 +8 -8
[Bug 2614] use 'unsigned long' consistently in 'ntp_random.c' to avoid undefined signed int overflow
ChangeSet@1.3131, 2014-06-12 09:34:49+00:00, stenn@deacon.udel.edu
NTP_4_2_7P445
TAG: NTP_4_2_7P445
ChangeLog@1.1478 +1 -0
NTP_4_2_7P445
ntpd/invoke-ntp.conf.texi@1.124 +1 -1
NTP_4_2_7P445
ntpd/invoke-ntp.keys.texi@1.122 +1 -1
NTP_4_2_7P445
ntpd/invoke-ntpd.texi@1.438 +2 -2
NTP_4_2_7P445
ntpd/ntp.conf.5man@1.158 +6 -6
NTP_4_2_7P445
ntpd/ntp.conf.5mdoc@1.158 +2 -2
NTP_4_2_7P445
ntpd/ntp.conf.html@1.119 +1 -1
NTP_4_2_7P445
ntpd/ntp.conf.man.in@1.158 +6 -6
NTP_4_2_7P445
ntpd/ntp.conf.mdoc.in@1.158 +2 -2
NTP_4_2_7P445
ntpd/ntp.keys.5man@1.156 +2 -2
NTP_4_2_7P445
ntpd/ntp.keys.5mdoc@1.156 +2 -2
NTP_4_2_7P445
ntpd/ntp.keys.html@1.120 +1 -1
NTP_4_2_7P445
ntpd/ntp.keys.man.in@1.156 +2 -2
NTP_4_2_7P445
ntpd/ntp.keys.mdoc.in@1.156 +2 -2
NTP_4_2_7P445
ntpd/ntpd-opts.c@1.456 +7 -7
NTP_4_2_7P445
ntpd/ntpd-opts.h@1.456 +3 -3
NTP_4_2_7P445
ntpd/ntpd.1ntpdman@1.267 +6 -6
NTP_4_2_7P445
ntpd/ntpd.1ntpdmdoc@1.267 +2 -2
NTP_4_2_7P445
ntpd/ntpd.html@1.114 +2 -2
NTP_4_2_7P445
ntpd/ntpd.man.in@1.267 +6 -6
NTP_4_2_7P445
ntpd/ntpd.mdoc.in@1.267 +2 -2
NTP_4_2_7P445
ntpdc/invoke-ntpdc.texi@1.436 +2 -2
NTP_4_2_7P445
ntpdc/ntpdc-opts.c@1.451 +7 -7
NTP_4_2_7P445
ntpdc/ntpdc-opts.h@1.451 +3 -3
NTP_4_2_7P445
ntpdc/ntpdc.1ntpdcman@1.267 +6 -6
NTP_4_2_7P445
ntpdc/ntpdc.1ntpdcmdoc@1.267 +2 -2
NTP_4_2_7P445
ntpdc/ntpdc.html@1.280 +2 -2
NTP_4_2_7P445
ntpdc/ntpdc.man.in@1.267 +6 -6
NTP_4_2_7P445
ntpdc/ntpdc.mdoc.in@1.267 +2 -2
NTP_4_2_7P445
ntpq/invoke-ntpq.texi@1.440 +3 -3
NTP_4_2_7P445
ntpq/ntpq-opts.c@1.454 +7 -7
NTP_4_2_7P445
ntpq/ntpq-opts.h@1.454 +3 -3
NTP_4_2_7P445
ntpq/ntpq.1ntpqman@1.268 +33 -4
NTP_4_2_7P445
ntpq/ntpq.1ntpqmdoc@1.268 +21 -2
NTP_4_2_7P445
ntpq/ntpq.html@1.111 +359 -2
NTP_4_2_7P445
ntpq/ntpq.man.in@1.268 +33 -4
NTP_4_2_7P445
ntpq/ntpq.mdoc.in@1.268 +21 -2
NTP_4_2_7P445
ntpsnmpd/invoke-ntpsnmpd.texi@1.438 +2 -2
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd-opts.c@1.453 +7 -7
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd-opts.h@1.453 +3 -3
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.267 +6 -6
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.267 +2 -2
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd.html@1.109 +1 -1
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd.man.in@1.267 +6 -6
NTP_4_2_7P445
ntpsnmpd/ntpsnmpd.mdoc.in@1.267 +2 -2
NTP_4_2_7P445
packageinfo.sh@1.449 +1 -1
NTP_4_2_7P445
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.29 +6 -6
NTP_4_2_7P445
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.29 +2 -2
NTP_4_2_7P445
scripts/calc_tickadj/calc_tickadj.html@1.28 +1 -1
NTP_4_2_7P445
scripts/calc_tickadj/calc_tickadj.man.in@1.28 +6 -6
NTP_4_2_7P445
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.29 +2 -2
NTP_4_2_7P445
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.30 +1 -1
NTP_4_2_7P445
scripts/invoke-plot_summary.texi@1.47 +1 -1
NTP_4_2_7P445
scripts/invoke-summary.texi@1.47 +1 -1
NTP_4_2_7P445
scripts/ntp-wait/invoke-ntp-wait.texi@1.256 +1 -1
NTP_4_2_7P445
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.257 +13 -13
NTP_4_2_7P445
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.257 +2 -2
NTP_4_2_7P445
scripts/ntp-wait/ntp-wait.html@1.273 +1 -1
NTP_4_2_7P445
scripts/ntp-wait/ntp-wait.man.in@1.257 +13 -13
NTP_4_2_7P445
scripts/ntp-wait/ntp-wait.mdoc.in@1.257 +2 -2
NTP_4_2_7P445
scripts/ntpsweep/invoke-ntpsweep.texi@1.45 +1 -1
NTP_4_2_7P445
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.36 +6 -6
NTP_4_2_7P445
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.36 +2 -2
NTP_4_2_7P445
scripts/ntpsweep/ntpsweep.html@1.46 +1 -1
NTP_4_2_7P445
scripts/ntpsweep/ntpsweep.man.in@1.36 +6 -6
NTP_4_2_7P445
scripts/ntpsweep/ntpsweep.mdoc.in@1.37 +2 -2
NTP_4_2_7P445
scripts/ntptrace/invoke-ntptrace.texi@1.45 +1 -1
NTP_4_2_7P445
scripts/ntptrace/ntptrace.1ntptraceman@1.36 +6 -6
NTP_4_2_7P445
scripts/ntptrace/ntptrace.1ntptracemdoc@1.36 +2 -2
NTP_4_2_7P445
scripts/ntptrace/ntptrace.html@1.46 +1 -1
NTP_4_2_7P445
scripts/ntptrace/ntptrace.man.in@1.36 +6 -6
NTP_4_2_7P445
scripts/ntptrace/ntptrace.mdoc.in@1.37 +2 -2
NTP_4_2_7P445
scripts/plot_summary.1plot_summaryman@1.47 +6 -6
NTP_4_2_7P445
scripts/plot_summary.1plot_summarymdoc@1.47 +2 -2
NTP_4_2_7P445
scripts/plot_summary.html@1.47 +1 -1
NTP_4_2_7P445
scripts/plot_summary.man.in@1.47 +6 -6
NTP_4_2_7P445
scripts/plot_summary.mdoc.in@1.47 +2 -2
NTP_4_2_7P445
scripts/summary.1summaryman@1.47 +6 -6
NTP_4_2_7P445
scripts/summary.1summarymdoc@1.47 +2 -2
NTP_4_2_7P445
scripts/summary.html@1.47 +1 -1
NTP_4_2_7P445
scripts/summary.man.in@1.47 +6 -6
NTP_4_2_7P445
scripts/summary.mdoc.in@1.47 +2 -2
NTP_4_2_7P445
sntp/invoke-sntp.texi@1.435 +2 -2
NTP_4_2_7P445
sntp/sntp-opts.c@1.450 +7 -7
NTP_4_2_7P445
sntp/sntp-opts.h@1.450 +3 -3
NTP_4_2_7P445
sntp/sntp.1sntpman@1.270 +6 -6
NTP_4_2_7P445
sntp/sntp.1sntpmdoc@1.270 +2 -2
NTP_4_2_7P445
sntp/sntp.html@1.450 +2 -2
NTP_4_2_7P445
sntp/sntp.man.in@1.270 +6 -6
NTP_4_2_7P445
sntp/sntp.mdoc.in@1.270 +2 -2
NTP_4_2_7P445
util/invoke-ntp-keygen.texi@1.439 +2 -2
NTP_4_2_7P445
util/ntp-keygen-opts.c@1.453 +7 -7
NTP_4_2_7P445
util/ntp-keygen-opts.h@1.453 +3 -3
NTP_4_2_7P445
util/ntp-keygen.1ntp-keygenman@1.267 +6 -6
NTP_4_2_7P445
util/ntp-keygen.1ntp-keygenmdoc@1.267 +2 -2
NTP_4_2_7P445
util/ntp-keygen.html@1.115 +2 -2
NTP_4_2_7P445
util/ntp-keygen.man.in@1.267 +6 -6
NTP_4_2_7P445
util/ntp-keygen.mdoc.in@1.267 +2 -2
NTP_4_2_7P445
ChangeSet@1.3130, 2014-06-12 08:47:33+00:00, stenn@psp-fb1.ntp.org
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ChangeLog@1.1477 +1 -0
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/invoke-ntpq.texi@1.439 +491 -1
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq-opts.c@1.453 +1 -1
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq-opts.def@1.17 +487 -0
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq-opts.h@1.453 +1 -1
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq.1ntpqman@1.267 +839 -32
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq.1ntpqmdoc@1.267 +479 -21
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq.man.in@1.267 +839 -32
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ntpq/ntpq.mdoc.in@1.267 +479 -21
[Bug 2556] mrulist isn't mentioned in the ntpq man page
sntp/ag-tpl/Mdoc.pm@1.2 +1 -1
[Bug 2556] mrulist isn't mentioned in the ntpq man page
sntp/ag-tpl/mdoc2man@1.2 +13 -1
[Bug 2556] mrulist isn't mentioned in the ntpq man page
sntp/ag-tpl/mdoc2texi@1.9 +12 -0
[Bug 2556] mrulist isn't mentioned in the ntpq man page
ChangeSet@1.3129, 2014-05-19 09:34:39+00:00, stenn@deacon.udel.edu
NTP_4_2_7P444
TAG: NTP_4_2_7P444
ChangeLog@1.1476 +1 -0
NTP_4_2_7P444
ntpd/invoke-ntp.conf.texi@1.123 +1 -1
NTP_4_2_7P444
ntpd/invoke-ntp.keys.texi@1.121 +1 -1
NTP_4_2_7P444
ntpd/invoke-ntpd.texi@1.437 +2 -2
NTP_4_2_7P444
ntpd/ntp.conf.5man@1.157 +6 -6
NTP_4_2_7P444
ntpd/ntp.conf.5mdoc@1.157 +2 -2
NTP_4_2_7P444
ntpd/ntp.conf.html@1.118 +1 -1
NTP_4_2_7P444
ntpd/ntp.conf.man.in@1.157 +6 -6
NTP_4_2_7P444
ntpd/ntp.conf.mdoc.in@1.157 +2 -2
NTP_4_2_7P444
ntpd/ntp.keys.5man@1.155 +2 -2
NTP_4_2_7P444
ntpd/ntp.keys.5mdoc@1.155 +2 -2
NTP_4_2_7P444
ntpd/ntp.keys.html@1.119 +1 -1
NTP_4_2_7P444
ntpd/ntp.keys.man.in@1.155 +2 -2
NTP_4_2_7P444
ntpd/ntp.keys.mdoc.in@1.155 +2 -2
NTP_4_2_7P444
ntpd/ntpd-opts.c@1.455 +7 -7
NTP_4_2_7P444
ntpd/ntpd-opts.h@1.455 +3 -3
NTP_4_2_7P444
ntpd/ntpd.1ntpdman@1.266 +6 -6
NTP_4_2_7P444
ntpd/ntpd.1ntpdmdoc@1.266 +2 -2
NTP_4_2_7P444
ntpd/ntpd.html@1.113 +2 -2
NTP_4_2_7P444
ntpd/ntpd.man.in@1.266 +6 -6
NTP_4_2_7P444
ntpd/ntpd.mdoc.in@1.266 +2 -2
NTP_4_2_7P444
ntpdc/invoke-ntpdc.texi@1.435 +2 -2
NTP_4_2_7P444
ntpdc/ntpdc-opts.c@1.450 +7 -7
NTP_4_2_7P444
ntpdc/ntpdc-opts.h@1.450 +3 -3
NTP_4_2_7P444
ntpdc/ntpdc.1ntpdcman@1.266 +6 -6
NTP_4_2_7P444
ntpdc/ntpdc.1ntpdcmdoc@1.266 +2 -2
NTP_4_2_7P444
ntpdc/ntpdc.html@1.279 +2 -2
NTP_4_2_7P444
ntpdc/ntpdc.man.in@1.266 +6 -6
NTP_4_2_7P444
ntpdc/ntpdc.mdoc.in@1.266 +2 -2
NTP_4_2_7P444
ntpq/invoke-ntpq.texi@1.438 +2 -2
NTP_4_2_7P444
ntpq/ntpq-opts.c@1.452 +7 -7
NTP_4_2_7P444
ntpq/ntpq-opts.h@1.452 +3 -3
NTP_4_2_7P444
ntpq/ntpq.1ntpqman@1.266 +13 -13
NTP_4_2_7P444
ntpq/ntpq.1ntpqmdoc@1.266 +2 -2
NTP_4_2_7P444
ntpq/ntpq.html@1.110 +2 -2
NTP_4_2_7P444
ntpq/ntpq.man.in@1.266 +13 -13
NTP_4_2_7P444
ntpq/ntpq.mdoc.in@1.266 +2 -2
NTP_4_2_7P444
ntpsnmpd/invoke-ntpsnmpd.texi@1.437 +2 -2
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd-opts.c@1.452 +7 -7
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd-opts.h@1.452 +3 -3
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.266 +6 -6
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.266 +2 -2
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd.html@1.108 +1 -1
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd.man.in@1.266 +6 -6
NTP_4_2_7P444
ntpsnmpd/ntpsnmpd.mdoc.in@1.266 +2 -2
NTP_4_2_7P444
packageinfo.sh@1.448 +1 -1
NTP_4_2_7P444
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.28 +6 -6
NTP_4_2_7P444
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.28 +2 -2
NTP_4_2_7P444
scripts/calc_tickadj/calc_tickadj.html@1.27 +1 -1
NTP_4_2_7P444
scripts/calc_tickadj/calc_tickadj.man.in@1.27 +6 -6
NTP_4_2_7P444
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.28 +2 -2
NTP_4_2_7P444
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.29 +1 -1
NTP_4_2_7P444
scripts/invoke-plot_summary.texi@1.46 +1 -1
NTP_4_2_7P444
scripts/invoke-summary.texi@1.46 +1 -1
NTP_4_2_7P444
scripts/ntp-wait/invoke-ntp-wait.texi@1.255 +1 -1
NTP_4_2_7P444
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.256 +6 -6
NTP_4_2_7P444
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.256 +2 -2
NTP_4_2_7P444
scripts/ntp-wait/ntp-wait.html@1.272 +1 -1
NTP_4_2_7P444
scripts/ntp-wait/ntp-wait.man.in@1.256 +6 -6
NTP_4_2_7P444
scripts/ntp-wait/ntp-wait.mdoc.in@1.256 +2 -2
NTP_4_2_7P444
scripts/ntpsweep/invoke-ntpsweep.texi@1.44 +1 -1
NTP_4_2_7P444
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.35 +6 -6
NTP_4_2_7P444
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.35 +2 -2
NTP_4_2_7P444
scripts/ntpsweep/ntpsweep.html@1.45 +1 -1
NTP_4_2_7P444
scripts/ntpsweep/ntpsweep.man.in@1.35 +6 -6
NTP_4_2_7P444
scripts/ntpsweep/ntpsweep.mdoc.in@1.36 +2 -2
NTP_4_2_7P444
scripts/ntptrace/invoke-ntptrace.texi@1.44 +1 -1
NTP_4_2_7P444
scripts/ntptrace/ntptrace.1ntptraceman@1.35 +6 -6
NTP_4_2_7P444
scripts/ntptrace/ntptrace.1ntptracemdoc@1.35 +2 -2
NTP_4_2_7P444
scripts/ntptrace/ntptrace.html@1.45 +1 -1
NTP_4_2_7P444
scripts/ntptrace/ntptrace.man.in@1.35 +6 -6
NTP_4_2_7P444
scripts/ntptrace/ntptrace.mdoc.in@1.36 +2 -2
NTP_4_2_7P444
scripts/plot_summary.1plot_summaryman@1.46 +6 -6
NTP_4_2_7P444
scripts/plot_summary.1plot_summarymdoc@1.46 +2 -2
NTP_4_2_7P444
scripts/plot_summary.html@1.46 +1 -1
NTP_4_2_7P444
scripts/plot_summary.man.in@1.46 +6 -6
NTP_4_2_7P444
scripts/plot_summary.mdoc.in@1.46 +2 -2
NTP_4_2_7P444
scripts/summary.1summaryman@1.46 +6 -6
NTP_4_2_7P444
scripts/summary.1summarymdoc@1.46 +2 -2
NTP_4_2_7P444
scripts/summary.html@1.46 +1 -1
NTP_4_2_7P444
scripts/summary.man.in@1.46 +6 -6
NTP_4_2_7P444
scripts/summary.mdoc.in@1.46 +2 -2
NTP_4_2_7P444
sntp/invoke-sntp.texi@1.434 +2 -2
NTP_4_2_7P444
sntp/sntp-opts.c@1.449 +7 -7
NTP_4_2_7P444
sntp/sntp-opts.h@1.449 +3 -3
NTP_4_2_7P444
sntp/sntp.1sntpman@1.269 +6 -6
NTP_4_2_7P444
sntp/sntp.1sntpmdoc@1.269 +2 -2
NTP_4_2_7P444
sntp/sntp.html@1.449 +2 -2
NTP_4_2_7P444
sntp/sntp.man.in@1.269 +6 -6
NTP_4_2_7P444
sntp/sntp.mdoc.in@1.269 +2 -2
NTP_4_2_7P444
util/invoke-ntp-keygen.texi@1.438 +2 -2
NTP_4_2_7P444
util/ntp-keygen-opts.c@1.452 +7 -7
NTP_4_2_7P444
util/ntp-keygen-opts.h@1.452 +3 -3
NTP_4_2_7P444
util/ntp-keygen.1ntp-keygenman@1.266 +6 -6
NTP_4_2_7P444
util/ntp-keygen.1ntp-keygenmdoc@1.266 +2 -2
NTP_4_2_7P444
util/ntp-keygen.html@1.114 +2 -2
NTP_4_2_7P444
util/ntp-keygen.man.in@1.266 +6 -6
NTP_4_2_7P444
util/ntp-keygen.mdoc.in@1.266 +2 -2
NTP_4_2_7P444
ChangeSet@1.3127, 2014-05-10 09:33:18+00:00, stenn@deacon.udel.edu
NTP_4_2_7P443
TAG: NTP_4_2_7P443
ChangeLog@1.1473.1.6 +1 -0
NTP_4_2_7P443
ntpd/invoke-ntp.conf.texi@1.122 +1 -1
NTP_4_2_7P443
ntpd/invoke-ntp.keys.texi@1.120 +1 -1
NTP_4_2_7P443
ntpd/invoke-ntpd.texi@1.436 +2 -2
NTP_4_2_7P443
ntpd/ntp.conf.5man@1.156 +7 -7
NTP_4_2_7P443
ntpd/ntp.conf.5mdoc@1.156 +3 -3
NTP_4_2_7P443
ntpd/ntp.conf.html@1.117 +1 -1
NTP_4_2_7P443
ntpd/ntp.conf.man.in@1.156 +7 -7
NTP_4_2_7P443
ntpd/ntp.conf.mdoc.in@1.156 +3 -3
NTP_4_2_7P443
ntpd/ntp.keys.5man@1.154 +3 -3
NTP_4_2_7P443
ntpd/ntp.keys.5mdoc@1.154 +3 -3
NTP_4_2_7P443
ntpd/ntp.keys.html@1.118 +1 -1
NTP_4_2_7P443
ntpd/ntp.keys.man.in@1.154 +3 -3
NTP_4_2_7P443
ntpd/ntp.keys.mdoc.in@1.154 +3 -3
NTP_4_2_7P443
ntpd/ntpd-opts.c@1.454 +10 -10
NTP_4_2_7P443
ntpd/ntpd-opts.h@1.454 +4 -4
NTP_4_2_7P443
ntpd/ntpd.1ntpdman@1.265 +7 -7
NTP_4_2_7P443
ntpd/ntpd.1ntpdmdoc@1.265 +3 -3
NTP_4_2_7P443
ntpd/ntpd.html@1.112 +2 -2
NTP_4_2_7P443
ntpd/ntpd.man.in@1.265 +7 -7
NTP_4_2_7P443
ntpd/ntpd.mdoc.in@1.265 +3 -3
NTP_4_2_7P443
ntpdc/invoke-ntpdc.texi@1.434 +2 -2
NTP_4_2_7P443
ntpdc/ntpdc-opts.c@1.449 +10 -10
NTP_4_2_7P443
ntpdc/ntpdc-opts.h@1.449 +4 -4
NTP_4_2_7P443
ntpdc/ntpdc.1ntpdcman@1.265 +14 -14
NTP_4_2_7P443
ntpdc/ntpdc.1ntpdcmdoc@1.265 +3 -3
NTP_4_2_7P443
ntpdc/ntpdc.html@1.278 +2 -2
NTP_4_2_7P443
ntpdc/ntpdc.man.in@1.265 +14 -14
NTP_4_2_7P443
ntpdc/ntpdc.mdoc.in@1.265 +3 -3
NTP_4_2_7P443
ntpq/invoke-ntpq.texi@1.437 +2 -2
NTP_4_2_7P443
ntpq/ntpq-opts.c@1.451 +10 -10
NTP_4_2_7P443
ntpq/ntpq-opts.h@1.451 +4 -4
NTP_4_2_7P443
ntpq/ntpq.1ntpqman@1.265 +7 -7
NTP_4_2_7P443
ntpq/ntpq.1ntpqmdoc@1.265 +3 -3
NTP_4_2_7P443
ntpq/ntpq.html@1.109 +2 -2
NTP_4_2_7P443
ntpq/ntpq.man.in@1.265 +7 -7
NTP_4_2_7P443
ntpq/ntpq.mdoc.in@1.265 +3 -3
NTP_4_2_7P443
ntpsnmpd/invoke-ntpsnmpd.texi@1.436 +2 -2
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd-opts.c@1.451 +10 -10
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd-opts.h@1.451 +4 -4
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.265 +7 -7
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.265 +3 -3
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd.html@1.107 +1 -1
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd.man.in@1.265 +7 -7
NTP_4_2_7P443
ntpsnmpd/ntpsnmpd.mdoc.in@1.265 +3 -3
NTP_4_2_7P443
packageinfo.sh@1.447 +1 -1
NTP_4_2_7P443
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.27 +6 -6
NTP_4_2_7P443
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.27 +2 -2
NTP_4_2_7P443
scripts/calc_tickadj/calc_tickadj.html@1.26 +1 -1
NTP_4_2_7P443
scripts/calc_tickadj/calc_tickadj.man.in@1.26 +6 -6
NTP_4_2_7P443
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.27 +2 -2
NTP_4_2_7P443
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.28 +1 -1
NTP_4_2_7P443
scripts/invoke-plot_summary.texi@1.45 +1 -1
NTP_4_2_7P443
scripts/invoke-summary.texi@1.45 +1 -1
NTP_4_2_7P443
scripts/ntp-wait/invoke-ntp-wait.texi@1.254 +1 -1
NTP_4_2_7P443
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.255 +6 -6
NTP_4_2_7P443
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.255 +2 -2
NTP_4_2_7P443
scripts/ntp-wait/ntp-wait.html@1.271 +1 -1
NTP_4_2_7P443
scripts/ntp-wait/ntp-wait.man.in@1.255 +6 -6
NTP_4_2_7P443
scripts/ntp-wait/ntp-wait.mdoc.in@1.255 +2 -2
NTP_4_2_7P443
scripts/ntpsweep/invoke-ntpsweep.texi@1.43 +1 -1
NTP_4_2_7P443
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.34 +6 -6
NTP_4_2_7P443
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.34 +2 -2
NTP_4_2_7P443
scripts/ntpsweep/ntpsweep.html@1.44 +1 -1
NTP_4_2_7P443
scripts/ntpsweep/ntpsweep.man.in@1.34 +6 -6
NTP_4_2_7P443
scripts/ntpsweep/ntpsweep.mdoc.in@1.35 +2 -2
NTP_4_2_7P443
scripts/ntptrace/invoke-ntptrace.texi@1.43 +1 -1
NTP_4_2_7P443
scripts/ntptrace/ntptrace.1ntptraceman@1.34 +6 -6
NTP_4_2_7P443
scripts/ntptrace/ntptrace.1ntptracemdoc@1.34 +2 -2
NTP_4_2_7P443
scripts/ntptrace/ntptrace.html@1.44 +1 -1
NTP_4_2_7P443
scripts/ntptrace/ntptrace.man.in@1.34 +6 -6
NTP_4_2_7P443
scripts/ntptrace/ntptrace.mdoc.in@1.35 +2 -2
NTP_4_2_7P443
scripts/plot_summary.1plot_summaryman@1.45 +6 -6
NTP_4_2_7P443
scripts/plot_summary.1plot_summarymdoc@1.45 +2 -2
NTP_4_2_7P443
scripts/plot_summary.html@1.45 +1 -1
NTP_4_2_7P443
scripts/plot_summary.man.in@1.45 +6 -6
NTP_4_2_7P443
scripts/plot_summary.mdoc.in@1.45 +2 -2
NTP_4_2_7P443
scripts/summary.1summaryman@1.45 +6 -6
NTP_4_2_7P443
scripts/summary.1summarymdoc@1.45 +2 -2
NTP_4_2_7P443
scripts/summary.html@1.45 +1 -1
NTP_4_2_7P443
scripts/summary.man.in@1.45 +6 -6
NTP_4_2_7P443
scripts/summary.mdoc.in@1.45 +2 -2
NTP_4_2_7P443
sntp/invoke-sntp.texi@1.433 +2 -2
NTP_4_2_7P443
sntp/sntp-opts.c@1.448 +10 -10
NTP_4_2_7P443
sntp/sntp-opts.h@1.448 +4 -4
NTP_4_2_7P443
sntp/sntp.1sntpman@1.268 +7 -7
NTP_4_2_7P443
sntp/sntp.1sntpmdoc@1.268 +3 -3
NTP_4_2_7P443
sntp/sntp.html@1.448 +2 -2
NTP_4_2_7P443
sntp/sntp.man.in@1.268 +7 -7
NTP_4_2_7P443
sntp/sntp.mdoc.in@1.268 +3 -3
NTP_4_2_7P443
util/invoke-ntp-keygen.texi@1.437 +2 -2
NTP_4_2_7P443
util/ntp-keygen-opts.c@1.451 +10 -10
NTP_4_2_7P443
util/ntp-keygen-opts.h@1.451 +4 -4
NTP_4_2_7P443
util/ntp-keygen.1ntp-keygenman@1.265 +7 -7
NTP_4_2_7P443
util/ntp-keygen.1ntp-keygenmdoc@1.265 +3 -3
NTP_4_2_7P443
util/ntp-keygen.html@1.113 +2 -2
NTP_4_2_7P443
util/ntp-keygen.man.in@1.265 +7 -7
NTP_4_2_7P443
util/ntp-keygen.mdoc.in@1.265 +3 -3
NTP_4_2_7P443
ChangeSet@1.3126, 2014-05-09 21:52:34+00:00, stenn@psp-fb1.ntp.org
[Bug 2594] Update the year in sntp/include/copyright.def
ChangeLog@1.1473.1.5 +1 -1
[Bug 2594] Update the year in sntp/include/copyright.def
ChangeSet@1.3123.1.1, 2014-05-09 09:34:10+00:00, stenn@deacon.udel.edu
NTP_4_2_7P442
TAG: NTP_4_2_7P442
ChangeLog@1.1473.2.1 +1 -0
NTP_4_2_7P442
ntpd/invoke-ntp.conf.texi@1.121 +1 -1
NTP_4_2_7P442
ntpd/invoke-ntp.keys.texi@1.119 +1 -1
NTP_4_2_7P442
ntpd/invoke-ntpd.texi@1.435 +2 -2
NTP_4_2_7P442
ntpd/ntp.conf.5man@1.155 +6 -6
NTP_4_2_7P442
ntpd/ntp.conf.5mdoc@1.155 +2 -2
NTP_4_2_7P442
ntpd/ntp.conf.html@1.116 +1 -1
NTP_4_2_7P442
ntpd/ntp.conf.man.in@1.155 +6 -6
NTP_4_2_7P442
ntpd/ntp.conf.mdoc.in@1.155 +2 -2
NTP_4_2_7P442
ntpd/ntp.keys.5man@1.153 +2 -2
NTP_4_2_7P442
ntpd/ntp.keys.5mdoc@1.153 +2 -2
NTP_4_2_7P442
ntpd/ntp.keys.html@1.117 +1 -1
NTP_4_2_7P442
ntpd/ntp.keys.man.in@1.153 +2 -2
NTP_4_2_7P442
ntpd/ntp.keys.mdoc.in@1.153 +2 -2
NTP_4_2_7P442
ntpd/ntpd-opts.c@1.453 +7 -7
NTP_4_2_7P442
ntpd/ntpd-opts.h@1.453 +3 -3
NTP_4_2_7P442
ntpd/ntpd.1ntpdman@1.264 +13 -13
NTP_4_2_7P442
ntpd/ntpd.1ntpdmdoc@1.264 +2 -2
NTP_4_2_7P442
ntpd/ntpd.html@1.111 +2 -2
NTP_4_2_7P442
ntpd/ntpd.man.in@1.264 +13 -13
NTP_4_2_7P442
ntpd/ntpd.mdoc.in@1.264 +2 -2
NTP_4_2_7P442
ntpdc/invoke-ntpdc.texi@1.433 +2 -2
NTP_4_2_7P442
ntpdc/ntpdc-opts.c@1.448 +7 -7
NTP_4_2_7P442
ntpdc/ntpdc-opts.h@1.448 +3 -3
NTP_4_2_7P442
ntpdc/ntpdc.1ntpdcman@1.264 +13 -13
NTP_4_2_7P442
ntpdc/ntpdc.1ntpdcmdoc@1.264 +2 -2
NTP_4_2_7P442
ntpdc/ntpdc.html@1.277 +2 -2
NTP_4_2_7P442
ntpdc/ntpdc.man.in@1.264 +13 -13
NTP_4_2_7P442
ntpdc/ntpdc.mdoc.in@1.264 +2 -2
NTP_4_2_7P442
ntpq/invoke-ntpq.texi@1.436 +2 -2
NTP_4_2_7P442
ntpq/ntpq-opts.c@1.450 +7 -7
NTP_4_2_7P442
ntpq/ntpq-opts.h@1.450 +3 -3
NTP_4_2_7P442
ntpq/ntpq.1ntpqman@1.264 +6 -6
NTP_4_2_7P442
ntpq/ntpq.1ntpqmdoc@1.264 +2 -2
NTP_4_2_7P442
ntpq/ntpq.html@1.108 +2 -2
NTP_4_2_7P442
ntpq/ntpq.man.in@1.264 +6 -6
NTP_4_2_7P442
ntpq/ntpq.mdoc.in@1.264 +2 -2
NTP_4_2_7P442
ntpsnmpd/invoke-ntpsnmpd.texi@1.435 +2 -2
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd-opts.c@1.450 +7 -7
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd-opts.h@1.450 +3 -3
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.264 +6 -6
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.264 +2 -2
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd.html@1.106 +1 -1
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd.man.in@1.264 +6 -6
NTP_4_2_7P442
ntpsnmpd/ntpsnmpd.mdoc.in@1.264 +2 -2
NTP_4_2_7P442
packageinfo.sh@1.446 +1 -1
NTP_4_2_7P442
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.26 +6 -6
NTP_4_2_7P442
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.26 +2 -2
NTP_4_2_7P442
scripts/calc_tickadj/calc_tickadj.html@1.25 +1 -1
NTP_4_2_7P442
scripts/calc_tickadj/calc_tickadj.man.in@1.25 +6 -6
NTP_4_2_7P442
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.26 +2 -2
NTP_4_2_7P442
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.27 +1 -1
NTP_4_2_7P442
scripts/invoke-plot_summary.texi@1.44 +1 -1
NTP_4_2_7P442
scripts/invoke-summary.texi@1.44 +1 -1
NTP_4_2_7P442
scripts/ntp-wait/invoke-ntp-wait.texi@1.253 +1 -1
NTP_4_2_7P442
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.254 +6 -6
NTP_4_2_7P442
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.254 +2 -2
NTP_4_2_7P442
scripts/ntp-wait/ntp-wait.html@1.270 +1 -1
NTP_4_2_7P442
scripts/ntp-wait/ntp-wait.man.in@1.254 +6 -6
NTP_4_2_7P442
scripts/ntp-wait/ntp-wait.mdoc.in@1.254 +2 -2
NTP_4_2_7P442
scripts/ntpsweep/invoke-ntpsweep.texi@1.42 +1 -1
NTP_4_2_7P442
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.33 +6 -6
NTP_4_2_7P442
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.33 +2 -2
NTP_4_2_7P442
scripts/ntpsweep/ntpsweep.html@1.43 +1 -1
NTP_4_2_7P442
scripts/ntpsweep/ntpsweep.man.in@1.33 +6 -6
NTP_4_2_7P442
scripts/ntpsweep/ntpsweep.mdoc.in@1.34 +2 -2
NTP_4_2_7P442
scripts/ntptrace/invoke-ntptrace.texi@1.42 +1 -1
NTP_4_2_7P442
scripts/ntptrace/ntptrace.1ntptraceman@1.33 +6 -6
NTP_4_2_7P442
scripts/ntptrace/ntptrace.1ntptracemdoc@1.33 +2 -2
NTP_4_2_7P442
scripts/ntptrace/ntptrace.html@1.43 +1 -1
NTP_4_2_7P442
scripts/ntptrace/ntptrace.man.in@1.33 +6 -6
NTP_4_2_7P442
scripts/ntptrace/ntptrace.mdoc.in@1.34 +2 -2
NTP_4_2_7P442
scripts/plot_summary.1plot_summaryman@1.44 +6 -6
NTP_4_2_7P442
scripts/plot_summary.1plot_summarymdoc@1.44 +2 -2
NTP_4_2_7P442
scripts/plot_summary.html@1.44 +1 -1
NTP_4_2_7P442
scripts/plot_summary.man.in@1.44 +6 -6
NTP_4_2_7P442
scripts/plot_summary.mdoc.in@1.44 +2 -2
NTP_4_2_7P442
scripts/summary.1summaryman@1.44 +6 -6
NTP_4_2_7P442
scripts/summary.1summarymdoc@1.44 +2 -2
NTP_4_2_7P442
scripts/summary.html@1.44 +1 -1
NTP_4_2_7P442
scripts/summary.man.in@1.44 +6 -6
NTP_4_2_7P442
scripts/summary.mdoc.in@1.44 +2 -2
NTP_4_2_7P442
sntp/invoke-sntp.texi@1.432 +2 -2
NTP_4_2_7P442
sntp/sntp-opts.c@1.447 +7 -7
NTP_4_2_7P442
sntp/sntp-opts.h@1.447 +3 -3
NTP_4_2_7P442
sntp/sntp.1sntpman@1.267 +6 -6
NTP_4_2_7P442
sntp/sntp.1sntpmdoc@1.267 +2 -2
NTP_4_2_7P442
sntp/sntp.html@1.447 +2 -2
NTP_4_2_7P442
sntp/sntp.man.in@1.267 +6 -6
NTP_4_2_7P442
sntp/sntp.mdoc.in@1.267 +2 -2
NTP_4_2_7P442
util/invoke-ntp-keygen.texi@1.436 +2 -2
NTP_4_2_7P442
util/ntp-keygen-opts.c@1.450 +7 -7
NTP_4_2_7P442
util/ntp-keygen-opts.h@1.450 +3 -3
NTP_4_2_7P442
util/ntp-keygen.1ntp-keygenman@1.264 +6 -6
NTP_4_2_7P442
util/ntp-keygen.1ntp-keygenmdoc@1.264 +2 -2
NTP_4_2_7P442
util/ntp-keygen.html@1.112 +2 -2
NTP_4_2_7P442
util/ntp-keygen.man.in@1.264 +6 -6
NTP_4_2_7P442
util/ntp-keygen.mdoc.in@1.264 +2 -2
NTP_4_2_7P442
ChangeSet@1.3124, 2014-05-09 01:54:22-07:00, harlan@hms-mbp11.local
[Bug 2594] Update the year in sntp/include/copyright.def
ChangeLog@1.1473.1.3 +1 -0
[Bug 2594] Update the year in sntp/include/copyright.def
sntp/include/copyright.def@1.24 +1 -1
[Bug 2594] Update the year in sntp/include/copyright.def
ChangeSet@1.3123, 2014-05-09 01:32:31-07:00, harlan@hms-mbp11.local
turn off the SCCS flag in extern.html
html/extern.html@1.20 +0 -0
Turn off SCCS flag
ChangeSet@1.3122, 2014-05-08 23:29:15-07:00, harlan@hms-mbp11.local
[Bug 2600] Fix "Undisicplined Local Clock" driver1.html page
ChangeLog@1.1473.1.2 +1 -0
[Bug 2600] Fix "Undisicplined Local Clock" driver1.html page
html/drivers/driver1.html@1.21 +3 -3
[Bug 2600] Fix "Undisicplined Local Clock" driver1.html page
ChangeSet@1.3121, 2014-05-08 23:07:27-07:00, harlan@hms-mbp11.local
[Bug 2589] Update VS2013 project files for libntp
ChangeLog@1.1473.1.1 +1 -0
[Bug 2589] Update VS2013 project files for libntp
ports/winnt/vs2013/libntp/libntp.vcxproj@1.4 +2 -0
[Bug 2589] Update VS2013 project files for libntp
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.3 +6 -0
[Bug 2589] Update VS2013 project files for libntp
ChangeSet@1.3107.1.41, 2014-05-06 00:48:08+02:00, jnperlin@hydra.(none)
[bug 2597] leap second loose ends -- coverity issues
ChangeLog@1.1474 +2 -0
[bug 2597] leap second loose ends -- coverity issues
ntpd/ntp_leapsec.c@1.12 +17 -1
[bug 2597] leap second loose ends -- coverity issues
ntpd/ntp_util.c@1.113 +4 -4
[bug 2597] leap second loose ends -- coverity issues
ChangeSet@1.3107.1.40, 2014-05-04 06:10:21+00:00, stenn@deacon.udel.edu
NTP_4_2_7P441
TAG: NTP_4_2_7P441
ChangeLog@1.1473 +1 -0
NTP_4_2_7P441
ntpd/invoke-ntp.conf.texi@1.120 +1 -1
NTP_4_2_7P441
ntpd/invoke-ntp.keys.texi@1.118 +1 -1
NTP_4_2_7P441
ntpd/invoke-ntpd.texi@1.434 +2 -2
NTP_4_2_7P441
ntpd/ntp.conf.5man@1.154 +3019 -0
NTP_4_2_7P441
ntpd/ntp.conf.5mdoc@1.154 +2 -2
NTP_4_2_7P441
ntpd/ntp.conf.html@1.115 +1 -1
NTP_4_2_7P441
ntpd/ntp.conf.man.in@1.154 +3019 -0
NTP_4_2_7P441
ntpd/ntp.conf.mdoc.in@1.154 +2 -2
NTP_4_2_7P441
ntpd/ntp.keys.5man@1.152 +2 -2
NTP_4_2_7P441
ntpd/ntp.keys.5mdoc@1.152 +2 -2
NTP_4_2_7P441
ntpd/ntp.keys.html@1.116 +1 -1
NTP_4_2_7P441
ntpd/ntp.keys.man.in@1.152 +2 -2
NTP_4_2_7P441
ntpd/ntp.keys.mdoc.in@1.152 +2 -2
NTP_4_2_7P441
ntpd/ntpd-opts.c@1.452 +7 -7
NTP_4_2_7P441
ntpd/ntpd-opts.h@1.452 +3 -3
NTP_4_2_7P441
ntpd/ntpd.1ntpdman@1.263 +13 -13
NTP_4_2_7P441
ntpd/ntpd.1ntpdmdoc@1.263 +2 -2
NTP_4_2_7P441
ntpd/ntpd.html@1.110 +2 -2
NTP_4_2_7P441
ntpd/ntpd.man.in@1.263 +13 -13
NTP_4_2_7P441
ntpd/ntpd.mdoc.in@1.263 +2 -2
NTP_4_2_7P441
ntpdc/invoke-ntpdc.texi@1.432 +2 -2
NTP_4_2_7P441
ntpdc/ntpdc-opts.c@1.447 +7 -7
NTP_4_2_7P441
ntpdc/ntpdc-opts.h@1.447 +3 -3
NTP_4_2_7P441
ntpdc/ntpdc.1ntpdcman@1.263 +6 -6
NTP_4_2_7P441
ntpdc/ntpdc.1ntpdcmdoc@1.263 +2 -2
NTP_4_2_7P441
ntpdc/ntpdc.html@1.276 +2 -2
NTP_4_2_7P441
ntpdc/ntpdc.man.in@1.263 +6 -6
NTP_4_2_7P441
ntpdc/ntpdc.mdoc.in@1.263 +2 -2
NTP_4_2_7P441
ntpq/invoke-ntpq.texi@1.435 +2 -2
NTP_4_2_7P441
ntpq/ntpq-opts.c@1.449 +7 -7
NTP_4_2_7P441
ntpq/ntpq-opts.h@1.449 +3 -3
NTP_4_2_7P441
ntpq/ntpq.1ntpqman@1.263 +13 -13
NTP_4_2_7P441
ntpq/ntpq.1ntpqmdoc@1.263 +2 -2
NTP_4_2_7P441
ntpq/ntpq.html@1.107 +2 -2
NTP_4_2_7P441
ntpq/ntpq.man.in@1.263 +13 -13
NTP_4_2_7P441
ntpq/ntpq.mdoc.in@1.263 +2 -2
NTP_4_2_7P441
ntpsnmpd/invoke-ntpsnmpd.texi@1.434 +2 -2
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd-opts.c@1.449 +7 -7
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd-opts.h@1.449 +3 -3
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.263 +6 -6
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.263 +2 -2
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd.html@1.105 +1 -1
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd.man.in@1.263 +6 -6
NTP_4_2_7P441
ntpsnmpd/ntpsnmpd.mdoc.in@1.263 +2 -2
NTP_4_2_7P441
packageinfo.sh@1.445 +1 -1
NTP_4_2_7P441
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.25 +6 -6
NTP_4_2_7P441
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.25 +2 -2
NTP_4_2_7P441
scripts/calc_tickadj/calc_tickadj.html@1.24 +1 -1
NTP_4_2_7P441
scripts/calc_tickadj/calc_tickadj.man.in@1.24 +6 -6
NTP_4_2_7P441
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.25 +2 -2
NTP_4_2_7P441
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.26 +1 -1
NTP_4_2_7P441
scripts/invoke-plot_summary.texi@1.43 +1 -1
NTP_4_2_7P441
scripts/invoke-summary.texi@1.43 +1 -1
NTP_4_2_7P441
scripts/ntp-wait/invoke-ntp-wait.texi@1.252 +1 -1
NTP_4_2_7P441
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.253 +6 -6
NTP_4_2_7P441
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.253 +2 -2
NTP_4_2_7P441
scripts/ntp-wait/ntp-wait.html@1.269 +1 -1
NTP_4_2_7P441
scripts/ntp-wait/ntp-wait.man.in@1.253 +6 -6
NTP_4_2_7P441
scripts/ntp-wait/ntp-wait.mdoc.in@1.253 +2 -2
NTP_4_2_7P441
scripts/ntpsweep/invoke-ntpsweep.texi@1.41 +1 -1
NTP_4_2_7P441
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.32 +6 -6
NTP_4_2_7P441
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.32 +2 -2
NTP_4_2_7P441
scripts/ntpsweep/ntpsweep.html@1.42 +1 -1
NTP_4_2_7P441
scripts/ntpsweep/ntpsweep.man.in@1.32 +6 -6
NTP_4_2_7P441
scripts/ntpsweep/ntpsweep.mdoc.in@1.33 +2 -2
NTP_4_2_7P441
scripts/ntptrace/invoke-ntptrace.texi@1.41 +1 -1
NTP_4_2_7P441
scripts/ntptrace/ntptrace.1ntptraceman@1.32 +6 -6
NTP_4_2_7P441
scripts/ntptrace/ntptrace.1ntptracemdoc@1.32 +2 -2
NTP_4_2_7P441
scripts/ntptrace/ntptrace.html@1.42 +1 -1
NTP_4_2_7P441
scripts/ntptrace/ntptrace.man.in@1.32 +6 -6
NTP_4_2_7P441
scripts/ntptrace/ntptrace.mdoc.in@1.33 +2 -2
NTP_4_2_7P441
scripts/plot_summary.1plot_summaryman@1.43 +6 -6
NTP_4_2_7P441
scripts/plot_summary.1plot_summarymdoc@1.43 +2 -2
NTP_4_2_7P441
scripts/plot_summary.html@1.43 +1 -1
NTP_4_2_7P441
scripts/plot_summary.man.in@1.43 +6 -6
NTP_4_2_7P441
scripts/plot_summary.mdoc.in@1.43 +2 -2
NTP_4_2_7P441
scripts/summary.1summaryman@1.43 +6 -6
NTP_4_2_7P441
scripts/summary.1summarymdoc@1.43 +2 -2
NTP_4_2_7P441
scripts/summary.html@1.43 +1 -1
NTP_4_2_7P441
scripts/summary.man.in@1.43 +6 -6
NTP_4_2_7P441
scripts/summary.mdoc.in@1.43 +2 -2
NTP_4_2_7P441
sntp/invoke-sntp.texi@1.431 +2 -2
NTP_4_2_7P441
sntp/sntp-opts.c@1.446 +7 -7
NTP_4_2_7P441
sntp/sntp-opts.h@1.446 +3 -3
NTP_4_2_7P441
sntp/sntp.1sntpman@1.266 +6 -6
NTP_4_2_7P441
sntp/sntp.1sntpmdoc@1.266 +2 -2
NTP_4_2_7P441
sntp/sntp.html@1.446 +2 -2
NTP_4_2_7P441
sntp/sntp.man.in@1.266 +6 -6
NTP_4_2_7P441
sntp/sntp.mdoc.in@1.266 +2 -2
NTP_4_2_7P441
util/invoke-ntp-keygen.texi@1.435 +2 -2
NTP_4_2_7P441
util/ntp-keygen-opts.c@1.449 +7 -7
NTP_4_2_7P441
util/ntp-keygen-opts.h@1.449 +3 -3
NTP_4_2_7P441
util/ntp-keygen.1ntp-keygenman@1.263 +6 -6
NTP_4_2_7P441
util/ntp-keygen.1ntp-keygenmdoc@1.263 +2 -2
NTP_4_2_7P441
util/ntp-keygen.html@1.111 +2 -2
NTP_4_2_7P441
util/ntp-keygen.man.in@1.263 +6 -6
NTP_4_2_7P441
util/ntp-keygen.mdoc.in@1.263 +2 -2
NTP_4_2_7P441
ChangeSet@1.3107.1.39, 2014-05-04 04:51:37+00:00, stenn@psp-deb1.ntp.org
nits
ntpd/ntp_leapsec.c@1.11 +9 -7
nits
ntpd/ntp_util.c@1.112 +2 -2
nits
ChangeSet@1.3107.1.38, 2014-04-22 21:40:54+02:00, jnperlin@hydra.(none)
[Bug 2597] fixed loose ends: changed/unified logging for leapfile related actions
ChangeLog@1.1472 +4 -0
[Bug 2597] changed/unified logging for leapfile related actions
include/ntpd.h@1.182 +1 -1
[Bug 2597] changed/unified logging for leapfile related actions
changed signature for 'check_leap_file()'
ntpd/ntp_leapsec.c@1.10 +83 -7
[Bug 2597] changed/unified logging for leapfile related actions
split functionality between 'leapsec_load_file()' and 'leapsec_load_stream()'
improve logging for non-existing and successfully loaded files
ntpd/ntp_leapsec.h@1.7 +17 -4
[Bug 2597] changed/unified logging for leapfile related actions
split functionality between 'leapsec_load_file()' and 'leapsec_load_stream()'
ntpd/ntp_timer.c@1.81 +5 -26
[Bug 2597] changed/unified logging for leapfile related actions
let 'check_leap_file()' do the expiration test and logging
ntpd/ntp_util.c@1.111 +44 -54
[Bug 2597] changed/unified logging for leapfile related actions
'check_leap_file()' checks for leapfile load/reload and expiration,
let 'leapsec_load_file()' do the handling & logging for the disk file
ChangeSet@1.3107.1.37, 2014-04-09 10:24:43+00:00, stenn@deacon.udel.edu
NTP_4_2_7P440
TAG: NTP_4_2_7P440
ChangeLog@1.1471 +1 -0
NTP_4_2_7P440
ntpd/invoke-ntp.conf.texi@1.119 +1 -1
NTP_4_2_7P440
ntpd/invoke-ntp.keys.texi@1.117 +1 -1
NTP_4_2_7P440
ntpd/invoke-ntpd.texi@1.433 +2 -2
NTP_4_2_7P440
ntpd/ntp.conf.5man@1.153 +0 -3019
NTP_4_2_7P440
ntpd/ntp.conf.5mdoc@1.153 +2 -2
NTP_4_2_7P440
ntpd/ntp.conf.html@1.114 +1 -1
NTP_4_2_7P440
ntpd/ntp.conf.man.in@1.153 +0 -3019
NTP_4_2_7P440
ntpd/ntp.conf.mdoc.in@1.153 +2 -2
NTP_4_2_7P440
ntpd/ntp.keys.5man@1.151 +2 -2
NTP_4_2_7P440
ntpd/ntp.keys.5mdoc@1.151 +2 -2
NTP_4_2_7P440
ntpd/ntp.keys.html@1.115 +1 -1
NTP_4_2_7P440
ntpd/ntp.keys.man.in@1.151 +2 -2
NTP_4_2_7P440
ntpd/ntp.keys.mdoc.in@1.151 +2 -2
NTP_4_2_7P440
ntpd/ntpd-opts.c@1.451 +7 -7
NTP_4_2_7P440
ntpd/ntpd-opts.h@1.451 +3 -3
NTP_4_2_7P440
ntpd/ntpd.1ntpdman@1.262 +6 -6
NTP_4_2_7P440
ntpd/ntpd.1ntpdmdoc@1.262 +2 -2
NTP_4_2_7P440
ntpd/ntpd.html@1.109 +2 -2
NTP_4_2_7P440
ntpd/ntpd.man.in@1.262 +6 -6
NTP_4_2_7P440
ntpd/ntpd.mdoc.in@1.262 +2 -2
NTP_4_2_7P440
ntpdc/invoke-ntpdc.texi@1.431 +2 -2
NTP_4_2_7P440
ntpdc/ntpdc-opts.c@1.446 +7 -7
NTP_4_2_7P440
ntpdc/ntpdc-opts.h@1.446 +3 -3
NTP_4_2_7P440
ntpdc/ntpdc.1ntpdcman@1.262 +6 -6
NTP_4_2_7P440
ntpdc/ntpdc.1ntpdcmdoc@1.262 +2 -2
NTP_4_2_7P440
ntpdc/ntpdc.html@1.275 +2 -2
NTP_4_2_7P440
ntpdc/ntpdc.man.in@1.262 +6 -6
NTP_4_2_7P440
ntpdc/ntpdc.mdoc.in@1.262 +2 -2
NTP_4_2_7P440
ntpq/invoke-ntpq.texi@1.434 +2 -2
NTP_4_2_7P440
ntpq/ntpq-opts.c@1.448 +7 -7
NTP_4_2_7P440
ntpq/ntpq-opts.h@1.448 +3 -3
NTP_4_2_7P440
ntpq/ntpq.1ntpqman@1.262 +475 -0
NTP_4_2_7P440
ntpq/ntpq.1ntpqmdoc@1.262 +2 -2
NTP_4_2_7P440
ntpq/ntpq.html@1.106 +2 -2
NTP_4_2_7P440
ntpq/ntpq.man.in@1.262 +475 -0
NTP_4_2_7P440
ntpq/ntpq.mdoc.in@1.262 +2 -2
NTP_4_2_7P440
ntpsnmpd/invoke-ntpsnmpd.texi@1.433 +2 -2
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd-opts.c@1.448 +7 -7
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd-opts.h@1.448 +3 -3
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.262 +13 -13
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.262 +2 -2
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd.html@1.104 +1 -1
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd.man.in@1.262 +13 -13
NTP_4_2_7P440
ntpsnmpd/ntpsnmpd.mdoc.in@1.262 +2 -2
NTP_4_2_7P440
packageinfo.sh@1.444 +1 -1
NTP_4_2_7P440
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.24 +6 -6
NTP_4_2_7P440
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.24 +2 -2
NTP_4_2_7P440
scripts/calc_tickadj/calc_tickadj.html@1.23 +1 -1
NTP_4_2_7P440
scripts/calc_tickadj/calc_tickadj.man.in@1.23 +6 -6
NTP_4_2_7P440
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.24 +2 -2
NTP_4_2_7P440
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.25 +1 -1
NTP_4_2_7P440
scripts/invoke-plot_summary.texi@1.42 +1 -1
NTP_4_2_7P440
scripts/invoke-summary.texi@1.42 +1 -1
NTP_4_2_7P440
scripts/ntp-wait/invoke-ntp-wait.texi@1.251 +1 -1
NTP_4_2_7P440
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.252 +6 -6
NTP_4_2_7P440
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.252 +2 -2
NTP_4_2_7P440
scripts/ntp-wait/ntp-wait.html@1.268 +1 -1
NTP_4_2_7P440
scripts/ntp-wait/ntp-wait.man.in@1.252 +6 -6
NTP_4_2_7P440
scripts/ntp-wait/ntp-wait.mdoc.in@1.252 +2 -2
NTP_4_2_7P440
scripts/ntpsweep/invoke-ntpsweep.texi@1.40 +1 -1
NTP_4_2_7P440
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.31 +6 -6
NTP_4_2_7P440
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.31 +2 -2
NTP_4_2_7P440
scripts/ntpsweep/ntpsweep.html@1.41 +1 -1
NTP_4_2_7P440
scripts/ntpsweep/ntpsweep.man.in@1.31 +6 -6
NTP_4_2_7P440
scripts/ntpsweep/ntpsweep.mdoc.in@1.32 +2 -2
NTP_4_2_7P440
scripts/ntptrace/invoke-ntptrace.texi@1.40 +1 -1
NTP_4_2_7P440
scripts/ntptrace/ntptrace.1ntptraceman@1.31 +6 -6
NTP_4_2_7P440
scripts/ntptrace/ntptrace.1ntptracemdoc@1.31 +2 -2
NTP_4_2_7P440
scripts/ntptrace/ntptrace.html@1.41 +1 -1
NTP_4_2_7P440
scripts/ntptrace/ntptrace.man.in@1.31 +6 -6
NTP_4_2_7P440
scripts/ntptrace/ntptrace.mdoc.in@1.32 +2 -2
NTP_4_2_7P440
scripts/plot_summary.1plot_summaryman@1.42 +6 -6
NTP_4_2_7P440
scripts/plot_summary.1plot_summarymdoc@1.42 +2 -2
NTP_4_2_7P440
scripts/plot_summary.html@1.42 +1 -1
NTP_4_2_7P440
scripts/plot_summary.man.in@1.42 +6 -6
NTP_4_2_7P440
scripts/plot_summary.mdoc.in@1.42 +2 -2
NTP_4_2_7P440
scripts/summary.1summaryman@1.42 +6 -6
NTP_4_2_7P440
scripts/summary.1summarymdoc@1.42 +2 -2
NTP_4_2_7P440
scripts/summary.html@1.42 +1 -1
NTP_4_2_7P440
scripts/summary.man.in@1.42 +6 -6
NTP_4_2_7P440
scripts/summary.mdoc.in@1.42 +2 -2
NTP_4_2_7P440
sntp/invoke-sntp.texi@1.430 +2 -2
NTP_4_2_7P440
sntp/sntp-opts.c@1.445 +7 -7
NTP_4_2_7P440
sntp/sntp-opts.h@1.445 +3 -3
NTP_4_2_7P440
sntp/sntp.1sntpman@1.265 +6 -6
NTP_4_2_7P440
sntp/sntp.1sntpmdoc@1.265 +2 -2
NTP_4_2_7P440
sntp/sntp.html@1.445 +2 -2
NTP_4_2_7P440
sntp/sntp.man.in@1.265 +6 -6
NTP_4_2_7P440
sntp/sntp.mdoc.in@1.265 +2 -2
NTP_4_2_7P440
util/invoke-ntp-keygen.texi@1.434 +2 -2
NTP_4_2_7P440
util/ntp-keygen-opts.c@1.448 +7 -7
NTP_4_2_7P440
util/ntp-keygen-opts.h@1.448 +3 -3
NTP_4_2_7P440
util/ntp-keygen.1ntp-keygenman@1.262 +6 -6
NTP_4_2_7P440
util/ntp-keygen.1ntp-keygenmdoc@1.262 +2 -2
NTP_4_2_7P440
util/ntp-keygen.html@1.110 +2 -2
NTP_4_2_7P440
util/ntp-keygen.man.in@1.262 +6 -6
NTP_4_2_7P440
util/ntp-keygen.mdoc.in@1.262 +2 -2
NTP_4_2_7P440
ChangeSet@1.3107.4.2, 2014-04-08 07:40:51+00:00, stenn@psp-fb1.ntp.org
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeLog@1.1468.1.2 +1 -0
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ntpd/ntpd.c@1.154 +46 -45
[Bug 2536] ntpd sandboxing support (libseccomp2) cleanup
ChangeSet@1.3107.4.1, 2014-04-03 10:22:48+00:00, stenn@deacon.udel.edu
NTP_4_2_7P439
TAG: NTP_4_2_7P439
ChangeLog@1.1468.1.1 +1 -0
NTP_4_2_7P439
ntpd/invoke-ntp.conf.texi@1.118 +1 -1
NTP_4_2_7P439
ntpd/invoke-ntp.keys.texi@1.116 +1 -1
NTP_4_2_7P439
ntpd/invoke-ntpd.texi@1.432 +2 -2
NTP_4_2_7P439
ntpd/ntp.conf.5man@1.152 +6 -6
NTP_4_2_7P439
ntpd/ntp.conf.5mdoc@1.152 +2 -2
NTP_4_2_7P439
ntpd/ntp.conf.html@1.113 +1 -1
NTP_4_2_7P439
ntpd/ntp.conf.man.in@1.152 +6 -6
NTP_4_2_7P439
ntpd/ntp.conf.mdoc.in@1.152 +2 -2
NTP_4_2_7P439
ntpd/ntp.keys.5man@1.150 +2 -2
NTP_4_2_7P439
ntpd/ntp.keys.5mdoc@1.150 +2 -2
NTP_4_2_7P439
ntpd/ntp.keys.html@1.114 +1 -1
NTP_4_2_7P439
ntpd/ntp.keys.man.in@1.150 +2 -2
NTP_4_2_7P439
ntpd/ntp.keys.mdoc.in@1.150 +2 -2
NTP_4_2_7P439
ntpd/ntpd-opts.c@1.450 +7 -7
NTP_4_2_7P439
ntpd/ntpd-opts.h@1.450 +3 -3
NTP_4_2_7P439
ntpd/ntpd.1ntpdman@1.261 +6 -6
NTP_4_2_7P439
ntpd/ntpd.1ntpdmdoc@1.261 +2 -2
NTP_4_2_7P439
ntpd/ntpd.html@1.108 +2 -2
NTP_4_2_7P439
ntpd/ntpd.man.in@1.261 +6 -6
NTP_4_2_7P439
ntpd/ntpd.mdoc.in@1.261 +2 -2
NTP_4_2_7P439
ntpdc/invoke-ntpdc.texi@1.430 +2 -2
NTP_4_2_7P439
ntpdc/ntpdc-opts.c@1.445 +7 -7
NTP_4_2_7P439
ntpdc/ntpdc-opts.h@1.445 +3 -3
NTP_4_2_7P439
ntpdc/ntpdc.1ntpdcman@1.261 +6 -6
NTP_4_2_7P439
ntpdc/ntpdc.1ntpdcmdoc@1.261 +2 -2
NTP_4_2_7P439
ntpdc/ntpdc.html@1.274 +2 -2
NTP_4_2_7P439
ntpdc/ntpdc.man.in@1.261 +6 -6
NTP_4_2_7P439
ntpdc/ntpdc.mdoc.in@1.261 +2 -2
NTP_4_2_7P439
ntpq/invoke-ntpq.texi@1.433 +2 -2
NTP_4_2_7P439
ntpq/ntpq-opts.c@1.447 +7 -7
NTP_4_2_7P439
ntpq/ntpq-opts.h@1.447 +3 -3
NTP_4_2_7P439
ntpq/ntpq.1ntpqman@1.261 +0 -475
NTP_4_2_7P439
ntpq/ntpq.1ntpqmdoc@1.261 +2 -2
NTP_4_2_7P439
ntpq/ntpq.html@1.105 +2 -2
NTP_4_2_7P439
ntpq/ntpq.man.in@1.261 +0 -475
NTP_4_2_7P439
ntpq/ntpq.mdoc.in@1.261 +2 -2
NTP_4_2_7P439
ntpsnmpd/invoke-ntpsnmpd.texi@1.432 +2 -2
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd-opts.c@1.447 +7 -7
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd-opts.h@1.447 +3 -3
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.261 +13 -13
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.261 +2 -2
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd.html@1.103 +1 -1
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd.man.in@1.261 +13 -13
NTP_4_2_7P439
ntpsnmpd/ntpsnmpd.mdoc.in@1.261 +2 -2
NTP_4_2_7P439
packageinfo.sh@1.443 +1 -1
NTP_4_2_7P439
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.23 +6 -6
NTP_4_2_7P439
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.23 +2 -2
NTP_4_2_7P439
scripts/calc_tickadj/calc_tickadj.html@1.22 +1 -1
NTP_4_2_7P439
scripts/calc_tickadj/calc_tickadj.man.in@1.22 +6 -6
NTP_4_2_7P439
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.23 +2 -2
NTP_4_2_7P439
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.24 +1 -1
NTP_4_2_7P439
scripts/invoke-plot_summary.texi@1.41 +1 -1
NTP_4_2_7P439
scripts/invoke-summary.texi@1.41 +1 -1
NTP_4_2_7P439
scripts/ntp-wait/invoke-ntp-wait.texi@1.250 +1 -1
NTP_4_2_7P439
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.251 +6 -6
NTP_4_2_7P439
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.251 +2 -2
NTP_4_2_7P439
scripts/ntp-wait/ntp-wait.html@1.267 +1 -1
NTP_4_2_7P439
scripts/ntp-wait/ntp-wait.man.in@1.251 +6 -6
NTP_4_2_7P439
scripts/ntp-wait/ntp-wait.mdoc.in@1.251 +2 -2
NTP_4_2_7P439
scripts/ntpsweep/invoke-ntpsweep.texi@1.39 +1 -1
NTP_4_2_7P439
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.30 +6 -6
NTP_4_2_7P439
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.30 +2 -2
NTP_4_2_7P439
scripts/ntpsweep/ntpsweep.html@1.40 +1 -1
NTP_4_2_7P439
scripts/ntpsweep/ntpsweep.man.in@1.30 +6 -6
NTP_4_2_7P439
scripts/ntpsweep/ntpsweep.mdoc.in@1.31 +2 -2
NTP_4_2_7P439
scripts/ntptrace/invoke-ntptrace.texi@1.39 +1 -1
NTP_4_2_7P439
scripts/ntptrace/ntptrace.1ntptraceman@1.30 +6 -6
NTP_4_2_7P439
scripts/ntptrace/ntptrace.1ntptracemdoc@1.30 +2 -2
NTP_4_2_7P439
scripts/ntptrace/ntptrace.html@1.40 +1 -1
NTP_4_2_7P439
scripts/ntptrace/ntptrace.man.in@1.30 +6 -6
NTP_4_2_7P439
scripts/ntptrace/ntptrace.mdoc.in@1.31 +2 -2
NTP_4_2_7P439
scripts/plot_summary.1plot_summaryman@1.41 +6 -6
NTP_4_2_7P439
scripts/plot_summary.1plot_summarymdoc@1.41 +2 -2
NTP_4_2_7P439
scripts/plot_summary.html@1.41 +1 -1
NTP_4_2_7P439
scripts/plot_summary.man.in@1.41 +6 -6
NTP_4_2_7P439
scripts/plot_summary.mdoc.in@1.41 +2 -2
NTP_4_2_7P439
scripts/summary.1summaryman@1.41 +6 -6
NTP_4_2_7P439
scripts/summary.1summarymdoc@1.41 +2 -2
NTP_4_2_7P439
scripts/summary.html@1.41 +1 -1
NTP_4_2_7P439
scripts/summary.man.in@1.41 +6 -6
NTP_4_2_7P439
scripts/summary.mdoc.in@1.41 +2 -2
NTP_4_2_7P439
sntp/invoke-sntp.texi@1.429 +2 -2
NTP_4_2_7P439
sntp/sntp-opts.c@1.444 +7 -7
NTP_4_2_7P439
sntp/sntp-opts.h@1.444 +3 -3
NTP_4_2_7P439
sntp/sntp.1sntpman@1.264 +6 -6
NTP_4_2_7P439
sntp/sntp.1sntpmdoc@1.264 +2 -2
NTP_4_2_7P439
sntp/sntp.html@1.444 +2 -2
NTP_4_2_7P439
sntp/sntp.man.in@1.264 +6 -6
NTP_4_2_7P439
sntp/sntp.mdoc.in@1.264 +2 -2
NTP_4_2_7P439
util/invoke-ntp-keygen.texi@1.433 +2 -2
NTP_4_2_7P439
util/ntp-keygen-opts.c@1.447 +7 -7
NTP_4_2_7P439
util/ntp-keygen-opts.h@1.447 +3 -3
NTP_4_2_7P439
util/ntp-keygen.1ntp-keygenman@1.261 +6 -6
NTP_4_2_7P439
util/ntp-keygen.1ntp-keygenmdoc@1.261 +2 -2
NTP_4_2_7P439
util/ntp-keygen.html@1.109 +2 -2
NTP_4_2_7P439
util/ntp-keygen.man.in@1.261 +6 -6
NTP_4_2_7P439
util/ntp-keygen.mdoc.in@1.261 +2 -2
NTP_4_2_7P439
ChangeSet@1.3107.1.35, 2014-04-02 20:26:10+02:00, jnperlin@hydra.(none)
[Bug 2570] cleanup: log format for successful leapfile load
ChangeLog@1.1469 +1 -0
[Bug 2570] cleanup: log format for successful leapfile load
ntpd/ntp_leapsec.c@1.9 +1 -1
[Bug 2570] cleanup: log format for successful leapfile load
ChangeSet@1.3107.1.34, 2014-04-02 03:00:46-04:00, stenn@deacon.udel.edu
[Bug 2589] fix VS2009 compile problem
ChangeLog@1.1468 +1 -0
[Bug 2589] fix VS2009 compile problem
ports/winnt/vs2008/libntp/libntp.vcproj@1.50 +10 -2
[Bug 2589] fix VS2009 compile problem
ChangeSet@1.3107.1.33, 2014-04-01 10:50:09+00:00, stenn@deacon.udel.edu
NTP_4_2_7P438
TAG: NTP_4_2_7P438
ChangeLog@1.1467 +1 -0
NTP_4_2_7P438
ntpd/invoke-ntp.conf.texi@1.117 +1 -1
NTP_4_2_7P438
ntpd/invoke-ntp.keys.texi@1.115 +1 -1
NTP_4_2_7P438
ntpd/invoke-ntpd.texi@1.431 +2 -2
NTP_4_2_7P438
ntpd/ntp.conf.5man@1.151 +6 -6
NTP_4_2_7P438
ntpd/ntp.conf.5mdoc@1.151 +2 -2
NTP_4_2_7P438
ntpd/ntp.conf.html@1.112 +1 -1
NTP_4_2_7P438
ntpd/ntp.conf.man.in@1.151 +6 -6
NTP_4_2_7P438
ntpd/ntp.conf.mdoc.in@1.151 +2 -2
NTP_4_2_7P438
ntpd/ntp.keys.5man@1.149 +2 -2
NTP_4_2_7P438
ntpd/ntp.keys.5mdoc@1.149 +2 -2
NTP_4_2_7P438
ntpd/ntp.keys.html@1.113 +1 -1
NTP_4_2_7P438
ntpd/ntp.keys.man.in@1.149 +2 -2
NTP_4_2_7P438
ntpd/ntp.keys.mdoc.in@1.149 +2 -2
NTP_4_2_7P438
ntpd/ntpd-opts.c@1.449 +7 -7
NTP_4_2_7P438
ntpd/ntpd-opts.h@1.449 +3 -3
NTP_4_2_7P438
ntpd/ntpd.1ntpdman@1.260 +6 -6
NTP_4_2_7P438
ntpd/ntpd.1ntpdmdoc@1.260 +2 -2
NTP_4_2_7P438
ntpd/ntpd.html@1.107 +2 -2
NTP_4_2_7P438
ntpd/ntpd.man.in@1.260 +6 -6
NTP_4_2_7P438
ntpd/ntpd.mdoc.in@1.260 +2 -2
NTP_4_2_7P438
ntpdc/invoke-ntpdc.texi@1.429 +2 -2
NTP_4_2_7P438
ntpdc/ntpdc-opts.c@1.444 +7 -7
NTP_4_2_7P438
ntpdc/ntpdc-opts.h@1.444 +3 -3
NTP_4_2_7P438
ntpdc/ntpdc.1ntpdcman@1.260 +6 -6
NTP_4_2_7P438
ntpdc/ntpdc.1ntpdcmdoc@1.260 +2 -2
NTP_4_2_7P438
ntpdc/ntpdc.html@1.273 +2 -2
NTP_4_2_7P438
ntpdc/ntpdc.man.in@1.260 +6 -6
NTP_4_2_7P438
ntpdc/ntpdc.mdoc.in@1.260 +2 -2
NTP_4_2_7P438
ntpq/invoke-ntpq.texi@1.432 +2 -2
NTP_4_2_7P438
ntpq/ntpq-opts.c@1.446 +7 -7
NTP_4_2_7P438
ntpq/ntpq-opts.h@1.446 +3 -3
NTP_4_2_7P438
ntpq/ntpq.1ntpqman@1.260 +6 -6
NTP_4_2_7P438
ntpq/ntpq.1ntpqmdoc@1.260 +2 -2
NTP_4_2_7P438
ntpq/ntpq.html@1.104 +2 -2
NTP_4_2_7P438
ntpq/ntpq.man.in@1.260 +6 -6
NTP_4_2_7P438
ntpq/ntpq.mdoc.in@1.260 +2 -2
NTP_4_2_7P438
ntpsnmpd/invoke-ntpsnmpd.texi@1.431 +2 -2
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd-opts.c@1.446 +7 -7
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd-opts.h@1.446 +3 -3
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.260 +6 -6
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.260 +2 -2
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd.html@1.102 +1 -1
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd.man.in@1.260 +6 -6
NTP_4_2_7P438
ntpsnmpd/ntpsnmpd.mdoc.in@1.260 +2 -2
NTP_4_2_7P438
packageinfo.sh@1.442 +1 -1
NTP_4_2_7P438
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.22 +6 -6
NTP_4_2_7P438
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.22 +2 -2
NTP_4_2_7P438
scripts/calc_tickadj/calc_tickadj.html@1.21 +1 -1
NTP_4_2_7P438
scripts/calc_tickadj/calc_tickadj.man.in@1.21 +6 -6
NTP_4_2_7P438
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.22 +2 -2
NTP_4_2_7P438
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.23 +1 -1
NTP_4_2_7P438
scripts/invoke-plot_summary.texi@1.40 +1 -1
NTP_4_2_7P438
scripts/invoke-summary.texi@1.40 +1 -1
NTP_4_2_7P438
scripts/ntp-wait/invoke-ntp-wait.texi@1.249 +1 -1
NTP_4_2_7P438
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.250 +6 -6
NTP_4_2_7P438
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.250 +2 -2
NTP_4_2_7P438
scripts/ntp-wait/ntp-wait.html@1.266 +1 -1
NTP_4_2_7P438
scripts/ntp-wait/ntp-wait.man.in@1.250 +6 -6
NTP_4_2_7P438
scripts/ntp-wait/ntp-wait.mdoc.in@1.250 +2 -2
NTP_4_2_7P438
scripts/ntpsweep/invoke-ntpsweep.texi@1.38 +1 -1
NTP_4_2_7P438
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.29 +6 -6
NTP_4_2_7P438
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.29 +2 -2
NTP_4_2_7P438
scripts/ntpsweep/ntpsweep.html@1.39 +1 -1
NTP_4_2_7P438
scripts/ntpsweep/ntpsweep.man.in@1.29 +6 -6
NTP_4_2_7P438
scripts/ntpsweep/ntpsweep.mdoc.in@1.30 +2 -2
NTP_4_2_7P438
scripts/ntptrace/invoke-ntptrace.texi@1.38 +1 -1
NTP_4_2_7P438
scripts/ntptrace/ntptrace.1ntptraceman@1.29 +6 -6
NTP_4_2_7P438
scripts/ntptrace/ntptrace.1ntptracemdoc@1.29 +2 -2
NTP_4_2_7P438
scripts/ntptrace/ntptrace.html@1.39 +1 -1
NTP_4_2_7P438
scripts/ntptrace/ntptrace.man.in@1.29 +6 -6
NTP_4_2_7P438
scripts/ntptrace/ntptrace.mdoc.in@1.30 +2 -2
NTP_4_2_7P438
scripts/plot_summary.1plot_summaryman@1.40 +6 -6
NTP_4_2_7P438
scripts/plot_summary.1plot_summarymdoc@1.40 +2 -2
NTP_4_2_7P438
scripts/plot_summary.html@1.40 +1 -1
NTP_4_2_7P438
scripts/plot_summary.man.in@1.40 +6 -6
NTP_4_2_7P438
scripts/plot_summary.mdoc.in@1.40 +2 -2
NTP_4_2_7P438
scripts/summary.1summaryman@1.40 +6 -6
NTP_4_2_7P438
scripts/summary.1summarymdoc@1.40 +2 -2
NTP_4_2_7P438
scripts/summary.html@1.40 +1 -1
NTP_4_2_7P438
scripts/summary.man.in@1.40 +6 -6
NTP_4_2_7P438
scripts/summary.mdoc.in@1.40 +2 -2
NTP_4_2_7P438
sntp/invoke-sntp.texi@1.428 +2 -2
NTP_4_2_7P438
sntp/sntp-opts.c@1.443 +7 -7
NTP_4_2_7P438
sntp/sntp-opts.h@1.443 +3 -3
NTP_4_2_7P438
sntp/sntp.1sntpman@1.263 +6 -6
NTP_4_2_7P438
sntp/sntp.1sntpmdoc@1.263 +2 -2
NTP_4_2_7P438
sntp/sntp.html@1.443 +2 -2
NTP_4_2_7P438
sntp/sntp.man.in@1.263 +6 -6
NTP_4_2_7P438
sntp/sntp.mdoc.in@1.263 +2 -2
NTP_4_2_7P438
util/invoke-ntp-keygen.texi@1.432 +2 -2
NTP_4_2_7P438
util/ntp-keygen-opts.c@1.446 +7 -7
NTP_4_2_7P438
util/ntp-keygen-opts.h@1.446 +3 -3
NTP_4_2_7P438
util/ntp-keygen.1ntp-keygenman@1.260 +6 -6
NTP_4_2_7P438
util/ntp-keygen.1ntp-keygenmdoc@1.260 +2 -2
NTP_4_2_7P438
util/ntp-keygen.html@1.108 +2 -2
NTP_4_2_7P438
util/ntp-keygen.man.in@1.260 +6 -6
NTP_4_2_7P438
util/ntp-keygen.mdoc.in@1.260 +2 -2
NTP_4_2_7P438
ChangeSet@1.3107.1.32, 2014-04-01 02:26:13-04:00, stenn@deacon.udel.edu
Windows build documentation updates
ChangeLog@1.1466 +1 -0
Windows build documentation updates
html/hints/winnt.html@1.23 +6 -5
Windows build documentation updates
ChangeSet@1.3107.1.31, 2014-03-31 10:52:43+00:00, stenn@deacon.udel.edu
NTP_4_2_7P437
TAG: NTP_4_2_7P437
ChangeLog@1.1465 +1 -0
NTP_4_2_7P437
ntpd/invoke-ntp.conf.texi@1.116 +1 -1
NTP_4_2_7P437
ntpd/invoke-ntp.keys.texi@1.114 +1 -1
NTP_4_2_7P437
ntpd/invoke-ntpd.texi@1.430 +2 -2
NTP_4_2_7P437
ntpd/ntp.conf.5man@1.150 +6 -6
NTP_4_2_7P437
ntpd/ntp.conf.5mdoc@1.150 +1 -1
NTP_4_2_7P437
ntpd/ntp.conf.html@1.111 +1 -1
NTP_4_2_7P437
ntpd/ntp.conf.man.in@1.150 +6 -6
NTP_4_2_7P437
ntpd/ntp.conf.mdoc.in@1.150 +1 -1
NTP_4_2_7P437
ntpd/ntp.keys.5man@1.148 +2 -2
NTP_4_2_7P437
ntpd/ntp.keys.5mdoc@1.148 +1 -1
NTP_4_2_7P437
ntpd/ntp.keys.html@1.112 +1 -1
NTP_4_2_7P437
ntpd/ntp.keys.man.in@1.148 +2 -2
NTP_4_2_7P437
ntpd/ntp.keys.mdoc.in@1.148 +1 -1
NTP_4_2_7P437
ntpd/ntpd-opts.c@1.448 +7 -7
NTP_4_2_7P437
ntpd/ntpd-opts.h@1.448 +3 -3
NTP_4_2_7P437
ntpd/ntpd.1ntpdman@1.259 +6 -6
NTP_4_2_7P437
ntpd/ntpd.1ntpdmdoc@1.259 +1 -1
NTP_4_2_7P437
ntpd/ntpd.html@1.106 +4 -4
NTP_4_2_7P437
ntpd/ntpd.man.in@1.259 +6 -6
NTP_4_2_7P437
ntpd/ntpd.mdoc.in@1.259 +1 -1
NTP_4_2_7P437
ntpdc/invoke-ntpdc.texi@1.428 +2 -2
NTP_4_2_7P437
ntpdc/ntpdc-opts.c@1.443 +7 -7
NTP_4_2_7P437
ntpdc/ntpdc-opts.h@1.443 +3 -3
NTP_4_2_7P437
ntpdc/ntpdc.1ntpdcman@1.259 +6 -6
NTP_4_2_7P437
ntpdc/ntpdc.1ntpdcmdoc@1.259 +1 -1
NTP_4_2_7P437
ntpdc/ntpdc.html@1.272 +2 -2
NTP_4_2_7P437
ntpdc/ntpdc.man.in@1.259 +6 -6
NTP_4_2_7P437
ntpdc/ntpdc.mdoc.in@1.259 +1 -1
NTP_4_2_7P437
ntpq/invoke-ntpq.texi@1.431 +2 -2
NTP_4_2_7P437
ntpq/ntpq-opts.c@1.445 +7 -7
NTP_4_2_7P437
ntpq/ntpq-opts.h@1.445 +3 -3
NTP_4_2_7P437
ntpq/ntpq.1ntpqman@1.259 +6 -6
NTP_4_2_7P437
ntpq/ntpq.1ntpqmdoc@1.259 +1 -1
NTP_4_2_7P437
ntpq/ntpq.html@1.103 +2 -2
NTP_4_2_7P437
ntpq/ntpq.man.in@1.259 +6 -6
NTP_4_2_7P437
ntpq/ntpq.mdoc.in@1.259 +1 -1
NTP_4_2_7P437
ntpsnmpd/invoke-ntpsnmpd.texi@1.430 +2 -2
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd-opts.c@1.445 +7 -7
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd-opts.h@1.445 +3 -3
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.259 +6 -6
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.259 +1 -1
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd.html@1.101 +1 -1
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd.man.in@1.259 +6 -6
NTP_4_2_7P437
ntpsnmpd/ntpsnmpd.mdoc.in@1.259 +1 -1
NTP_4_2_7P437
packageinfo.sh@1.441 +1 -1
NTP_4_2_7P437
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.21 +6 -6
NTP_4_2_7P437
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.21 +1 -1
NTP_4_2_7P437
scripts/calc_tickadj/calc_tickadj.html@1.20 +1 -1
NTP_4_2_7P437
scripts/calc_tickadj/calc_tickadj.man.in@1.20 +6 -6
NTP_4_2_7P437
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.21 +1 -1
NTP_4_2_7P437
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.22 +1 -1
NTP_4_2_7P437
scripts/invoke-plot_summary.texi@1.39 +1 -1
NTP_4_2_7P437
scripts/invoke-summary.texi@1.39 +1 -1
NTP_4_2_7P437
scripts/ntp-wait/invoke-ntp-wait.texi@1.248 +1 -1
NTP_4_2_7P437
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.249 +6 -6
NTP_4_2_7P437
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.249 +1 -1
NTP_4_2_7P437
scripts/ntp-wait/ntp-wait.html@1.265 +1 -1
NTP_4_2_7P437
scripts/ntp-wait/ntp-wait.man.in@1.249 +6 -6
NTP_4_2_7P437
scripts/ntp-wait/ntp-wait.mdoc.in@1.249 +1 -1
NTP_4_2_7P437
scripts/ntpsweep/invoke-ntpsweep.texi@1.37 +1 -1
NTP_4_2_7P437
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.28 +6 -6
NTP_4_2_7P437
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.28 +1 -1
NTP_4_2_7P437
scripts/ntpsweep/ntpsweep.html@1.38 +1 -1
NTP_4_2_7P437
scripts/ntpsweep/ntpsweep.man.in@1.28 +6 -6
NTP_4_2_7P437
scripts/ntpsweep/ntpsweep.mdoc.in@1.29 +1 -1
NTP_4_2_7P437
scripts/ntptrace/invoke-ntptrace.texi@1.37 +1 -1
NTP_4_2_7P437
scripts/ntptrace/ntptrace.1ntptraceman@1.28 +6 -6
NTP_4_2_7P437
scripts/ntptrace/ntptrace.1ntptracemdoc@1.28 +1 -1
NTP_4_2_7P437
scripts/ntptrace/ntptrace.html@1.38 +1 -1
NTP_4_2_7P437
scripts/ntptrace/ntptrace.man.in@1.28 +6 -6
NTP_4_2_7P437
scripts/ntptrace/ntptrace.mdoc.in@1.29 +1 -1
NTP_4_2_7P437
scripts/plot_summary.1plot_summaryman@1.39 +6 -6
NTP_4_2_7P437
scripts/plot_summary.1plot_summarymdoc@1.39 +1 -1
NTP_4_2_7P437
scripts/plot_summary.html@1.39 +1 -1
NTP_4_2_7P437
scripts/plot_summary.man.in@1.39 +6 -6
NTP_4_2_7P437
scripts/plot_summary.mdoc.in@1.39 +1 -1
NTP_4_2_7P437
scripts/summary.1summaryman@1.39 +6 -6
NTP_4_2_7P437
scripts/summary.1summarymdoc@1.39 +1 -1
NTP_4_2_7P437
scripts/summary.html@1.39 +1 -1
NTP_4_2_7P437
scripts/summary.man.in@1.39 +6 -6
NTP_4_2_7P437
scripts/summary.mdoc.in@1.39 +1 -1
NTP_4_2_7P437
sntp/invoke-sntp.texi@1.427 +2 -2
NTP_4_2_7P437
sntp/sntp-opts.c@1.442 +7 -7
NTP_4_2_7P437
sntp/sntp-opts.h@1.442 +3 -3
NTP_4_2_7P437
sntp/sntp.1sntpman@1.262 +6 -6
NTP_4_2_7P437
sntp/sntp.1sntpmdoc@1.262 +1 -1
NTP_4_2_7P437
sntp/sntp.html@1.442 +2 -2
NTP_4_2_7P437
sntp/sntp.man.in@1.262 +6 -6
NTP_4_2_7P437
sntp/sntp.mdoc.in@1.262 +1 -1
NTP_4_2_7P437
util/invoke-ntp-keygen.texi@1.431 +2 -2
NTP_4_2_7P437
util/ntp-keygen-opts.c@1.445 +7 -7
NTP_4_2_7P437
util/ntp-keygen-opts.h@1.445 +3 -3
NTP_4_2_7P437
util/ntp-keygen.1ntp-keygenman@1.259 +6 -6
NTP_4_2_7P437
util/ntp-keygen.1ntp-keygenmdoc@1.259 +1 -1
NTP_4_2_7P437
util/ntp-keygen.html@1.107 +2 -2
NTP_4_2_7P437
util/ntp-keygen.man.in@1.259 +6 -6
NTP_4_2_7P437
util/ntp-keygen.mdoc.in@1.259 +1 -1
NTP_4_2_7P437
ChangeSet@1.3107.1.30, 2014-03-31 04:06:33-04:00, stenn@deacon.udel.edu
[Bug 2537] ntpd truncates symmetric keys to 20 bytes
ChangeLog@1.1464 +1 -0
[Bug 2537] ntpd truncates symmetric keys to 20 bytes
libntp/authreadkeys.c@1.19 +2 -2
[Bug 2537] ntpd truncates symmetric keys to 20 bytes
ChangeSet@1.3107.1.29, 2014-03-31 07:53:05+00:00, stenn@psp-fb1.ntp.org
[Bug 2546] Documentation updates
ChangeLog@1.1463 +1 -0
[Bug 2546] Documentation updates
ChangeSet@1.3107.3.1, 2014-03-31 07:50:34+00:00, stenn@psp-fb1.ntp.org
[Bug 2546] Documentation updates
ChangeLog@1.1453.1.1 +1 -0
[Bug 2546] Documentation updates
html/build.html@1.26 +3 -3
[Bug 2546] Documentation updates
html/drivers/driver20.html@1.28 +5 -1
[Bug 2546] Documentation updates
html/drivers/driver22.html@1.21 +4 -3
[Bug 2546] Documentation updates
html/hints/winnt.html@1.22 +11 -109
[Bug 2546] Documentation updates
html/index.html@1.46 +3 -3
[Bug 2546] Documentation updates
ChangeSet@1.3107.1.27, 2014-03-31 06:48:04+00:00, stenn@deacon.udel.edu
NTP_4_2_7P436
TAG: NTP_4_2_7P436
ChangeLog@1.1461 +1 -0
NTP_4_2_7P436
ntpd/invoke-ntp.conf.texi@1.115 +1 -1
NTP_4_2_7P436
ntpd/invoke-ntp.keys.texi@1.113 +1 -1
NTP_4_2_7P436
ntpd/invoke-ntpd.texi@1.429 +4 -4
NTP_4_2_7P436
ntpd/ntp.conf.5man@1.149 +32 -3
NTP_4_2_7P436
ntpd/ntp.conf.5mdoc@1.149 +20 -1
NTP_4_2_7P436
ntpd/ntp.conf.html@1.110 +91 -104
NTP_4_2_7P436
ntpd/ntp.conf.man.in@1.149 +32 -3
NTP_4_2_7P436
ntpd/ntp.conf.mdoc.in@1.149 +20 -1
NTP_4_2_7P436
ntpd/ntp.keys.5man@1.147 +21 -2
NTP_4_2_7P436
ntpd/ntp.keys.5mdoc@1.147 +21 -2
NTP_4_2_7P436
ntpd/ntp.keys.html@1.111 +17 -29
NTP_4_2_7P436
ntpd/ntp.keys.man.in@1.147 +21 -2
NTP_4_2_7P436
ntpd/ntp.keys.mdoc.in@1.147 +21 -2
NTP_4_2_7P436
ntpd/ntpd-opts.c@1.447 +7 -7
NTP_4_2_7P436
ntpd/ntpd-opts.h@1.447 +3 -3
NTP_4_2_7P436
ntpd/ntpd.1ntpdman@1.258 +32 -3
NTP_4_2_7P436
ntpd/ntpd.1ntpdmdoc@1.258 +20 -1
NTP_4_2_7P436
ntpd/ntpd.html@1.105 +100 -142
NTP_4_2_7P436
ntpd/ntpd.man.in@1.258 +32 -3
NTP_4_2_7P436
ntpd/ntpd.mdoc.in@1.258 +20 -1
NTP_4_2_7P436
ntpdc/invoke-ntpdc.texi@1.427 +2 -2
NTP_4_2_7P436
ntpdc/ntpdc-opts.c@1.442 +7 -7
NTP_4_2_7P436
ntpdc/ntpdc-opts.h@1.442 +3 -3
NTP_4_2_7P436
ntpdc/ntpdc.1ntpdcman@1.258 +32 -3
NTP_4_2_7P436
ntpdc/ntpdc.1ntpdcmdoc@1.258 +20 -1
NTP_4_2_7P436
ntpdc/ntpdc.html@1.271 +57 -77
NTP_4_2_7P436
ntpdc/ntpdc.man.in@1.258 +32 -3
NTP_4_2_7P436
ntpdc/ntpdc.mdoc.in@1.258 +20 -1
NTP_4_2_7P436
ntpq/invoke-ntpq.texi@1.430 +2 -2
NTP_4_2_7P436
ntpq/ntpq-opts.c@1.444 +7 -7
NTP_4_2_7P436
ntpq/ntpq-opts.h@1.444 +3 -3
NTP_4_2_7P436
ntpq/ntpq.1ntpqman@1.258 +32 -3
NTP_4_2_7P436
ntpq/ntpq.1ntpqmdoc@1.258 +20 -1
NTP_4_2_7P436
ntpq/ntpq.html@1.102 +97 -119
NTP_4_2_7P436
ntpq/ntpq.man.in@1.258 +32 -3
NTP_4_2_7P436
ntpq/ntpq.mdoc.in@1.258 +20 -1
NTP_4_2_7P436
ntpsnmpd/invoke-ntpsnmpd.texi@1.429 +2 -2
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd-opts.c@1.444 +7 -7
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd-opts.h@1.444 +3 -3
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.258 +32 -3
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.258 +20 -1
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd.html@1.100 +10 -14
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd.man.in@1.258 +32 -3
NTP_4_2_7P436
ntpsnmpd/ntpsnmpd.mdoc.in@1.258 +20 -1
NTP_4_2_7P436
packageinfo.sh@1.440 +1 -1
NTP_4_2_7P436
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.20 +32 -3
NTP_4_2_7P436
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.20 +20 -1
NTP_4_2_7P436
scripts/calc_tickadj/calc_tickadj.html@1.19 +22 -34
NTP_4_2_7P436
scripts/calc_tickadj/calc_tickadj.man.in@1.19 +32 -3
NTP_4_2_7P436
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.20 +20 -1
NTP_4_2_7P436
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.21 +1 -1
NTP_4_2_7P436
scripts/invoke-plot_summary.texi@1.38 +1 -1
NTP_4_2_7P436
scripts/invoke-summary.texi@1.38 +1 -1
NTP_4_2_7P436
scripts/ntp-wait/invoke-ntp-wait.texi@1.247 +1 -1
NTP_4_2_7P436
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.248 +32 -3
NTP_4_2_7P436
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.248 +20 -1
NTP_4_2_7P436
scripts/ntp-wait/ntp-wait.html@1.264 +30 -48
NTP_4_2_7P436
scripts/ntp-wait/ntp-wait.man.in@1.248 +32 -3
NTP_4_2_7P436
scripts/ntp-wait/ntp-wait.mdoc.in@1.248 +20 -1
NTP_4_2_7P436
scripts/ntpsweep/invoke-ntpsweep.texi@1.36 +1 -1
NTP_4_2_7P436
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.27 +32 -3
NTP_4_2_7P436
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.27 +20 -1
NTP_4_2_7P436
scripts/ntpsweep/ntpsweep.html@1.37 +32 -43
NTP_4_2_7P436
scripts/ntpsweep/ntpsweep.man.in@1.27 +32 -3
NTP_4_2_7P436
scripts/ntpsweep/ntpsweep.mdoc.in@1.28 +20 -1
NTP_4_2_7P436
scripts/ntptrace/invoke-ntptrace.texi@1.36 +1 -1
NTP_4_2_7P436
scripts/ntptrace/ntptrace.1ntptraceman@1.27 +32 -3
NTP_4_2_7P436
scripts/ntptrace/ntptrace.1ntptracemdoc@1.27 +20 -1
NTP_4_2_7P436
scripts/ntptrace/ntptrace.html@1.37 +26 -35
NTP_4_2_7P436
scripts/ntptrace/ntptrace.man.in@1.27 +32 -3
NTP_4_2_7P436
scripts/ntptrace/ntptrace.mdoc.in@1.28 +20 -1
NTP_4_2_7P436
scripts/plot_summary.1plot_summaryman@1.38 +33 -3
NTP_4_2_7P436
scripts/plot_summary.1plot_summarymdoc@1.38 +21 -1
NTP_4_2_7P436
scripts/plot_summary.html@1.38 +28 -46
NTP_4_2_7P436
scripts/plot_summary.man.in@1.38 +33 -3
NTP_4_2_7P436
scripts/plot_summary.mdoc.in@1.38 +21 -1
NTP_4_2_7P436
scripts/summary.1summaryman@1.38 +32 -3
NTP_4_2_7P436
scripts/summary.1summarymdoc@1.38 +20 -1
NTP_4_2_7P436
scripts/summary.html@1.38 +26 -38
NTP_4_2_7P436
scripts/summary.man.in@1.38 +32 -3
NTP_4_2_7P436
scripts/summary.mdoc.in@1.38 +20 -1
NTP_4_2_7P436
sntp/invoke-sntp.texi@1.426 +2 -2
NTP_4_2_7P436
sntp/sntp-opts.c@1.441 +7 -7
NTP_4_2_7P436
sntp/sntp-opts.h@1.441 +3 -3
NTP_4_2_7P436
sntp/sntp.1sntpman@1.261 +32 -3
NTP_4_2_7P436
sntp/sntp.1sntpmdoc@1.261 +20 -1
NTP_4_2_7P436
sntp/sntp.html@1.441 +85 -109
NTP_4_2_7P436
sntp/sntp.man.in@1.261 +32 -3
NTP_4_2_7P436
sntp/sntp.mdoc.in@1.261 +20 -1
NTP_4_2_7P436
util/invoke-ntp-keygen.texi@1.430 +2 -2
NTP_4_2_7P436
util/ntp-keygen-opts.c@1.444 +7 -7
NTP_4_2_7P436
util/ntp-keygen-opts.h@1.444 +3 -3
NTP_4_2_7P436
util/ntp-keygen.1ntp-keygenman@1.258 +32 -3
NTP_4_2_7P436
util/ntp-keygen.1ntp-keygenmdoc@1.258 +20 -1
NTP_4_2_7P436
util/ntp-keygen.html@1.106 +124 -183
NTP_4_2_7P436
util/ntp-keygen.man.in@1.258 +32 -3
NTP_4_2_7P436
util/ntp-keygen.mdoc.in@1.258 +20 -1
NTP_4_2_7P436
ChangeSet@1.3107.1.26, 2014-03-31 04:52:47+00:00, stenn@psp-fb1.ntp.org
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ChangeLog@1.1460 +4 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/invoke-ntp.conf.texi@1.114 +1 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/invoke-ntp.keys.texi@1.112 +1 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/invoke-ntpd.texi@1.428 +3 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.5man@1.148 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.5mdoc@1.148 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.def@1.12 +0 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.html@1.109 +104 -92
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.man.in@1.148 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.conf.mdoc.in@1.148 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.5man@1.146 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.5mdoc@1.146 +3 -23
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.def@1.10 +0 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.html@1.110 +29 -18
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.man.in@1.146 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntp.keys.mdoc.in@1.146 +3 -23
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd-opts.c@1.446 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd-opts.def@1.11 +0 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd-opts.h@1.446 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd.1ntpdman@1.257 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd.1ntpdmdoc@1.257 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd.html@1.104 +143 -101
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd.man.in@1.257 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpd.mdoc.in@1.257 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpdsim-opts.c@1.23 +196 -195
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpd/ntpdsim-opts.h@1.23 +16 -11
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/invoke-ntpdc.texi@1.426 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc-opts.c@1.441 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc-opts.h@1.441 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc.1ntpdcman@1.257 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc.1ntpdcmdoc@1.257 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc.html@1.270 +75 -55
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc.man.in@1.257 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpdc/ntpdc.mdoc.in@1.257 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/invoke-ntpq.texi@1.429 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq-opts.c@1.443 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq-opts.h@1.443 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq.1ntpqman@1.257 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq.1ntpqmdoc@1.257 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq.html@1.101 +118 -96
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq.man.in@1.257 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpq/ntpq.mdoc.in@1.257 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/invoke-ntpsnmpd.texi@1.428 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd-opts.c@1.443 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd-opts.def@1.10 +0 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd-opts.h@1.443 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.257 +3 -36
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.257 +2 -23
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd.html@1.99 +13 -9
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd.man.in@1.257 +3 -36
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ntpsnmpd/ntpsnmpd.mdoc.in@1.257 +2 -23
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj-opts@1.3 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.19 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.19 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj.html@1.18 +34 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj.man.in@1.18 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.19 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.20 +2 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/invoke-plot_summary.texi@1.37 +2 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/invoke-summary.texi@1.37 +2 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/invoke-ntp-wait.texi@1.246 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.247 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.247 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/ntp-wait.html@1.263 +47 -29
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/ntp-wait.man.in@1.247 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntp-wait/ntp-wait.mdoc.in@1.247 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/invoke-ntpsweep.texi@1.35 +2 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep-opts@1.3 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.26 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.26 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep.html@1.36 +43 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep.man.in@1.26 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntpsweep/ntpsweep.mdoc.in@1.27 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/invoke-ntptrace.texi@1.35 +2 -2
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace-opts@1.3 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace.1ntptraceman@1.26 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace.1ntptracemdoc@1.26 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace.html@1.36 +35 -26
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace.man.in@1.26 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/ntptrace/ntptrace.mdoc.in@1.27 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary-opts@1.3 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary.1plot_summaryman@1.37 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary.1plot_summarymdoc@1.37 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary.html@1.37 +46 -28
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary.man.in@1.37 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/plot_summary.mdoc.in@1.37 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary-opts@1.3 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary.1summaryman@1.37 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary.1summarymdoc@1.37 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary.html@1.37 +38 -26
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary.man.in@1.37 +3 -32
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
scripts/summary.mdoc.in@1.37 +2 -21
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/ag-tpl/perlopt.tpl@1.3 +66 -55
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/include/autogen-version.def@1.20 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/include/copyright.def@1.23 +8 -4
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/invoke-sntp.texi@1.425 +1 -4
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp-opts.c@1.440 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp-opts.def@1.43 +0 -9
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp-opts.h@1.440 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp.1sntpman@1.260 +4 -38
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp.1sntpmdoc@1.260 +3 -25
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp.html@1.440 +104 -91
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp.man.in@1.260 +4 -38
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
sntp/sntp.mdoc.in@1.260 +3 -25
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/invoke-ntp-keygen.texi@1.429 +1 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen-opts.c@1.443 +6 -6
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen-opts.def@1.26 +0 -1
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen-opts.h@1.443 +8 -3
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen.1ntp-keygenman@1.257 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen.1ntp-keygenmdoc@1.257 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen.html@1.105 +182 -123
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen.man.in@1.257 +3 -33
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
util/ntp-keygen.mdoc.in@1.257 +2 -22
* Update to libopts-40.2.15, and autogen-5.18.3pre18.
* [Bug 2311] Add more tags to mdoc2xxx.
* [Bug 2502] Assorted text replacement errors in 4.2.7p345
* [Bug 2538] ntp programs print exit code as part of the "usage" text.
ChangeSet@1.3107.1.25, 2014-03-29 23:11:12+00:00, stenn@psp-fb1.ntp.org
Update to libopts-40.2.15
ChangeLog@1.1459 +1 -0
Update to libopts-40.2.15
sntp/libopts/COPYING.gplv3@1.7 +1 -1
Update to libopts-40.2.15
sntp/libopts/COPYING.lgplv3@1.7 +1 -1
Update to libopts-40.2.15
sntp/libopts/Makefile.am@1.24 +1 -1
Update to libopts-40.2.15
sntp/libopts/README@1.9 +1 -1
Update to libopts-40.2.15
sntp/libopts/ag-char-map.h@1.27 +2 -2
Update to libopts-40.2.15
sntp/libopts/alias.c@1.7 +1 -1
Update to libopts-40.2.15
sntp/libopts/ao-strs.c@1.13 +2 -2
Update to libopts-40.2.15
sntp/libopts/ao-strs.h@1.12 +2 -2
Update to libopts-40.2.15
sntp/libopts/autoopts.c@1.19 +1 -1
Update to libopts-40.2.15
sntp/libopts/autoopts.h@1.17 +11 -1
Update to libopts-40.2.15
sntp/libopts/autoopts/options.h@1.26 +6 -6
Update to libopts-40.2.15
sntp/libopts/autoopts/project.h@1.7 +1 -1
Update to libopts-40.2.15
sntp/libopts/autoopts/usage-txt.h@1.26 +7 -7
Update to libopts-40.2.15
sntp/libopts/boolean.c@1.14 +14 -19
Update to libopts-40.2.15
sntp/libopts/check.c@1.7 +1 -1
Update to libopts-40.2.15
sntp/libopts/compat/compat.h@1.15 +1 -1
Update to libopts-40.2.15
sntp/libopts/compat/windows-config.h@1.13 +1 -1
Update to libopts-40.2.15
sntp/libopts/configfile.c@1.21 +1 -1
Update to libopts-40.2.15
sntp/libopts/cook.c@1.14 +1 -1
Update to libopts-40.2.15
sntp/libopts/enum.c@1.10 +1 -1
Update to libopts-40.2.15
sntp/libopts/env.c@1.8 +1 -1
Update to libopts-40.2.15
sntp/libopts/file.c@1.14 +1 -1
Update to libopts-40.2.15
sntp/libopts/find.c@1.10 +1 -1
Update to libopts-40.2.15
sntp/libopts/genshell.c@1.27 +9 -9
Update to libopts-40.2.15
sntp/libopts/genshell.h@1.27 +9 -4
Update to libopts-40.2.15
sntp/libopts/gettext.h@1.3 +1 -1
Update to libopts-40.2.15
sntp/libopts/init.c@1.6 +1 -1
Update to libopts-40.2.15
sntp/libopts/load.c@1.19 +1 -1
Update to libopts-40.2.15
sntp/libopts/m4/libopts.m4@1.30 +5 -5
Update to libopts-40.2.15
sntp/libopts/m4/liboptschk.m4@1.12 +1 -1
Update to libopts-40.2.15
sntp/libopts/makeshell.c@1.17 +1 -1
Update to libopts-40.2.15
sntp/libopts/nested.c@1.14 +75 -52
Update to libopts-40.2.15
sntp/libopts/numeric.c@1.13 +8 -1
Update to libopts-40.2.15
sntp/libopts/option-value-type.c@1.14 +1 -1
Update to libopts-40.2.15
sntp/libopts/option-value-type.h@1.28 +1 -1
Update to libopts-40.2.15
sntp/libopts/option-xat-attribute.c@1.14 +1 -1
Update to libopts-40.2.15
sntp/libopts/option-xat-attribute.h@1.28 +1 -1
Update to libopts-40.2.15
sntp/libopts/parse-duration.c@1.11 +1 -1
Update to libopts-40.2.15
sntp/libopts/parse-duration.h@1.9 +1 -1
Update to libopts-40.2.15
sntp/libopts/pgusage.c@1.16 +1 -1
Update to libopts-40.2.15
sntp/libopts/proto.h@1.27 +2 -2
Update to libopts-40.2.15
sntp/libopts/putshell.c@1.14 +1 -1
Update to libopts-40.2.15
sntp/libopts/reset.c@1.15 +1 -1
Update to libopts-40.2.15
sntp/libopts/restore.c@1.13 +1 -1
Update to libopts-40.2.15
sntp/libopts/save.c@1.16 +1 -1
Update to libopts-40.2.15
sntp/libopts/sort.c@1.13 +1 -1
Update to libopts-40.2.15
sntp/libopts/stack.c@1.15 +41 -46
Update to libopts-40.2.15
sntp/libopts/streqvcmp.c@1.15 +1 -1
Update to libopts-40.2.15
sntp/libopts/text_mmap.c@1.16 +1 -1
Update to libopts-40.2.15
sntp/libopts/time.c@1.14 +32 -35
Update to libopts-40.2.15
sntp/libopts/tokenize.c@1.11 +1 -1
Update to libopts-40.2.15
sntp/libopts/usage.c@1.19 +1 -1
Update to libopts-40.2.15
sntp/libopts/version.c@1.16 +1 -1
Update to libopts-40.2.15
ChangeSet@1.3107.1.24, 2014-03-29 11:41:32+00:00, stenn@deacon.udel.edu
NTP_4_2_7P435
TAG: NTP_4_2_7P435
ChangeLog@1.1458 +1 -0
NTP_4_2_7P435
ntpd/invoke-ntp.conf.texi@1.113 +1 -1
NTP_4_2_7P435
ntpd/invoke-ntp.keys.texi@1.111 +1 -1
NTP_4_2_7P435
ntpd/invoke-ntpd.texi@1.427 +2 -2
NTP_4_2_7P435
ntpd/ntp.conf.5man@1.147 +7 -7
NTP_4_2_7P435
ntpd/ntp.conf.5mdoc@1.147 +3 -3
NTP_4_2_7P435
ntpd/ntp.conf.html@1.108 +1 -1
NTP_4_2_7P435
ntpd/ntp.conf.man.in@1.147 +7 -7
NTP_4_2_7P435
ntpd/ntp.conf.mdoc.in@1.147 +3 -3
NTP_4_2_7P435
ntpd/ntp.keys.5man@1.145 +3 -3
NTP_4_2_7P435
ntpd/ntp.keys.5mdoc@1.145 +3 -3
NTP_4_2_7P435
ntpd/ntp.keys.html@1.109 +1 -1
NTP_4_2_7P435
ntpd/ntp.keys.man.in@1.145 +3 -3
NTP_4_2_7P435
ntpd/ntp.keys.mdoc.in@1.145 +3 -3
NTP_4_2_7P435
ntpd/ntpd-opts.c@1.445 +7 -7
NTP_4_2_7P435
ntpd/ntpd-opts.h@1.445 +3 -3
NTP_4_2_7P435
ntpd/ntpd.1ntpdman@1.256 +7 -7
NTP_4_2_7P435
ntpd/ntpd.1ntpdmdoc@1.256 +3 -3
NTP_4_2_7P435
ntpd/ntpd.html@1.103 +2 -2
NTP_4_2_7P435
ntpd/ntpd.man.in@1.256 +7 -7
NTP_4_2_7P435
ntpd/ntpd.mdoc.in@1.256 +3 -3
NTP_4_2_7P435
ntpdc/invoke-ntpdc.texi@1.425 +2 -2
NTP_4_2_7P435
ntpdc/ntpdc-opts.c@1.440 +7 -7
NTP_4_2_7P435
ntpdc/ntpdc-opts.h@1.440 +3 -3
NTP_4_2_7P435
ntpdc/ntpdc.1ntpdcman@1.256 +6 -6
NTP_4_2_7P435
ntpdc/ntpdc.1ntpdcmdoc@1.256 +2 -2
NTP_4_2_7P435
ntpdc/ntpdc.html@1.269 +2 -2
NTP_4_2_7P435
ntpdc/ntpdc.man.in@1.256 +6 -6
NTP_4_2_7P435
ntpdc/ntpdc.mdoc.in@1.256 +2 -2
NTP_4_2_7P435
ntpq/invoke-ntpq.texi@1.428 +2 -2
NTP_4_2_7P435
ntpq/ntpq-opts.c@1.442 +7 -7
NTP_4_2_7P435
ntpq/ntpq-opts.h@1.442 +3 -3
NTP_4_2_7P435
ntpq/ntpq.1ntpqman@1.256 +6 -6
NTP_4_2_7P435
ntpq/ntpq.1ntpqmdoc@1.256 +2 -2
NTP_4_2_7P435
ntpq/ntpq.html@1.100 +2 -2
NTP_4_2_7P435
ntpq/ntpq.man.in@1.256 +6 -6
NTP_4_2_7P435
ntpq/ntpq.mdoc.in@1.256 +2 -2
NTP_4_2_7P435
ntpsnmpd/invoke-ntpsnmpd.texi@1.427 +2 -2
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd-opts.c@1.442 +7 -7
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd-opts.h@1.442 +3 -3
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.256 +14 -14
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.256 +3 -3
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd.html@1.98 +1 -1
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd.man.in@1.256 +14 -14
NTP_4_2_7P435
ntpsnmpd/ntpsnmpd.mdoc.in@1.256 +3 -3
NTP_4_2_7P435
packageinfo.sh@1.439 +1 -1
NTP_4_2_7P435
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.18 +6 -6
NTP_4_2_7P435
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.18 +2 -2
NTP_4_2_7P435
scripts/calc_tickadj/calc_tickadj.html@1.17 +82 -1
NTP_4_2_7P435
scripts/calc_tickadj/calc_tickadj.man.in@1.17 +6 -6
NTP_4_2_7P435
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.18 +2 -2
NTP_4_2_7P435
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.19 +60 -1
NTP_4_2_7P435
scripts/invoke-plot_summary.texi@1.36 +1 -1
NTP_4_2_7P435
scripts/invoke-summary.texi@1.36 +1 -1
NTP_4_2_7P435
scripts/ntp-wait/invoke-ntp-wait.texi@1.245 +1 -1
NTP_4_2_7P435
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.246 +6 -6
NTP_4_2_7P435
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.246 +2 -2
NTP_4_2_7P435
scripts/ntp-wait/ntp-wait.html@1.262 +1 -1
NTP_4_2_7P435
scripts/ntp-wait/ntp-wait.man.in@1.246 +6 -6
NTP_4_2_7P435
scripts/ntp-wait/ntp-wait.mdoc.in@1.246 +2 -2
NTP_4_2_7P435
scripts/ntpsweep/invoke-ntpsweep.texi@1.34 +1 -1
NTP_4_2_7P435
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.25 +6 -6
NTP_4_2_7P435
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.25 +2 -2
NTP_4_2_7P435
scripts/ntpsweep/ntpsweep.html@1.35 +1 -1
NTP_4_2_7P435
scripts/ntpsweep/ntpsweep.man.in@1.25 +6 -6
NTP_4_2_7P435
scripts/ntpsweep/ntpsweep.mdoc.in@1.26 +2 -2
NTP_4_2_7P435
scripts/ntptrace/invoke-ntptrace.texi@1.34 +1 -1
NTP_4_2_7P435
scripts/ntptrace/ntptrace.1ntptraceman@1.25 +6 -6
NTP_4_2_7P435
scripts/ntptrace/ntptrace.1ntptracemdoc@1.25 +2 -2
NTP_4_2_7P435
scripts/ntptrace/ntptrace.html@1.35 +1 -1
NTP_4_2_7P435
scripts/ntptrace/ntptrace.man.in@1.25 +6 -6
NTP_4_2_7P435
scripts/ntptrace/ntptrace.mdoc.in@1.26 +2 -2
NTP_4_2_7P435
scripts/plot_summary.1plot_summaryman@1.36 +6 -6
NTP_4_2_7P435
scripts/plot_summary.1plot_summarymdoc@1.36 +2 -2
NTP_4_2_7P435
scripts/plot_summary.html@1.36 +1 -1
NTP_4_2_7P435
scripts/plot_summary.man.in@1.36 +6 -6
NTP_4_2_7P435
scripts/plot_summary.mdoc.in@1.36 +2 -2
NTP_4_2_7P435
scripts/summary.1summaryman@1.36 +13 -13
NTP_4_2_7P435
scripts/summary.1summarymdoc@1.36 +2 -2
NTP_4_2_7P435
scripts/summary.html@1.36 +1 -1
NTP_4_2_7P435
scripts/summary.man.in@1.36 +13 -13
NTP_4_2_7P435
scripts/summary.mdoc.in@1.36 +2 -2
NTP_4_2_7P435
sntp/invoke-sntp.texi@1.424 +2 -2
NTP_4_2_7P435
sntp/sntp-opts.c@1.439 +7 -7
NTP_4_2_7P435
sntp/sntp-opts.h@1.439 +3 -3
NTP_4_2_7P435
sntp/sntp.1sntpman@1.259 +7 -7
NTP_4_2_7P435
sntp/sntp.1sntpmdoc@1.259 +3 -3
NTP_4_2_7P435
sntp/sntp.html@1.439 +2 -2
NTP_4_2_7P435
sntp/sntp.man.in@1.259 +7 -7
NTP_4_2_7P435
sntp/sntp.mdoc.in@1.259 +3 -3
NTP_4_2_7P435
util/invoke-ntp-keygen.texi@1.428 +2 -2
NTP_4_2_7P435
util/ntp-keygen-opts.c@1.442 +7 -7
NTP_4_2_7P435
util/ntp-keygen-opts.h@1.442 +3 -3
NTP_4_2_7P435
util/ntp-keygen.1ntp-keygenman@1.256 +7 -7
NTP_4_2_7P435
util/ntp-keygen.1ntp-keygenmdoc@1.256 +3 -3
NTP_4_2_7P435
util/ntp-keygen.html@1.104 +2 -2
NTP_4_2_7P435
util/ntp-keygen.man.in@1.256 +7 -7
NTP_4_2_7P435
util/ntp-keygen.mdoc.in@1.256 +3 -3
NTP_4_2_7P435
ChangeSet@1.3107.1.23, 2014-03-26 11:01:31+01:00, jnperlin@hydra.(none)
[Bug 2570] cleanup: reduced logging noise, moved some functions into libntp
ChangeLog@1.1457 +2 -0
[Bug 2570] cleanup: reduced logging noise, moved some functions into libntp
include/Makefile.am@1.50 +1 -0
[Bug 2570] cleanup: added 'vint64ops.h'
include/ntp_calendar.h@1.14 +12 -0
[Bug 2570] cleanup: moved functions for 64bit times to to calendar
include/vint64ops.h@1.1 +28 -0
[Bug 2570] cleanup: moved vint64 operations to libntp
include/vint64ops.h@1.0 +0 -0
libntp/Makefile.am@1.74 +1 -0
[Bug 2570] cleanup: added 'vint64ops.c'
libntp/ntp_calendar.c@1.13 +71 -23
[Bug 2570] cleanup: moved functions for 64bit times to to calendar
libntp/vint64ops.c@1.1 +284 -0
[Bug 2570] cleanup: moved vint64 operations to libntp
libntp/vint64ops.c@1.0 +0 -0
ntpd/ntp_leapsec.c@1.8 +44 -277
[Bug 2570] cleanup: reduced logging noise, moved some functions into libntp
ntpd/ntp_leapsec.h@1.6 +1 -6
[Bug 2570] cleanup: reduced logging noise, moved some functions into libntp
ntpd/ntp_util.c@1.110 +2 -10
[Bug 2570] cleanup: reduced logging noise
tests/libntp/Makefile.am@1.41 +1 -0
[Bug 2570] cleanup: added test cases for vint64 ops
tests/libntp/vi64ops.cpp@1.1 +64 -0
[Bug 2570] cleanup: added test cases for vint64 ops
tests/libntp/vi64ops.cpp@1.0 +0 -0
tests/ntpd/leapsec.cpp@1.8 +0 -42
[Bug 2570] cleanup: moved vint64 tests to libntp
ChangeSet@1.3107.1.22, 2014-03-21 06:02:37+00:00, stenn@deacon.udel.edu
NTP_4_2_7P434
TAG: NTP_4_2_7P434
ChangeLog@1.1456 +1 -0
NTP_4_2_7P434
ntpd/invoke-ntp.conf.texi@1.112 +1 -1
NTP_4_2_7P434
ntpd/invoke-ntp.keys.texi@1.110 +1 -1
NTP_4_2_7P434
ntpd/invoke-ntpd.texi@1.426 +2 -2
NTP_4_2_7P434
ntpd/ntp.conf.5man@1.146 +7 -7
NTP_4_2_7P434
ntpd/ntp.conf.5mdoc@1.146 +3 -3
NTP_4_2_7P434
ntpd/ntp.conf.html@1.107 +1 -1
NTP_4_2_7P434
ntpd/ntp.conf.man.in@1.146 +7 -7
NTP_4_2_7P434
ntpd/ntp.conf.mdoc.in@1.146 +3 -3
NTP_4_2_7P434
ntpd/ntp.keys.5man@1.144 +3 -3
NTP_4_2_7P434
ntpd/ntp.keys.5mdoc@1.144 +3 -3
NTP_4_2_7P434
ntpd/ntp.keys.html@1.108 +1 -1
NTP_4_2_7P434
ntpd/ntp.keys.man.in@1.144 +3 -3
NTP_4_2_7P434
ntpd/ntp.keys.mdoc.in@1.144 +3 -3
NTP_4_2_7P434
ntpd/ntpd-opts.c@1.444 +7 -7
NTP_4_2_7P434
ntpd/ntpd-opts.h@1.444 +3 -3
NTP_4_2_7P434
ntpd/ntpd.1ntpdman@1.255 +7 -7
NTP_4_2_7P434
ntpd/ntpd.1ntpdmdoc@1.255 +3 -3
NTP_4_2_7P434
ntpd/ntpd.html@1.102 +2 -2
NTP_4_2_7P434
ntpd/ntpd.man.in@1.255 +7 -7
NTP_4_2_7P434
ntpd/ntpd.mdoc.in@1.255 +3 -3
NTP_4_2_7P434
ntpdc/invoke-ntpdc.texi@1.424 +2 -2
NTP_4_2_7P434
ntpdc/ntpdc-opts.c@1.439 +7 -7
NTP_4_2_7P434
ntpdc/ntpdc-opts.h@1.439 +3 -3
NTP_4_2_7P434
ntpdc/ntpdc.1ntpdcman@1.255 +6 -6
NTP_4_2_7P434
ntpdc/ntpdc.1ntpdcmdoc@1.255 +2 -2
NTP_4_2_7P434
ntpdc/ntpdc.html@1.268 +2 -2
NTP_4_2_7P434
ntpdc/ntpdc.man.in@1.255 +6 -6
NTP_4_2_7P434
ntpdc/ntpdc.mdoc.in@1.255 +2 -2
NTP_4_2_7P434
ntpq/invoke-ntpq.texi@1.427 +2 -2
NTP_4_2_7P434
ntpq/ntpq-opts.c@1.441 +7 -7
NTP_4_2_7P434
ntpq/ntpq-opts.h@1.441 +3 -3
NTP_4_2_7P434
ntpq/ntpq.1ntpqman@1.255 +6 -6
NTP_4_2_7P434
ntpq/ntpq.1ntpqmdoc@1.255 +2 -2
NTP_4_2_7P434
ntpq/ntpq.html@1.99 +2 -2
NTP_4_2_7P434
ntpq/ntpq.man.in@1.255 +6 -6
NTP_4_2_7P434
ntpq/ntpq.mdoc.in@1.255 +2 -2
NTP_4_2_7P434
ntpsnmpd/invoke-ntpsnmpd.texi@1.426 +2 -2
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd-opts.c@1.441 +7 -7
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd-opts.h@1.441 +3 -3
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.255 +7 -7
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.255 +3 -3
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd.html@1.97 +1 -1
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd.man.in@1.255 +7 -7
NTP_4_2_7P434
ntpsnmpd/ntpsnmpd.mdoc.in@1.255 +3 -3
NTP_4_2_7P434
packageinfo.sh@1.438 +1 -1
NTP_4_2_7P434
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.17 +6 -6
NTP_4_2_7P434
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.17 +2 -2
NTP_4_2_7P434
scripts/calc_tickadj/calc_tickadj.html@1.16 +1 -82
NTP_4_2_7P434
scripts/calc_tickadj/calc_tickadj.man.in@1.16 +6 -6
NTP_4_2_7P434
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.17 +2 -2
NTP_4_2_7P434
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.18 +1 -60
NTP_4_2_7P434
scripts/invoke-plot_summary.texi@1.35 +1 -1
NTP_4_2_7P434
scripts/invoke-summary.texi@1.35 +1 -1
NTP_4_2_7P434
scripts/ntp-wait/invoke-ntp-wait.texi@1.244 +1 -1
NTP_4_2_7P434
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.245 +6 -6
NTP_4_2_7P434
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.245 +2 -2
NTP_4_2_7P434
scripts/ntp-wait/ntp-wait.html@1.261 +1 -1
NTP_4_2_7P434
scripts/ntp-wait/ntp-wait.man.in@1.245 +6 -6
NTP_4_2_7P434
scripts/ntp-wait/ntp-wait.mdoc.in@1.245 +2 -2
NTP_4_2_7P434
scripts/ntpsweep/invoke-ntpsweep.texi@1.33 +1 -1
NTP_4_2_7P434
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.24 +6 -6
NTP_4_2_7P434
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.24 +2 -2
NTP_4_2_7P434
scripts/ntpsweep/ntpsweep.html@1.34 +1 -1
NTP_4_2_7P434
scripts/ntpsweep/ntpsweep.man.in@1.24 +6 -6
NTP_4_2_7P434
scripts/ntpsweep/ntpsweep.mdoc.in@1.25 +2 -2
NTP_4_2_7P434
scripts/ntptrace/invoke-ntptrace.texi@1.33 +1 -1
NTP_4_2_7P434
scripts/ntptrace/ntptrace.1ntptraceman@1.24 +6 -6
NTP_4_2_7P434
scripts/ntptrace/ntptrace.1ntptracemdoc@1.24 +2 -2
NTP_4_2_7P434
scripts/ntptrace/ntptrace.html@1.34 +1 -1
NTP_4_2_7P434
scripts/ntptrace/ntptrace.man.in@1.24 +6 -6
NTP_4_2_7P434
scripts/ntptrace/ntptrace.mdoc.in@1.25 +2 -2
NTP_4_2_7P434
scripts/plot_summary.1plot_summaryman@1.35 +13 -13
NTP_4_2_7P434
scripts/plot_summary.1plot_summarymdoc@1.35 +2 -2
NTP_4_2_7P434
scripts/plot_summary.html@1.35 +1 -1
NTP_4_2_7P434
scripts/plot_summary.man.in@1.35 +13 -13
NTP_4_2_7P434
scripts/plot_summary.mdoc.in@1.35 +2 -2
NTP_4_2_7P434
scripts/summary.1summaryman@1.35 +13 -13
NTP_4_2_7P434
scripts/summary.1summarymdoc@1.35 +2 -2
NTP_4_2_7P434
scripts/summary.html@1.35 +1 -1
NTP_4_2_7P434
scripts/summary.man.in@1.35 +13 -13
NTP_4_2_7P434
scripts/summary.mdoc.in@1.35 +2 -2
NTP_4_2_7P434
sntp/invoke-sntp.texi@1.423 +2 -2
NTP_4_2_7P434
sntp/sntp-opts.c@1.438 +7 -7
NTP_4_2_7P434
sntp/sntp-opts.h@1.438 +3 -3
NTP_4_2_7P434
sntp/sntp.1sntpman@1.258 +7 -7
NTP_4_2_7P434
sntp/sntp.1sntpmdoc@1.258 +3 -3
NTP_4_2_7P434
sntp/sntp.html@1.438 +2 -2
NTP_4_2_7P434
sntp/sntp.man.in@1.258 +7 -7
NTP_4_2_7P434
sntp/sntp.mdoc.in@1.258 +3 -3
NTP_4_2_7P434
util/invoke-ntp-keygen.texi@1.427 +2 -2
NTP_4_2_7P434
util/ntp-keygen-opts.c@1.441 +7 -7
NTP_4_2_7P434
util/ntp-keygen-opts.h@1.441 +3 -3
NTP_4_2_7P434
util/ntp-keygen.1ntp-keygenman@1.255 +7 -7
NTP_4_2_7P434
util/ntp-keygen.1ntp-keygenmdoc@1.255 +3 -3
NTP_4_2_7P434
util/ntp-keygen.html@1.103 +2 -2
NTP_4_2_7P434
util/ntp-keygen.man.in@1.255 +7 -7
NTP_4_2_7P434
util/ntp-keygen.mdoc.in@1.255 +3 -3
NTP_4_2_7P434
ChangeSet@1.3107.1.21, 2014-03-20 05:43:19-04:00, stenn@deacon.udel.edu
[Bug 2577] Update VS2013 solution and project files
ChangeLog@1.1455 +1 -0
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/instsrv/instsrv.vcxproj@1.2 +375 -6
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/libntp/libntp.vcxproj@1.3 +295 -0
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/libntp/libntp.vcxproj.filters@1.2 +6 -0
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj@1.2 +313 -6
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj@1.3 +401 -4
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntp.sln@1.2 +59 -1
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj@1.3 +281 -0
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntpd/ntpd.vcxproj@1.3 +451 -9
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntpdate/ntpdate.vcxproj@1.3 +393 -3
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntpdc/ntpdc.vcxproj@1.3 +407 -4
[Bug 2577] Update VS2013 solution and project files
ports/winnt/vs2013/ntpq/ntpq.vcxproj@1.3 +395 -4
[Bug 2577] Update VS2013 solution and project files
ChangeSet@1.3107.1.20, 2014-03-10 11:23:57+00:00, stenn@deacon.udel.edu
NTP_4_2_7P433
TAG: NTP_4_2_7P433
ChangeLog@1.1454 +1 -0
NTP_4_2_7P433
ntpd/invoke-ntp.conf.texi@1.111 +1 -1
NTP_4_2_7P433
ntpd/invoke-ntp.keys.texi@1.109 +1 -1
NTP_4_2_7P433
ntpd/invoke-ntpd.texi@1.425 +2 -2
NTP_4_2_7P433
ntpd/ntp.conf.5man@1.145 +7 -7
NTP_4_2_7P433
ntpd/ntp.conf.5mdoc@1.145 +3 -3
NTP_4_2_7P433
ntpd/ntp.conf.html@1.106 +1 -1
NTP_4_2_7P433
ntpd/ntp.conf.man.in@1.145 +7 -7
NTP_4_2_7P433
ntpd/ntp.conf.mdoc.in@1.145 +3 -3
NTP_4_2_7P433
ntpd/ntp.keys.5man@1.143 +3 -3
NTP_4_2_7P433
ntpd/ntp.keys.5mdoc@1.143 +3 -3
NTP_4_2_7P433
ntpd/ntp.keys.html@1.107 +1 -1
NTP_4_2_7P433
ntpd/ntp.keys.man.in@1.143 +3 -3
NTP_4_2_7P433
ntpd/ntp.keys.mdoc.in@1.143 +3 -3
NTP_4_2_7P433
ntpd/ntpd-opts.c@1.443 +7 -7
NTP_4_2_7P433
ntpd/ntpd-opts.h@1.443 +3 -3
NTP_4_2_7P433
ntpd/ntpd.1ntpdman@1.254 +7 -7
NTP_4_2_7P433
ntpd/ntpd.1ntpdmdoc@1.254 +3 -3
NTP_4_2_7P433
ntpd/ntpd.html@1.101 +2 -2
NTP_4_2_7P433
ntpd/ntpd.man.in@1.254 +7 -7
NTP_4_2_7P433
ntpd/ntpd.mdoc.in@1.254 +3 -3
NTP_4_2_7P433
ntpdc/invoke-ntpdc.texi@1.423 +2 -2
NTP_4_2_7P433
ntpdc/ntpdc-opts.c@1.438 +7 -7
NTP_4_2_7P433
ntpdc/ntpdc-opts.h@1.438 +3 -3
NTP_4_2_7P433
ntpdc/ntpdc.1ntpdcman@1.254 +6 -6
NTP_4_2_7P433
ntpdc/ntpdc.1ntpdcmdoc@1.254 +2 -2
NTP_4_2_7P433
ntpdc/ntpdc.html@1.267 +2 -2
NTP_4_2_7P433
ntpdc/ntpdc.man.in@1.254 +6 -6
NTP_4_2_7P433
ntpdc/ntpdc.mdoc.in@1.254 +2 -2
NTP_4_2_7P433
ntpq/invoke-ntpq.texi@1.426 +2 -2
NTP_4_2_7P433
ntpq/ntpq-opts.c@1.440 +7 -7
NTP_4_2_7P433
ntpq/ntpq-opts.h@1.440 +3 -3
NTP_4_2_7P433
ntpq/ntpq.1ntpqman@1.254 +6 -6
NTP_4_2_7P433
ntpq/ntpq.1ntpqmdoc@1.254 +2 -2
NTP_4_2_7P433
ntpq/ntpq.html@1.98 +2 -2
NTP_4_2_7P433
ntpq/ntpq.man.in@1.254 +6 -6
NTP_4_2_7P433
ntpq/ntpq.mdoc.in@1.254 +2 -2
NTP_4_2_7P433
ntpsnmpd/invoke-ntpsnmpd.texi@1.425 +2 -2
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd-opts.c@1.440 +7 -7
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd-opts.h@1.440 +3 -3
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.254 +7 -7
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.254 +3 -3
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd.html@1.96 +1 -1
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd.man.in@1.254 +7 -7
NTP_4_2_7P433
ntpsnmpd/ntpsnmpd.mdoc.in@1.254 +3 -3
NTP_4_2_7P433
packageinfo.sh@1.437 +1 -1
NTP_4_2_7P433
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.16 +6 -6
NTP_4_2_7P433
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.16 +2 -2
NTP_4_2_7P433
scripts/calc_tickadj/calc_tickadj.html@1.15 +1 -1
NTP_4_2_7P433
scripts/calc_tickadj/calc_tickadj.man.in@1.15 +6 -6
NTP_4_2_7P433
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.16 +2 -2
NTP_4_2_7P433
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.17 +1 -1
NTP_4_2_7P433
scripts/invoke-plot_summary.texi@1.34 +1 -1
NTP_4_2_7P433
scripts/invoke-summary.texi@1.34 +1 -1
NTP_4_2_7P433
scripts/ntp-wait/invoke-ntp-wait.texi@1.243 +1 -1
NTP_4_2_7P433
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.244 +13 -13
NTP_4_2_7P433
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.244 +2 -2
NTP_4_2_7P433
scripts/ntp-wait/ntp-wait.html@1.260 +1 -1
NTP_4_2_7P433
scripts/ntp-wait/ntp-wait.man.in@1.244 +13 -13
NTP_4_2_7P433
scripts/ntp-wait/ntp-wait.mdoc.in@1.244 +2 -2
NTP_4_2_7P433
scripts/ntpsweep/invoke-ntpsweep.texi@1.32 +1 -1
NTP_4_2_7P433
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.23 +6 -6
NTP_4_2_7P433
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.23 +2 -2
NTP_4_2_7P433
scripts/ntpsweep/ntpsweep.html@1.33 +1 -1
NTP_4_2_7P433
scripts/ntpsweep/ntpsweep.man.in@1.23 +6 -6
NTP_4_2_7P433
scripts/ntpsweep/ntpsweep.mdoc.in@1.24 +2 -2
NTP_4_2_7P433
scripts/ntptrace/invoke-ntptrace.texi@1.32 +1 -1
NTP_4_2_7P433
scripts/ntptrace/ntptrace.1ntptraceman@1.23 +6 -6
NTP_4_2_7P433
scripts/ntptrace/ntptrace.1ntptracemdoc@1.23 +2 -2
NTP_4_2_7P433
scripts/ntptrace/ntptrace.html@1.33 +1 -1
NTP_4_2_7P433
scripts/ntptrace/ntptrace.man.in@1.23 +6 -6
NTP_4_2_7P433
scripts/ntptrace/ntptrace.mdoc.in@1.24 +2 -2
NTP_4_2_7P433
scripts/plot_summary.1plot_summaryman@1.34 +13 -13
NTP_4_2_7P433
scripts/plot_summary.1plot_summarymdoc@1.34 +2 -2
NTP_4_2_7P433
scripts/plot_summary.html@1.34 +1 -1
NTP_4_2_7P433
scripts/plot_summary.man.in@1.34 +13 -13
NTP_4_2_7P433
scripts/plot_summary.mdoc.in@1.34 +2 -2
NTP_4_2_7P433
scripts/summary.1summaryman@1.34 +6 -6
NTP_4_2_7P433
scripts/summary.1summarymdoc@1.34 +2 -2
NTP_4_2_7P433
scripts/summary.html@1.34 +1 -1
NTP_4_2_7P433
scripts/summary.man.in@1.34 +6 -6
NTP_4_2_7P433
scripts/summary.mdoc.in@1.34 +2 -2
NTP_4_2_7P433
sntp/invoke-sntp.texi@1.422 +2 -2
NTP_4_2_7P433
sntp/sntp-opts.c@1.437 +7 -7
NTP_4_2_7P433
sntp/sntp-opts.h@1.437 +3 -3
NTP_4_2_7P433
sntp/sntp.1sntpman@1.257 +7 -7
NTP_4_2_7P433
sntp/sntp.1sntpmdoc@1.257 +3 -3
NTP_4_2_7P433
sntp/sntp.html@1.437 +2 -2
NTP_4_2_7P433
sntp/sntp.man.in@1.257 +7 -7
NTP_4_2_7P433
sntp/sntp.mdoc.in@1.257 +3 -3
NTP_4_2_7P433
util/invoke-ntp-keygen.texi@1.426 +2 -2
NTP_4_2_7P433
util/ntp-keygen-opts.c@1.440 +7 -7
NTP_4_2_7P433
util/ntp-keygen-opts.h@1.440 +3 -3
NTP_4_2_7P433
util/ntp-keygen.1ntp-keygenman@1.254 +7 -7
NTP_4_2_7P433
util/ntp-keygen.1ntp-keygenmdoc@1.254 +3 -3
NTP_4_2_7P433
util/ntp-keygen.html@1.102 +2 -2
NTP_4_2_7P433
util/ntp-keygen.man.in@1.254 +7 -7
NTP_4_2_7P433
util/ntp-keygen.mdoc.in@1.254 +3 -3
NTP_4_2_7P433
ChangeSet@1.3107.1.19, 2014-03-10 05:31:40-04:00, stenn@deacon.udel.edu
Clean up last-update timestamps of html/*.html files
ChangeLog@1.1453 +1 -0
Clean up last-update timestamps of html/*.html files
html/confopt.html@1.61 +1 -1
Clean up last-update timestamps of html/*.html files
html/copyright.html@1.63 +5 -4
Clean up last-update timestamps of html/*.html files
html/discipline.html@1.9 +3 -3
Clean up last-update timestamps of html/*.html files
html/discover.html@1.5 +3 -3
Clean up last-update timestamps of html/*.html files
html/extern.html@1.16.1.1 +3 -3
Clean up last-update timestamps of html/*.html files
html/filter.html@1.7 +3 -3
Clean up last-update timestamps of html/*.html files
html/hints.html@1.19 +3 -3
Clean up last-update timestamps of html/*.html files
html/history.html@1.3 +3 -3
Clean up last-update timestamps of html/*.html files
html/howto.html@1.24 +3 -3
Clean up last-update timestamps of html/*.html files
html/huffpuff.html@1.5 +3 -3
Clean up last-update timestamps of html/*.html files
html/index.html@1.45 +3 -3
Clean up last-update timestamps of html/*.html files
html/kern.html@1.21 +3 -3
Clean up last-update timestamps of html/*.html files
html/kernpps.html@1.4 +3 -3
Clean up last-update timestamps of html/*.html files
html/keygen.html@1.33 +2 -2
Clean up last-update timestamps of html/*.html files
html/leap.html@1.6 +3 -3
Clean up last-update timestamps of html/*.html files
html/msyslog.html@1.11 +3 -3
Clean up last-update timestamps of html/*.html files
html/ntpd.html@1.61 +1 -1
Clean up last-update timestamps of html/*.html files
html/poll.html@1.4 +3 -3
Clean up last-update timestamps of html/*.html files
html/pps.html@1.25 +3 -3
Clean up last-update timestamps of html/*.html files
html/prefer.html@1.32 +3 -3
Clean up last-update timestamps of html/*.html files
html/rate.html@1.12 +3 -3
Clean up last-update timestamps of html/*.html files
html/rdebug.html@1.18 +3 -5
Clean up last-update timestamps of html/*.html files
html/refclock.html@1.42 +1 -1
Clean up last-update timestamps of html/*.html files
html/select.html@1.9 +3 -3
Clean up last-update timestamps of html/*.html files
html/stats.html@1.2 +3 -3
Clean up last-update timestamps of html/*.html files
html/tickadj.html@1.18 +3 -3
Clean up last-update timestamps of html/*.html files
html/warp.html@1.23 +3 -3
Clean up last-update timestamps of html/*.html files
html/xleave.html@1.9 +3 -3
Clean up last-update timestamps of html/*.html files
ChangeSet@1.3107.1.18, 2014-03-09 11:46:54+00:00, stenn@deacon.udel.edu
NTP_4_2_7P432
TAG: NTP_4_2_7P432
ChangeLog@1.1452 +1 -0
NTP_4_2_7P432
ntpd/invoke-ntp.conf.texi@1.110 +1 -1
NTP_4_2_7P432
ntpd/invoke-ntp.keys.texi@1.108 +1 -1
NTP_4_2_7P432
ntpd/invoke-ntpd.texi@1.424 +2 -2
NTP_4_2_7P432
ntpd/ntp.conf.5man@1.144 +7 -7
NTP_4_2_7P432
ntpd/ntp.conf.5mdoc@1.144 +3 -3
NTP_4_2_7P432
ntpd/ntp.conf.html@1.105 +1 -1
NTP_4_2_7P432
ntpd/ntp.conf.man.in@1.144 +7 -7
NTP_4_2_7P432
ntpd/ntp.conf.mdoc.in@1.144 +3 -3
NTP_4_2_7P432
ntpd/ntp.keys.5man@1.142 +3 -3
NTP_4_2_7P432
ntpd/ntp.keys.5mdoc@1.142 +3 -3
NTP_4_2_7P432
ntpd/ntp.keys.html@1.106 +1 -1
NTP_4_2_7P432
ntpd/ntp.keys.man.in@1.142 +3 -3
NTP_4_2_7P432
ntpd/ntp.keys.mdoc.in@1.142 +3 -3
NTP_4_2_7P432
ntpd/ntpd-opts.c@1.442 +7 -7
NTP_4_2_7P432
ntpd/ntpd-opts.h@1.442 +3 -3
NTP_4_2_7P432
ntpd/ntpd.1ntpdman@1.253 +7 -7
NTP_4_2_7P432
ntpd/ntpd.1ntpdmdoc@1.253 +3 -3
NTP_4_2_7P432
ntpd/ntpd.html@1.100 +2 -2
NTP_4_2_7P432
ntpd/ntpd.man.in@1.253 +7 -7
NTP_4_2_7P432
ntpd/ntpd.mdoc.in@1.253 +3 -3
NTP_4_2_7P432
ntpdc/invoke-ntpdc.texi@1.422 +2 -2
NTP_4_2_7P432
ntpdc/ntpdc-opts.c@1.437 +7 -7
NTP_4_2_7P432
ntpdc/ntpdc-opts.h@1.437 +3 -3
NTP_4_2_7P432
ntpdc/ntpdc.1ntpdcman@1.253 +6 -6
NTP_4_2_7P432
ntpdc/ntpdc.1ntpdcmdoc@1.253 +2 -2
NTP_4_2_7P432
ntpdc/ntpdc.html@1.266 +2 -2
NTP_4_2_7P432
ntpdc/ntpdc.man.in@1.253 +6 -6
NTP_4_2_7P432
ntpdc/ntpdc.mdoc.in@1.253 +2 -2
NTP_4_2_7P432
ntpq/invoke-ntpq.texi@1.425 +2 -2
NTP_4_2_7P432
ntpq/ntpq-opts.c@1.439 +7 -7
NTP_4_2_7P432
ntpq/ntpq-opts.h@1.439 +3 -3
NTP_4_2_7P432
ntpq/ntpq.1ntpqman@1.253 +6 -6
NTP_4_2_7P432
ntpq/ntpq.1ntpqmdoc@1.253 +2 -2
NTP_4_2_7P432
ntpq/ntpq.html@1.97 +2 -2
NTP_4_2_7P432
ntpq/ntpq.man.in@1.253 +6 -6
NTP_4_2_7P432
ntpq/ntpq.mdoc.in@1.253 +2 -2
NTP_4_2_7P432
ntpsnmpd/invoke-ntpsnmpd.texi@1.424 +2 -2
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd-opts.c@1.439 +7 -7
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd-opts.h@1.439 +3 -3
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.253 +7 -7
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.253 +3 -3
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd.html@1.95 +1 -1
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd.man.in@1.253 +7 -7
NTP_4_2_7P432
ntpsnmpd/ntpsnmpd.mdoc.in@1.253 +3 -3
NTP_4_2_7P432
packageinfo.sh@1.436 +1 -1
NTP_4_2_7P432
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.15 +13 -13
NTP_4_2_7P432
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.15 +2 -2
NTP_4_2_7P432
scripts/calc_tickadj/calc_tickadj.html@1.14 +1 -1
NTP_4_2_7P432
scripts/calc_tickadj/calc_tickadj.man.in@1.14 +13 -13
NTP_4_2_7P432
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.15 +2 -2
NTP_4_2_7P432
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.16 +1 -1
NTP_4_2_7P432
scripts/invoke-plot_summary.texi@1.33 +1 -1
NTP_4_2_7P432
scripts/invoke-summary.texi@1.33 +1 -1
NTP_4_2_7P432
scripts/ntp-wait/invoke-ntp-wait.texi@1.242 +1 -1
NTP_4_2_7P432
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.243 +13 -13
NTP_4_2_7P432
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.243 +2 -2
NTP_4_2_7P432
scripts/ntp-wait/ntp-wait.html@1.259 +1 -1
NTP_4_2_7P432
scripts/ntp-wait/ntp-wait.man.in@1.243 +13 -13
NTP_4_2_7P432
scripts/ntp-wait/ntp-wait.mdoc.in@1.243 +2 -2
NTP_4_2_7P432
scripts/ntpsweep/invoke-ntpsweep.texi@1.31 +1 -1
NTP_4_2_7P432
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.22 +6 -6
NTP_4_2_7P432
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.22 +2 -2
NTP_4_2_7P432
scripts/ntpsweep/ntpsweep.html@1.32 +1 -1
NTP_4_2_7P432
scripts/ntpsweep/ntpsweep.man.in@1.22 +6 -6
NTP_4_2_7P432
scripts/ntpsweep/ntpsweep.mdoc.in@1.23 +2 -2
NTP_4_2_7P432
scripts/ntptrace/invoke-ntptrace.texi@1.31 +1 -1
NTP_4_2_7P432
scripts/ntptrace/ntptrace.1ntptraceman@1.22 +6 -6
NTP_4_2_7P432
scripts/ntptrace/ntptrace.1ntptracemdoc@1.22 +2 -2
NTP_4_2_7P432
scripts/ntptrace/ntptrace.html@1.32 +1 -1
NTP_4_2_7P432
scripts/ntptrace/ntptrace.man.in@1.22 +6 -6
NTP_4_2_7P432
scripts/ntptrace/ntptrace.mdoc.in@1.23 +2 -2
NTP_4_2_7P432
scripts/plot_summary.1plot_summaryman@1.33 +6 -6
NTP_4_2_7P432
scripts/plot_summary.1plot_summarymdoc@1.33 +2 -2
NTP_4_2_7P432
scripts/plot_summary.html@1.33 +1 -1
NTP_4_2_7P432
scripts/plot_summary.man.in@1.33 +6 -6
NTP_4_2_7P432
scripts/plot_summary.mdoc.in@1.33 +2 -2
NTP_4_2_7P432
scripts/summary.1summaryman@1.33 +6 -6
NTP_4_2_7P432
scripts/summary.1summarymdoc@1.33 +2 -2
NTP_4_2_7P432
scripts/summary.html@1.33 +1 -1
NTP_4_2_7P432
scripts/summary.man.in@1.33 +6 -6
NTP_4_2_7P432
scripts/summary.mdoc.in@1.33 +2 -2
NTP_4_2_7P432
sntp/invoke-sntp.texi@1.421 +2 -2
NTP_4_2_7P432
sntp/sntp-opts.c@1.436 +7 -7
NTP_4_2_7P432
sntp/sntp-opts.h@1.436 +3 -3
NTP_4_2_7P432
sntp/sntp.1sntpman@1.256 +7 -7
NTP_4_2_7P432
sntp/sntp.1sntpmdoc@1.256 +3 -3
NTP_4_2_7P432
sntp/sntp.html@1.436 +2 -2
NTP_4_2_7P432
sntp/sntp.man.in@1.256 +7 -7
NTP_4_2_7P432
sntp/sntp.mdoc.in@1.256 +3 -3
NTP_4_2_7P432
util/invoke-ntp-keygen.texi@1.425 +2 -2
NTP_4_2_7P432
util/ntp-keygen-opts.c@1.439 +7 -7
NTP_4_2_7P432
util/ntp-keygen-opts.h@1.439 +3 -3
NTP_4_2_7P432
util/ntp-keygen.1ntp-keygenman@1.253 +7 -7
NTP_4_2_7P432
util/ntp-keygen.1ntp-keygenmdoc@1.253 +3 -3
NTP_4_2_7P432
util/ntp-keygen.html@1.101 +2 -2
NTP_4_2_7P432
util/ntp-keygen.man.in@1.253 +7 -7
NTP_4_2_7P432
util/ntp-keygen.mdoc.in@1.253 +3 -3
NTP_4_2_7P432
ChangeSet@1.3107.1.17, 2014-03-08 23:11:31-05:00, stenn@deacon.udel.edu
CID 711660: Do a non-NULL pointer assertion check a bit earlier
ChangeLog@1.1451 +1 -1
CID 711660: Do a non-NULL pointer assertion check a bit earlier
sntp/libevent/event.c@1.12 +1 -1
CID 711660: Do a non-NULL pointer assertion check a bit earlier
ChangeSet@1.3107.1.16, 2014-03-05 11:18:17+00:00, stenn@deacon.udel.edu
NTP_4_2_7P431
TAG: NTP_4_2_7P431
ChangeLog@1.1450 +1 -0
NTP_4_2_7P431
ntpd/invoke-ntp.conf.texi@1.109 +1 -1
NTP_4_2_7P431
ntpd/invoke-ntp.keys.texi@1.107 +1 -1
NTP_4_2_7P431
ntpd/invoke-ntpd.texi@1.423 +2 -2
NTP_4_2_7P431
ntpd/ntp.conf.5man@1.143 +7 -7
NTP_4_2_7P431
ntpd/ntp.conf.5mdoc@1.143 +3 -3
NTP_4_2_7P431
ntpd/ntp.conf.html@1.104 +1 -1
NTP_4_2_7P431
ntpd/ntp.conf.man.in@1.143 +7 -7
NTP_4_2_7P431
ntpd/ntp.conf.mdoc.in@1.143 +3 -3
NTP_4_2_7P431
ntpd/ntp.keys.5man@1.141 +3 -3
NTP_4_2_7P431
ntpd/ntp.keys.5mdoc@1.141 +3 -3
NTP_4_2_7P431
ntpd/ntp.keys.html@1.105 +1 -1
NTP_4_2_7P431
ntpd/ntp.keys.man.in@1.141 +3 -3
NTP_4_2_7P431
ntpd/ntp.keys.mdoc.in@1.141 +3 -3
NTP_4_2_7P431
ntpd/ntpd-opts.c@1.441 +7 -7
NTP_4_2_7P431
ntpd/ntpd-opts.h@1.441 +3 -3
NTP_4_2_7P431
ntpd/ntpd.1ntpdman@1.252 +7 -7
NTP_4_2_7P431
ntpd/ntpd.1ntpdmdoc@1.252 +3 -3
NTP_4_2_7P431
ntpd/ntpd.html@1.99 +2 -2
NTP_4_2_7P431
ntpd/ntpd.man.in@1.252 +7 -7
NTP_4_2_7P431
ntpd/ntpd.mdoc.in@1.252 +3 -3
NTP_4_2_7P431
ntpdc/invoke-ntpdc.texi@1.421 +2 -2
NTP_4_2_7P431
ntpdc/ntpdc-opts.c@1.436 +7 -7
NTP_4_2_7P431
ntpdc/ntpdc-opts.h@1.436 +3 -3
NTP_4_2_7P431
ntpdc/ntpdc.1ntpdcman@1.252 +6 -6
NTP_4_2_7P431
ntpdc/ntpdc.1ntpdcmdoc@1.252 +2 -2
NTP_4_2_7P431
ntpdc/ntpdc.html@1.265 +2 -2
NTP_4_2_7P431
ntpdc/ntpdc.man.in@1.252 +6 -6
NTP_4_2_7P431
ntpdc/ntpdc.mdoc.in@1.252 +2 -2
NTP_4_2_7P431
ntpq/invoke-ntpq.texi@1.424 +2 -2
NTP_4_2_7P431
ntpq/ntpq-opts.c@1.438 +7 -7
NTP_4_2_7P431
ntpq/ntpq-opts.h@1.438 +3 -3
NTP_4_2_7P431
ntpq/ntpq.1ntpqman@1.252 +6 -6
NTP_4_2_7P431
ntpq/ntpq.1ntpqmdoc@1.252 +2 -2
NTP_4_2_7P431
ntpq/ntpq.html@1.96 +2 -2
NTP_4_2_7P431
ntpq/ntpq.man.in@1.252 +6 -6
NTP_4_2_7P431
ntpq/ntpq.mdoc.in@1.252 +2 -2
NTP_4_2_7P431
ntpsnmpd/invoke-ntpsnmpd.texi@1.423 +2 -2
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd-opts.c@1.438 +7 -7
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd-opts.h@1.438 +3 -3
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.252 +7 -7
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.252 +3 -3
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd.html@1.94 +1 -1
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd.man.in@1.252 +7 -7
NTP_4_2_7P431
ntpsnmpd/ntpsnmpd.mdoc.in@1.252 +3 -3
NTP_4_2_7P431
packageinfo.sh@1.435 +1 -1
NTP_4_2_7P431
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.14 +6 -6
NTP_4_2_7P431
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.14 +2 -2
NTP_4_2_7P431
scripts/calc_tickadj/calc_tickadj.html@1.13 +1 -1
NTP_4_2_7P431
scripts/calc_tickadj/calc_tickadj.man.in@1.13 +6 -6
NTP_4_2_7P431
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.14 +2 -2
NTP_4_2_7P431
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.15 +1 -1
NTP_4_2_7P431
scripts/invoke-plot_summary.texi@1.32 +1 -1
NTP_4_2_7P431
scripts/invoke-summary.texi@1.32 +1 -1
NTP_4_2_7P431
scripts/ntp-wait/invoke-ntp-wait.texi@1.241 +1 -1
NTP_4_2_7P431
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.242 +6 -6
NTP_4_2_7P431
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.242 +2 -2
NTP_4_2_7P431
scripts/ntp-wait/ntp-wait.html@1.258 +1 -1
NTP_4_2_7P431
scripts/ntp-wait/ntp-wait.man.in@1.242 +6 -6
NTP_4_2_7P431
scripts/ntp-wait/ntp-wait.mdoc.in@1.242 +2 -2
NTP_4_2_7P431
scripts/ntpsweep/invoke-ntpsweep.texi@1.30 +1 -1
NTP_4_2_7P431
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.21 +6 -6
NTP_4_2_7P431
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.21 +2 -2
NTP_4_2_7P431
scripts/ntpsweep/ntpsweep.html@1.31 +1 -1
NTP_4_2_7P431
scripts/ntpsweep/ntpsweep.man.in@1.21 +6 -6
NTP_4_2_7P431
scripts/ntpsweep/ntpsweep.mdoc.in@1.22 +2 -2
NTP_4_2_7P431
scripts/ntptrace/invoke-ntptrace.texi@1.30 +1 -1
NTP_4_2_7P431
scripts/ntptrace/ntptrace.1ntptraceman@1.21 +13 -13
NTP_4_2_7P431
scripts/ntptrace/ntptrace.1ntptracemdoc@1.21 +2 -2
NTP_4_2_7P431
scripts/ntptrace/ntptrace.html@1.31 +1 -1
NTP_4_2_7P431
scripts/ntptrace/ntptrace.man.in@1.21 +13 -13
NTP_4_2_7P431
scripts/ntptrace/ntptrace.mdoc.in@1.22 +2 -2
NTP_4_2_7P431
scripts/plot_summary.1plot_summaryman@1.32 +6 -6
NTP_4_2_7P431
scripts/plot_summary.1plot_summarymdoc@1.32 +3 -3
NTP_4_2_7P431
scripts/plot_summary.html@1.32 +1 -1
NTP_4_2_7P431
scripts/plot_summary.man.in@1.32 +6 -6
NTP_4_2_7P431
scripts/plot_summary.mdoc.in@1.32 +3 -3
NTP_4_2_7P431
scripts/summary.1summaryman@1.32 +6 -6
NTP_4_2_7P431
scripts/summary.1summarymdoc@1.32 +2 -2
NTP_4_2_7P431
scripts/summary.html@1.32 +1 -1
NTP_4_2_7P431
scripts/summary.man.in@1.32 +6 -6
NTP_4_2_7P431
scripts/summary.mdoc.in@1.32 +2 -2
NTP_4_2_7P431
sntp/invoke-sntp.texi@1.420 +2 -2
NTP_4_2_7P431
sntp/sntp-opts.c@1.435 +7 -7
NTP_4_2_7P431
sntp/sntp-opts.h@1.435 +3 -3
NTP_4_2_7P431
sntp/sntp.1sntpman@1.255 +7 -7
NTP_4_2_7P431
sntp/sntp.1sntpmdoc@1.255 +3 -3
NTP_4_2_7P431
sntp/sntp.html@1.435 +2 -2
NTP_4_2_7P431
sntp/sntp.man.in@1.255 +7 -7
NTP_4_2_7P431
sntp/sntp.mdoc.in@1.255 +3 -3
NTP_4_2_7P431
util/invoke-ntp-keygen.texi@1.424 +2 -2
NTP_4_2_7P431
util/ntp-keygen-opts.c@1.438 +7 -7
NTP_4_2_7P431
util/ntp-keygen-opts.h@1.438 +3 -3
NTP_4_2_7P431
util/ntp-keygen.1ntp-keygenman@1.252 +7 -7
NTP_4_2_7P431
util/ntp-keygen.1ntp-keygenmdoc@1.252 +3 -3
NTP_4_2_7P431
util/ntp-keygen.html@1.100 +2 -2
NTP_4_2_7P431
util/ntp-keygen.man.in@1.252 +7 -7
NTP_4_2_7P431
util/ntp-keygen.mdoc.in@1.252 +3 -3
NTP_4_2_7P431
ChangeSet@1.3107.1.15, 2014-03-05 01:44:37-05:00, stenn@deacon.udel.edu
[Bug 2572] cross-compiling fails for --with-yielding-select
ChangeLog@1.1449 +1 -0
[Bug 2572] cross-compiling fails for --with-yielding-select
sntp/libevent/m4/openldap-thread-check.m4@1.4 +1 -1
[Bug 2572] cross-compiling fails for --with-yielding-select
ChangeSet@1.3107.1.14, 2014-03-05 00:53:47-05:00, stenn@deacon.udel.edu
CID 711669: Do a non-NULL pointer assertion check a bit earlier
ChangeLog@1.1448 +1 -0
CID 711669: Do a non-NULL pointer assertion check a bit earlier
sntp/libevent/event.c@1.11 +1 -1
CID 711669: Do a non-NULL pointer assertion check a bit earlier
ChangeSet@1.3107.1.13, 2014-03-04 11:54:12+00:00, stenn@deacon.udel.edu
NTP_4_2_7P430
TAG: NTP_4_2_7P430
ChangeLog@1.1447 +1 -0
NTP_4_2_7P430
ntpd/invoke-ntp.conf.texi@1.108 +1 -1
NTP_4_2_7P430
ntpd/invoke-ntp.keys.texi@1.106 +1 -1
NTP_4_2_7P430
ntpd/invoke-ntpd.texi@1.422 +2 -2
NTP_4_2_7P430
ntpd/ntp.conf.5man@1.142 +7 -7
NTP_4_2_7P430
ntpd/ntp.conf.5mdoc@1.142 +3 -3
NTP_4_2_7P430
ntpd/ntp.conf.html@1.103 +1 -1
NTP_4_2_7P430
ntpd/ntp.conf.man.in@1.142 +7 -7
NTP_4_2_7P430
ntpd/ntp.conf.mdoc.in@1.142 +3 -3
NTP_4_2_7P430
ntpd/ntp.keys.5man@1.140 +3 -3
NTP_4_2_7P430
ntpd/ntp.keys.5mdoc@1.140 +3 -3
NTP_4_2_7P430
ntpd/ntp.keys.html@1.104 +1 -1
NTP_4_2_7P430
ntpd/ntp.keys.man.in@1.140 +3 -3
NTP_4_2_7P430
ntpd/ntp.keys.mdoc.in@1.140 +3 -3
NTP_4_2_7P430
ntpd/ntpd-opts.c@1.440 +7 -7
NTP_4_2_7P430
ntpd/ntpd-opts.h@1.440 +3 -3
NTP_4_2_7P430
ntpd/ntpd.1ntpdman@1.251 +1007 -0
NTP_4_2_7P430
ntpd/ntpd.1ntpdmdoc@1.251 +3 -3
NTP_4_2_7P430
ntpd/ntpd.html@1.98 +2 -2
NTP_4_2_7P430
ntpd/ntpd.man.in@1.251 +1007 -0
NTP_4_2_7P430
ntpd/ntpd.mdoc.in@1.251 +3 -3
NTP_4_2_7P430
ntpdc/invoke-ntpdc.texi@1.420 +2 -2
NTP_4_2_7P430
ntpdc/ntpdc-opts.c@1.435 +7 -7
NTP_4_2_7P430
ntpdc/ntpdc-opts.h@1.435 +3 -3
NTP_4_2_7P430
ntpdc/ntpdc.1ntpdcman@1.251 +6 -6
NTP_4_2_7P430
ntpdc/ntpdc.1ntpdcmdoc@1.251 +2 -2
NTP_4_2_7P430
ntpdc/ntpdc.html@1.264 +2 -2
NTP_4_2_7P430
ntpdc/ntpdc.man.in@1.251 +6 -6
NTP_4_2_7P430
ntpdc/ntpdc.mdoc.in@1.251 +2 -2
NTP_4_2_7P430
ntpq/invoke-ntpq.texi@1.423 +2 -2
NTP_4_2_7P430
ntpq/ntpq-opts.c@1.437 +7 -7
NTP_4_2_7P430
ntpq/ntpq-opts.h@1.437 +3 -3
NTP_4_2_7P430
ntpq/ntpq.1ntpqman@1.251 +6 -6
NTP_4_2_7P430
ntpq/ntpq.1ntpqmdoc@1.251 +2 -2
NTP_4_2_7P430
ntpq/ntpq.html@1.95 +2 -2
NTP_4_2_7P430
ntpq/ntpq.man.in@1.251 +6 -6
NTP_4_2_7P430
ntpq/ntpq.mdoc.in@1.251 +2 -2
NTP_4_2_7P430
ntpsnmpd/invoke-ntpsnmpd.texi@1.422 +2 -2
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd-opts.c@1.437 +7 -7
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd-opts.h@1.437 +3 -3
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.251 +7 -7
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.251 +3 -3
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd.html@1.93 +1 -1
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd.man.in@1.251 +7 -7
NTP_4_2_7P430
ntpsnmpd/ntpsnmpd.mdoc.in@1.251 +3 -3
NTP_4_2_7P430
packageinfo.sh@1.434 +1 -1
NTP_4_2_7P430
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.13 +13 -13
NTP_4_2_7P430
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.13 +2 -2
NTP_4_2_7P430
scripts/calc_tickadj/calc_tickadj.html@1.12 +1 -1
NTP_4_2_7P430
scripts/calc_tickadj/calc_tickadj.man.in@1.12 +13 -13
NTP_4_2_7P430
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.13 +2 -2
NTP_4_2_7P430
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.14 +1 -1
NTP_4_2_7P430
scripts/invoke-plot_summary.texi@1.31 +1 -1
NTP_4_2_7P430
scripts/invoke-summary.texi@1.31 +1 -1
NTP_4_2_7P430
scripts/ntp-wait/invoke-ntp-wait.texi@1.240 +1 -1
NTP_4_2_7P430
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.241 +6 -6
NTP_4_2_7P430
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.241 +2 -2
NTP_4_2_7P430
scripts/ntp-wait/ntp-wait.html@1.257 +1 -1
NTP_4_2_7P430
scripts/ntp-wait/ntp-wait.man.in@1.241 +6 -6
NTP_4_2_7P430
scripts/ntp-wait/ntp-wait.mdoc.in@1.241 +2 -2
NTP_4_2_7P430
scripts/ntpsweep/invoke-ntpsweep.texi@1.29 +1 -1
NTP_4_2_7P430
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.20 +6 -6
NTP_4_2_7P430
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.20 +2 -2
NTP_4_2_7P430
scripts/ntpsweep/ntpsweep.html@1.30 +1 -1
NTP_4_2_7P430
scripts/ntpsweep/ntpsweep.man.in@1.20 +6 -6
NTP_4_2_7P430
scripts/ntpsweep/ntpsweep.mdoc.in@1.21 +2 -2
NTP_4_2_7P430
scripts/ntptrace/invoke-ntptrace.texi@1.29 +1 -1
NTP_4_2_7P430
scripts/ntptrace/ntptrace.1ntptraceman@1.20 +13 -13
NTP_4_2_7P430
scripts/ntptrace/ntptrace.1ntptracemdoc@1.20 +2 -2
NTP_4_2_7P430
scripts/ntptrace/ntptrace.html@1.30 +1 -1
NTP_4_2_7P430
scripts/ntptrace/ntptrace.man.in@1.20 +13 -13
NTP_4_2_7P430
scripts/ntptrace/ntptrace.mdoc.in@1.21 +2 -2
NTP_4_2_7P430
scripts/plot_summary.1plot_summaryman@1.31 +6 -6
NTP_4_2_7P430
scripts/plot_summary.1plot_summarymdoc@1.31 +3 -3
NTP_4_2_7P430
scripts/plot_summary.html@1.31 +1 -1
NTP_4_2_7P430
scripts/plot_summary.man.in@1.31 +6 -6
NTP_4_2_7P430
scripts/plot_summary.mdoc.in@1.31 +3 -3
NTP_4_2_7P430
scripts/summary.1summaryman@1.31 +6 -6
NTP_4_2_7P430
scripts/summary.1summarymdoc@1.31 +2 -2
NTP_4_2_7P430
scripts/summary.html@1.31 +1 -1
NTP_4_2_7P430
scripts/summary.man.in@1.31 +6 -6
NTP_4_2_7P430
scripts/summary.mdoc.in@1.31 +2 -2
NTP_4_2_7P430
sntp/invoke-sntp.texi@1.419 +2 -2
NTP_4_2_7P430
sntp/sntp-opts.c@1.434 +7 -7
NTP_4_2_7P430
sntp/sntp-opts.h@1.434 +3 -3
NTP_4_2_7P430
sntp/sntp.1sntpman@1.254 +7 -7
NTP_4_2_7P430
sntp/sntp.1sntpmdoc@1.254 +3 -3
NTP_4_2_7P430
sntp/sntp.html@1.434 +2 -2
NTP_4_2_7P430
sntp/sntp.man.in@1.254 +7 -7
NTP_4_2_7P430
sntp/sntp.mdoc.in@1.254 +3 -3
NTP_4_2_7P430
util/invoke-ntp-keygen.texi@1.423 +2 -2
NTP_4_2_7P430
util/ntp-keygen-opts.c@1.437 +7 -7
NTP_4_2_7P430
util/ntp-keygen-opts.h@1.437 +3 -3
NTP_4_2_7P430
util/ntp-keygen.1ntp-keygenman@1.251 +7 -7
NTP_4_2_7P430
util/ntp-keygen.1ntp-keygenmdoc@1.251 +3 -3
NTP_4_2_7P430
util/ntp-keygen.html@1.99 +2 -2
NTP_4_2_7P430
util/ntp-keygen.man.in@1.251 +7 -7
NTP_4_2_7P430
util/ntp-keygen.mdoc.in@1.251 +3 -3
NTP_4_2_7P430
ChangeSet@1.3107.1.12, 2014-03-04 01:43:16-08:00, harlan@hms-mbp11.local
[Bug 2572] cross-compiling fails for --with-yielding-select
sntp/libevent/configure.ac@1.16 +2 -0
[Bug 2572] cross-compiling fails for --with-yielding-select
ChangeSet@1.3107.1.11, 2014-03-04 01:36:37-08:00, harlan@hms-mbp11.local
[Bug 2572] cross-compiling fails for --with-yielding-select
ChangeLog@1.1446 +1 -0
[Bug 2572] cross-compiling fails for --with-yielding-select
sntp/libevent/configure.ac@1.15 +16 -10
[Bug 2572] cross-compiling fails for --with-yielding-select
sntp/libevent/m4/openldap-thread-check.m4@1.3 +4 -2
[Bug 2572] cross-compiling fails for --with-yielding-select
ChangeSet@1.3107.1.10, 2014-03-04 00:36:34-08:00, harlan@hms-mbp11.local
Upgrade to libevent-2.1.3-alpha-dev
BitKeeper/deleted/17/evconfig-private.h~e326850fdeaa98a0@1.3 +0 -0
Delete: sntp/libevent/WIN32-Code/evconfig-private.h
BitKeeper/deleted/1d/test-ratelim.sh~dddafffaaeb54e28@1.4 +0 -0
Delete: sntp/libevent/test/test-ratelim.sh
BitKeeper/deleted/27/event.3~f0ceb5963a3e2eb2@1.2 +0 -0
Delete: sntp/libevent/event.3
BitKeeper/deleted/5d/make_epoll_table.py~9cb592404263d3ec@1.3 +0 -0
Delete: sntp/libevent/make_epoll_table.py
BitKeeper/deleted/5e/CommitLog~8348099c640278eb@1.3 +0 -0
Delete: sntp/libevent/CommitLog
BitKeeper/deleted/a5/event-config.h~b5f19946803cd6c3@1.7 +0 -0
Delete: sntp/libevent/WIN32-Code/event2/event-config.h
BitKeeper/deleted/ae/print-winsock-errors.c~9a8c717f5ec35467@1.2 +0 -0
Delete: sntp/libevent/test/print-winsock-errors.c
BitKeeper/deleted/c5/tinytest_demo.c~ce8c6418b673bdfe@1.4 +0 -0
Delete: sntp/libevent/test/tinytest_demo.c
BitKeeper/deleted/d8/evdns.3~b3752932bb1e0709@1.2 +0 -0
Delete: sntp/libevent/evdns.3
BitKeeper/etc/ignore@1.85 +1 -0
added sntp/libevent/build-aux/ar-lib
ChangeLog@1.1445 +1 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/ChangeLog@1.8 +257 -1
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/Makefile.am@1.12 +10 -7
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/Makefile.nmake@1.5 +1 -1
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/WIN32-Code/nmake/evconfig-private.h@1.1 +6 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/WIN32-Code/nmake/evconfig-private.h
sntp/libevent/WIN32-Code/nmake/evconfig-private.h@1.0 +0 -0
sntp/libevent/WIN32-Code/nmake/event2/event-config.h@1.1 +360 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/WIN32-Code/nmake/event2/event-config.h
sntp/libevent/WIN32-Code/nmake/event2/event-config.h@1.0 +0 -0
sntp/libevent/arc4random.c@1.6 +36 -20
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/buffer.c@1.9 +36 -8
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent-internal.h@1.7 +34 -10
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent.c@1.7 +119 -44
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_async.c@1.6 +10 -17
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_filter.c@1.6 +16 -11
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_openssl.c@1.8 +46 -37
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_pair.c@1.7 +10 -17
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_ratelim.c@1.5 +22 -5
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/bufferevent_sock.c@1.7 +16 -20
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/changelist-internal.h@1.3 +1 -0
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/configure.ac@1.14 +28 -22
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/epoll.c@1.6 +33 -176
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/epoll_sub.c@1.4 +13 -0
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/epolltable-internal.h@1.1 +1166 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/epolltable-internal.h
sntp/libevent/epolltable-internal.h@1.0 +0 -0
sntp/libevent/evbuffer-internal.h@1.7 +5 -0
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evconfig-private.h@1.1 +49 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/evconfig-private.h
sntp/libevent/evconfig-private.h@1.0 +0 -0
sntp/libevent/evdns.c@1.9 +87 -37
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/event-internal.h@1.9 +45 -3
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/event.c@1.10 +381 -69
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/event_iocp.c@1.6 +4 -1
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evmap.c@1.7 +54 -13
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evrpc.c@1.6 +5 -9
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evutil.c@1.9 +25 -9
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evutil_rand.c@1.7 +26 -3
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/evutil_time.c@1.4 +14 -3
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/http-internal.h@1.5 +10 -9
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/http.c@1.9 +116 -28
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/include/event2/buffer.h@1.6 +59 -5
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/buffer_compat.h@1.4 +5 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/bufferevent.h@1.5 +123 -3
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/bufferevent_ssl.h@1.4 +8 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/dns.h@1.6 +59 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/event.h@1.9 +266 -15
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/event_compat.h@1.5 +10 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/event_struct.h@1.5 +8 -3
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/http.h@1.6 +209 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/http_struct.h@1.4 +22 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/listener.h@1.3 +11 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/tag.h@1.4 +22 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/thread.h@1.6 +10 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/util.h@1.6 +47 -3
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/include/event2/visibility.h@1.1 +55 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/include/event2/visibility.h
sntp/libevent/include/event2/visibility.h@1.0 +0 -0
sntp/libevent/include/include.am@1.2 +2 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/log-internal.h@1.3 +3 -0
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/log.c@1.6 +13 -12
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/m4/acx_pthread.m4@1.1 +279 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/m4/acx_pthread.m4
sntp/libevent/m4/acx_pthread.m4@1.0 +0 -0
sntp/libevent/minheap-internal.h@1.6 +1 -1
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/sample/dns-example.c@1.7 +2 -2
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/sample/hostcheck.c@1.1 +217 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/sample/hostcheck.c
sntp/libevent/sample/hostcheck.c@1.0 +0 -0
sntp/libevent/sample/hostcheck.h@1.1 +30 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/sample/hostcheck.h
sntp/libevent/sample/hostcheck.h@1.0 +0 -0
sntp/libevent/sample/http-server.c@1.9 +2 -2
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/sample/https-client.c@1.1 +426 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/sample/https-client.c
sntp/libevent/sample/https-client.c@1.0 +0 -0
sntp/libevent/sample/include.am@1.2 +12 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/sample/le-proxy.c@1.3 +10 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/sample/openssl_hostname_validation.c@1.1 +172 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/sample/openssl_hostname_validation.c
sntp/libevent/sample/openssl_hostname_validation.c@1.0 +0 -0
sntp/libevent/sample/openssl_hostname_validation.h@1.1 +56 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/sample/openssl_hostname_validation.h
sntp/libevent/sample/openssl_hostname_validation.h@1.0 +0 -0
sntp/libevent/test/Makefile.nmake@1.5 +7 -5
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/bench.c@1.5 +15 -4
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/bench_cascade.c@1.5 +15 -6
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/bench_http.c@1.5 +6 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/include.am@1.3 +11 -10
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress.c@1.5 +604 -7
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress.h@1.4 +3 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_buffer.c@1.7 +15 -14
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_bufferevent.c@1.5 +159 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_dns.c@1.7 +68 -8
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_et.c@1.5 +2 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_finalize.c@1.1 +346 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/test/regress_finalize.c
sntp/libevent/test/regress_finalize.c@1.0 +0 -0
sntp/libevent/test/regress_http.c@1.7 +215 -18
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_main.c@1.6 +12 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_rpc.c@1.6 +8 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_ssl.c@1.6 +5 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_thread.c@1.5 +1 -18
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/regress_thread.h@1.1 +48 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/test/regress_thread.h
sntp/libevent/test/regress_thread.h@1.0 +0 -0
sntp/libevent/test/regress_util.c@1.6 +1 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/rpcgen_wrapper.sh@1.4 +2 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/test-changelist.c@1.5 +2 -1
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/test-closed.c@1.1 +117 -0
BitKeeper file /Users/harlan/src/ntp-dev-libevent/sntp/libevent/test/test-closed.c
sntp/libevent/test/test-closed.c@1.0 +0 -0
sntp/libevent/test/test-ratelim.c@1.8 +2 -0
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/test/test.sh@1.10 +3 -10
Upgrade to libevent-2.1.3-alpha-dev
sntp/libevent/util-internal.h@1.9 +4 -0
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/whatsnew-2.1.txt@1.3 +125 -7
upgrade to libevent 2.1.3-alpha-dev
sntp/libevent/win32select.c@1.5 +1 -1
upgrade to libevent 2.1.3-alpha-dev
ChangeSet@1.3107.1.9, 2014-03-03 11:15:40+00:00, stenn@deacon.udel.edu
NTP_4_2_7P429
TAG: NTP_4_2_7P429
ChangeLog@1.1444 +1 -0
NTP_4_2_7P429
ntpd/invoke-ntp.conf.texi@1.107 +1 -1
NTP_4_2_7P429
ntpd/invoke-ntp.keys.texi@1.105 +1 -1
NTP_4_2_7P429
ntpd/invoke-ntpd.texi@1.421 +2 -2
NTP_4_2_7P429
ntpd/ntp.conf.5man@1.141 +7 -7
NTP_4_2_7P429
ntpd/ntp.conf.5mdoc@1.141 +3 -3
NTP_4_2_7P429
ntpd/ntp.conf.html@1.102 +1 -1
NTP_4_2_7P429
ntpd/ntp.conf.man.in@1.141 +7 -7
NTP_4_2_7P429
ntpd/ntp.conf.mdoc.in@1.141 +3 -3
NTP_4_2_7P429
ntpd/ntp.keys.5man@1.139 +3 -3
NTP_4_2_7P429
ntpd/ntp.keys.5mdoc@1.139 +3 -3
NTP_4_2_7P429
ntpd/ntp.keys.html@1.103 +1 -1
NTP_4_2_7P429
ntpd/ntp.keys.man.in@1.139 +3 -3
NTP_4_2_7P429
ntpd/ntp.keys.mdoc.in@1.139 +3 -3
NTP_4_2_7P429
ntpd/ntpd-opts.c@1.439 +7 -7
NTP_4_2_7P429
ntpd/ntpd-opts.h@1.439 +3 -3
NTP_4_2_7P429
ntpd/ntpd.1ntpdman@1.250 +0 -1007
NTP_4_2_7P429
ntpd/ntpd.1ntpdmdoc@1.250 +3 -3
NTP_4_2_7P429
ntpd/ntpd.html@1.97 +2 -2
NTP_4_2_7P429
ntpd/ntpd.man.in@1.250 +0 -1007
NTP_4_2_7P429
ntpd/ntpd.mdoc.in@1.250 +3 -3
NTP_4_2_7P429
ntpdc/invoke-ntpdc.texi@1.419 +2 -2
NTP_4_2_7P429
ntpdc/ntpdc-opts.c@1.434 +7 -7
NTP_4_2_7P429
ntpdc/ntpdc-opts.h@1.434 +3 -3
NTP_4_2_7P429
ntpdc/ntpdc.1ntpdcman@1.250 +6 -6
NTP_4_2_7P429
ntpdc/ntpdc.1ntpdcmdoc@1.250 +2 -2
NTP_4_2_7P429
ntpdc/ntpdc.html@1.263 +2 -2
NTP_4_2_7P429
ntpdc/ntpdc.man.in@1.250 +6 -6
NTP_4_2_7P429
ntpdc/ntpdc.mdoc.in@1.250 +2 -2
NTP_4_2_7P429
ntpq/invoke-ntpq.texi@1.422 +2 -2
NTP_4_2_7P429
ntpq/ntpq-opts.c@1.436 +7 -7
NTP_4_2_7P429
ntpq/ntpq-opts.h@1.436 +3 -3
NTP_4_2_7P429
ntpq/ntpq.1ntpqman@1.250 +6 -6
NTP_4_2_7P429
ntpq/ntpq.1ntpqmdoc@1.250 +2 -2
NTP_4_2_7P429
ntpq/ntpq.html@1.94 +2 -2
NTP_4_2_7P429
ntpq/ntpq.man.in@1.250 +6 -6
NTP_4_2_7P429
ntpq/ntpq.mdoc.in@1.250 +2 -2
NTP_4_2_7P429
ntpsnmpd/invoke-ntpsnmpd.texi@1.421 +2 -2
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd-opts.c@1.436 +7 -7
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd-opts.h@1.436 +3 -3
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.250 +7 -7
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.250 +3 -3
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd.html@1.92 +1 -1
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd.man.in@1.250 +7 -7
NTP_4_2_7P429
ntpsnmpd/ntpsnmpd.mdoc.in@1.250 +3 -3
NTP_4_2_7P429
packageinfo.sh@1.433 +1 -1
NTP_4_2_7P429
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.12 +6 -6
NTP_4_2_7P429
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.12 +2 -2
NTP_4_2_7P429
scripts/calc_tickadj/calc_tickadj.html@1.11 +1 -1
NTP_4_2_7P429
scripts/calc_tickadj/calc_tickadj.man.in@1.11 +6 -6
NTP_4_2_7P429
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.12 +2 -2
NTP_4_2_7P429
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.13 +1 -1
NTP_4_2_7P429
scripts/invoke-plot_summary.texi@1.30 +1 -1
NTP_4_2_7P429
scripts/invoke-summary.texi@1.30 +1 -1
NTP_4_2_7P429
scripts/ntp-wait/invoke-ntp-wait.texi@1.239 +1 -1
NTP_4_2_7P429
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.240 +6 -6
NTP_4_2_7P429
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.240 +2 -2
NTP_4_2_7P429
scripts/ntp-wait/ntp-wait.html@1.256 +1 -1
NTP_4_2_7P429
scripts/ntp-wait/ntp-wait.man.in@1.240 +6 -6
NTP_4_2_7P429
scripts/ntp-wait/ntp-wait.mdoc.in@1.240 +2 -2
NTP_4_2_7P429
scripts/ntpsweep/invoke-ntpsweep.texi@1.28 +1 -1
NTP_4_2_7P429
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.19 +6 -6
NTP_4_2_7P429
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.19 +2 -2
NTP_4_2_7P429
scripts/ntpsweep/ntpsweep.html@1.29 +1 -1
NTP_4_2_7P429
scripts/ntpsweep/ntpsweep.man.in@1.19 +6 -6
NTP_4_2_7P429
scripts/ntpsweep/ntpsweep.mdoc.in@1.20 +2 -2
NTP_4_2_7P429
scripts/ntptrace/invoke-ntptrace.texi@1.28 +1 -1
NTP_4_2_7P429
scripts/ntptrace/ntptrace.1ntptraceman@1.19 +6 -6
NTP_4_2_7P429
scripts/ntptrace/ntptrace.1ntptracemdoc@1.19 +2 -2
NTP_4_2_7P429
scripts/ntptrace/ntptrace.html@1.29 +1 -1
NTP_4_2_7P429
scripts/ntptrace/ntptrace.man.in@1.19 +6 -6
NTP_4_2_7P429
scripts/ntptrace/ntptrace.mdoc.in@1.20 +2 -2
NTP_4_2_7P429
scripts/plot_summary.1plot_summaryman@1.30 +6 -6
NTP_4_2_7P429
scripts/plot_summary.1plot_summarymdoc@1.30 +3 -3
NTP_4_2_7P429
scripts/plot_summary.html@1.30 +1 -1
NTP_4_2_7P429
scripts/plot_summary.man.in@1.30 +6 -6
NTP_4_2_7P429
scripts/plot_summary.mdoc.in@1.30 +3 -3
NTP_4_2_7P429
scripts/summary.1summaryman@1.30 +6 -6
NTP_4_2_7P429
scripts/summary.1summarymdoc@1.30 +2 -2
NTP_4_2_7P429
scripts/summary.html@1.30 +1 -1
NTP_4_2_7P429
scripts/summary.man.in@1.30 +6 -6
NTP_4_2_7P429
scripts/summary.mdoc.in@1.30 +2 -2
NTP_4_2_7P429
sntp/invoke-sntp.texi@1.418 +2 -2
NTP_4_2_7P429
sntp/sntp-opts.c@1.433 +7 -7
NTP_4_2_7P429
sntp/sntp-opts.h@1.433 +3 -3
NTP_4_2_7P429
sntp/sntp.1sntpman@1.253 +7 -7
NTP_4_2_7P429
sntp/sntp.1sntpmdoc@1.253 +3 -3
NTP_4_2_7P429
sntp/sntp.html@1.433 +2 -2
NTP_4_2_7P429
sntp/sntp.man.in@1.253 +7 -7
NTP_4_2_7P429
sntp/sntp.mdoc.in@1.253 +3 -3
NTP_4_2_7P429
util/invoke-ntp-keygen.texi@1.422 +2 -2
NTP_4_2_7P429
util/ntp-keygen-opts.c@1.436 +7 -7
NTP_4_2_7P429
util/ntp-keygen-opts.h@1.436 +3 -3
NTP_4_2_7P429
util/ntp-keygen.1ntp-keygenman@1.250 +7 -7
NTP_4_2_7P429
util/ntp-keygen.1ntp-keygenmdoc@1.250 +3 -3
NTP_4_2_7P429
util/ntp-keygen.html@1.98 +2 -2
NTP_4_2_7P429
util/ntp-keygen.man.in@1.250 +7 -7
NTP_4_2_7P429
util/ntp-keygen.mdoc.in@1.250 +3 -3
NTP_4_2_7P429
ChangeSet@1.3107.1.8, 2014-03-03 09:53:09+00:00, stenn@psp-fb1.ntp.org
[Bug 2170] Use AC_PREPROC_IFELSE instead of AC_EGREP_CPP
ChangeLog@1.1443 +1 -0
[Bug 2170] Use AC_PREPROC_IFELSE instead of AC_EGREP_CPP
configure.ac@1.575 +51 -59
[Bug 2170] Use AC_PREPROC_IFELSE instead of AC_EGREP_CPP
sntp/m4/ntp_libntp.m4@1.27 +6 -8
[Bug 2170] Use AC_PREPROC_IFELSE instead of AC_EGREP_CPP
ChangeSet@1.3107.2.2, 2014-03-03 09:33:00+00:00, stenn@psp-deb1.ntp.org
Reorder ChangeLog entry
ChangeLog@1.1440.1.2 +2 -2
Reorder ChangeLog entry
ChangeSet@1.3107.2.1, 2014-03-03 10:06:43+01:00, jnperlin@hydra.(none)
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
-- change reading the hash line code: NIST omits leading zeros.
ChangeLog@1.1440.1.1 +2 -0
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
-- change reading the hash line code: NIST omits leading zeros.
ntpd/ntp_leapsec.c@1.7 +24 -22
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
-- change reading the hash line code: NIST omits leading zeros.
tests/ntpd/leapsec.cpp@1.7 +74 -0
* [Bug 2570] refuse to load leapsec file with bad/missing SHA1 hash
-- added test cases for modified hash line read.
ChangeSet@1.3107.1.6, 2014-03-03 03:37:29-05:00, stenn@deacon.udel.edu
CID 1189401: Use INSIST() instead of a belt-and-suspenders pointer check
ChangeLog@1.1441 +1 -0
CID 1189401: Use INSIST() instead of a belt-and-suspenders pointer check
ntpd/refclock_gpsdjson.c@1.9 +5 -4
CID 1189401: Use INSIST() instead of a belt-and-suspenders pointer check
ChangeSet@1.3107.1.5, 2014-03-03 02:34:17-05:00, stenn@deacon.udel.edu
[Bug 2576] refclock_gpsdjson.c doesn't compile if CLOCK_GPSDJSON is not enabled at configure time
ChangeLog@1.1440 +2 -0
[Bug 2576] refclock_gpsdjson.c doesn't compile if CLOCK_GPSDJSON is not enabled at configure time
ntpd/refclock_gpsdjson.c@1.8 +2 -1
[Bug 2576] refclock_gpsdjson.c doesn't compile if CLOCK_GPSDJSON is not enabled at configure time
ChangeSet@1.3107.1.4, 2014-03-03 02:04:30-05:00, stenn@deacon.udel.edu
CID 1165098: Remove logically dead code from refclock_true.c
ChangeLog@1.1439 +1 -0
CID 1165098: Remove logically dead code from refclock_true.c
ntpd/refclock_true.c@1.21 +2 -4
CID 1165098: Remove logically dead code from refclock_true.c
ChangeSet@1.3107.1.3, 2014-03-02 22:47:14-05:00, stenn@deacon.udel.edu
In ntp_dir_sep.m4, we care about $host_os, not $target_os
ChangeLog@1.1438 +1 -0
In ntp_dir_sep.m4, we care about $host_os, not $target_os
sntp/m4/ntp_dir_sep.m4@1.5 +1 -1
In ntp_dir_sep.m4, we care about $host_os, not $target_os
ChangeSet@1.3107.1.2, 2014-03-02 21:45:57-05:00, stenn@deacon.udel.edu
bootstrap script needs to 'touch' files in finer-grained groups
ChangeLog@1.1437 +1 -0
bootstrap script needs to 'touch' files in finer-grained groups
bootstrap@1.47 +3 -0
bootstrap script needs to 'touch' files in finer-grained groups
ChangeSet@1.3107.1.1, 2014-03-03 01:58:08+00:00, stenn@deacon.udel.edu
NTP_4_2_7P428
TAG: NTP_4_2_7P428
ChangeLog@1.1436 +1 -0
NTP_4_2_7P428
ntpd/invoke-ntp.conf.texi@1.106 +1 -1
NTP_4_2_7P428
ntpd/invoke-ntp.keys.texi@1.104 +1 -1
NTP_4_2_7P428
ntpd/invoke-ntpd.texi@1.420 +2 -2
NTP_4_2_7P428
ntpd/ntp.conf.5man@1.140 +7 -7
NTP_4_2_7P428
ntpd/ntp.conf.5mdoc@1.140 +2 -2
NTP_4_2_7P428
ntpd/ntp.conf.html@1.101 +1 -1
NTP_4_2_7P428
ntpd/ntp.conf.man.in@1.140 +7 -7
NTP_4_2_7P428
ntpd/ntp.conf.mdoc.in@1.140 +2 -2
NTP_4_2_7P428
ntpd/ntp.keys.5man@1.138 +3 -3
NTP_4_2_7P428
ntpd/ntp.keys.5mdoc@1.138 +2 -2
NTP_4_2_7P428
ntpd/ntp.keys.html@1.102 +1 -1
NTP_4_2_7P428
ntpd/ntp.keys.man.in@1.138 +3 -3
NTP_4_2_7P428
ntpd/ntp.keys.mdoc.in@1.138 +2 -2
NTP_4_2_7P428
ntpd/ntpd-opts.c@1.438 +7 -7
NTP_4_2_7P428
ntpd/ntpd-opts.h@1.438 +3 -3
NTP_4_2_7P428
ntpd/ntpd.1ntpdman@1.249 +7 -7
NTP_4_2_7P428
ntpd/ntpd.1ntpdmdoc@1.249 +2 -2
NTP_4_2_7P428
ntpd/ntpd.html@1.96 +2 -2
NTP_4_2_7P428
ntpd/ntpd.man.in@1.249 +7 -7
NTP_4_2_7P428
ntpd/ntpd.mdoc.in@1.249 +2 -2
NTP_4_2_7P428
ntpdc/invoke-ntpdc.texi@1.418 +2 -2
NTP_4_2_7P428
ntpdc/ntpdc-opts.c@1.433 +7 -7
NTP_4_2_7P428
ntpdc/ntpdc-opts.h@1.433 +3 -3
NTP_4_2_7P428
ntpdc/ntpdc.1ntpdcman@1.249 +6 -6
NTP_4_2_7P428
ntpdc/ntpdc.1ntpdcmdoc@1.249 +1 -1
NTP_4_2_7P428
ntpdc/ntpdc.html@1.262 +2 -2
NTP_4_2_7P428
ntpdc/ntpdc.man.in@1.249 +6 -6
NTP_4_2_7P428
ntpdc/ntpdc.mdoc.in@1.249 +1 -1
NTP_4_2_7P428
ntpq/invoke-ntpq.texi@1.421 +2 -2
NTP_4_2_7P428
ntpq/ntpq-opts.c@1.435 +7 -7
NTP_4_2_7P428
ntpq/ntpq-opts.h@1.435 +3 -3
NTP_4_2_7P428
ntpq/ntpq.1ntpqman@1.249 +6 -6
NTP_4_2_7P428
ntpq/ntpq.1ntpqmdoc@1.249 +1 -1
NTP_4_2_7P428
ntpq/ntpq.html@1.93 +2 -2
NTP_4_2_7P428
ntpq/ntpq.man.in@1.249 +6 -6
NTP_4_2_7P428
ntpq/ntpq.mdoc.in@1.249 +1 -1
NTP_4_2_7P428
ntpsnmpd/invoke-ntpsnmpd.texi@1.420 +2 -2
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd-opts.c@1.435 +7 -7
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd-opts.h@1.435 +3 -3
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.249 +7 -7
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.249 +2 -2
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd.html@1.91 +1 -1
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd.man.in@1.249 +7 -7
NTP_4_2_7P428
ntpsnmpd/ntpsnmpd.mdoc.in@1.249 +2 -2
NTP_4_2_7P428
packageinfo.sh@1.432 +1 -1
NTP_4_2_7P428
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.11 +6 -6
NTP_4_2_7P428
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.11 +2 -2
NTP_4_2_7P428
scripts/calc_tickadj/calc_tickadj.html@1.10 +1 -1
NTP_4_2_7P428
scripts/calc_tickadj/calc_tickadj.man.in@1.10 +6 -6
NTP_4_2_7P428
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.11 +2 -2
NTP_4_2_7P428
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.12 +1 -1
NTP_4_2_7P428
scripts/invoke-plot_summary.texi@1.29 +1 -1
NTP_4_2_7P428
scripts/invoke-summary.texi@1.29 +1 -1
NTP_4_2_7P428
scripts/ntp-wait/invoke-ntp-wait.texi@1.238 +1 -1
NTP_4_2_7P428
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.239 +6 -6
NTP_4_2_7P428
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.239 +2 -2
NTP_4_2_7P428
scripts/ntp-wait/ntp-wait.html@1.255 +1 -1
NTP_4_2_7P428
scripts/ntp-wait/ntp-wait.man.in@1.239 +6 -6
NTP_4_2_7P428
scripts/ntp-wait/ntp-wait.mdoc.in@1.239 +2 -2
NTP_4_2_7P428
scripts/ntpsweep/invoke-ntpsweep.texi@1.27 +1 -1
NTP_4_2_7P428
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.18 +6 -6
NTP_4_2_7P428
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.18 +2 -2
NTP_4_2_7P428
scripts/ntpsweep/ntpsweep.html@1.28 +1 -1
NTP_4_2_7P428
scripts/ntpsweep/ntpsweep.man.in@1.18 +6 -6
NTP_4_2_7P428
scripts/ntpsweep/ntpsweep.mdoc.in@1.19 +2 -2
NTP_4_2_7P428
scripts/ntptrace/invoke-ntptrace.texi@1.27 +1 -1
NTP_4_2_7P428
scripts/ntptrace/ntptrace.1ntptraceman@1.18 +6 -6
NTP_4_2_7P428
scripts/ntptrace/ntptrace.1ntptracemdoc@1.18 +2 -2
NTP_4_2_7P428
scripts/ntptrace/ntptrace.html@1.28 +1 -1
NTP_4_2_7P428
scripts/ntptrace/ntptrace.man.in@1.18 +6 -6
NTP_4_2_7P428
scripts/ntptrace/ntptrace.mdoc.in@1.19 +2 -2
NTP_4_2_7P428
scripts/plot_summary.1plot_summaryman@1.29 +6 -6
NTP_4_2_7P428
scripts/plot_summary.1plot_summarymdoc@1.29 +3 -3
NTP_4_2_7P428
scripts/plot_summary.html@1.29 +1 -1
NTP_4_2_7P428
scripts/plot_summary.man.in@1.29 +6 -6
NTP_4_2_7P428
scripts/plot_summary.mdoc.in@1.29 +3 -3
NTP_4_2_7P428
scripts/summary.1summaryman@1.29 +6 -6
NTP_4_2_7P428
scripts/summary.1summarymdoc@1.29 +2 -2
NTP_4_2_7P428
scripts/summary.html@1.29 +1 -1
NTP_4_2_7P428
scripts/summary.man.in@1.29 +6 -6
NTP_4_2_7P428
scripts/summary.mdoc.in@1.29 +2 -2
NTP_4_2_7P428
sntp/invoke-sntp.texi@1.417 +2 -2
NTP_4_2_7P428
sntp/sntp-opts.c@1.432 +7 -7
NTP_4_2_7P428
sntp/sntp-opts.h@1.432 +3 -3
NTP_4_2_7P428
sntp/sntp.1sntpman@1.252 +14 -14
NTP_4_2_7P428
sntp/sntp.1sntpmdoc@1.252 +2 -2
NTP_4_2_7P428
sntp/sntp.html@1.432 +2 -2
NTP_4_2_7P428
sntp/sntp.man.in@1.252 +14 -14
NTP_4_2_7P428
sntp/sntp.mdoc.in@1.252 +2 -2
NTP_4_2_7P428
util/invoke-ntp-keygen.texi@1.421 +2 -2
NTP_4_2_7P428
util/ntp-keygen-opts.c@1.435 +7 -7
NTP_4_2_7P428
util/ntp-keygen-opts.h@1.435 +3 -3
NTP_4_2_7P428
util/ntp-keygen.1ntp-keygenman@1.249 +7 -7
NTP_4_2_7P428
util/ntp-keygen.1ntp-keygenmdoc@1.249 +2 -2
NTP_4_2_7P428
util/ntp-keygen.html@1.97 +2 -2
NTP_4_2_7P428
util/ntp-keygen.man.in@1.249 +7 -7
NTP_4_2_7P428
util/ntp-keygen.mdoc.in@1.249 +2 -2
NTP_4_2_7P428
ChangeSet@1.3103.2.3, 2014-03-02 04:45:25-05:00, stenn@deacon.udel.edu
[Bug 2562] Distribute the code in libjsmn/
ChangeLog@1.1432.2.3 +1 -0
[Bug 2562] Distribute the code in libjsmn/
Makefile.am@1.118 +1 -0
[Bug 2562] Distribute the code in libjsmn/
ChangeSet@1.3103.2.2, 2014-03-02 09:11:47+00:00, stenn@deacon.udel.edu
NTP_4_2_7P427
TAG: NTP_4_2_7P427
ChangeLog@1.1432.2.2 +1 -0
NTP_4_2_7P427
ntpd/invoke-ntp.conf.texi@1.105 +1 -1
NTP_4_2_7P427
ntpd/invoke-ntp.keys.texi@1.103 +1 -1
NTP_4_2_7P427
ntpd/invoke-ntpd.texi@1.419 +2 -2
NTP_4_2_7P427
ntpd/ntp.conf.5man@1.139 +14 -14
NTP_4_2_7P427
ntpd/ntp.conf.5mdoc@1.139 +3 -3
NTP_4_2_7P427
ntpd/ntp.conf.html@1.100 +1 -1
NTP_4_2_7P427
ntpd/ntp.conf.man.in@1.139 +14 -14
NTP_4_2_7P427
ntpd/ntp.conf.mdoc.in@1.139 +3 -3
NTP_4_2_7P427
ntpd/ntp.keys.5man@1.137 +3 -3
NTP_4_2_7P427
ntpd/ntp.keys.5mdoc@1.137 +3 -3
NTP_4_2_7P427
ntpd/ntp.keys.html@1.101 +1 -1
NTP_4_2_7P427
ntpd/ntp.keys.man.in@1.137 +3 -3
NTP_4_2_7P427
ntpd/ntp.keys.mdoc.in@1.137 +3 -3
NTP_4_2_7P427
ntpd/ntpd-opts.c@1.437 +7 -7
NTP_4_2_7P427
ntpd/ntpd-opts.h@1.437 +3 -3
NTP_4_2_7P427
ntpd/ntpd.1ntpdman@1.248 +7 -7
NTP_4_2_7P427
ntpd/ntpd.1ntpdmdoc@1.248 +3 -3
NTP_4_2_7P427
ntpd/ntpd.html@1.95 +2 -2
NTP_4_2_7P427
ntpd/ntpd.man.in@1.248 +7 -7
NTP_4_2_7P427
ntpd/ntpd.mdoc.in@1.248 +3 -3
NTP_4_2_7P427
ntpdc/invoke-ntpdc.texi@1.417 +2 -2
NTP_4_2_7P427
ntpdc/ntpdc-opts.c@1.432 +7 -7
NTP_4_2_7P427
ntpdc/ntpdc-opts.h@1.432 +3 -3
NTP_4_2_7P427
ntpdc/ntpdc.1ntpdcman@1.248 +13 -13
NTP_4_2_7P427
ntpdc/ntpdc.1ntpdcmdoc@1.248 +2 -2
NTP_4_2_7P427
ntpdc/ntpdc.html@1.261 +2 -2
NTP_4_2_7P427
ntpdc/ntpdc.man.in@1.248 +13 -13
NTP_4_2_7P427
ntpdc/ntpdc.mdoc.in@1.248 +2 -2
NTP_4_2_7P427
ntpq/invoke-ntpq.texi@1.420 +2 -2
NTP_4_2_7P427
ntpq/ntpq-opts.c@1.434 +7 -7
NTP_4_2_7P427
ntpq/ntpq-opts.h@1.434 +3 -3
NTP_4_2_7P427
ntpq/ntpq.1ntpqman@1.248 +13 -13
NTP_4_2_7P427
ntpq/ntpq.1ntpqmdoc@1.248 +2 -2
NTP_4_2_7P427
ntpq/ntpq.html@1.92 +2 -2
NTP_4_2_7P427
ntpq/ntpq.man.in@1.248 +13 -13
NTP_4_2_7P427
ntpq/ntpq.mdoc.in@1.248 +2 -2
NTP_4_2_7P427
ntpsnmpd/invoke-ntpsnmpd.texi@1.419 +2 -2
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd-opts.c@1.434 +7 -7
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd-opts.h@1.434 +3 -3
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.248 +7 -7
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.248 +3 -3
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd.html@1.90 +1 -1
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd.man.in@1.248 +7 -7
NTP_4_2_7P427
ntpsnmpd/ntpsnmpd.mdoc.in@1.248 +3 -3
NTP_4_2_7P427
packageinfo.sh@1.431 +1 -1
NTP_4_2_7P427
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.10 +6 -6
NTP_4_2_7P427
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.10 +2 -2
NTP_4_2_7P427
scripts/calc_tickadj/calc_tickadj.html@1.9 +1 -1
NTP_4_2_7P427
scripts/calc_tickadj/calc_tickadj.man.in@1.9 +6 -6
NTP_4_2_7P427
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.10 +2 -2
NTP_4_2_7P427
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.11 +1 -1
NTP_4_2_7P427
scripts/invoke-plot_summary.texi@1.28 +1 -1
NTP_4_2_7P427
scripts/invoke-summary.texi@1.28 +1 -1
NTP_4_2_7P427
scripts/ntp-wait/invoke-ntp-wait.texi@1.237 +1 -1
NTP_4_2_7P427
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.238 +6 -6
NTP_4_2_7P427
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.238 +2 -2
NTP_4_2_7P427
scripts/ntp-wait/ntp-wait.html@1.254 +1 -1
NTP_4_2_7P427
scripts/ntp-wait/ntp-wait.man.in@1.238 +6 -6
NTP_4_2_7P427
scripts/ntp-wait/ntp-wait.mdoc.in@1.238 +2 -2
NTP_4_2_7P427
scripts/ntpsweep/invoke-ntpsweep.texi@1.26 +1 -1
NTP_4_2_7P427
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.17 +6 -6
NTP_4_2_7P427
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.17 +2 -2
NTP_4_2_7P427
scripts/ntpsweep/ntpsweep.html@1.27 +1 -1
NTP_4_2_7P427
scripts/ntpsweep/ntpsweep.man.in@1.17 +6 -6
NTP_4_2_7P427
scripts/ntpsweep/ntpsweep.mdoc.in@1.18 +2 -2
NTP_4_2_7P427
scripts/ntptrace/invoke-ntptrace.texi@1.26 +1 -1
NTP_4_2_7P427
scripts/ntptrace/ntptrace.1ntptraceman@1.17 +13 -13
NTP_4_2_7P427
scripts/ntptrace/ntptrace.1ntptracemdoc@1.17 +2 -2
NTP_4_2_7P427
scripts/ntptrace/ntptrace.html@1.27 +1 -1
NTP_4_2_7P427
scripts/ntptrace/ntptrace.man.in@1.17 +13 -13
NTP_4_2_7P427
scripts/ntptrace/ntptrace.mdoc.in@1.18 +2 -2
NTP_4_2_7P427
scripts/plot_summary.1plot_summaryman@1.28 +6 -6
NTP_4_2_7P427
scripts/plot_summary.1plot_summarymdoc@1.28 +2 -2
NTP_4_2_7P427
scripts/plot_summary.html@1.28 +1 -1
NTP_4_2_7P427
scripts/plot_summary.man.in@1.28 +6 -6
NTP_4_2_7P427
scripts/plot_summary.mdoc.in@1.28 +2 -2
NTP_4_2_7P427
scripts/summary.1summaryman@1.28 +6 -6
NTP_4_2_7P427
scripts/summary.1summarymdoc@1.28 +2 -2
NTP_4_2_7P427
scripts/summary.html@1.28 +1 -1
NTP_4_2_7P427
scripts/summary.man.in@1.28 +6 -6
NTP_4_2_7P427
scripts/summary.mdoc.in@1.28 +2 -2
NTP_4_2_7P427
sntp/invoke-sntp.texi@1.416 +2 -2
NTP_4_2_7P427
sntp/sntp-opts.c@1.431 +7 -7
NTP_4_2_7P427
sntp/sntp-opts.h@1.431 +3 -3
NTP_4_2_7P427
sntp/sntp.1sntpman@1.251 +14 -14
NTP_4_2_7P427
sntp/sntp.1sntpmdoc@1.251 +3 -3
NTP_4_2_7P427
sntp/sntp.html@1.431 +2 -2
NTP_4_2_7P427
sntp/sntp.man.in@1.251 +14 -14
NTP_4_2_7P427
sntp/sntp.mdoc.in@1.251 +3 -3
NTP_4_2_7P427
util/invoke-ntp-keygen.texi@1.420 +2 -2
NTP_4_2_7P427
util/ntp-keygen-opts.c@1.434 +7 -7
NTP_4_2_7P427
util/ntp-keygen-opts.h@1.434 +3 -3
NTP_4_2_7P427
util/ntp-keygen.1ntp-keygenman@1.248 +7 -7
NTP_4_2_7P427
util/ntp-keygen.1ntp-keygenmdoc@1.248 +3 -3
NTP_4_2_7P427
util/ntp-keygen.html@1.96 +2 -2
NTP_4_2_7P427
util/ntp-keygen.man.in@1.248 +7 -7
NTP_4_2_7P427
util/ntp-keygen.mdoc.in@1.248 +3 -3
NTP_4_2_7P427
ChangeSet@1.3102.1.1, 2014-03-02 09:25:15+01:00, jnperlin@hydra.(none)
[Bug 2562] GPSD_JSON clock: fix build issues with solaris (asprintf(),isfinite())
ChangeLog@1.1431.1.1 +1 -0
[Bug 2562] GPSD_JSON clock: fix build issues with solaris (asprintf(),isfinite())
ntpd/refclock_gpsdjson.c@1.7 +40 -14
[Bug 2562] GPSD_JSON clock: fix build issues with solaris (asprintf(),isfinite())
ChangeSet@1.3103.1.1, 2014-03-01 11:52:12+00:00, perlinger@psp-deb1.ntp.org
[Bug 2570] add signature check when reading leapseconds file
ChangeLog@1.1432.1.1 +1 -0
[Bug 2570] add signature check when reading leapseconds file
libntp/Makefile.am@1.71.1.1 +1 -0
[Bug 2570] add signature check when reading leapseconds file
- include isc/sha1.c in build
ntpd/ntp_leapsec.c@1.4.1.1 +141 -1
[Bug 2570] add signature check when reading leapseconds file
- add support functions and plumbing
ntpd/ntp_leapsec.h@1.3.1.1 +14 -1
[Bug 2570] add signature check when reading leapseconds file
- define hash validation result definitions
- provide argument how to handle validation results
ntpd/ntp_util.c@1.106.1.1 +10 -2
[Bug 2570] add signature check when reading leapseconds file
- hardwired refusal of files with bad signature (no signature is OK!)
ports/winnt/vs2008/libntp/libntp.vcproj@1.47.1.1 +7 -3
[Bug 2570] add signature check when reading leapseconds file
- include isc/sha1.c in build
tests/ntpd/leapsec.cpp@1.4.1.1 +114 -1
[Bug 2570] add signature check when reading leapseconds file
- Add test cases for good/missing/bad/malformed SHA1 lines
ChangeSet@1.3105, 2014-03-01 12:46:15+01:00, jnperlin@hydra.(none)
default
ntpd/ntp_util.c@1.108 +10 -2
default
ChangeSet@1.3104, 2014-03-01 11:13:10+00:00, perlinger@psp-deb1.ntp.org
[Bug 2570] add signature check when reading leapseconds file
- include isc/sha1.c in build
ChangeLog@1.1433 +1 -0
[Bug 2570] add signature check when reading leapseconds file
libntp/Makefile.am@1.72 +1 -0
[Bug 2570] add signature check when reading leapseconds file
- include isc/sha1.c in build
ntpd/ntp_leapsec.c@1.5 +141 -1
[Bug 2570] add signature check when reading leapseconds file
- add support functions and plumbing
ntpd/ntp_leapsec.h@1.4 +14 -1
[Bug 2570] add signature check when reading leapseconds file
- define hash validation result definitions
- provide argument how to handle validation results
ntpd/ntp_util.c@1.107 +2 -2
[Bug 2570] add signature check when reading leapseconds file
- hardwired refusal of files without good signature
ports/winnt/vs2008/libntp/libntp.vcproj@1.48 +7 -3
[Bug 2570] add signature check when reading leapseconds file
- include isc/sha1.c in build
tests/ntpd/leapsec.cpp@1.5 +114 -1
[Bug 2570] add signature check when reading leapseconds file
- Add test cases for good/missing/bad/malformed SHA1 lines
ChangeSet@1.3093.4.4, 2014-02-28 11:46:22+00:00, stenn@deacon.udel.edu
NTP_4_2_7P426
TAG: NTP_4_2_7P426
ChangeLog@1.1430.1.6 +1 -0
NTP_4_2_7P426
ntpd/invoke-ntp.conf.texi@1.104 +1 -1
NTP_4_2_7P426
ntpd/invoke-ntp.keys.texi@1.102 +1 -1
NTP_4_2_7P426
ntpd/invoke-ntpd.texi@1.418 +2 -2
NTP_4_2_7P426
ntpd/ntp.conf.5man@1.138 +14 -14
NTP_4_2_7P426
ntpd/ntp.conf.5mdoc@1.138 +3 -3
NTP_4_2_7P426
ntpd/ntp.conf.html@1.99 +1 -1
NTP_4_2_7P426
ntpd/ntp.conf.man.in@1.138 +14 -14
NTP_4_2_7P426
ntpd/ntp.conf.mdoc.in@1.138 +3 -3
NTP_4_2_7P426
ntpd/ntp.keys.5man@1.136 +3 -3
NTP_4_2_7P426
ntpd/ntp.keys.5mdoc@1.136 +3 -3
NTP_4_2_7P426
ntpd/ntp.keys.html@1.100 +1 -1
NTP_4_2_7P426
ntpd/ntp.keys.man.in@1.136 +3 -3
NTP_4_2_7P426
ntpd/ntp.keys.mdoc.in@1.136 +3 -3
NTP_4_2_7P426
ntpd/ntpd-opts.c@1.436 +7 -7
NTP_4_2_7P426
ntpd/ntpd-opts.h@1.436 +3 -3
NTP_4_2_7P426
ntpd/ntpd.1ntpdman@1.247 +7 -7
NTP_4_2_7P426
ntpd/ntpd.1ntpdmdoc@1.247 +3 -3
NTP_4_2_7P426
ntpd/ntpd.html@1.94 +2 -2
NTP_4_2_7P426
ntpd/ntpd.man.in@1.247 +7 -7
NTP_4_2_7P426
ntpd/ntpd.mdoc.in@1.247 +3 -3
NTP_4_2_7P426
ntpdc/invoke-ntpdc.texi@1.416 +2 -2
NTP_4_2_7P426
ntpdc/ntpdc-opts.c@1.431 +7 -7
NTP_4_2_7P426
ntpdc/ntpdc-opts.h@1.431 +3 -3
NTP_4_2_7P426
ntpdc/ntpdc.1ntpdcman@1.247 +13 -13
NTP_4_2_7P426
ntpdc/ntpdc.1ntpdcmdoc@1.247 +2 -2
NTP_4_2_7P426
ntpdc/ntpdc.html@1.260 +2 -2
NTP_4_2_7P426
ntpdc/ntpdc.man.in@1.247 +13 -13
NTP_4_2_7P426
ntpdc/ntpdc.mdoc.in@1.247 +2 -2
NTP_4_2_7P426
ntpq/invoke-ntpq.texi@1.419 +2 -2
NTP_4_2_7P426
ntpq/ntpq-opts.c@1.433 +7 -7
NTP_4_2_7P426
ntpq/ntpq-opts.h@1.433 +3 -3
NTP_4_2_7P426
ntpq/ntpq.1ntpqman@1.247 +13 -13
NTP_4_2_7P426
ntpq/ntpq.1ntpqmdoc@1.247 +2 -2
NTP_4_2_7P426
ntpq/ntpq.html@1.91 +2 -2
NTP_4_2_7P426
ntpq/ntpq.man.in@1.247 +13 -13
NTP_4_2_7P426
ntpq/ntpq.mdoc.in@1.247 +2 -2
NTP_4_2_7P426
ntpsnmpd/invoke-ntpsnmpd.texi@1.418 +2 -2
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd-opts.c@1.433 +7 -7
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd-opts.h@1.433 +3 -3
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.247 +7 -7
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.247 +3 -3
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd.html@1.89 +1 -1
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd.man.in@1.247 +7 -7
NTP_4_2_7P426
ntpsnmpd/ntpsnmpd.mdoc.in@1.247 +3 -3
NTP_4_2_7P426
packageinfo.sh@1.430 +1 -1
NTP_4_2_7P426
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.9 +13 -13
NTP_4_2_7P426
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.9 +2 -2
NTP_4_2_7P426
scripts/calc_tickadj/calc_tickadj.html@1.8 +1 -1
NTP_4_2_7P426
scripts/calc_tickadj/calc_tickadj.man.in@1.8 +13 -13
NTP_4_2_7P426
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.9 +2 -2
NTP_4_2_7P426
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.10 +1 -1
NTP_4_2_7P426
scripts/invoke-plot_summary.texi@1.27 +1 -1
NTP_4_2_7P426
scripts/invoke-summary.texi@1.27 +1 -1
NTP_4_2_7P426
scripts/ntp-wait/invoke-ntp-wait.texi@1.236 +1 -1
NTP_4_2_7P426
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.237 +6 -6
NTP_4_2_7P426
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.237 +2 -2
NTP_4_2_7P426
scripts/ntp-wait/ntp-wait.html@1.253 +1 -1
NTP_4_2_7P426
scripts/ntp-wait/ntp-wait.man.in@1.237 +6 -6
NTP_4_2_7P426
scripts/ntp-wait/ntp-wait.mdoc.in@1.237 +2 -2
NTP_4_2_7P426
scripts/ntpsweep/invoke-ntpsweep.texi@1.25 +1 -1
NTP_4_2_7P426
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.16 +6 -6
NTP_4_2_7P426
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.16 +2 -2
NTP_4_2_7P426
scripts/ntpsweep/ntpsweep.html@1.26 +1 -1
NTP_4_2_7P426
scripts/ntpsweep/ntpsweep.man.in@1.16 +6 -6
NTP_4_2_7P426
scripts/ntpsweep/ntpsweep.mdoc.in@1.17 +2 -2
NTP_4_2_7P426
scripts/ntptrace/invoke-ntptrace.texi@1.25 +1 -1
NTP_4_2_7P426
scripts/ntptrace/ntptrace.1ntptraceman@1.16 +13 -13
NTP_4_2_7P426
scripts/ntptrace/ntptrace.1ntptracemdoc@1.16 +2 -2
NTP_4_2_7P426
scripts/ntptrace/ntptrace.html@1.26 +1 -1
NTP_4_2_7P426
scripts/ntptrace/ntptrace.man.in@1.16 +13 -13
NTP_4_2_7P426
scripts/ntptrace/ntptrace.mdoc.in@1.17 +2 -2
NTP_4_2_7P426
scripts/plot_summary.1plot_summaryman@1.27 +6 -6
NTP_4_2_7P426
scripts/plot_summary.1plot_summarymdoc@1.27 +2 -2
NTP_4_2_7P426
scripts/plot_summary.html@1.27 +1 -1
NTP_4_2_7P426
scripts/plot_summary.man.in@1.27 +6 -6
NTP_4_2_7P426
scripts/plot_summary.mdoc.in@1.27 +2 -2
NTP_4_2_7P426
scripts/summary.1summaryman@1.27 +6 -6
NTP_4_2_7P426
scripts/summary.1summarymdoc@1.27 +2 -2
NTP_4_2_7P426
scripts/summary.html@1.27 +1 -1
NTP_4_2_7P426
scripts/summary.man.in@1.27 +6 -6
NTP_4_2_7P426
scripts/summary.mdoc.in@1.27 +2 -2
NTP_4_2_7P426
sntp/invoke-sntp.texi@1.415 +2 -2
NTP_4_2_7P426
sntp/sntp-opts.c@1.430 +7 -7
NTP_4_2_7P426
sntp/sntp-opts.h@1.430 +3 -3
NTP_4_2_7P426
sntp/sntp.1sntpman@1.250 +7 -7
NTP_4_2_7P426
sntp/sntp.1sntpmdoc@1.250 +3 -3
NTP_4_2_7P426
sntp/sntp.html@1.430 +2 -2
NTP_4_2_7P426
sntp/sntp.man.in@1.250 +7 -7
NTP_4_2_7P426
sntp/sntp.mdoc.in@1.250 +3 -3
NTP_4_2_7P426
util/invoke-ntp-keygen.texi@1.419 +2 -2
NTP_4_2_7P426
util/ntp-keygen-opts.c@1.433 +7 -7
NTP_4_2_7P426
util/ntp-keygen-opts.h@1.433 +3 -3
NTP_4_2_7P426
util/ntp-keygen.1ntp-keygenman@1.247 +1250 -0
NTP_4_2_7P426
util/ntp-keygen.1ntp-keygenmdoc@1.247 +3 -3
NTP_4_2_7P426
util/ntp-keygen.html@1.95 +2 -2
NTP_4_2_7P426
util/ntp-keygen.man.in@1.247 +1250 -0
NTP_4_2_7P426
util/ntp-keygen.mdoc.in@1.247 +3 -3
NTP_4_2_7P426
ChangeSet@1.3093.4.3, 2014-02-28 06:24:16-05:00, stenn@deacon.udel.edu
test -nt is not portable
bootstrap@1.46 +7 -2
test -nt is not portable
ChangeSet@1.3093.4.2, 2014-02-28 04:20:55-05:00, stenn@deacon.udel.edu
[Bug 2561] Allow wildcards in the target of the "interface" command
ntpd/ntp_io.c@1.391 +4 -1
[Bug 2561] Allow wildcards in the target of the "interface" command
ChangeSet@1.3093.4.1, 2014-02-28 08:14:13+00:00, stenn@psp-fb1.ntp.org
[Bug 2572] cross-compiling fails for --with-yielding_select
ChangeLog@1.1430.1.5 +1 -0
[Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups
ChangeLog@1.1430.1.4 +1 -0
[Bug 2572] cross-compiling fails for --with-yielding_select
bootstrap@1.45 +3 -0
[Bug 2540] bootstrap script needs to 'touch' files in finer-grained groups.
sntp/libevent/m4/openldap-thread-check.m4@1.2 +1 -1
[Bug 2572] cross-compiling fails for --with-yielding_select
ChangeSet@1.3093.3.2, 2014-02-27 23:55:28-08:00, harlan@hms-mbp11.local
test SCCS date/time keyword expansion for html files
html/extern.html@1.18 +0 -0
Turn on SCCS flag
ChangeSet@1.3093.1.10, 2014-02-28 02:29:49-05:00, stenn@deacon.udel.edu
[Bug 2113] Warn about ignored extra args in ntpq
ChangeLog@1.1430.1.3 +1 -0
[Bug 2113] Warn about ignored extra args in ntpq
ntpq/ntpq-subs.c@1.99 +7 -3
[Bug 2113] Warn about ignored extra args in ntpq
ChangeSet@1.3093.3.1, 2014-02-27 22:53:21-08:00, harlan@hms-mbp11.local
test bk keyword expansion
html/extern.html@1.17 +1 -1
test bk keyword expansion
ChangeSet@1.3093.2.1, 2014-02-28 06:37:01+00:00, stenn@psp-fb1.ntp.org
[Bug 2561] Allow wildcards in the target of the "interface" command
ChangeLog@1.1425.1.1 +1 -0
[Bug 2561] Allow wildcards in the target of the "interface" command
configure.ac@1.571.1.2 +2 -2
[Bug 2561] Allow wildcards in the target of the "interface" command
ntpd/ntp_io.c@1.390 +9 -1
[Bug 2561] Allow wildcards in the target of the "interface" command
ChangeSet@1.3093.1.8, 2014-02-26 10:06:59+00:00, stenn@deacon.udel.edu
NTP_4_2_7P425
TAG: NTP_4_2_7P425
ChangeLog@1.1430.1.1 +1 -0
NTP_4_2_7P425
ntpd/invoke-ntp.conf.texi@1.103 +1 -1
NTP_4_2_7P425
ntpd/invoke-ntp.keys.texi@1.101 +1 -1
NTP_4_2_7P425
ntpd/invoke-ntpd.texi@1.417 +2 -2
NTP_4_2_7P425
ntpd/ntp.conf.5man@1.137 +7 -7
NTP_4_2_7P425
ntpd/ntp.conf.5mdoc@1.137 +3 -3
NTP_4_2_7P425
ntpd/ntp.conf.html@1.98 +1 -1
NTP_4_2_7P425
ntpd/ntp.conf.man.in@1.137 +7 -7
NTP_4_2_7P425
ntpd/ntp.conf.mdoc.in@1.137 +3 -3
NTP_4_2_7P425
ntpd/ntp.keys.5man@1.135 +3 -3
NTP_4_2_7P425
ntpd/ntp.keys.5mdoc@1.135 +3 -3
NTP_4_2_7P425
ntpd/ntp.keys.html@1.99 +1 -1
NTP_4_2_7P425
ntpd/ntp.keys.man.in@1.135 +3 -3
NTP_4_2_7P425
ntpd/ntp.keys.mdoc.in@1.135 +3 -3
NTP_4_2_7P425
ntpd/ntpd-opts.c@1.435 +7 -7
NTP_4_2_7P425
ntpd/ntpd-opts.h@1.435 +3 -3
NTP_4_2_7P425
ntpd/ntpd.1ntpdman@1.246 +7 -7
NTP_4_2_7P425
ntpd/ntpd.1ntpdmdoc@1.246 +3 -3
NTP_4_2_7P425
ntpd/ntpd.html@1.93 +2 -2
NTP_4_2_7P425
ntpd/ntpd.man.in@1.246 +7 -7
NTP_4_2_7P425
ntpd/ntpd.mdoc.in@1.246 +3 -3
NTP_4_2_7P425
ntpdc/invoke-ntpdc.texi@1.415 +2 -2
NTP_4_2_7P425
ntpdc/ntpdc-opts.c@1.430 +7 -7
NTP_4_2_7P425
ntpdc/ntpdc-opts.h@1.430 +3 -3
NTP_4_2_7P425
ntpdc/ntpdc.1ntpdcman@1.246 +6 -6
NTP_4_2_7P425
ntpdc/ntpdc.1ntpdcmdoc@1.246 +2 -2
NTP_4_2_7P425
ntpdc/ntpdc.html@1.259 +2 -2
NTP_4_2_7P425
ntpdc/ntpdc.man.in@1.246 +6 -6
NTP_4_2_7P425
ntpdc/ntpdc.mdoc.in@1.246 +2 -2
NTP_4_2_7P425
ntpq/invoke-ntpq.texi@1.418 +2 -2
NTP_4_2_7P425
ntpq/ntpq-opts.c@1.432 +7 -7
NTP_4_2_7P425
ntpq/ntpq-opts.h@1.432 +3 -3
NTP_4_2_7P425
ntpq/ntpq.1ntpqman@1.246 +6 -6
NTP_4_2_7P425
ntpq/ntpq.1ntpqmdoc@1.246 +2 -2
NTP_4_2_7P425
ntpq/ntpq.html@1.90 +2 -2
NTP_4_2_7P425
ntpq/ntpq.man.in@1.246 +6 -6
NTP_4_2_7P425
ntpq/ntpq.mdoc.in@1.246 +2 -2
NTP_4_2_7P425
ntpsnmpd/invoke-ntpsnmpd.texi@1.417 +2 -2
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd-opts.c@1.432 +7 -7
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd-opts.h@1.432 +3 -3
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.246 +7 -7
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.246 +3 -3
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd.html@1.88 +1 -1
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd.man.in@1.246 +7 -7
NTP_4_2_7P425
ntpsnmpd/ntpsnmpd.mdoc.in@1.246 +3 -3
NTP_4_2_7P425
packageinfo.sh@1.429 +1 -1
NTP_4_2_7P425
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.8 +13 -13
NTP_4_2_7P425
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.8 +2 -2
NTP_4_2_7P425
scripts/calc_tickadj/calc_tickadj.html@1.7 +1 -1
NTP_4_2_7P425
scripts/calc_tickadj/calc_tickadj.man.in@1.7 +13 -13
NTP_4_2_7P425
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.8 +2 -2
NTP_4_2_7P425
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.9 +1 -1
NTP_4_2_7P425
scripts/invoke-plot_summary.texi@1.26 +1 -1
NTP_4_2_7P425
scripts/invoke-summary.texi@1.26 +1 -1
NTP_4_2_7P425
scripts/ntp-wait/invoke-ntp-wait.texi@1.235 +1 -1
NTP_4_2_7P425
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.236 +6 -6
NTP_4_2_7P425
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.236 +2 -2
NTP_4_2_7P425
scripts/ntp-wait/ntp-wait.html@1.252 +1 -1
NTP_4_2_7P425
scripts/ntp-wait/ntp-wait.man.in@1.236 +6 -6
NTP_4_2_7P425
scripts/ntp-wait/ntp-wait.mdoc.in@1.236 +2 -2
NTP_4_2_7P425
scripts/ntpsweep/invoke-ntpsweep.texi@1.24 +1 -1
NTP_4_2_7P425
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.15 +6 -6
NTP_4_2_7P425
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.15 +2 -2
NTP_4_2_7P425
scripts/ntpsweep/ntpsweep.html@1.25 +1 -1
NTP_4_2_7P425
scripts/ntpsweep/ntpsweep.man.in@1.15 +6 -6
NTP_4_2_7P425
scripts/ntpsweep/ntpsweep.mdoc.in@1.16 +2 -2
NTP_4_2_7P425
scripts/ntptrace/invoke-ntptrace.texi@1.24 +1 -1
NTP_4_2_7P425
scripts/ntptrace/ntptrace.1ntptraceman@1.15 +6 -6
NTP_4_2_7P425
scripts/ntptrace/ntptrace.1ntptracemdoc@1.15 +2 -2
NTP_4_2_7P425
scripts/ntptrace/ntptrace.html@1.25 +1 -1
NTP_4_2_7P425
scripts/ntptrace/ntptrace.man.in@1.15 +6 -6
NTP_4_2_7P425
scripts/ntptrace/ntptrace.mdoc.in@1.16 +2 -2
NTP_4_2_7P425
scripts/plot_summary.1plot_summaryman@1.26 +6 -6
NTP_4_2_7P425
scripts/plot_summary.1plot_summarymdoc@1.26 +2 -2
NTP_4_2_7P425
scripts/plot_summary.html@1.26 +1 -1
NTP_4_2_7P425
scripts/plot_summary.man.in@1.26 +6 -6
NTP_4_2_7P425
scripts/plot_summary.mdoc.in@1.26 +2 -2
NTP_4_2_7P425
scripts/summary.1summaryman@1.26 +6 -6
NTP_4_2_7P425
scripts/summary.1summarymdoc@1.26 +2 -2
NTP_4_2_7P425
scripts/summary.html@1.26 +1 -1
NTP_4_2_7P425
scripts/summary.man.in@1.26 +6 -6
NTP_4_2_7P425
scripts/summary.mdoc.in@1.26 +2 -2
NTP_4_2_7P425
sntp/invoke-sntp.texi@1.414 +2 -2
NTP_4_2_7P425
sntp/sntp-opts.c@1.429 +7 -7
NTP_4_2_7P425
sntp/sntp-opts.h@1.429 +3 -3
NTP_4_2_7P425
sntp/sntp.1sntpman@1.249 +7 -7
NTP_4_2_7P425
sntp/sntp.1sntpmdoc@1.249 +3 -3
NTP_4_2_7P425
sntp/sntp.html@1.429 +2 -2
NTP_4_2_7P425
sntp/sntp.man.in@1.249 +7 -7
NTP_4_2_7P425
sntp/sntp.mdoc.in@1.249 +3 -3
NTP_4_2_7P425
util/invoke-ntp-keygen.texi@1.418 +2 -2
NTP_4_2_7P425
util/ntp-keygen-opts.c@1.432 +7 -7
NTP_4_2_7P425
util/ntp-keygen-opts.h@1.432 +3 -3
NTP_4_2_7P425
util/ntp-keygen.1ntp-keygenman@1.246 +0 -1250
NTP_4_2_7P425
util/ntp-keygen.1ntp-keygenmdoc@1.246 +3 -3
NTP_4_2_7P425
util/ntp-keygen.html@1.94 +2 -2
NTP_4_2_7P425
util/ntp-keygen.man.in@1.246 +0 -1250
NTP_4_2_7P425
util/ntp-keygen.mdoc.in@1.246 +3 -3
NTP_4_2_7P425
ChangeSet@1.3102, 2014-02-25 21:26:28+01:00, jnperlin@hydra.(none)
[Bug 2562] first release of the GPSD client clock (type 46)
ChangeLog@1.1431 +1 -0
[Bug 2562] first release of the GPSD client clock (type 46)
ChangeSet@1.3093.1.7, 2014-02-25 01:36:30-05:00, stenn@deacon.udel.edu
Copyright file update
ChangeLog@1.1430 +1 -0
Copyright file update
html/copyright.html@1.62 +1 -0
Copyright file update
ChangeSet@1.3093.1.6, 2014-02-24 05:59:09+00:00, stenn@deacon.udel.edu
NTP_4_2_7P424
TAG: NTP_4_2_7P424
ChangeLog@1.1429 +1 -0
NTP_4_2_7P424
ntpd/invoke-ntp.conf.texi@1.102 +1 -1
NTP_4_2_7P424
ntpd/invoke-ntp.keys.texi@1.100 +1 -1
NTP_4_2_7P424
ntpd/invoke-ntpd.texi@1.416 +2 -2
NTP_4_2_7P424
ntpd/ntp.conf.5man@1.136 +7 -7
NTP_4_2_7P424
ntpd/ntp.conf.5mdoc@1.136 +3 -3
NTP_4_2_7P424
ntpd/ntp.conf.html@1.97 +1 -1
NTP_4_2_7P424
ntpd/ntp.conf.man.in@1.136 +7 -7
NTP_4_2_7P424
ntpd/ntp.conf.mdoc.in@1.136 +3 -3
NTP_4_2_7P424
ntpd/ntp.keys.5man@1.134 +3 -3
NTP_4_2_7P424
ntpd/ntp.keys.5mdoc@1.134 +3 -3
NTP_4_2_7P424
ntpd/ntp.keys.html@1.98 +1 -1
NTP_4_2_7P424
ntpd/ntp.keys.man.in@1.134 +3 -3
NTP_4_2_7P424
ntpd/ntp.keys.mdoc.in@1.134 +3 -3
NTP_4_2_7P424
ntpd/ntpd-opts.c@1.434 +7 -7
NTP_4_2_7P424
ntpd/ntpd-opts.h@1.434 +3 -3
NTP_4_2_7P424
ntpd/ntpd.1ntpdman@1.245 +7 -7
NTP_4_2_7P424
ntpd/ntpd.1ntpdmdoc@1.245 +3 -3
NTP_4_2_7P424
ntpd/ntpd.html@1.92 +2 -2
NTP_4_2_7P424
ntpd/ntpd.man.in@1.245 +7 -7
NTP_4_2_7P424
ntpd/ntpd.mdoc.in@1.245 +3 -3
NTP_4_2_7P424
ntpdc/invoke-ntpdc.texi@1.414 +2 -2
NTP_4_2_7P424
ntpdc/ntpdc-opts.c@1.429 +7 -7
NTP_4_2_7P424
ntpdc/ntpdc-opts.h@1.429 +3 -3
NTP_4_2_7P424
ntpdc/ntpdc.1ntpdcman@1.245 +6 -6
NTP_4_2_7P424
ntpdc/ntpdc.1ntpdcmdoc@1.245 +2 -2
NTP_4_2_7P424
ntpdc/ntpdc.html@1.258 +2 -2
NTP_4_2_7P424
ntpdc/ntpdc.man.in@1.245 +6 -6
NTP_4_2_7P424
ntpdc/ntpdc.mdoc.in@1.245 +2 -2
NTP_4_2_7P424
ntpq/invoke-ntpq.texi@1.417 +2 -2
NTP_4_2_7P424
ntpq/ntpq-opts.c@1.431 +7 -7
NTP_4_2_7P424
ntpq/ntpq-opts.h@1.431 +3 -3
NTP_4_2_7P424
ntpq/ntpq.1ntpqman@1.245 +6 -6
NTP_4_2_7P424
ntpq/ntpq.1ntpqmdoc@1.245 +2 -2
NTP_4_2_7P424
ntpq/ntpq.html@1.89 +2 -2
NTP_4_2_7P424
ntpq/ntpq.man.in@1.245 +6 -6
NTP_4_2_7P424
ntpq/ntpq.mdoc.in@1.245 +2 -2
NTP_4_2_7P424
ntpsnmpd/invoke-ntpsnmpd.texi@1.416 +2 -2
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd-opts.c@1.431 +7 -7
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd-opts.h@1.431 +3 -3
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.245 +235 -0
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.245 +3 -3
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd.html@1.87 +1 -1
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd.man.in@1.245 +235 -0
NTP_4_2_7P424
ntpsnmpd/ntpsnmpd.mdoc.in@1.245 +3 -3
NTP_4_2_7P424
packageinfo.sh@1.428 +1 -1
NTP_4_2_7P424
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.7 +6 -6
NTP_4_2_7P424
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.7 +2 -2
NTP_4_2_7P424
scripts/calc_tickadj/calc_tickadj.html@1.6 +1 -1
NTP_4_2_7P424
scripts/calc_tickadj/calc_tickadj.man.in@1.6 +6 -6
NTP_4_2_7P424
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.7 +2 -2
NTP_4_2_7P424
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.8 +1 -1
NTP_4_2_7P424
scripts/invoke-plot_summary.texi@1.25 +1 -1
NTP_4_2_7P424
scripts/invoke-summary.texi@1.25 +1 -1
NTP_4_2_7P424
scripts/ntp-wait/invoke-ntp-wait.texi@1.234 +1 -1
NTP_4_2_7P424
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.235 +6 -6
NTP_4_2_7P424
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.235 +2 -2
NTP_4_2_7P424
scripts/ntp-wait/ntp-wait.html@1.251 +1 -1
NTP_4_2_7P424
scripts/ntp-wait/ntp-wait.man.in@1.235 +6 -6
NTP_4_2_7P424
scripts/ntp-wait/ntp-wait.mdoc.in@1.235 +2 -2
NTP_4_2_7P424
scripts/ntpsweep/invoke-ntpsweep.texi@1.23 +1 -1
NTP_4_2_7P424
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.14 +6 -6
NTP_4_2_7P424
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.14 +2 -2
NTP_4_2_7P424
scripts/ntpsweep/ntpsweep.html@1.24 +1 -1
NTP_4_2_7P424
scripts/ntpsweep/ntpsweep.man.in@1.14 +6 -6
NTP_4_2_7P424
scripts/ntpsweep/ntpsweep.mdoc.in@1.15 +2 -2
NTP_4_2_7P424
scripts/ntptrace/invoke-ntptrace.texi@1.23 +1 -1
NTP_4_2_7P424
scripts/ntptrace/ntptrace.1ntptraceman@1.14 +6 -6
NTP_4_2_7P424
scripts/ntptrace/ntptrace.1ntptracemdoc@1.14 +2 -2
NTP_4_2_7P424
scripts/ntptrace/ntptrace.html@1.24 +1 -1
NTP_4_2_7P424
scripts/ntptrace/ntptrace.man.in@1.14 +6 -6
NTP_4_2_7P424
scripts/ntptrace/ntptrace.mdoc.in@1.15 +2 -2
NTP_4_2_7P424
scripts/plot_summary.1plot_summaryman@1.25 +6 -6
NTP_4_2_7P424
scripts/plot_summary.1plot_summarymdoc@1.25 +2 -2
NTP_4_2_7P424
scripts/plot_summary.html@1.25 +1 -1
NTP_4_2_7P424
scripts/plot_summary.man.in@1.25 +6 -6
NTP_4_2_7P424
scripts/plot_summary.mdoc.in@1.25 +2 -2
NTP_4_2_7P424
scripts/summary.1summaryman@1.25 +6 -6
NTP_4_2_7P424
scripts/summary.1summarymdoc@1.25 +2 -2
NTP_4_2_7P424
scripts/summary.html@1.25 +1 -1
NTP_4_2_7P424
scripts/summary.man.in@1.25 +6 -6
NTP_4_2_7P424
scripts/summary.mdoc.in@1.25 +2 -2
NTP_4_2_7P424
sntp/invoke-sntp.texi@1.413 +2 -2
NTP_4_2_7P424
sntp/sntp-opts.c@1.428 +7 -7
NTP_4_2_7P424
sntp/sntp-opts.h@1.428 +3 -3
NTP_4_2_7P424
sntp/sntp.1sntpman@1.248 +7 -7
NTP_4_2_7P424
sntp/sntp.1sntpmdoc@1.248 +3 -3
NTP_4_2_7P424
sntp/sntp.html@1.428 +2 -2
NTP_4_2_7P424
sntp/sntp.man.in@1.248 +7 -7
NTP_4_2_7P424
sntp/sntp.mdoc.in@1.248 +3 -3
NTP_4_2_7P424
util/invoke-ntp-keygen.texi@1.417 +2 -2
NTP_4_2_7P424
util/ntp-keygen-opts.c@1.431 +7 -7
NTP_4_2_7P424
util/ntp-keygen-opts.h@1.431 +3 -3
NTP_4_2_7P424
util/ntp-keygen.1ntp-keygenman@1.245 +7 -7
NTP_4_2_7P424
util/ntp-keygen.1ntp-keygenmdoc@1.245 +3 -3
NTP_4_2_7P424
util/ntp-keygen.html@1.93 +2 -2
NTP_4_2_7P424
util/ntp-keygen.man.in@1.245 +7 -7
NTP_4_2_7P424
util/ntp-keygen.mdoc.in@1.245 +3 -3
NTP_4_2_7P424
ChangeSet@1.3093.1.5, 2014-02-23 18:25:43-05:00, stenn@deacon.udel.edu
[Bug 2541] ntpd terminates itself with SIGHUP unexpectedly
ChangeLog@1.1428 +1 -0
[Bug 2541] ntpd terminates itself with SIGHUP unexpectedly
libntp/work_fork.c@1.12 +3 -1
[Bug 2541] ntpd terminates itself with SIGHUP unexpectedly
ChangeSet@1.3093.1.4, 2014-02-23 22:59:14+00:00, stenn@deacon.udel.edu
NTP_4_2_7P423
TAG: NTP_4_2_7P423
ChangeLog@1.1427 +1 -0
NTP_4_2_7P423
ntpd/invoke-ntp.conf.texi@1.101 +1 -1
NTP_4_2_7P423
ntpd/invoke-ntp.keys.texi@1.99 +1 -1
NTP_4_2_7P423
ntpd/invoke-ntpd.texi@1.415 +2 -2
NTP_4_2_7P423
ntpd/ntp.conf.5man@1.135 +7 -7
NTP_4_2_7P423
ntpd/ntp.conf.5mdoc@1.135 +3 -3
NTP_4_2_7P423
ntpd/ntp.conf.html@1.96 +1 -1
NTP_4_2_7P423
ntpd/ntp.conf.man.in@1.135 +7 -7
NTP_4_2_7P423
ntpd/ntp.conf.mdoc.in@1.135 +3 -3
NTP_4_2_7P423
ntpd/ntp.keys.5man@1.133 +3 -3
NTP_4_2_7P423
ntpd/ntp.keys.5mdoc@1.133 +3 -3
NTP_4_2_7P423
ntpd/ntp.keys.html@1.97 +1 -1
NTP_4_2_7P423
ntpd/ntp.keys.man.in@1.133 +3 -3
NTP_4_2_7P423
ntpd/ntp.keys.mdoc.in@1.133 +3 -3
NTP_4_2_7P423
ntpd/ntpd-opts.c@1.433 +7 -7
NTP_4_2_7P423
ntpd/ntpd-opts.h@1.433 +3 -3
NTP_4_2_7P423
ntpd/ntpd.1ntpdman@1.244 +7 -7
NTP_4_2_7P423
ntpd/ntpd.1ntpdmdoc@1.244 +3 -3
NTP_4_2_7P423
ntpd/ntpd.html@1.91 +2 -2
NTP_4_2_7P423
ntpd/ntpd.man.in@1.244 +7 -7
NTP_4_2_7P423
ntpd/ntpd.mdoc.in@1.244 +3 -3
NTP_4_2_7P423
ntpdc/invoke-ntpdc.texi@1.413 +2 -2
NTP_4_2_7P423
ntpdc/ntpdc-opts.c@1.428 +7 -7
NTP_4_2_7P423
ntpdc/ntpdc-opts.h@1.428 +3 -3
NTP_4_2_7P423
ntpdc/ntpdc.1ntpdcman@1.244 +6 -6
NTP_4_2_7P423
ntpdc/ntpdc.1ntpdcmdoc@1.244 +2 -2
NTP_4_2_7P423
ntpdc/ntpdc.html@1.257 +2 -2
NTP_4_2_7P423
ntpdc/ntpdc.man.in@1.244 +6 -6
NTP_4_2_7P423
ntpdc/ntpdc.mdoc.in@1.244 +2 -2
NTP_4_2_7P423
ntpq/invoke-ntpq.texi@1.416 +2 -2
NTP_4_2_7P423
ntpq/ntpq-opts.c@1.430 +7 -7
NTP_4_2_7P423
ntpq/ntpq-opts.h@1.430 +3 -3
NTP_4_2_7P423
ntpq/ntpq.1ntpqman@1.244 +6 -6
NTP_4_2_7P423
ntpq/ntpq.1ntpqmdoc@1.244 +2 -2
NTP_4_2_7P423
ntpq/ntpq.html@1.88 +2 -2
NTP_4_2_7P423
ntpq/ntpq.man.in@1.244 +6 -6
NTP_4_2_7P423
ntpq/ntpq.mdoc.in@1.244 +2 -2
NTP_4_2_7P423
ntpsnmpd/invoke-ntpsnmpd.texi@1.415 +2 -2
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd-opts.c@1.430 +7 -7
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd-opts.h@1.430 +3 -3
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.244 +0 -235
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.244 +3 -3
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd.html@1.86 +1 -1
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd.man.in@1.244 +0 -235
NTP_4_2_7P423
ntpsnmpd/ntpsnmpd.mdoc.in@1.244 +3 -3
NTP_4_2_7P423
packageinfo.sh@1.427 +1 -1
NTP_4_2_7P423
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.6 +6 -6
NTP_4_2_7P423
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.6 +2 -2
NTP_4_2_7P423
scripts/calc_tickadj/calc_tickadj.html@1.5 +1 -1
NTP_4_2_7P423
scripts/calc_tickadj/calc_tickadj.man.in@1.5 +6 -6
NTP_4_2_7P423
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.6 +2 -2
NTP_4_2_7P423
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.7 +1 -1
NTP_4_2_7P423
scripts/invoke-plot_summary.texi@1.24 +1 -1
NTP_4_2_7P423
scripts/invoke-summary.texi@1.24 +1 -1
NTP_4_2_7P423
scripts/ntp-wait/invoke-ntp-wait.texi@1.233 +1 -1
NTP_4_2_7P423
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.234 +6 -6
NTP_4_2_7P423
scripts/ntp-wait/ntp-wait.1ntp-waitmdoc@1.234 +2 -2
NTP_4_2_7P423
scripts/ntp-wait/ntp-wait.html@1.250 +1 -1
NTP_4_2_7P423
scripts/ntp-wait/ntp-wait.man.in@1.234 +6 -6
NTP_4_2_7P423
scripts/ntp-wait/ntp-wait.mdoc.in@1.234 +2 -2
NTP_4_2_7P423
scripts/ntpsweep/invoke-ntpsweep.texi@1.22 +1 -1
NTP_4_2_7P423
scripts/ntpsweep/ntpsweep.1ntpsweepman@1.13 +6 -6
NTP_4_2_7P423
scripts/ntpsweep/ntpsweep.1ntpsweepmdoc@1.13 +2 -2
NTP_4_2_7P423
scripts/ntpsweep/ntpsweep.html@1.23 +1 -1
NTP_4_2_7P423
scripts/ntpsweep/ntpsweep.man.in@1.13 +6 -6
NTP_4_2_7P423
scripts/ntpsweep/ntpsweep.mdoc.in@1.14 +2 -2
NTP_4_2_7P423
scripts/ntptrace/invoke-ntptrace.texi@1.22 +1 -1
NTP_4_2_7P423
scripts/ntptrace/ntptrace.1ntptraceman@1.13 +6 -6
NTP_4_2_7P423
scripts/ntptrace/ntptrace.1ntptracemdoc@1.13 +2 -2
NTP_4_2_7P423
scripts/ntptrace/ntptrace.html@1.23 +1 -1
NTP_4_2_7P423
scripts/ntptrace/ntptrace.man.in@1.13 +6 -6
NTP_4_2_7P423
scripts/ntptrace/ntptrace.mdoc.in@1.14 +2 -2
NTP_4_2_7P423
scripts/plot_summary.1plot_summaryman@1.24 +6 -6
NTP_4_2_7P423
scripts/plot_summary.1plot_summarymdoc@1.24 +2 -2
NTP_4_2_7P423
scripts/plot_summary.html@1.24 +1 -1
NTP_4_2_7P423
scripts/plot_summary.man.in@1.24 +6 -6
NTP_4_2_7P423
scripts/plot_summary.mdoc.in@1.24 +2 -2
NTP_4_2_7P423
scripts/summary.1summaryman@1.24 +6 -6
NTP_4_2_7P423
scripts/summary.1summarymdoc@1.24 +2 -2
NTP_4_2_7P423
scripts/summary.html@1.24 +1 -1
NTP_4_2_7P423
scripts/summary.man.in@1.24 +6 -6
NTP_4_2_7P423
scripts/summary.mdoc.in@1.24 +2 -2
NTP_4_2_7P423
sntp/invoke-sntp.texi@1.412 +2 -2
NTP_4_2_7P423
sntp/sntp-opts.c@1.427 +7 -7
NTP_4_2_7P423
sntp/sntp-opts.h@1.427 +3 -3
NTP_4_2_7P423
sntp/sntp.1sntpman@1.247 +7 -7
NTP_4_2_7P423
sntp/sntp.1sntpmdoc@1.247 +3 -3
NTP_4_2_7P423
sntp/sntp.html@1.427 +2 -2
NTP_4_2_7P423
sntp/sntp.man.in@1.247 +7 -7
NTP_4_2_7P423
sntp/sntp.mdoc.in@1.247 +3 -3
NTP_4_2_7P423
util/invoke-ntp-keygen.texi@1.416 +2 -2
NTP_4_2_7P423
util/ntp-keygen-opts.c@1.430 +7 -7
NTP_4_2_7P423
util/ntp-keygen-opts.h@1.430 +3 -3
NTP_4_2_7P423
util/ntp-keygen.1ntp-keygenman@1.244 +7 -7
NTP_4_2_7P423
util/ntp-keygen.1ntp-keygenmdoc@1.244 +3 -3
NTP_4_2_7P423
util/ntp-keygen.html@1.92 +2 -2
NTP_4_2_7P423
util/ntp-keygen.man.in@1.244 +7 -7
NTP_4_2_7P423
util/ntp-keygen.mdoc.in@1.244 +3 -3
NTP_4_2_7P423
ChangeSet@1.3093.1.3, 2014-02-22 05:25:52+00:00, stenn@psp-fb1.ntp.org
[Bug 2565] Handle EINTR on getifaddrs()
ChangeLog@1.1426 +1 -0
[Bug 2565] Handle EINTR on getifaddrs()
lib/isc/unix/ifiter_getifaddrs.c@1.11 +18 -11
[Bug 2565] Handle EINTR on getifaddrs()
ChangeSet@1.3100, 2014-02-20 21:22:08+01:00, jnperlin@hydra.(none)
refclock_gpsdjson: operation reordering (grouping) during startup
ntpd/refclock_gpsdjson.c@1.6 +5 -3
operation reordering (grouping) during startup
ChangeSet@1.3099, 2014-02-18 21:36:24+01:00, jnperlin@hydra.(none)
refclock_gpsdjson: fix clock status report logic (did not work after reconnect)
ntpd/refclock_gpsdjson.c@1.5 +43 -16
fix clock status report logic (did not work after reconnect)
ChangeSet@1.3098, 2014-02-17 19:42:56+01:00, jnperlin@hydra.(none)
GPSD_JSON: do not build on Win32
ntpd/refclock_conf.c@1.35 +1 -1
GPSD_JSON: do not build on Win32
ntpd/refclock_gpsdjson.c@1.4 +40 -30
GPSD_JSON: do not build on Win32 (and some typo fixing)
ChangeSet@1.3093.1.2, 2014-02-17 11:39:44+00:00, stenn@deacon.udel.edu
NTP_4_2_7P422
TAG: NTP_4_2_7P422
ChangeLog@1.1425 +1 -0
NTP_4_2_7P422
ntpd/invoke-ntp.conf.texi@1.100 +1 -1
NTP_4_2_7P422
ntpd/invoke-ntp.keys.texi@1.98 +1 -1
NTP_4_2_7P422
ntpd/invoke-ntpd.texi@1.414 +2 -2
NTP_4_2_7P422
ntpd/ntp.conf.5man@1.134 +7 -7
NTP_4_2_7P422
ntpd/ntp.conf.5mdoc@1.134 +3 -3
NTP_4_2_7P422
ntpd/ntp.conf.html@1.95 +1 -1
NTP_4_2_7P422
ntpd/ntp.conf.man.in@1.134 +7 -7
NTP_4_2_7P422
ntpd/ntp.conf.mdoc.in@1.134 +3 -3
NTP_4_2_7P422
ntpd/ntp.keys.5man@1.132 +3 -3
NTP_4_2_7P422
ntpd/ntp.keys.5mdoc@1.132 +3 -3
NTP_4_2_7P422
ntpd/ntp.keys.html@1.96 +1 -1
NTP_4_2_7P422
ntpd/ntp.keys.man.in@1.132 +3 -3
NTP_4_2_7P422
ntpd/ntp.keys.mdoc.in@1.132 +3 -3
NTP_4_2_7P422
ntpd/ntpd-opts.c@1.432 +7 -7
NTP_4_2_7P422
ntpd/ntpd-opts.h@1.432 +3 -3
NTP_4_2_7P422
ntpd/ntpd.1ntpdman@1.243 +7 -7
NTP_4_2_7P422
ntpd/ntpd.1ntpdmdoc@1.243 +3 -3
NTP_4_2_7P422
ntpd/ntpd.html@1.90 +2 -2
NTP_4_2_7P422
ntpd/ntpd.man.in@1.243 +7 -7
NTP_4_2_7P422
ntpd/ntpd.mdoc.in@1.243 +3 -3
NTP_4_2_7P422
ntpdc/invoke-ntpdc.texi@1.412 +2 -2
NTP_4_2_7P422
ntpdc/ntpdc-opts.c@1.427 +7 -7
NTP_4_2_7P422
ntpdc/ntpdc-opts.h@1.427 +3 -3
NTP_4_2_7P422
ntpdc/ntpdc.1ntpdcman@1.243 +6 -6
NTP_4_2_7P422
ntpdc/ntpdc.1ntpdcmdoc@1.243 +2 -2
NTP_4_2_7P422
ntpdc/ntpdc.html@1.256 +2 -2
NTP_4_2_7P422
ntpdc/ntpdc.man.in@1.243 +6 -6
NTP_4_2_7P422
ntpdc/ntpdc.mdoc.in@1.243 +2 -2
NTP_4_2_7P422
ntpq/invoke-ntpq.texi@1.415 +2 -2
NTP_4_2_7P422
ntpq/ntpq-opts.c@1.429 +7 -7
NTP_4_2_7P422
ntpq/ntpq-opts.h@1.429 +3 -3
NTP_4_2_7P422
ntpq/ntpq.1ntpqman@1.243 +6 -6
NTP_4_2_7P422
ntpq/ntpq.1ntpqmdoc@1.243 +2 -2
NTP_4_2_7P422
ntpq/ntpq.html@1.87 +2 -2
NTP_4_2_7P422
ntpq/ntpq.man.in@1.243 +6 -6
NTP_4_2_7P422
ntpq/ntpq.mdoc.in@1.243 +2 -2
NTP_4_2_7P422
ntpsnmpd/invoke-ntpsnmpd.texi@1.414 +2 -2
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd-opts.c@1.429 +7 -7
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd-opts.h@1.429 +3 -3
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd.1ntpsnmpdman@1.243 +7 -7
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc@1.243 +3 -3
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd.html@1.85 +1 -1
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd.man.in@1.243 +7 -7
NTP_4_2_7P422
ntpsnmpd/ntpsnmpd.mdoc.in@1.243 +3 -3
NTP_4_2_7P422
packageinfo.sh@1.426 +1 -1
NTP_4_2_7P422
scripts/calc_tickadj/calc_tickadj.1calc_tickadjman@1.5 +6 -6
NTP_4_2_7P422
scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc@1.5 +2 -2
NTP_4_2_7P422
scripts/calc_tickadj/calc_tickadj.html@1.4 +1 -1
NTP_4_2_7P422
scripts/calc_tickadj/calc_tickadj.man.in@1.4 +6 -6
NTP_4_2_7P422
scripts/calc_tickadj/calc_tickadj.mdoc.in@1.5 +2 -2
NTP_4_2_7P422
scripts/calc_tickadj/invoke-calc_tickadj.texi@1.6 +1 -1
NTP_4_2_7P422
scripts/invoke-plot_summary.texi@1.23 +1 -1
NTP_4_2_7P422
scripts/invoke-summary.texi@1.23 +1 -1
NTP_4_2_7P422
scripts/ntp-wait/invoke-ntp-wait.texi@1.232 +1 -1
NTP_4_2_7P422
scripts/ntp-wait/ntp-wait.1ntp-waitman@1.233 +6 -6
NTP_4_2_7P422
diff --git a/contrib/ntp/NEWS b/contrib/ntp/NEWS
index d9d8a0987ab6..432c3d324575 100644
--- a/contrib/ntp/NEWS
+++ b/contrib/ntp/NEWS
@@ -1,3741 +1,3766 @@
+---
+NTP 4.2.8p17 (Harlan Stenn <stenn@ntp.org>, 2023 Jun 06)
+
+Focus: Bug fixes
+
+Severity: HIGH (for people running 4.2.8p16)
+
+This release:
+
+- fixes 3 bugs, including a regression
+- adds new unit tests
+
+Details below:
+
+* [Bug 3824] Spurious "ntpd: daemon failed to notify parent!" logged at
+ event_sync. Reported by Edward McGuire. <hart@ntp.org>
+* [Bug 3822] ntpd significantly delays first poll of servers specified by name.
+ <hart@ntp.org> Miroslav Lichvar identified regression in 4.2.8p16.
+* [Bug 3821] 4.2.8p16 misreads hex authentication keys, won't interop with
+ 4.2.8p15 or earlier. Reported by Matt Nordhoff, thanks to
+ Miroslav Lichvar and Matt for rapid testing and identifying the
+ problem. <hart@ntp.org>
+* Add tests/libntp/digests.c to catch regressions reading keys file or with
+ symmetric authentication digest output.
+
---
NTP 4.2.8p16 (Harlan Stenn <stenn@ntp.org>, 2023 May 30)
Focus: Security, Bug fixes
Severity: LOW
This release:
- fixes 4 vulnerabilities (3 LOW and 1 None severity),
- fixes 46 bugs
- includes 15 general improvements
- adds support for OpenSSL-3.0
Details below:
* [Sec 3808] Assertion failure in ntpq on malformed RT-11 date <perlinger@ntp.org>
* [Sec 3807] praecis_parse() in the Palisade refclock driver has a
hypothetical input buffer overflow. Reported by ... stenn@
* [Sec 3806] libntp/mstolfp.c needs bounds checking <perlinger@ntp.org>
- solved numerically instead of using string manipulation
* [Sec 3767] An OOB KoD RATE value triggers an assertion when debug is enabled.
<stenn@ntp.org>
* [Bug 3819] Updated libopts/Makefile.am was missing NTP_HARD_* values. <stenn@>
* [Bug 3817] Bounds-check "tos floor" configuration. <hart@ntp.org>
* [Bug 3814] First poll delay of new or cleared associations miscalculated.
<hart@ntp.org>
* [Bug 3802] ntp-keygen -I default identity modulus bits too small for
OpenSSL 3. Reported by rmsh1216@163.com <hart@ntp.org>
* [Bug 3801] gpsdjson refclock gps_open() device name mishandled. <hart@ntp.org>
* [Bug 3800] libopts-42.1.17 does not compile with Microsoft C. <hart@ntp.org>
* [Bug 3799] Enable libopts noreturn compiler advice for MSC. <hart@ntp.org>
* [Bug 3797] Windows getaddrinfo w/AI_ADDRCONFIG fails for localhost when
disconnected, breaking ntpq and ntpdc. <hart@ntp.org>
* [Bug 3795] pollskewlist documentation uses | when it shouldn't.
- ntp.conf manual page and miscopt.html corrections. <hart@ntp.org>
* [Bug 3793] Wrong variable type passed to record_raw_stats(). <hart@ntp.org>
- Report and patch by Yuezhen LUAN <wei6410@sina.com>.
* [Bug 3786] Timer starvation on high-load Windows ntpd. <hart@ntp.org>
* [Bug 3784] high-load ntpd on Windows deaf after enough ICMP TTL exceeded.
<hart@ntp.org>
* [Bug 3781] log "Unable to listen for broadcasts" for IPv4 <hart@ntp.org>
* [Bug 3774] mode 6 packets corrupted in rawstats file <hart@ntp.org>
- Reported by Edward McGuire, fix identified by <wei6410@sina.com>.
* [Bug 3758] Provide a 'device' config statement for refclocks <perlinger@ntp.org>
* [Bug 3757] Improve handling of Linux-PPS in NTPD <perlinger@ntp.org>
* [Bug 3741] 4.2.8p15 can't build with glibc 2.34 <perlinger@ntp.org>
* [Bug 3725] Make copyright of clk_wharton.c compatible with Debian.
Philippe De Muyter <phdm@macqel.be>
* [Bug 3724] ntp-keygen with openSSL 1.1.1 fails on Windows <perlinger@ntp.org>
- openssl applink needed again for openSSL-1.1.1
* [Bug 3719] configure.ac checks for closefrom() and getdtablesize() missing.
Reported by Brian Utterback, broken in 2010 by <hart@ntp.org>
* [Bug 3699] Problems handling drift file and restoring previous drifts <perlinger@ntp.org>
- command line options override config statements where applicable
- make initial frequency settings idempotent and reversible
- make sure kernel PLL gets a recovered drift componsation
* [Bug 3695] Fix memory leak with ntpq on Windows Server 2019 <perlinger@ntp.org>
* [Bug 3694] NMEA refclock seems to unnecessarily require location in messages
- misleading title; essentially a request to ignore the receiver status.
Added a mode bit for this. <perlinger@ntp.org>
* [Bug 3693] Improvement of error handling key lengths <perlinger@ntp.org>
- original patch by Richard Schmidt, with mods & unit test fixes
* [Bug 3692] /dev/gpsN requirement prevents KPPS <perlinger@ntp.org>
- implement/wrap 'realpath()' to resolve symlinks in device names
* [Bug 3691] Buffer Overflow reading GPSD output
- original patch by matt<ntpbr@mattcorallo.com>
- increased max PDU size to 4k to avoid truncation
* [Bug 3690] newline in ntp clock variable (parse) <perlinger@ntp.org>
- patch by Frank Kardel
* [Bug 3689] Extension for MD5, SHA-1 and other keys <perlinger@ntp.org>
- ntp{q,dc} now use the same password processing as ntpd does in the key
file, so having a binary secret >= 11 bytes is possible for all keys.
(This is a different approach to the problem than suggested)
* [Bug 3688] GCC 10 build errors in testsuite <perlinger@ntp.org>
* [Bug 3687] ntp_crypto_rand RNG status not known <perlinger@ntp.org>
- patch by Gerry Garvey
* [Bug 3682] Fixes for warnings when compiled without OpenSSL <perlinger@ntp.org>
- original patch by Gerry Garvey
* [Bug 3677] additional peer events not decoded in associations listing <perlinger@ntp.org>
- original patch by Gerry Garvey
* [Bug 3676] compiler warnings (CMAC, interrupt_buf, typo, fallthrough)
- applied patches by Gerry Garvey
* [Bug 3675] ntpq ccmds[] stores pointer to non-persistent storage
* [Bug 3674] ntpq command 'execute only' using '~' prefix <perlinger@ntp.org>
- idea+patch by Gerry Garvey
* [Bug 3672] fix biased selection in median cut <perlinger@ntp.org>
* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
- follow-up: fix inverted sense in check, reset shortfall counter
* [Bug 3660] Revert 4.2.8p15 change to manycast. <hart@ntp.org>
* [Bug 3640] document "discard monitor" and fix the code. <hart@ntp.org>
- fixed bug identified by Edward McGuire <perlinger@ntp.org>
* [Bug 3626] (SNTP) UTC offset calculation needs dst flag <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3432] refclocks that 'write()' should check the result <perlinger@ntp.org>
- backport from -dev, plus some more work on warnings for unchecked results
* [Bug 3428] ntpd spinning consuming CPU on Linux router with full table.
Reported by Israel G. Lugo. <hart@ntp.org>
* [Bug 3103] libopts zsave_warn format string too few arguments <bkorb@gnu.org>
* [Bug 2990] multicastclient incorrectly causes bind to broadcast address.
Integrated patch from Brian Utterback. <hart@ntp.org>
* [Bug 2525] Turn on automake subdir-objects across the project. <hart@ntp.org>
* [Bug 2410] syslog an error message on panic exceeded. <brian.utterback@oracle.com>
* Use correct rounding in mstolfp(). perlinger/hart
* M_ADDF should use u_int32. <hart@ntp.org>
* Only define tv_fmt_libbuf() if we will use it. <stenn@ntp.org>
* Use recv_buffer instead of the longer recv_space.X_recv_buffer. hart/stenn
* Make sure the value returned by refid_str() prints cleanly. <stenn@ntp.org>
* If DEBUG is enabled, the startup banner now says that debug assertions
are in force and that ntpd will abort if any are violated. <stenn@ntp.org>
* syslog valid incoming KoDs. <stenn@ntp.org>
* Rename a poorly-named variable. <stenn@ntp.org>
* Disable "embedded NUL in string" messages in libopts, when we can. <stenn@>
* Use https in the AC_INIT URLs in configure.ac. <stenn@ntp.org>
* Implement NTP_FUNC_REALPATH. <stenn@ntp.org>
* Lose a gmake construct in ntpd/Makefile.am. <stenn@ntp.org>
* upgrade to: autogen-5.18.16
* upgrade to: libopts-42.1.17
* upgrade to: autoconf-2.71
* upgrade to: automake-1.16.15
* Upgrade to libevent-2.1.12-stable <stenn@ntp.org>
* Support OpenSSL-3.0
---
NTP 4.2.8p15 (Harlan Stenn <stenn@ntp.org>, 2020 Jun 23)
Focus: Security, Bug fixes
Severity: MEDIUM
This release fixes one vulnerability: Associations that use CMAC
authentication between ntpd from versions 4.2.8p11/4.3.97 and
4.2.8p14/4.3.100 will leak a small amount of memory for each packet.
Eventually, ntpd will run out of memory and abort.
It also fixes 13 other bugs.
* [Sec 3661] memory leak with AES128CMAC keys <perlinger@ntp.org>
* [Bug 3670] Regression from bad merger between 3592 and 3596 <perlinger@>
- Thanks to Sylar Tao
* [Bug 3667] decodenetnum fails with numeric port <perlinger@ntp.org>
- rewrite 'decodenetnum()' in terms of inet_pton
* [Bug 3666] avoid unlimited receive buffer allocation <perlinger@ntp.org>
- limit number of receive buffers, with an iron reserve for refclocks
* [Bug 3664] Enable openSSL CMAC support on Windows <burnicki@ntp.org>
* [Bug 3662] Fix build errors on Windows with VS2008 <burnicki@ntp.org>
* [Bug 3660] Manycast orphan mode startup discovery problem. <stenn@ntp.org>
- integrated patch from Charles Claggett
* [Bug 3659] Move definition of psl[] from ntp_config.h to
ntp_config.h <perlinger@ntp.org>
* [Bug 3657] Wrong "Autokey group mismatch" debug message <perlinger@ntp.org>
* [Bug 3655] ntpdc memstats hash counts <perlinger@ntp.org>
- fix by Gerry garvey
* [Bug 3653] Refclock jitter RMS calculation <perlinger@ntp.org>
- thanks to Gerry Garvey
* [Bug 3646] Avoid sync with unsync orphan <perlinger@ntp.org>
- patch by Gerry Garvey
* [Bug 3644] Unsynchronized server [...] selected as candidate <perlinger@ntp.org>
* [Bug 3639] refclock_jjy: TS-JJY0x can skip time sync depending on the STUS reply. <abe@ntp.org>
- applied patch by Takao Abe
---
NTP 4.2.8p14 (Harlan Stenn <stenn@ntp.org>, 2020 Mar 03)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
This release fixes three vulnerabilities: a bug that causes causes an ntpd
instance that is explicitly configured to override the default and allow
ntpdc (mode 7) connections to be made to a server to read some uninitialized
memory; fixes the case where an unmonitored ntpd using an unauthenticated
association to its servers may be susceptible to a forged packet DoS attack;
and fixes an attack against a client instance that uses a single
unauthenticated time source. It also fixes 46 other bugs and addresses
4 other issues.
* [Sec 3610] process_control() should bail earlier on short packets. stenn@
- Reported by Philippe Antoine
* [Sec 3596] Highly predictable timestamp attack. <stenn@ntp.org>
- Reported by Miroslav Lichvar
* [Sec 3592] DoS attack on client ntpd <perlinger@ntp.org>
- Reported by Miroslav Lichvar
* [Bug 3637] Emit the version of ntpd in saveconfig. stenn@
* [Bug 3636] NMEA: combine time/date from multiple sentences <perlinger@ntp.org>
* [Bug 3635] Make leapsecond file hash check optional <perlinger@ntp.org>
* [Bug 3634] Typo in discipline.html, reported by Jason Harrison. stenn@
* [Bug 3628] raw DCF decoding - improve robustness with Zeller's congruence
- implement Zeller's congruence in libparse and libntp <perlinger@ntp.org>
* [Bug 3627] SIGSEGV on FreeBSD-12 with stack limit and stack gap <perlinger@ntp.org>
- integrated patch by Cy Schubert
* [Bug 3620] memory leak in ntpq sysinfo <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3619] Honour drefid setting in cooked mode and sysinfo <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3617] Add support for ACE III and Copernicus II receivers <perlinger@ntp.org>
- integrated patch by Richard Steedman
* [Bug 3615] accelerate refclock startup <perlinger@ntp.org>
* [Bug 3613] Propagate noselect to mobilized pool servers <stenn@ntp.org>
- Reported by Martin Burnicki
* [Bug 3612] Use-of-uninitialized-value in receive function <perlinger@ntp.org>
- Reported by Philippe Antoine
* [Bug 3611] NMEA time interpreted incorrectly <perlinger@ntp.org>
- officially document new "trust date" mode bit for NMEA driver
- restore the (previously undocumented) "trust date" feature lost with [bug 3577]
* [Bug 3609] Fixing wrong falseticker in case of non-statistic jitter <perlinger@ntp.org>
- mostly based on a patch by Michael Haardt, implementing 'fudge minjitter'
* [Bug 3608] libparse fails to compile on S11.4SRU13 and later <perlinger@ntp.org>
- removed ffs() and fls() prototypes as per Brian Utterback
* [Bug 3604] Wrong param byte order passing into record_raw_stats() in
ntp_io.c <perlinger@ntp.org>
- fixed byte and paramter order as suggested by wei6410@sina.com
* [Bug 3601] Tests fail to link on platforms with ntp_cv_gc_sections_runs=no <perlinger@ntp.org>
* [Bug 3599] Build fails on linux-m68k due to alignment issues <perlinger@ntp.org>
- added padding as suggested by John Paul Adrian Glaubitz
* [Bug 3594] ntpd discards messages coming through nmead <perlinger@ntp.org>
* [Bug 3593] ntpd discards silently nmea messages after the 5th string <perlinger@ntp.org>
* [Bug 3590] Update refclock_oncore.c to the new GPS date API <perlinger@ntp.org>
* [Bug 3585] Unity tests mix buffered and unbuffered output <perlinger@ntp.org>
- stdout+stderr are set to line buffered during test setup now
* [Bug 3583] synchronization error <perlinger@ntp.org>
- set clock to base date if system time is before that limit
* [Bug 3582] gpsdjson refclock fudgetime1 adjustment is doubled <perlinger@ntp.org>
* [Bug 3580] Possible bug ntpq-subs (NULL dereference in dogetassoc) <perlinger@ntp.org>
- Reported by Paulo Neves
* [Bug 3577] Update refclock_zyfer.c to the new GPS date API <perlinger@ntp.org>
- also updates for refclock_nmea.c and refclock_jupiter.c
* [Bug 3576] New GPS date function API <perlinger@ntp.org>
* [Bug 3573] nptdate: missleading error message <perlinger@ntp.org>
* [Bug 3570] NMEA driver docs: talker ID not mentioned, typo <perlinger@ntp.org>
* [Bug 3569] cleanup MOD_NANO/STA_NANO handling for 'ntpadjtimex()' <perlinger@ntp.org>
- sidekick: service port resolution in 'ntpdate'
* [Bug 3550] Reproducible build: Respect SOURCE_DATE_EPOCH <perlinger@ntp.org>
- applied patch by Douglas Royds
* [Bug 3542] ntpdc monlist parameters cannot be set <perlinger@ntp.org>
* [Bug 3533] ntpdc peer_info ipv6 issues <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3531] make check: test-decodenetnum fails <perlinger@ntp.org>
- try to harden 'decodenetnum()' against 'getaddrinfo()' errors
- fix wrong cond-compile tests in unit tests
* [Bug 3517] Reducing build noise <perlinger@ntp.org>
* [Bug 3516] Require tooling from this decade <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3515] Refactor ntpdmain() dispatcher loop and group common code <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3511] Get rid of AC_LANG_SOURCE() warnings <perlinger@ntp.org>
- patch by Philipp Prindeville
* [Bug 3510] Flatten out the #ifdef nesting in ntpdmain() <perlinger@ntp.org>
- partial application of patch by Philipp Prindeville
* [Bug 3491] Signed values of LFP datatypes should always display a sign
- applied patch by Gerry Garvey & fixed unit tests <perlinger@ntp.org>
* [Bug 3490] Patch to support Trimble Resolution Receivers <perlinger@ntp.org>
- applied (modified) patch by Richard Steedman
* [Bug 3473] RefID of refclocks should always be text format <perlinger@ntp.org>
- applied patch by Gerry Garvey (with minor formatting changes)
* [Bug 3132] Building 4.2.8p8 with disabled local libopts fails <perlinger@ntp.org>
- applied patch by Miroslav Lichvar
* [Bug 3094] ntpd trying to listen for broadcasts on a completely ipv6 network
<perlinger@ntp.org>
* [Bug 2420] ntpd doesn't run and exits with retval 0 when invalid user
is specified with -u <perlinger@ntp.org>
- monitor daemon child startup & propagate exit codes
* [Bug 1433] runtime check whether the kernel really supports capabilities
- (modified) patch by Kurt Roeckx <perlinger@ntp.org>
* Clean up sntp/networking.c:sendpkt() error message. <stenn@ntp.org>
* Provide more detail on unrecognized config file parser tokens. <stenn@ntp.org>
* Startup log improvements. <stenn@ntp.org>
* Update the copyright year.
---
NTP 4.2.8p13 (Harlan Stenn <stenn@ntp.org>, 2019 Mar 07)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
This release fixes a bug that allows an attacker with access to an
explicitly trusted source to send a crafted malicious mode 6 (ntpq)
packet that can trigger a NULL pointer dereference, crashing ntpd.
It also provides 17 other bugfixes and 1 other improvement:
* [Sec 3565] Crafted null dereference attack in authenticated
mode 6 packet <perlinger@ntp.org>
- reported by Magnus Stubman
* [Bug 3560] Fix build when HAVE_DROPROOT is not defined <perlinger@ntp.org>
- applied patch by Ian Lepore
* [Bug 3558] Crash and integer size bug <perlinger@ntp.org>
- isolate and fix linux/windows specific code issue
* [Bug 3556] ntp_loopfilter.c snprintf compilation warnings <perlinger@ntp.org>
- provide better function for incremental string formatting
* [Bug 3555] Tidy up print alignment of debug output from ntpdate <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3554] config revoke stores incorrect value <perlinger@ntp.org>
- original finding by Gerry Garvey, additional cleanup needed
* [Bug 3549] Spurious initgroups() error message <perlinger@ntp.org>
- patch by Christous Zoulas
* [Bug 3548] Signature not verified on windows system <perlinger@ntp.org>
- finding by Chen Jiabin, plus another one by me
* [Bug 3541] patch to fix STA_NANO struct timex units <perlinger@ntp.org>
- applied patch by Maciej Szmigiero
* [Bug 3540] Cannot set minsane to 0 anymore <perlinger@ntp.org>
- applied patch by Andre Charbonneau
* [Bug 3539] work_fork build fails when droproot is not supported <perlinger@ntp.org>
- applied patch by Baruch Siach
* [Bug 3538] Build fails for no-MMU targets <perlinger@ntp.org>
- applied patch by Baruch Siach
* [Bug 3535] libparse won't handle GPS week rollover <perlinger@ntp.org>
- refactored handling of GPS era based on 'tos basedate' for
parse (TSIP) and JUPITER clocks
* [Bug 3529] Build failures on Mac OS X 10.13 (High Sierra) <perlinger@ntp.org>
- patch by Daniel J. Luke; this does not fix a potential linker
regression issue on MacOS.
* [Bug 3527 - Backward Incompatible] mode7 clockinfo fudgeval2 packet
anomaly <perlinger@ntp.org>, reported by GGarvey.
- --enable-bug3527-fix support by HStenn
* [Bug 3526] Incorrect poll interval in packet <perlinger@ntp.org>
- applied patch by Gerry Garvey
* [Bug 3471] Check for openssl/[ch]mac.h. <perlinger@ntp.org>
- added missing check, reported by Reinhard Max <perlinger@ntp.org>
* [Bug 1674] runtime crashes and sync problems affecting both x86 and x86_64
- this is a variant of [bug 3558] and should be fixed with it
* Implement 'configure --disable-signalled-io'
--
NTP 4.2.8p12 (Harlan Stenn <stenn@ntp.org>, 2018/14/09)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
This release fixes a "hole" in the noepeer capability introduced to ntpd
in ntp-4.2.8p11, and a buffer overflow in the openhost() function used by
ntpq and ntpdc. It also provides 26 other bugfixes, and 4 other improvements:
* [Sec 3505] Buffer overflow in the openhost() call of ntpq and ntpdc.
* [Sec 3012] Fix a hole in the new "noepeer" processing.
* Bug Fixes:
[Bug 3521] Fix a logic bug in the INVALIDNAK checks. <stenn@ntp.org>
[Bug 3509] Add support for running as non-root on FreeBSD, Darwin,
other TrustedBSD platforms
- applied patch by Ian Lepore <perlinger@ntp.org>
[Bug 3506] Service Control Manager interacts poorly with NTPD <perlinger@ntp.org>
- changed interaction with SCM to signal pending startup
[Bug 3486] Buffer overflow in ntpq/ntpq.c:tstflags() <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3485] Undefined sockaddr used in error messages in ntp_config.c <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3484] ntpq response from ntpd is incorrect when REFID is null <perlinger@ntp.org>
- rework of ntpq 'nextvar()' key/value parsing
[Bug 3482] Fixes for compilation warnings (ntp_io.c & ntpq-subs.c) <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods)
[Bug 3480] Refclock sample filter not cleared on clock STEP <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3479] ctl_putrefid() allows unsafe characters through to ntpq <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods)
[Bug 3476]ctl_putstr() sends empty unquoted string [...] <perlinger@ntp.org>
- applied patch by Gerry Garvey (with mods); not sure if that's bug or feature, though
[Bug 3475] modify prettydate() to suppress output of zero time <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3474] Missing pmode in mode7 peer info response <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3471] Check for openssl/[ch]mac.h. HStenn.
- add #define ENABLE_CMAC support in configure. HStenn.
[Bug 3470] ntpd4.2.8p11 fails to compile without OpenSSL <perlinger@ntp.org>
[Bug 3469] Incomplete string compare [...] in is_refclk_addr <perlinger@ntp.org>
- patch by Stephen Friedl
[Bug 3467] Potential memory fault in ntpq [...] <perlinger@ntp.org>
- fixed IO redirection and CTRL-C handling in ntq and ntpdc
[Bug 3465] Default TTL values cannot be used <perlinger@ntp.org>
[Bug 3461] refclock_shm.c: clear error status on clock recovery <perlinger@ntp.org>
- initial patch by Hal Murray; also fixed refclock_report() trouble
[Bug 3460] Fix typo in ntpq.texi, reported by Kenyon Ralph. <stenn@ntp.org>
[Bug 3456] Use uintptr_t rather than size_t to store an integer in a pointer
- According to Brooks Davis, there was only one location <perlinger@ntp.org>
[Bug 3449] ntpq - display "loop" instead of refid [...] <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3445] Symmetric peer won't sync on startup <perlinger@ntp.org>
- applied patch by Gerry Garvey
[Bug 3442] Fixes for ntpdate as suggested by Gerry Garvey,
with modifications
New macro REFID_ISTEXT() which is also used in ntpd/ntp_control.c.
[Bug 3434] ntpd clears STA_UNSYNC on start <perlinger@ntp.org>
- applied patch by Miroslav Lichvar
[Bug 3426] ntpdate.html -t default is 2 seconds. Leonid Evdokimov.
[Bug 3121] Drop root privileges for the forked DNS worker <perlinger@ntp.org>
- integrated patch by Reinhard Max
[Bug 2821] minor build issues <perlinger@ntp.org>
- applied patches by Christos Zoulas, including real bug fixes
html/authopt.html: cleanup, from <stenn@ntp.org>
ntpd/ntpd.c: DROPROOT cleanup. <stenn@ntp.org>
Symmetric key range is 1-65535. Update docs. <stenn@ntp.org>
--
NTP 4.2.8p11 (Harlan Stenn <stenn@ntp.org>, 2018/02/27)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
This release fixes 2 low-/medium-, 1 informational/medum-, and 2 low-severity
vulnerabilities in ntpd, one medium-severity vulernability in ntpq, and
provides 65 other non-security fixes and improvements:
* NTP Bug 3454: Unauthenticated packet can reset authenticated interleaved
association (LOW/MED)
Date Resolved: Stable (4.2.8p11) 27 Feb 2018
References: Sec 3454 / CVE-2018-7185 / VU#961909
Affects: ntp-4.2.6, up to but not including ntp-4.2.8p11.
CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:N/I:N/A:P) This could score between
2.9 and 6.8.
CVSS3: LOW 3.1 CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L This could
score between 2.6 and 3.1
Summary:
The NTP Protocol allows for both non-authenticated and
authenticated associations, in client/server, symmetric (peer),
and several broadcast modes. In addition to the basic NTP
operational modes, symmetric mode and broadcast servers can
support an interleaved mode of operation. In ntp-4.2.8p4 a bug
was inadvertently introduced into the protocol engine that
allows a non-authenticated zero-origin (reset) packet to reset
an authenticated interleaved peer association. If an attacker
can send a packet with a zero-origin timestamp and the source
IP address of the "other side" of an interleaved association,
the 'victim' ntpd will reset its association. The attacker must
continue sending these packets in order to maintain the
disruption of the association. In ntp-4.0.0 thru ntp-4.2.8p6,
interleave mode could be entered dynamically. As of ntp-4.2.8p7,
interleaved mode must be explicitly configured/enabled.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p11, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
If you are unable to upgrade to 4.2.8p11 or later and have
'peer HOST xleave' lines in your ntp.conf file, remove the
'xleave' option.
Have enough sources of time.
Properly monitor your ntpd instances.
If ntpd stops running, auto-restart it without -g .
Credit:
This weakness was discovered by Miroslav Lichvar of Red Hat.
* NTP Bug 3453: Interleaved symmetric mode cannot recover from bad
state (LOW/MED)
Date Resolved: Stable (4.2.8p11) 27 Feb 2018
References: Sec 3453 / CVE-2018-7184 / VU#961909
Affects: ntpd in ntp-4.2.8p4, up to but not including ntp-4.2.8p11.
CVSS2: MED 4.3 (AV:N/AC:M/Au:N/C:P/I:N/A:N)
Could score between 2.9 and 6.8.
CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L
Could score between 2.6 and 6.0.
Summary:
The fix for NtpBug2952 was incomplete, and while it fixed one
problem it created another. Specifically, it drops bad packets
before updating the "received" timestamp. This means a
third-party can inject a packet with a zero-origin timestamp,
meaning the sender wants to reset the association, and the
transmit timestamp in this bogus packet will be saved as the
most recent "received" timestamp. The real remote peer does
not know this value and this will disrupt the association until
the association resets.
Mitigation:
Implement BCP-38.
Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Use authentication with 'peer' mode.
Have enough sources of time.
Properly monitor your ntpd instances.
If ntpd stops running, auto-restart it without -g .
Credit:
This weakness was discovered by Miroslav Lichvar of Red Hat.
* NTP Bug 3415: Provide a way to prevent authenticated symmetric passive
peering (LOW)
Date Resolved: Stable (4.2.8p11) 27 Feb 2018
References: Sec 3415 / CVE-2018-7170 / VU#961909
Sec 3012 / CVE-2016-1549 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92. Resolved in 4.2.8p11.
CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
CVSS3: LOW 3.1 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N
Summary:
ntpd can be vulnerable to Sybil attacks. If a system is set up to
use a trustedkey and if one is not using the feature introduced in
ntp-4.2.8p6 allowing an optional 4th field in the ntp.keys file to
specify which IPs can serve time, a malicious authenticated peer
-- i.e. one where the attacker knows the private symmetric key --
can create arbitrarily-many ephemeral associations in order to win
the clock selection of ntpd and modify a victim's clock. Three
additional protections are offered in ntp-4.2.8p11. One is the
new 'noepeer' directive, which disables symmetric passive
ephemeral peering. Another is the new 'ippeerlimit' directive,
which limits the number of peers that can be created from an IP.
The third extends the functionality of the 4th field in the
ntp.keys file to include specifying a subnet range.
Mitigation:
Implement BCP-38.
Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Use the 'noepeer' directive to prohibit symmetric passive
ephemeral associations.
Use the 'ippeerlimit' directive to limit the number of peers
that can be created from an IP.
Use the 4th argument in the ntp.keys file to limit the IPs and
subnets that can be time servers.
Have enough sources of time.
Properly monitor your ntpd instances.
If ntpd stops running, auto-restart it without -g .
Credit:
This weakness was reported as Bug 3012 by Matthew Van Gundy of
Cisco ASIG, and separately by Stefan Moser as Bug 3415.
* ntpq Bug 3414: decodearr() can write beyond its 'buf' limits (Medium)
Date Resolved: 27 Feb 2018
References: Sec 3414 / CVE-2018-7183 / VU#961909
Affects: ntpq in ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
CVSS2: MED 6.8 (AV:N/AC:M/Au:N/C:P/I:P/A:P)
CVSS3: MED 5.0 CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:L
Summary:
ntpq is a monitoring and control program for ntpd. decodearr()
is an internal function of ntpq that is used to -- wait for it --
decode an array in a response string when formatted data is being
displayed. This is a problem in affected versions of ntpq if a
maliciously-altered ntpd returns an array result that will trip this
bug, or if a bad actor is able to read an ntpq request on its way to
a remote ntpd server and forge and send a response before the remote
ntpd sends its response. It's potentially possible that the
malicious data could become injectable/executable code.
Mitigation:
Implement BCP-38.
Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Credit:
This weakness was discovered by Michael Macnair of Thales e-Security.
* NTP Bug 3412: ctl_getitem(): buffer read overrun leads to undefined
behavior and information leak (Info/Medium)
Date Resolved: 27 Feb 2018
References: Sec 3412 / CVE-2018-7182 / VU#961909
Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p11.
CVSS2: INFO 0.0 - MED 5.0 (AV:N/AC:L/Au:N/C:P/I:N/A:N) 0.0 if C:N
CVSS3: NONE 0.0 - MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
0.0 if C:N
Summary:
ctl_getitem() is used by ntpd to process incoming mode 6 packets.
A malicious mode 6 packet can be sent to an ntpd instance, and
if the ntpd instance is from 4.2.8p6 thru 4.2.8p10, that will
cause ctl_getitem() to read past the end of its buffer.
Mitigation:
Implement BCP-38.
Upgrade to ntp-4.2.8p11 or later from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Have enough sources of time.
Properly monitor your ntpd instances.
If ntpd stops running, auto-restart it without -g .
Credit:
This weakness was discovered by Yihan Lian of Qihoo 360.
* NTP Bug 3012: Sybil vulnerability: ephemeral association attack
Also see Bug 3415, above.
Date Mitigated: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
Date Resolved: Stable (4.2.8p11) 27 Feb 2018
References: Sec 3012 / CVE-2016-1549 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92. Resolved in 4.2.8p11.
CVSS2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
CVSS3: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
Summary:
ntpd can be vulnerable to Sybil attacks. If a system is set up
to use a trustedkey and if one is not using the feature
introduced in ntp-4.2.8p6 allowing an optional 4th field in the
ntp.keys file to specify which IPs can serve time, a malicious
authenticated peer -- i.e. one where the attacker knows the
private symmetric key -- can create arbitrarily-many ephemeral
associations in order to win the clock selection of ntpd and
modify a victim's clock. Two additional protections are
offered in ntp-4.2.8p11. One is the 'noepeer' directive, which
disables symmetric passive ephemeral peering. The other extends
the functionality of the 4th field in the ntp.keys file to
include specifying a subnet range.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p11, or later, from the NTP Project Download Page or
the NTP Public Services Project Download Page.
Use the 'noepeer' directive to prohibit symmetric passive
ephemeral associations.
Use the 'ippeerlimit' directive to limit the number of peer
associations from an IP.
Use the 4th argument in the ntp.keys file to limit the IPs
and subnets that can be time servers.
Properly monitor your ntpd instances.
Credit:
This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
* Bug fixes:
[Bug 3457] OpenSSL FIPS mode regression <perlinger@ntp.org>
[Bug 3455] ntpd doesn't use scope id when binding multicast <perlinger@ntp.org>
- applied patch by Sean Haugh
[Bug 3452] PARSE driver prints uninitialized memory. <perlinger@ntp.org>
[Bug 3450] Dubious error messages from plausibility checks in get_systime()
- removed error log caused by rounding/slew, ensured postcondition <perlinger@ntp.org>
[Bug 3447] AES-128-CMAC (fixes) <perlinger@ntp.org>
- refactoring the MAC code, too
[Bug 3441] Validate the assumption that AF_UNSPEC is 0. stenn@ntp.org
[Bug 3439] When running multiple commands / hosts in ntpq... <perlinger@ntp.org>
- applied patch by ggarvey
[Bug 3438] Negative values and values > 999 days in... <perlinger@ntp.org>
- applied patch by ggarvey (with minor mods)
[Bug 3437] ntpd tries to open socket with AF_UNSPEC domain
- applied patch (with mods) by Miroslav Lichvar <perlinger@ntp.org>
[Bug 3435] anchor NTP era alignment <perlinger@ntp.org>
[Bug 3433] sntp crashes when run with -a. <stenn@ntp.org>
[Bug 3430] ntpq dumps core (SIGSEGV) for "keytype md2"
- fixed several issues with hash algos in ntpd, sntp, ntpq,
ntpdc and the test suites <perlinger@ntp.org>
[Bug 3424] Trimble Thunderbolt 1024 week millenium bug <perlinger@ntp.org>
- initial patch by Daniel Pouzzner
[Bug 3423] QNX adjtime() implementation error checking is
wrong <perlinger@ntp.org>
[Bug 3417] ntpq ifstats packet counters can be negative
made IFSTATS counter quantities unsigned <perlinger@ntp.org>
[Bug 3411] problem about SIGN(6) packet handling for ntp-4.2.8p10
- raised receive buffer size to 1200 <perlinger@ntp.org>
[Bug 3408] refclock_jjy.c: Avoid a wrong report of the coverity static
analysis tool. <abe@ntp.org>
[Bug 3405] update-leap.in: general cleanup, HTTPS support. Paul McMath.
[Bug 3404] Fix openSSL DLL usage under Windows <perlinger@ntp.org>
- fix/drop assumptions on OpenSSL libs directory layout
[Bug 3399] NTP: linker error in 4.2.8p10 during Linux cross-compilation
- initial patch by timeflies@mail2tor.com <perlinger@ntp.org>
[Bug 3398] tests fail with core dump <perlinger@ntp.org>
- patch contributed by Alexander Bluhm
[Bug 3397] ctl_putstr() asserts that data fits in its buffer
rework of formatting & data transfer stuff in 'ntp_control.c'
avoids unecessary buffers and size limitations. <perlinger@ntp.org>
[Bug 3394] Leap second deletion does not work on ntpd clients
- fixed handling of dynamic deletion w/o leap file <perlinger@ntp.org>
[Bug 3391] ntpd segfaults on startup due to small warmup thread stack size
- increased mimimum stack size to 32kB <perlinger@ntp.org>
[Bug 3367] Faulty LinuxPPS NMEA clock support in 4.2.8 <perlinger@ntp.org>
- reverted handling of PPS kernel consumer to 4.2.6 behavior
[Bug 3365] Updates driver40(-ja).html and miscopt.html <abe@ntp.org>
[Bug 3358] Spurious KoD log messages in .INIT. phase. HStenn.
[Bug 3016] wrong error position reported for bad ":config pool"
- fixed location counter & ntpq output <perlinger@ntp.org>
[Bug 2900] libntp build order problem. HStenn.
[Bug 2878] Tests are cluttering up syslog <perlinger@ntp.org>
[Bug 2737] Wrong phone number listed for USNO. ntp-bugs@bodosom.net,
perlinger@ntp.org
[Bug 2557] Fix Thunderbolt init. ntp-bugs@bodosom.net, perlinger@ntp.
[Bug 948] Trustedkey config directive leaks memory. <perlinger@ntp.org>
Use strlcpy() to copy strings, not memcpy(). HStenn.
Typos. HStenn.
test_ntp_scanner_LDADD needs ntpd/ntp_io.o. HStenn.
refclock_jjy.c: Add missing "%s" to an msyslog() call. HStenn.
Build ntpq and libntpq.a with NTP_HARD_*FLAGS. perlinger@ntp.org
Fix trivial warnings from 'make check'. perlinger@ntp.org
Fix bug in the override portion of the compiler hardening macro. HStenn.
record_raw_stats(): Log entire packet. Log writes. HStenn.
AES-128-CMAC support. BInglis, HStenn, JPerlinger.
sntp: tweak key file logging. HStenn.
sntp: pkt_output(): Improve debug output. HStenn.
update-leap: updates from Paul McMath.
When using pkg-config, report --modversion. HStenn.
Clean up libevent configure checks. HStenn.
sntp: show the IP of who sent us a crypto-NAK. HStenn.
Allow .../N to specify subnet bits for IPs in ntp.keys. HStenn, JPerlinger.
authistrustedip() - use it in more places. HStenn, JPerlinger.
New sysstats: sys_lamport, sys_tsrounding. HStenn.
Update ntp.keys .../N documentation. HStenn.
Distribute testconf.yml. HStenn.
Add DPRINTF(2,...) lines to receive() for packet drops. HStenn.
Rename the configuration flag fifo variables. HStenn.
Improve saveconfig output. HStenn.
Decode restrict flags on receive() debug output. HStenn.
Decode interface flags on receive() debug output. HStenn.
Warn the user if deprecated "driftfile name WanderThreshold" is used. HStenn.
Update the documentation in ntp.conf.def . HStenn.
restrictions() must return restrict flags and ippeerlimit. HStenn.
Update ntpq peer documentation to describe the 'p' type. HStenn.
Rename restrict 'flags' to 'rflags. Use an enum for the values. HStenn.
Provide dump_restricts() for debugging. HStenn.
Use consistent 4th arg type for [gs]etsockopt. JPerlinger.
* Other items:
* update-leap needs the following perl modules:
Net::SSLeay
IO::Socket::SSL
* New sysstats variables: sys_lamport, sys_tsrounding
See them with: ntpq -c "rv 0 ss_lamport,ss_tsrounding"
sys_lamport counts the number of observed Lamport violations, while
sys_tsrounding counts observed timestamp rounding events.
* New ntp.conf items:
- restrict ... noepeer
- restrict ... ippeerlimit N
The 'noepeer' directive will disallow all ephemeral/passive peer
requests.
The 'ippeerlimit' directive limits the number of time associations
for each IP in the designated set of addresses. This limit does not
apply to explicitly-configured associations. A value of -1, the current
default, means an unlimited number of associations may connect from a
single IP. 0 means "none", etc. Ordinarily the only way multiple
associations would come from the same IP would be if the remote side
was using a proxy. But a trusted machine might become compromised,
in which case an attacker might spin up multiple authenticated sessions
from different ports. This directive should be helpful in this case.
* New ntp.keys feature: Each IP in the optional list of IPs in the 4th
field may contain a /subnetbits specification, which identifies the
scope of IPs that may use this key. This IP/subnet restriction can be
used to limit the IPs that may use the key in most all situations where
a key is used.
--
NTP 4.2.8p10 (Harlan Stenn <stenn@ntp.org>, 2017/03/21)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
This release fixes 5 medium-, 6 low-, and 4 informational-severity
vulnerabilities, and provides 15 other non-security fixes and improvements:
* NTP-01-016 NTP: Denial of Service via Malformed Config (Medium)
Date Resolved: 21 Mar 2017
References: Sec 3389 / CVE-2017-6464 / VU#325339
Affects: All versions of NTP-4, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
A vulnerability found in the NTP server makes it possible for an
authenticated remote user to crash ntpd via a malformed mode
configuration directive.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-014 NTP: Buffer Overflow in DPTS Clock (Low)
Date Resolved: 21 Mar 2017
References: Sec 3388 / CVE-2017-6462 / VU#325339
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: Low 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary:
There is a potential for a buffer overflow in the legacy Datum
Programmable Time Server refclock driver. Here the packets are
processed from the /dev/datum device and handled in
datum_pts_receive(). Since an attacker would be required to
somehow control a malicious /dev/datum device, this does not
appear to be a practical attack and renders this issue "Low" in
terms of severity.
Mitigation:
If you have a Datum reference clock installed and think somebody
may maliciously change the device, upgrade to 4.2.8p10, or
later, from the NTP Project Download Page or the NTP Public
Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-012 NTP: Authenticated DoS via Malicious Config Option (Medium)
Date Resolved: 21 Mar 2017
References: Sec 3387 / CVE-2017-6463 / VU#325339
Affects: All versions of ntp, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
A vulnerability found in the NTP server allows an authenticated
remote attacker to crash the daemon by sending an invalid setting
via the :config directive. The unpeer option expects a number or
an address as an argument. In case the value is "0", a
segmentation fault occurs.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-011 NTP: ntpq_stripquotes() returns incorrect value (Informational)
Date Resolved: 21 Mar 2017
References: Sec 3386
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: None 0.0 (AV:N/AC:H/Au:N/C:N/I:N/A:N)
CVSS3: None 0.0 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:N
Summary:
The NTP Mode 6 monitoring and control client, ntpq, uses the
function ntpq_stripquotes() to remove quotes and escape characters
from a given string. According to the documentation, the function
is supposed to return the number of copied bytes but due to
incorrect pointer usage this value is always zero. Although the
return value of this function is never used in the code, this
flaw could lead to a vulnerability in the future. Since relying
on wrong return values when performing memory operations is a
dangerous practice, it is recommended to return the correct value
in accordance with the documentation pertinent to the code.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-010 NTP: ereallocarray()/eallocarray() underused (Info)
Date Resolved: 21 Mar 2017
References: Sec 3385
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
Summary:
NTP makes use of several wrappers around the standard heap memory
allocation functions that are provided by libc. This is mainly
done to introduce additional safety checks concentrated on
several goals. First, they seek to ensure that memory is not
accidentally freed, secondly they verify that a correct amount
is always allocated and, thirdly, that allocation failures are
correctly handled. There is an additional implementation for
scenarios where memory for a specific amount of items of the
same size needs to be allocated. The handling can be found in
the oreallocarray() function for which a further number-of-elements
parameter needs to be provided. Although no considerable threat
was identified as tied to a lack of use of this function, it is
recommended to correctly apply oreallocarray() as a preferred
option across all of the locations where it is possible.
Mitigation:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Credit:
This weakness was discovered by Cure53.
* NTP-01-009 NTP: Privileged execution of User Library code (WINDOWS
PPSAPI ONLY) (Low)
Date Resolved: 21 Mar 2017
References: Sec 3384 / CVE-2017-6455 / VU#325339
Affects: All Windows versions of ntp-4 that use the PPSAPI, up to but
not including ntp-4.2.8p10, and ntp-4.3.0 up to, but not
including ntp-4.3.94.
CVSS2: MED 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
CVSS3: MED 4.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
The Windows NT port has the added capability to preload DLLs
defined in the inherited global local environment variable
PPSAPI_DLLS. The code contained within those libraries is then
called from the NTPD service, usually running with elevated
privileges. Depending on how securely the machine is setup and
configured, if ntpd is configured to use the PPSAPI under Windows
this can easily lead to a code injection.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Credit:
This weakness was discovered by Cure53.
* NTP-01-008 NTP: Stack Buffer Overflow from Command Line (WINDOWS
installer ONLY) (Low)
Date Resolved: 21 Mar 2017
References: Sec 3383 / CVE-2017-6452 / VU#325339
Affects: WINDOWS installer ONLY: All versions of the ntp-4 Windows
installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0 up
to, but not including ntp-4.3.94.
CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary:
The Windows installer for NTP calls strcat(), blindly appending
the string passed to the stack buffer in the addSourceToRegistry()
function. The stack buffer is 70 bytes smaller than the buffer
in the calling main() function. Together with the initially
copied Registry path, the combination causes a stack buffer
overflow and effectively overwrites the stack frame. The
passed application path is actually limited to 256 bytes by the
operating system, but this is not sufficient to assure that the
affected stack buffer is consistently protected against
overflowing at all times.
Mitigation:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Credit:
This weakness was discovered by Cure53.
* NTP-01-007 NTP: Data Structure terminated insufficiently (WINDOWS
installer ONLY) (Low)
Date Resolved: 21 Mar 2017
References: Sec 3382 / CVE-2017-6459 / VU#325339
Affects: WINDOWS installer ONLY: All ntp-4 versions of the Windows
installer, up to but not including ntp-4.2.8p10, and ntp-4.3.0
up to, but not including ntp-4.3.94.
CVSS2: Low 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: Low 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary:
The Windows installer for NTP calls strcpy() with an argument
that specifically contains multiple null bytes. strcpy() only
copies a single terminating null character into the target
buffer instead of copying the required double null bytes in the
addKeysToRegistry() function. As a consequence, a garbage
registry entry can be created. The additional arsize parameter
is erroneously set to contain two null bytes and the following
call to RegSetValueEx() claims to be passing in a multi-string
value, though this may not be true.
Mitigation:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Credit:
This weakness was discovered by Cure53.
* NTP-01-006 NTP: Copious amounts of Unused Code (Informational)
References: Sec 3381
Summary:
The report says: Statically included external projects
potentially introduce several problems and the issue of having
extensive amounts of code that is "dead" in the resulting binary
must clearly be pointed out. The unnecessary unused code may or
may not contain bugs and, quite possibly, might be leveraged for
code-gadget-based branch-flow redirection exploits. Analogically,
having source trees statically included as well means a failure
in taking advantage of the free feature for periodical updates.
This solution is offered by the system's Package Manager. The
three libraries identified are libisc, libevent, and libopts.
Resolution:
For libisc, we already only use a portion of the original library.
We've found and fixed bugs in the original implementation (and
offered the patches to ISC), and plan to see what has changed
since we last upgraded the code. libisc is generally not
installed, and when it it we usually only see the static libisc.a
file installed. Until we know for sure that the bugs we've found
and fixed are fixed upstream, we're better off with the copy we
are using.
Version 1 of libevent was the only production version available
until recently, and we've been requiring version 2 for a long time.
But if the build system has at least version 2 of libevent
installed, we'll use the version that is installed on the system.
Otherwise, we provide a copy of libevent that we know works.
libopts is provided by GNU AutoGen, and that library and package
undergoes frequent API version updates. The version of autogen
used to generate the tables for the code must match the API
version in libopts. AutoGen can be ... difficult to build and
install, and very few developers really need it. So we have it
on our build and development machines, and we provide the
specific version of the libopts code in the distribution to make
sure that the proper API version of libopts is available.
As for the point about there being code in these libraries that
NTP doesn't use, OK. But other packages used these libraries as
well, and it is reasonable to assume that other people are paying
attention to security and code quality issues for the overall
libraries. It takes significant resources to analyze and
customize these libraries to only include what we need, and to
date we believe the cost of this effort does not justify the benefit.
Credit:
This issue was discovered by Cure53.
* NTP-01-005 NTP: Off-by-one in Oncore GPS Receiver (Low)
Date Resolved: 21 Mar 2017
References: Sec 3380
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: None 0.0 (AV:L/AC:H/Au:N/C:N/I:N/A:N)
CVSS3: None 0.0 CVSS:3.0/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:N
Summary:
There is a fencepost error in a "recovery branch" of the code for
the Oncore GPS receiver if the communication link to the ONCORE
is weak / distorted and the decoding doesn't work.
Mitigation:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page or
the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-004 NTP: Potential Overflows in ctl_put() functions (Medium)
Date Resolved: 21 Mar 2017
References: Sec 3379 / CVE-2017-6458 / VU#325339
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: MED 4.6 (AV:N/AC:H/Au:M/C:N/I:N/A:C)
CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
ntpd makes use of different wrappers around ctl_putdata() to
create name/value ntpq (mode 6) response strings. For example,
ctl_putstr() is usually used to send string data (variable names
or string data). The formatting code was missing a length check
for variable names. If somebody explicitly created any unusually
long variable names in ntpd (longer than 200-512 bytes, depending
on the type of variable), then if any of these variables are
added to the response list it would overflow a buffer.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you don't want to upgrade, then don't setvar variable names
longer than 200-512 bytes in your ntp.conf file.
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-003 NTP: Improper use of snprintf() in mx4200_send() (Low)
Date Resolved: 21 Mar 2017
References: Sec 3378 / CVE-2017-6451 / VU#325339
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: LOW 0.8 (AV:L/AC:H/Au:M/C:N/I:N/A:P)
CVSS3: LOW 1.8 CVSS:3.0/AV:L/AC:H/PR:H/UI:R/S:U/C:N/I:L/A:N
Summary:
The legacy MX4200 refclock is only built if is specifically
enabled, and furthermore additional code changes are required to
compile and use it. But it uses the libc functions snprintf()
and vsnprintf() incorrectly, which can lead to an out-of-bounds
memory write due to an improper handling of the return value of
snprintf()/vsnprintf(). Since the return value is used as an
iterator and it can be larger than the buffer's size, it is
possible for the iterator to point somewhere outside of the
allocated buffer space. This results in an out-of-bound memory
write. This behavior can be leveraged to overwrite a saved
instruction pointer on the stack and gain control over the
execution flow. During testing it was not possible to identify
any malicious usage for this vulnerability. Specifically, no
way for an attacker to exploit this vulnerability was ultimately
unveiled. However, it has the potential to be exploited, so the
code should be fixed.
Mitigation, if you have a Magnavox MX4200 refclock:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Cure53.
* NTP-01-002 NTP: Buffer Overflow in ntpq when fetching reslist from a
malicious ntpd (Medium)
Date Resolved: 21 Mar 2017
References: Sec 3377 / CVE-2017-6460 / VU#325339
Affects: All versions of ntpq, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: MED 4.9 (AV:N/AC:H/Au:S/C:N/I:N/A:C)
CVSS3: MED 4.2 CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
A stack buffer overflow in ntpq can be triggered by a malicious
ntpd server when ntpq requests the restriction list from the server.
This is due to a missing length check in the reslist() function.
It occurs whenever the function parses the server's response and
encounters a flagstr variable of an excessive length. The string
will be copied into a fixed-size buffer, leading to an overflow on
the function's stack-frame. Note well that this problem requires
a malicious server, and affects ntpq, not ntpd.
Mitigation:
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you can't upgrade your version of ntpq then if you want to know
the reslist of an instance of ntpd that you do not control,
know that if the target ntpd is malicious that it can send back
a response that intends to crash your ntpq process.
Credit:
This weakness was discovered by Cure53.
* NTP-01-001 NTP: Makefile does not enforce Security Flags (Informational)
Date Resolved: 21 Mar 2017
References: Sec 3376
Affects: All versions of NTP, up to but not including ntp-4.2.8p10, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: N/A
CVSS3: N/A
Summary:
The build process for NTP has not, by default, provided compile
or link flags to offer "hardened" security options. Package
maintainers have always been able to provide hardening security
flags for their builds. As of ntp-4.2.8p10, the NTP build
system has a way to provide OS-specific hardening flags. Please
note that this is still not a really great solution because it
is specific to NTP builds. It's inefficient to have every
package supply, track and maintain this information for every
target build. It would be much better if there was a common way
for OSes to provide this information in a way that arbitrary
packages could benefit from it.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was reported by Cure53.
* 0rigin DoS (Medium)
Date Resolved: 21 Mar 2017
References: Sec 3361 / CVE-2016-9042 / VU#325339
Affects: ntp-4.2.8p9 (21 Nov 2016), up to but not including ntp-4.2.8p10
CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C) (worst case)
CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H (worst case)
Summary:
An exploitable denial of service vulnerability exists in the
origin timestamp check functionality of ntpd 4.2.8p9. A specially
crafted unauthenticated network packet can be used to reset the
expected origin timestamp for target peers. Legitimate replies
from targeted peers will fail the origin timestamp check (TEST2)
causing the reply to be dropped and creating a denial of service
condition. This vulnerability can only be exploited if the
attacker can spoof all of the servers.
Mitigation:
Implement BCP-38.
Configure enough servers/peers that an attacker cannot target
all of your time sources.
Upgrade to 4.2.8p10, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart
ntpd (without -g) if it stops running.
Credit:
This weakness was discovered by Matthew Van Gundy of Cisco.
Other fixes:
* [Bug 3393] clang scan-build findings <perlinger@ntp.org>
* [Bug 3363] Support for openssl-1.1.0 without compatibility modes
- rework of patch set from <ntp.org@eroen.eu>. <perlinger@ntp.org>
* [Bug 3356] Bugfix 3072 breaks multicastclient <perlinger@ntp.org>
* [Bug 3216] libntp audio ioctl() args incorrectly cast to int
on 4.4BSD-Lite derived platforms <perlinger@ntp.org>
- original patch by Majdi S. Abbas
* [Bug 3215] 'make distcheck' fails with new BK repo format <perlinger@ntp.org>
* [Bug 3173] forking async worker: interrupted pipe I/O <perlinger@ntp.org>
- initial patch by Christos Zoulas
* [Bug 3139] (...) time_pps_create: Exec format error <perlinger@ntp.org>
- move loader API from 'inline' to proper source
- augment pathless dlls with absolute path to NTPD
- use 'msyslog()' instead of 'printf() 'for reporting trouble
* [Bug 3107] Incorrect Logic for Peer Event Limiting <perlinger@ntp.org>
- applied patch by Matthew Van Gundy
* [Bug 3065] Quiet warnings on NetBSD <perlinger@ntp.org>
- applied some of the patches provided by Havard. Not all of them
still match the current code base, and I did not touch libopt.
* [Bug 3062] Change the process name of forked DNS worker <perlinger@ntp.org>
- applied patch by Reinhard Max. See bugzilla for limitations.
* [Bug 2923] Trap Configuration Fail <perlinger@ntp.org>
- fixed dependency inversion from [Bug 2837]
* [Bug 2896] Nothing happens if minsane < maxclock < minclock
- produce ERROR log message about dysfunctional daemon. <perlinger@ntp.org>
* [Bug 2851] allow -4/-6 on restrict line with mask <perlinger@ntp.org>
- applied patch by Miroslav Lichvar for ntp4.2.6 compat
* [Bug 2645] out-of-bound pointers in ctl_putsys and decode_bitflags
- Fixed these and some more locations of this pattern.
Probably din't get them all, though. <perlinger@ntp.org>
* Update copyright year.
--
(4.2.8p9-win) 2017/02/01 Released by Harlan Stenn <stenn@ntp.org>
* [Bug 3144] NTP does not build without openSSL. <perlinger@ntp.org>
- added missed changeset for automatic openssl lib detection
- fixed some minor warning issues
* [Bug 3095] More compatibility with openssl 1.1. <perlinger@ntp.org>
* configure.ac cleanup. stenn@ntp.org
* openssl configure cleanup. stenn@ntp.org
--
NTP 4.2.8p9 (Harlan Stenn <stenn@ntp.org>, 2016/11/21)
Focus: Security, Bug fixes, enhancements.
Severity: HIGH
In addition to bug fixes and enhancements, this release fixes the
following 1 high- (Windows only), 2 medium-, 2 medium-/low, and
5 low-severity vulnerabilities, and provides 28 other non-security
fixes and improvements:
* Trap crash
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3119 / CVE-2016-9311 / VU#633847
Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
CVSS2: MED 4.9 (AV:N/AC:H/Au:N/C:N/I:N/A:C)
CVSS3: MED 4.4 CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H
Summary:
ntpd does not enable trap service by default. If trap service
has been explicitly enabled, an attacker can send a specially
crafted packet to cause a null pointer dereference that will
crash ntpd, resulting in a denial of service.
Mitigation:
Implement BCP-38.
Use "restrict default noquery ..." in your ntp.conf file. Only
allow mode 6 queries from trusted networks and hosts.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
* Mode 6 information disclosure and DDoS vector
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3118 / CVE-2016-9310 / VU#633847
Affects: ntp-4.0.90 (21 July 1999), possibly earlier, up to but not
including 4.2.8p9, and ntp-4.3.0 up to but not including ntp-4.3.94.
CVSS2: MED 6.4 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
CVSS3: MED 6.5 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary:
An exploitable configuration modification vulnerability exists
in the control mode (mode 6) functionality of ntpd. If, against
long-standing BCP recommendations, "restrict default noquery ..."
is not specified, a specially crafted control mode packet can set
ntpd traps, providing information disclosure and DDoS
amplification, and unset ntpd traps, disabling legitimate
monitoring. A remote, unauthenticated, network attacker can
trigger this vulnerability.
Mitigation:
Implement BCP-38.
Use "restrict default noquery ..." in your ntp.conf file.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
* Broadcast Mode Replay Prevention DoS
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3114 / CVE-2016-7427 / VU#633847
Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
ntp-4.3.90 up to, but not including ntp-4.3.94.
CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
CVSS3: MED 4.3 CVSS:3.0/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary:
The broadcast mode of NTP is expected to only be used in a
trusted network. If the broadcast network is accessible to an
attacker, a potentially exploitable denial of service
vulnerability in ntpd's broadcast mode replay prevention
functionality can be abused. An attacker with access to the NTP
broadcast domain can periodically inject specially crafted
broadcast mode NTP packets into the broadcast domain which,
while being logged by ntpd, can cause ntpd to reject broadcast
mode packets from legitimate NTP broadcast servers.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
* Broadcast Mode Poll Interval Enforcement DoS
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3113 / CVE-2016-7428 / VU#633847
Affects: ntp-4.2.8p6, up to but not including ntp-4.2.8p9, and
ntp-4.3.90 up to, but not including ntp-4.3.94
CVSS2: LOW 3.3 (AV:A/AC:L/Au:N/C:N/I:N/A:P)
CVSS3: MED 4.3 CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary:
The broadcast mode of NTP is expected to only be used in a
trusted network. If the broadcast network is accessible to an
attacker, a potentially exploitable denial of service
vulnerability in ntpd's broadcast mode poll interval enforcement
functionality can be abused. To limit abuse, ntpd restricts the
rate at which each broadcast association will process incoming
packets. ntpd will reject broadcast mode packets that arrive
before the poll interval specified in the preceding broadcast
packet expires. An attacker with access to the NTP broadcast
domain can send specially crafted broadcast mode NTP packets to
the broadcast domain which, while being logged by ntpd, will
cause ntpd to reject broadcast mode packets from legitimate NTP
broadcast servers.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco.
* Windows: ntpd DoS by oversized UDP packet
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3110 / CVE-2016-9312 / VU#633847
Affects Windows only: ntp-4.?.?, up to but not including ntp-4.2.8p9,
and ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Summary:
If a vulnerable instance of ntpd on Windows receives a crafted
malicious packet that is "too big", ntpd will stop working.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Robert Pajak of ABB.
* 0rigin (zero origin) issues
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3102 / CVE-2016-7431 / VU#633847
Affects: ntp-4.2.8p8, and ntp-4.3.93.
CVSS2: MED 5.0 (AV:N/AC:L/Au:N/C:N/I:P/A:N)
CVSS3: MED 5.3 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Summary:
Zero Origin timestamp problems were fixed by Bug 2945 in
ntp-4.2.8p6. However, subsequent timestamp validation checks
introduced a regression in the handling of some Zero origin
timestamp checks.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Sharon Goldberg and Aanchal
Malhotra of Boston University.
* read_mru_list() does inadequate incoming packet checks
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3082 / CVE-2016-7434 / VU#633847
Affects: ntp-4.2.7p22, up to but not including ntp-4.2.8p9, and
ntp-4.3.0 up to, but not including ntp-4.3.94.
CVSS2: LOW 3.8 (AV:L/AC:H/Au:S/C:N/I:N/A:C)
CVSS3: LOW 3.8 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary:
If ntpd is configured to allow mrulist query requests from a
server that sends a crafted malicious packet, ntpd will crash
on receipt of that crafted malicious mrulist query packet.
Mitigation:
Only allow mrulist query packets from trusted hosts.
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Magnus Stubman.
* Attack on interface selection
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3072 / CVE-2016-7429 / VU#633847
Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
ntp-4.3.0 up to, but not including ntp-4.3.94
CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary:
When ntpd receives a server response on a socket that corresponds
to a different interface than was used for the request, the peer
structure is updated to use the interface for new requests. If
ntpd is running on a host with multiple interfaces in separate
networks and the operating system doesn't check source address in
received packets (e.g. rp_filter on Linux is set to 0), an
attacker that knows the address of the source can send a packet
with spoofed source address which will cause ntpd to select wrong
interface for the source and prevent it from sending new requests
until the list of interfaces is refreshed, which happens on
routing changes or every 5 minutes by default. If the attack is
repeated often enough (once per second), ntpd will not be able to
synchronize with the source.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you are going to configure your OS to disable source address
checks, also configure your firewall configuration to control
what interfaces can receive packets from what networks.
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
* Client rate limiting and server responses
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3071 / CVE-2016-7426 / VU#633847
Affects: ntp-4.2.5p203, up to but not including ntp-4.2.8p9, and
ntp-4.3.0 up to, but not including ntp-4.3.94
CVSS2: LOW 1.0 (AV:L/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary:
When ntpd is configured with rate limiting for all associations
(restrict default limited in ntp.conf), the limits are applied
also to responses received from its configured sources. An
attacker who knows the sources (e.g., from an IPv4 refid in
server response) and knows the system is (mis)configured in this
way can periodically send packets with spoofed source address to
keep the rate limiting activated and prevent ntpd from accepting
valid responses from its sources.
While this blanket rate limiting can be useful to prevent
brute-force attacks on the origin timestamp, it allows this DoS
attack. Similarly, it allows the attacker to prevent mobilization
of ephemeral associations.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
* Fix for bug 2085 broke initial sync calculations
Date Resolved: 21 November 2016; Dev (4.3.94) 21 November 2016
References: Sec 3067 / CVE-2016-7433 / VU#633847
Affects: ntp-4.2.7p385, up to but not including ntp-4.2.8p9, and
ntp-4.3.0 up to, but not including ntp-4.3.94. But the
root-distance calculation in general is incorrect in all versions
of ntp-4 until this release.
CVSS2: LOW 1.2 (AV:L/AC:H/Au:N/C:N/I:N/A:P)
CVSS3: LOW 1.6 CVSS:3.0/AV:P/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:L
Summary:
Bug 2085 described a condition where the root delay was included
twice, causing the jitter value to be higher than expected. Due
to a misinterpretation of a small-print variable in The Book, the
fix for this problem was incorrect, resulting in a root distance
that did not include the peer dispersion. The calculations and
formulae have been reviewed and reconciled, and the code has been
updated accordingly.
Mitigation:
Upgrade to 4.2.8p9, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered independently by Brian Utterback of
Oracle, and Sharon Goldberg and Aanchal Malhotra of Boston University.
Other fixes:
* [Bug 3142] bug in netmask prefix length detection <perlinger@ntp.org>
* [Bug 3138] gpsdjson refclock should honor fudgetime1. stenn@ntp.org
* [Bug 3129] Unknown hosts can put resolver thread into a hard loop
- moved retry decision where it belongs. <perlinger@ntp.org>
* [Bug 3125] NTPD doesn't fully start when ntp.conf entries are out of order
using the loopback-ppsapi-provider.dll <perlinger@ntp.org>
* [Bug 3116] unit tests for NTP time stamp expansion. <perlinger@ntp.org>
* [Bug 3100] ntpq can't retrieve daemon_version <perlinger@ntp.org>
- fixed extended sysvar lookup (bug introduced with bug 3008 fix)
* [Bug 3095] Compatibility with openssl 1.1 <perlinger@ntp.org>
- applied patches by Kurt Roeckx <kurt@roeckx.be> to source
- added shim layer for SSL API calls with issues (both directions)
* [Bug 3089] Serial Parser does not work anymore for hopfser like device
- simplified / refactored hex-decoding in driver. <perlinger@ntp.org>
* [Bug 3084] update-leap mis-parses the leapfile name. HStenn.
* [Bug 3068] Linker warnings when building on Solaris. perlinger@ntp.org
- applied patch thanks to Andrew Stormont <andyjstormont@gmail.com>
* [Bug 3067] Root distance calculation needs improvement. HStenn
* [Bug 3066] NMEA clock ignores pps. perlinger@ntp.org
- PPS-HACK works again.
* [Bug 3059] Potential buffer overrun from oversized hash <perlinger@ntp.org>
- applied patch by Brian Utterback <brian.utterback@oracle.com>
* [Bug 3053] ntp_loopfilter.c frequency calc precedence error. Sarah White.
* [Bug 3050] Fix for bug #2960 causes [...] spurious error message.
<perlinger@ntp.org>
- patches by Reinhard Max <max@suse.com> and Havard Eidnes <he@uninett.no>
* [Bug 3047] Fix refclock_jjy C-DEX JST2000. abe@ntp.org
- Patch provided by Kuramatsu.
* [Bug 3021] unity_fixture.c needs pragma weak <perlinger@ntp.org>
- removed unnecessary & harmful decls of 'setUp()' & 'tearDown()'
* [Bug 3019] Windows: ERROR_HOST_UNREACHABLE block packet processing. DMayer
* [Bug 2998] sntp/tests/packetProcessing.c broken without openssl. JPerlinger
* [Bug 2961] sntp/tests/packetProcessing.c assumes AUTOKEY. HStenn.
* [Bug 2959] refclock_jupiter: gps week correction <perlinger@ntp.org>
- fixed GPS week expansion to work based on build date. Special thanks
to Craig Leres for initial patch and testing.
* [Bug 2951] ntpd tests fail: multiple definition of `send_via_ntp_signd'
- fixed Makefile.am <perlinger@ntp.org>
* [Bug 2689] ATOM driver processes last PPS pulse at startup,
even if it is very old <perlinger@ntp.org>
- make sure PPS source is alive before processing samples
- improve stability close to the 500ms phase jump (phase gate)
* Fix typos in include/ntp.h.
* Shim X509_get_signature_nid() if needed
* git author attribution cleanup
* bk ignore file cleanup
* remove locks in Windows IO, use rpc-like thread synchronisation instead
---
NTP 4.2.8p8 (Harlan Stenn <stenn@ntp.org>, 2016/06/02)
Focus: Security, Bug fixes, enhancements.
Severity: HIGH
In addition to bug fixes and enhancements, this release fixes the
following 1 high- and 4 low-severity vulnerabilities:
* CRYPTO_NAK crash
Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
References: Sec 3046 / CVE-2016-4957 / VU#321640
Affects: ntp-4.2.8p7, and ntp-4.3.92.
CVSS2: HIGH 7.8 (AV:N/AC:L/Au:N/C:N/I:N/A:C)
CVSS3: HIGH 7.5 CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Summary: The fix for Sec 3007 in ntp-4.2.8p7 contained a bug that
could cause ntpd to crash.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you cannot upgrade from 4.2.8p7, the only other alternatives
are to patch your code or filter CRYPTO_NAK packets.
Properly monitor your ntpd instances, and auto-restart ntpd
(without -g) if it stops running.
Credit: This weakness was discovered by Nicolas Edet of Cisco.
* Bad authentication demobilizes ephemeral associations
Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
References: Sec 3045 / CVE-2016-4953 / VU#321640
Affects: ntp-4, up to but not including ntp-4.2.8p8, and
ntp-4.3.0 up to, but not including ntp-4.3.93.
CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary: An attacker who knows the origin timestamp and can send a
spoofed packet containing a CRYPTO-NAK to an ephemeral peer
target before any other response is sent can demobilize that
association.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
* Processing spoofed server packets
Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
References: Sec 3044 / CVE-2016-4954 / VU#321640
Affects: ntp-4, up to but not including ntp-4.2.8p8, and
ntp-4.3.0 up to, but not including ntp-4.3.93.
CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary: An attacker who is able to spoof packets with correct origin
timestamps from enough servers before the expected response
packets arrive at the target machine can affect some peer
variables and, for example, cause a false leap indication to be set.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Jakub Prokes of Red Hat.
* Autokey association reset
Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
References: Sec 3043 / CVE-2016-4955 / VU#321640
Affects: ntp-4, up to but not including ntp-4.2.8p8, and
ntp-4.3.0 up to, but not including ntp-4.3.93.
CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary: An attacker who is able to spoof a packet with a correct
origin timestamp before the expected response packet arrives at
the target machine can send a CRYPTO_NAK or a bad MAC and cause
the association's peer variables to be cleared. If this can be
done often enough, it will prevent that association from working.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
* Broadcast interleave
Date Resolved: 02 June 2016; Dev (4.3.93) 02 June 2016
References: Sec 3042 / CVE-2016-4956 / VU#321640
Affects: ntp-4, up to but not including ntp-4.2.8p8, and
ntp-4.3.0 up to, but not including ntp-4.3.93.
CVSS2: LOW 2.6 (AV:N/AC:H/Au:N/C:N/I:N/A:P)
CVSS3: LOW 3.7 CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary: The fix for NtpBug2978 does not cover broadcast associations,
so broadcast clients can be triggered to flip into interleave mode.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p8, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
Other fixes:
* [Bug 3038] NTP fails to build in VS2015. perlinger@ntp.org
- provide build environment
- 'wint_t' and 'struct timespec' defined by VS2015
- fixed print()/scanf() format issues
* [Bug 3052] Add a .gitignore file. Edmund Wong.
* [Bug 3054] miscopt.html documents the allan intercept in seconds. SWhite.
* [Bug 3058] fetch_timestamp() mishandles 64-bit alignment. Brian Utterback,
JPerlinger, HStenn.
* Fix typo in ntp-wait and plot_summary. HStenn.
* Make sure we have an "author" file for git imports. HStenn.
* Update the sntp problem tests for MacOS. HStenn.
---
NTP 4.2.8p7 (Harlan Stenn <stenn@ntp.org>, 2016/04/26)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
When building NTP from source, there is a new configure option
available, --enable-dynamic-interleave. More information on this below.
Also note that ntp-4.2.8p7 logs more "unexpected events" than previous
versions of ntp. These events have almost certainly happened in the
past, it's just that they were silently counted and not logged. With
the increasing awareness around security, we feel it's better to clearly
log these events to help detect abusive behavior. This increased
logging can also help detect other problems, too.
In addition to bug fixes and enhancements, this release fixes the
following 9 low- and medium-severity vulnerabilities:
* Improve NTP security against buffer comparison timing attacks,
AKA: authdecrypt-timing
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 2879 / CVE-2016-1550
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSSv2: LOW 2.6 - (AV:L/AC:H/Au:N/C:P/I:P/A:N)
CVSSv3: MED 4.0 - CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Summary: Packet authentication tests have been performed using
memcmp() or possibly bcmp(), and it is potentially possible
for a local or perhaps LAN-based attacker to send a packet with
an authentication payload and indirectly observe how much of
the digest has matched.
Mitigation:
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Properly monitor your ntpd instances.
Credit: This weakness was discovered independently by Loganaden
Velvindron, and Matthew Van Gundy and Stephen Gray of Cisco ASIG.
* Zero origin timestamp bypass: Additional KoD checks.
References: Sec 2945 / Sec 2901 / CVE-2015-8138
Affects: All ntp-4 releases up to, but not including 4.2.8p7,
Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.92.
* peer associations were broken by the fix for NtpBug2899
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 2952 / CVE-2015-7704
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSSv2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
Summary: The fix for NtpBug2952 in ntp-4.2.8p5 to address broken peer
associations did not address all of the issues.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you can't upgrade, use "server" associations instead of
"peer" associations.
Monitor your ntpd instances.
Credit: This problem was discovered by Michael Tatarinov.
* Validate crypto-NAKs, AKA: CRYPTO-NAK DoS
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3007 / CVE-2016-1547 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSS2: MED 4.3 - (AV:N/AC:M/Au:N/C:N/I:N/A:P)
CVSS3: MED 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
Summary: For ntp-4 versions up to but not including ntp-4.2.8p7, an
off-path attacker can cause a preemptable client association to
be demobilized by sending a crypto NAK packet to a victim client
with a spoofed source address of an existing associated peer.
This is true even if authentication is enabled.
Furthermore, if the attacker keeps sending crypto NAK packets,
for example one every second, the victim never has a chance to
reestablish the association and synchronize time with that
legitimate server.
For ntp-4.2.8 thru ntp-4.2.8p6 there is less risk because more
stringent checks are performed on incoming packets, but there
are still ways to exploit this vulnerability in versions before
ntp-4.2.8p7.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances
Credit: This weakness was discovered by Stephen Gray and
Matthew Van Gundy of Cisco ASIG.
* ctl_getitem() return value not always checked
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3008 / CVE-2016-2519
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSSv2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
CVSSv3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary: ntpq and ntpdc can be used to store and retrieve information
in ntpd. It is possible to store a data value that is larger
than the size of the buffer that the ctl_getitem() function of
ntpd uses to report the return value. If the length of the
requested data value returned by ctl_getitem() is too large,
the value NULL is returned instead. There are 2 cases where the
return value from ctl_getitem() was not directly checked to make
sure it's not NULL, but there are subsequent INSIST() checks
that make sure the return value is not NULL. There are no data
values ordinarily stored in ntpd that would exceed this buffer
length. But if one has permission to store values and one stores
a value that is "too large", then ntpd will abort if an attempt
is made to read that oversized value.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Yihan Lian of the Cloud
Security Team, Qihoo 360.
* Crafted addpeer with hmode > 7 causes array wraparound with MATCH_ASSOC
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3009 / CVE-2016-2518 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSS2: LOW 2.1 - (AV:N/AC:H/Au:S/C:N/I:N/A:P)
CVSS3: LOW 2.0 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:L
Summary: Using a crafted packet to create a peer association with
hmode > 7 causes the MATCH_ASSOC() lookup to make an
out-of-bounds reference.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances
Credit: This weakness was discovered by Yihan Lian of the Cloud
Security Team, Qihoo 360.
* remote configuration trustedkey/requestkey/controlkey values are not
properly validated
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3010 / CVE-2016-2517 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSS2: MED 4.9 - (AV:N/AC:H/Au:S/C:N/I:N/A:C)
CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary: If ntpd was expressly configured to allow for remote
configuration, a malicious user who knows the controlkey for
ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
can create a session with ntpd and then send a crafted packet to
ntpd that will change the value of the trustedkey, controlkey,
or requestkey to a value that will prevent any subsequent
authentication with ntpd until ntpd is restarted.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances
Credit: This weakness was discovered by Yihan Lian of the Cloud
Security Team, Qihoo 360.
* Duplicate IPs on unconfig directives will cause an assertion botch in ntpd
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3011 / CVE-2016-2516 / VU#718152
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSS2: MED 6.3 - (AV:N/AC:M/Au:S/C:N/I:N/A:C)
CVSS3: MED 4.2 - CVSS:3.0/AV:N/AC:H/PR:H/UI:R/S:U/C:N/I:N/A:H
Summary: If ntpd was expressly configured to allow for remote
configuration, a malicious user who knows the controlkey for
ntpq or the requestkey for ntpdc (if mode7 is expressly enabled)
can create a session with ntpd and if an existing association is
unconfigured using the same IP twice on the unconfig directive
line, ntpd will abort.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Properly monitor your ntpd instances
Credit: This weakness was discovered by Yihan Lian of the Cloud
Security Team, Qihoo 360.
* Refclock impersonation vulnerability
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3020 / CVE-2016-1551
Affects: On a very limited number of OSes, all NTP releases up to but
not including 4.2.8p7, and 4.3.0 up to but not including 4.3.92.
By "very limited number of OSes" we mean no general-purpose OSes
have yet been identified that have this vulnerability.
CVSSv2: LOW 2.6 - (AV:N/AC:H/Au:N/C:N/I:P/A:N)
CVSSv3: LOW 3.7 - CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
Summary: While most OSes implement martian packet filtering in their
network stack, at least regarding 127.0.0.0/8, some will allow
packets claiming to be from 127.0.0.0/8 that arrive over a
physical network. On these OSes, if ntpd is configured to use a
reference clock an attacker can inject packets over the network
that look like they are coming from that reference clock.
Mitigation:
Implement martian packet filtering and BCP-38.
Configure ntpd to use an adequate number of time sources.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you are unable to upgrade and if you are running an OS that
has this vulnerability, implement martian packet filters and
lobby your OS vendor to fix this problem, or run your
refclocks on computers that use OSes that are not vulnerable
to these attacks and have your vulnerable machines get their
time from protected resources.
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Matt Street and others of
Cisco ASIG.
The following issues were fixed in earlier releases and contain
improvements in 4.2.8p7:
* Clients that receive a KoD should validate the origin timestamp field.
References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
Affects: All ntp-4 releases up to, but not including 4.2.8p7,
Summary: Improvements to the fixes incorporated into 4.2.8p4 and 4.3.77.
* Skeleton key: passive server with trusted key can serve time.
References: Sec 2936 / CVE-2015-7974
Affects: All ntp-4 releases up to, but not including 4.2.8p7,
Summary: Improvements to the fixes incorporated in t 4.2.8p6 and 4.3.90.
Two other vulnerabilities have been reported, and the mitigations
for these are as follows:
* Interleave-pivot
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 2978 / CVE-2016-1548
Affects: All ntp-4 releases.
CVSSv2: MED 6.4 - (AV:N/AC:L/Au:N/C:N/I:P/A:P)
CVSSv3: MED 7.2 - CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:L
Summary: It is possible to change the time of an ntpd client or deny
service to an ntpd client by forcing it to change from basic
client/server mode to interleaved symmetric mode. An attacker
can spoof a packet from a legitimate ntpd server with an origin
timestamp that matches the peer->dst timestamp recorded for that
server. After making this switch, the client will reject all
future legitimate server responses. It is possible to force the
victim client to move time after the mode has been changed.
ntpq gives no indication that the mode has been switched.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p7, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page. These
versions will not dynamically "flip" into interleave mode
unless configured to do so.
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Miroslav Lichvar of RedHat
and separately by Jonathan Gardner of Cisco ASIG.
* Sybil vulnerability: ephemeral association attack
Date Resolved: Stable (4.2.8p7) 26 Apr 2016; Dev (4.3.92) 26 Apr 2016
References: Sec 3012 / CVE-2016-1549
Affects: All ntp-4 releases up to, but not including 4.2.8p7, and
4.3.0 up to, but not including 4.3.92
CVSSv2: LOW 3.5 - (AV:N/AC:M/Au:S/C:N/I:P/A:N)
CVSS3v: MED 5.3 - CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N
Summary: ntpd can be vulnerable to Sybil attacks. If one is not using
the feature introduced in ntp-4.2.8p6 allowing an optional 4th
field in the ntp.keys file to specify which IPs can serve time,
a malicious authenticated peer can create arbitrarily-many
ephemeral associations in order to win the clock selection of
ntpd and modify a victim's clock.
Mitigation:
Implement BCP-38.
Use the 4th field in the ntp.keys file to specify which IPs
can be time servers.
Properly monitor your ntpd instances.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
Other fixes:
* [Bug 2831] Segmentation Fault in DNS lookup during startup. perlinger@ntp.org
- fixed yet another race condition in the threaded resolver code.
* [Bug 2858] bool support. Use stdbool.h when available. HStenn.
* [Bug 2879] Improve NTP security against timing attacks. perlinger@ntp.org
- integrated patches by Loganaden Velvidron <logan@ntp.org>
with some modifications & unit tests
* [Bug 2960] async name resolution fixes for chroot() environments.
Reinhard Max.
* [Bug 2994] Systems with HAVE_SIGNALED_IO fail to compile. perlinger@ntp.org
* [Bug 2995] Fixes to compile on Windows
* [Bug 2999] out-of-bounds access in 'is_safe_filename()'. perlinger@ntp.org
* [Bug 3013] Fix for ssl_init.c SHA1 test. perlinger@ntp.org
- Patch provided by Ch. Weisgerber
* [Bug 3015] ntpq: config-from-file: "request contains an unprintable character"
- A change related to [Bug 2853] forbids trailing white space in
remote config commands. perlinger@ntp.org
* [Bug 3019] NTPD stops processing packets after ERROR_HOST_UNREACHABLE
- report and patch from Aleksandr Kostikov.
- Overhaul of Windows IO completion port handling. perlinger@ntp.org
* [Bug 3022] authkeys.c should be refactored. perlinger@ntp.org
- fixed memory leak in access list (auth[read]keys.c)
- refactored handling of key access lists (auth[read]keys.c)
- reduced number of error branches (authreadkeys.c)
* [Bug 3023] ntpdate cannot correct dates in the future. perlinger@ntp.org
* [Bug 3030] ntpq needs a general way to specify refid output format. HStenn.
* [Bug 3031] ntp broadcastclient unable to synchronize to an server
when the time of server changed. perlinger@ntp.org
- Check the initial delay calculation and reject/unpeer the broadcast
server if the delay exceeds 50ms. Retry again after the next
broadcast packet.
* [Bug 3036] autokey trips an INSIST in authistrustedip(). Harlan Stenn.
* Document ntp.key's optional IP list in authenetic.html. Harlan Stenn.
* Update html/xleave.html documentation. Harlan Stenn.
* Update ntp.conf documentation. Harlan Stenn.
* Fix some Credit: attributions in the NEWS file. Harlan Stenn.
* Fix typo in html/monopt.html. Harlan Stenn.
* Add README.pullrequests. Harlan Stenn.
* Cleanup to include/ntp.h. Harlan Stenn.
New option to 'configure':
While looking in to the issues around Bug 2978, the "interleave pivot"
issue, it became clear that there are some intricate and unresolved
issues with interleave operations. We also realized that the interleave
protocol was never added to the NTPv4 Standard, and it should have been.
Interleave mode was first released in July of 2008, and can be engaged
in two ways. Any 'peer' and 'broadcast' lines in the ntp.conf file may
contain the 'xleave' option, which will expressly enable interlave mode
for that association. Additionally, if a time packet arrives and is
found inconsistent with normal protocol behavior but has certain
characteristics that are compatible with interleave mode, NTP will
dynamically switch to interleave mode. With sufficient knowledge, an
attacker can send a crafted forged packet to an NTP instance that
triggers only one side to enter interleaved mode.
To prevent this attack until we can thoroughly document, describe,
fix, and test the dynamic interleave mode, we've added a new
'configure' option to the build process:
--enable-dynamic-interleave
This option controls whether or not NTP will, if conditions are right,
engage dynamic interleave mode. Dynamic interleave mode is disabled by
default in ntp-4.2.8p7.
---
NTP 4.2.8p6 (Harlan Stenn <stenn@ntp.org>, 2016/01/20)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
In addition to bug fixes and enhancements, this release fixes the
following 1 low- and 8 medium-severity vulnerabilities:
* Potential Infinite Loop in 'ntpq'
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2548 / CVE-2015-8158
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS2: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
Summary: 'ntpq' processes incoming packets in a loop in 'getresponse()'.
The loop's only stopping conditions are receiving a complete and
correct response or hitting a small number of error conditions.
If the packet contains incorrect values that don't trigger one of
the error conditions, the loop continues to receive new packets.
Note well, this is an attack against an instance of 'ntpq', not
'ntpd', and this attack requires the attacker to do one of the
following:
* Own a malicious NTP server that the client trusts
* Prevent a legitimate NTP server from sending packets to
the 'ntpq' client
* MITM the 'ntpq' communications between the 'ntpq' client
and the NTP server
Mitigation:
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
* 0rigin: Zero Origin Timestamp Bypass
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2945 / CVE-2015-8138
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS2: (AV:N/AC:L/Au:N/C:N/I:P/A:N) Base Score: 5.0 - MEDIUM
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N Base Score: 5.3 - MEDIUM
(3.7 - LOW if you score AC:L)
Summary: To distinguish legitimate peer responses from forgeries, a
client attempts to verify a response packet by ensuring that the
origin timestamp in the packet matches the origin timestamp it
transmitted in its last request. A logic error exists that
allows packets with an origin timestamp of zero to bypass this
check whenever there is not an outstanding request to the server.
Mitigation:
Configure 'ntpd' to get time from multiple sources.
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Monitor your 'ntpd' instances.
Credit: This weakness was discovered by Matthey Van Gundy and
Jonathan Gardner of Cisco ASIG.
* Stack exhaustion in recursive traversal of restriction list
Date Resolved: Stable (4.2.8p6) 19 Jan 2016
References: Sec 2940 / CVE-2015-7978
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
Summary: An unauthenticated 'ntpdc reslist' command can cause a
segmentation fault in ntpd by exhausting the call stack.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
If you are unable to upgrade:
In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
If you must enable mode 7:
configure the use of a 'requestkey' to control who can
issue mode 7 requests.
configure 'restrict noquery' to further limit mode 7
requests to trusted sources.
Monitor your ntpd instances.
Credit: This weakness was discovered by Stephen Gray at Cisco ASIG.
* Off-path Denial of Service (!DoS) attack on authenticated broadcast mode
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2942 / CVE-2015-7979
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:N/AC:M/Au:N/C:N/I:P/A:P) Base Score: 5.8
Summary: An off-path attacker can send broadcast packets with bad
authentication (wrong key, mismatched key, incorrect MAC, etc)
to broadcast clients. It is observed that the broadcast client
tears down the association with the broadcast server upon
receiving just one bad packet.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Monitor your 'ntpd' instances.
If this sort of attack is an active problem for you, you have
deeper problems to investigate. In this case also consider
having smaller NTP broadcast domains.
Credit: This weakness was discovered by Aanchal Malhotra of Boston
University.
* reslist NULL pointer dereference
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2939 / CVE-2015-7977
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3 - MEDIUM
Summary: An unauthenticated 'ntpdc reslist' command can cause a
segmentation fault in ntpd by causing a NULL pointer dereference.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p6, or later, from NTP Project Download Page or
the NTP Public Services Project Download Page.
If you are unable to upgrade:
mode 7 is disabled by default. Don't enable it.
If you must enable mode 7:
configure the use of a 'requestkey' to control who can
issue mode 7 requests.
configure 'restrict noquery' to further limit mode 7
requests to trusted sources.
Monitor your ntpd instances.
Credit: This weakness was discovered by Stephen Gray of Cisco ASIG.
* 'ntpq saveconfig' command allows dangerous characters in filenames.
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2938 / CVE-2015-7976
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:N/AC:L/Au:S/C:N/I:P/A:N) Base Score: 4.0 - MEDIUM
Summary: The ntpq saveconfig command does not do adequate filtering
of special characters from the supplied filename.
Note well: The ability to use the saveconfig command is controlled
by the 'restrict nomodify' directive, and the recommended default
configuration is to disable this capability. If the ability to
execute a 'saveconfig' is required, it can easily (and should) be
limited and restricted to a known small number of IP addresses.
Mitigation:
Implement BCP-38.
use 'restrict default nomodify' in your 'ntp.conf' file.
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page.
If you are unable to upgrade:
build NTP with 'configure --disable-saveconfig' if you will
never need this capability, or
use 'restrict default nomodify' in your 'ntp.conf' file. Be
careful about what IPs have the ability to send 'modify'
requests to 'ntpd'.
Monitor your ntpd instances.
'saveconfig' requests are logged to syslog - monitor your syslog files.
Credit: This weakness was discovered by Jonathan Gardner of Cisco ASIG.
* nextvar() missing length check in ntpq
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2937 / CVE-2015-7975
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:L/AC:H/Au:N/C:N/I:N/A:P) Base Score: 1.2 - LOW
If you score A:C, this becomes 4.0.
CVSSv3: (CVSS:3.0/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) Base Score 2.9, LOW
Summary: ntpq may call nextvar() which executes a memcpy() into the
name buffer without a proper length check against its maximum
length of 256 bytes. Note well that we're taking about ntpq here.
The usual worst-case effect of this vulnerability is that the
specific instance of ntpq will crash and the person or process
that did this will have stopped themselves.
Mitigation:
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
If you are unable to upgrade:
If you have scripts that feed input to ntpq make sure there are
some sanity checks on the input received from the "outside".
This is potentially more dangerous if ntpq is run as root.
Credit: This weakness was discovered by Jonathan Gardner at Cisco ASIG.
* Skeleton Key: Any trusted key system can serve time
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2936 / CVE-2015-7974
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:N/AC:H/Au:S/C:N/I:C/A:N) Base Score: 4.9
Summary: Symmetric key encryption uses a shared trusted key. The
reported title for this issue was "Missing key check allows
impersonation between authenticated peers" and the report claimed
"A key specified only for one server should only work to
authenticate that server, other trusted keys should be refused."
Except there has never been any correlation between this trusted
key and server v. clients machines and there has never been any
way to specify a key only for one server. We have treated this as
an enhancement request, and ntp-4.2.8p6 includes other checks and
tests to strengthen clients against attacks coming from broadcast
servers.
Mitigation:
Implement BCP-38.
If this scenario represents a real or a potential issue for you,
upgrade to 4.2.8p6, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page, and
use the new field in the ntp.keys file that specifies the list
of IPs that are allowed to serve time. Note that this alone
will not protect against time packets with forged source IP
addresses, however other changes in ntp-4.2.8p6 provide
significant mitigation against broadcast attacks. MITM attacks
are a different story.
If you are unable to upgrade:
Don't use broadcast mode if you cannot monitor your client
servers.
If you choose to use symmetric keys to authenticate time
packets in a hostile environment where ephemeral time
servers can be created, or if it is expected that malicious
time servers will participate in an NTP broadcast domain,
limit the number of participating systems that participate
in the shared-key group.
Monitor your ntpd instances.
Credit: This weakness was discovered by Matt Street of Cisco ASIG.
* Deja Vu: Replay attack on authenticated broadcast mode
Date Resolved: Stable (4.2.8p6) 19 Jan 2016; Dev (4.3.90) 19 Jan 2016
References: Sec 2935 / CVE-2015-7973
Affects: All ntp-4 releases up to, but not including 4.2.8p6, and
4.3.0 up to, but not including 4.3.90
CVSS: (AV:A/AC:M/Au:N/C:N/I:P/A:P) Base Score: 4.3 - MEDIUM
Summary: If an NTP network is configured for broadcast operations then
either a man-in-the-middle attacker or a malicious participant
that has the same trusted keys as the victim can replay time packets.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p6, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
If you are unable to upgrade:
Don't use broadcast mode if you cannot monitor your client servers.
Monitor your ntpd instances.
Credit: This weakness was discovered by Aanchal Malhotra of Boston
University.
Other fixes:
* [Bug 2772] adj_systime overflows tv_usec. perlinger@ntp.org
* [Bug 2814] msyslog deadlock when signaled. perlinger@ntp.org
- applied patch by shenpeng11@huawei.com with minor adjustments
* [Bug 2882] Look at ntp_request.c:list_peers_sum(). perlinger@ntp.org
* [Bug 2891] Deadlock in deferred DNS lookup framework. perlinger@ntp.org
* [Bug 2892] Several test cases assume IPv6 capabilities even when
IPv6 is disabled in the build. perlinger@ntp.org
- Found this already fixed, but validation led to cleanup actions.
* [Bug 2905] DNS lookups broken. perlinger@ntp.org
- added limits to stack consumption, fixed some return code handling
* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C. perlinger@ntp.org
- make CTRL-C work for retrieval and printing od MRU list. perlinger@ntp.org
* [Bug 2980] reduce number of warnings. perlinger@ntp.org
- integrated several patches from Havard Eidnes (he@uninett.no)
* [Bug 2985] bogus calculation in authkeys.c perlinger@ntp.org
- implement 'auth_log2()' using integer bithack instead of float calculation
* Make leapsec_query debug messages less verbose. Harlan Stenn.
---
NTP 4.2.8p5 (Harlan Stenn <stenn@ntp.org>, 2016/01/07)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
In addition to bug fixes and enhancements, this release fixes the
following medium-severity vulnerability:
* Small-step/big-step. Close the panic gate earlier.
References: Sec 2956, CVE-2015-5300
Affects: All ntp-4 releases up to, but not including 4.2.8p5, and
4.3.0 up to, but not including 4.3.78
CVSS3: (AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:N/A:L) Base Score: 4.0, MEDIUM
Summary: If ntpd is always started with the -g option, which is
common and against long-standing recommendation, and if at the
moment ntpd is restarted an attacker can immediately respond to
enough requests from enough sources trusted by the target, which
is difficult and not common, there is a window of opportunity
where the attacker can cause ntpd to set the time to an
arbitrary value. Similarly, if an attacker is able to respond
to enough requests from enough sources trusted by the target,
the attacker can cause ntpd to abort and restart, at which
point it can tell the target to set the time to an arbitrary
value if and only if ntpd was re-started against long-standing
recommendation with the -g flag, or if ntpd was not given the
-g flag, the attacker can move the target system's time by at
most 900 seconds' time per attack.
Mitigation:
Configure ntpd to get time from multiple sources.
Upgrade to 4.2.8p5, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page
As we've long documented, only use the -g option to ntpd in
cold-start situations.
Monitor your ntpd instances.
Credit: This weakness was discovered by Aanchal Malhotra,
Isaac E. Cohen, and Sharon Goldberg at Boston University.
NOTE WELL: The -g flag disables the limit check on the panic_gate
in ntpd, which is 900 seconds by default. The bug identified by
the researchers at Boston University is that the panic_gate
check was only re-enabled after the first change to the system
clock that was greater than 128 milliseconds, by default. The
correct behavior is that the panic_gate check should be
re-enabled after any initial time correction.
If an attacker is able to inject consistent but erroneous time
responses to your systems via the network or "over the air",
perhaps by spoofing radio, cellphone, or navigation satellite
transmissions, they are in a great position to affect your
system's clock. There comes a point where your very best
defenses include:
Configure ntpd to get time from multiple sources.
Monitor your ntpd instances.
Other fixes:
* Coverity submission process updated from Coverity 5 to Coverity 7.
The NTP codebase has been undergoing regular Coverity scans on an
ongoing basis since 2006. As part of our recent upgrade from
Coverity 5 to Coverity 7, Coverity identified 16 nits in some of
the newly-written Unity test programs. These were fixed.
* [Bug 2829] Clean up pipe_fds in ntpd.c perlinger@ntp.org
* [Bug 2887] stratum -1 config results as showing value 99
- fudge stratum should only accept values [0..16]. perlinger@ntp.org
* [Bug 2932] Update leapsecond file info in miscopt.html. CWoodbury, HStenn.
* [Bug 2934] tests/ntpd/t-ntp_scanner.c has a magic constant wired in. HMurray
* [Bug 2944] errno is not preserved properly in ntpdate after sendto call.
- applied patch by Christos Zoulas. perlinger@ntp.org
* [Bug 2952] Peer associations broken by fix for Bug 2901/CVE-2015-7704.
* [Bug 2954] Version 4.2.8p4 crashes on startup on some OSes.
- fixed data race conditions in threaded DNS worker. perlinger@ntp.org
- limit threading warm-up to linux; FreeBSD bombs on it. perlinger@ntp.org
* [Bug 2957] 'unsigned int' vs 'size_t' format clash. perlinger@ntp.org
- accept key file only if there are no parsing errors
- fixed size_t/u_int format clash
- fixed wrong use of 'strlcpy'
* [Bug 2958] ntpq: fatal error messages need a final newline. Craig Leres.
* [Bug 2962] truncation of size_t/ptrdiff_t on 64bit targets. perlinger@ntp.org
- fixed several other warnings (cast-alignment, missing const, missing prototypes)
- promote use of 'size_t' for values that express a size
- use ptr-to-const for read-only arguments
- make sure SOCKET values are not truncated (win32-specific)
- format string fixes
* [Bug 2965] Local clock didn't work since 4.2.8p4. Martin Burnicki.
* [Bug 2967] ntpdate command suffers an assertion failure
- fixed ntp_rfc2553.c to return proper address length. perlinger@ntp.org
* [Bug 2969] Seg fault from ntpq/mrulist when looking at server with
lots of clients. perlinger@ntp.org
* [Bug 2971] ntpq bails on ^C: select fails: Interrupted system call
- changed stacked/nested handling of CTRL-C. perlinger@ntp.org
* Unity cleanup for FreeBSD-6.4. Harlan Stenn.
* Unity test cleanup. Harlan Stenn.
* Libevent autoconf pthread fixes for FreeBSD-10. Harlan Stenn.
* Header cleanup in tests/sandbox/uglydate.c. Harlan Stenn.
* Header cleanup in tests/libntp/sfptostr.c. Harlan Stenn.
* Quiet a warning from clang. Harlan Stenn.
---
NTP 4.2.8p4 (Harlan Stenn <stenn@ntp.org>, 2015/10/21)
Focus: Security, Bug fixes, enhancements.
Severity: MEDIUM
In addition to bug fixes and enhancements, this release fixes the
following 13 low- and medium-severity vulnerabilities:
* Incomplete vallen (value length) checks in ntp_crypto.c, leading
to potential crashes or potential code injection/information leakage.
References: Sec 2899, Sec 2671, CVE-2015-7691, CVE-2015-7692, CVE-2015-7702
Affects: All ntp-4 releases up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
Summary: The fix for CVE-2014-9750 was incomplete in that there were
certain code paths where a packet with particular autokey operations
that contained malicious data was not always being completely
validated. Receipt of these packets can cause ntpd to crash.
Mitigation:
Don't use autokey.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page
Monitor your ntpd instances.
Credit: This weakness was discovered by Tenable Network Security.
* Clients that receive a KoD should validate the origin timestamp field.
References: Sec 2901 / CVE-2015-7704, CVE-2015-7705
Affects: All ntp-4 releases up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:M/Au:N/C:N/I:N/A:P) Base Score: 4.3-5.0 at worst
Summary: An ntpd client that honors Kiss-of-Death responses will honor
KoD messages that have been forged by an attacker, causing it to
delay or stop querying its servers for time updates. Also, an
attacker can forge packets that claim to be from the target and
send them to servers often enough that a server that implements
KoD rate limiting will send the target machine a KoD response to
attempt to reduce the rate of incoming packets, or it may also
trigger a firewall block at the server for packets from the target
machine. For either of these attacks to succeed, the attacker must
know what servers the target is communicating with. An attacker
can be anywhere on the Internet and can frequently learn the
identity of the target's time source by sending the target a
time query.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
If you can't upgrade, restrict who can query ntpd to learn who
its servers are, and what IPs are allowed to ask your system
for the time. This mitigation is heavy-handed.
Monitor your ntpd instances.
Note:
4.2.8p4 protects against the first attack. For the second attack,
all we can do is warn when it is happening, which we do in 4.2.8p4.
Credit: This weakness was discovered by Aanchal Malhotra,
Issac E. Cohen, and Sharon Goldberg of Boston University.
* configuration directives to change "pidfile" and "driftfile" should
only be allowed locally.
References: Sec 2902 / CVE-2015-5196
Affects: All ntp-4 releases up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.2 worst case
Summary: If ntpd is configured to allow for remote configuration,
and if the (possibly spoofed) source IP address is allowed to
send remote configuration requests, and if the attacker knows
the remote configuration password, it's possible for an attacker
to use the "pidfile" or "driftfile" directives to potentially
overwrite other files.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page
If you cannot upgrade, don't enable remote configuration.
If you must enable remote configuration and cannot upgrade,
remote configuration of NTF's ntpd requires:
- an explicitly configured trustedkey, and you should also
configure a controlkey.
- access from a permitted IP. You choose the IPs.
- authentication. Don't disable it. Practice secure key safety.
Monitor your ntpd instances.
Credit: This weakness was discovered by Miroslav Lichvar of Red Hat.
* Slow memory leak in CRYPTO_ASSOC
References: Sec 2909 / CVE-2015-7701
Affects: All ntp-4 releases that use autokey up to, but not
including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 0.0 best/usual case,
4.6 otherwise
Summary: If ntpd is configured to use autokey, then an attacker can
send packets to ntpd that will, after several days of ongoing
attack, cause it to run out of memory.
Mitigation:
Don't use autokey.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page
Monitor your ntpd instances.
Credit: This weakness was discovered by Tenable Network Security.
* mode 7 loop counter underrun
References: Sec 2913 / CVE-2015-7848 / TALOS-CAN-0052
Affects: All ntp-4 releases up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6
Summary: If ntpd is configured to enable mode 7 packets, and if the
use of mode 7 packets is not properly protected thru the use of
the available mode 7 authentication and restriction mechanisms,
and if the (possibly spoofed) source IP address is allowed to
send mode 7 queries, then an attacker can send a crafted packet
to ntpd that will cause it to crash.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade:
In ntp-4.2.8, mode 7 is disabled by default. Don't enable it.
If you must enable mode 7:
configure the use of a requestkey to control who can issue
mode 7 requests.
configure restrict noquery to further limit mode 7 requests
to trusted sources.
Monitor your ntpd instances.
Credit: This weakness was discovered by Aleksandar Nikolic of Cisco Talos.
* memory corruption in password store
References: Sec 2916 / CVE-2015-7849 / TALOS-CAN-0054
Affects: All ntp-4 releases up to, but not including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:C/A:C) Base Score: 6.8, worst case
Summary: If ntpd is configured to allow remote configuration, and if
the (possibly spoofed) source IP address is allowed to send
remote configuration requests, and if the attacker knows the
remote configuration password or if ntpd was configured to
disable authentication, then an attacker can send a set of
packets to ntpd that may cause a crash or theoretically
perform a code injection attack.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade, remote configuration of NTF's
ntpd requires:
an explicitly configured "trusted" key. Only configure
this if you need it.
access from a permitted IP address. You choose the IPs.
authentication. Don't disable it. Practice secure key safety.
Monitor your ntpd instances.
Credit: This weakness was discovered by Yves Younan of Cisco Talos.
* Infinite loop if extended logging enabled and the logfile and
keyfile are the same.
References: Sec 2917 / CVE-2015-7850 / TALOS-CAN-0055
Affects: All ntp-4 releases up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
Summary: If ntpd is configured to allow remote configuration, and if
the (possibly spoofed) source IP address is allowed to send
remote configuration requests, and if the attacker knows the
remote configuration password or if ntpd was configured to
disable authentication, then an attacker can send a set of
packets to ntpd that will cause it to crash and/or create a
potentially huge log file. Specifically, the attacker could
enable extended logging, point the key file at the log file,
and cause what amounts to an infinite loop.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade, remote configuration of NTF's ntpd
requires:
an explicitly configured "trusted" key. Only configure this
if you need it.
access from a permitted IP address. You choose the IPs.
authentication. Don't disable it. Practice secure key safety.
Monitor your ntpd instances.
Credit: This weakness was discovered by Yves Younan of Cisco Talos.
* Potential path traversal vulnerability in the config file saving of
ntpd on VMS.
References: Sec 2918 / CVE-2015-7851 / TALOS-CAN-0062
Affects: All ntp-4 releases running under VMS up to, but not
including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:P/A:C) Base Score: 5.2, worst case
Summary: If ntpd is configured to allow remote configuration, and if
the (possibly spoofed) IP address is allowed to send remote
configuration requests, and if the attacker knows the remote
configuration password or if ntpd was configured to disable
authentication, then an attacker can send a set of packets to
ntpd that may cause ntpd to overwrite files.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade, remote configuration of NTF's ntpd
requires:
an explicitly configured "trusted" key. Only configure
this if you need it.
access from permitted IP addresses. You choose the IPs.
authentication. Don't disable it. Practice key security safety.
Monitor your ntpd instances.
Credit: This weakness was discovered by Yves Younan of Cisco Talos.
* ntpq atoascii() potential memory corruption
References: Sec 2919 / CVE-2015-7852 / TALOS-CAN-0063
Affects: All ntp-4 releases running up to, but not including 4.2.8p4,
and 4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:N/C:N/I:P/A:P) Base Score: 4.0, worst case
Summary: If an attacker can figure out the precise moment that ntpq
is listening for data and the port number it is listening on or
if the attacker can provide a malicious instance ntpd that
victims will connect to then an attacker can send a set of
crafted mode 6 response packets that, if received by ntpq,
can cause ntpq to crash.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade and you run ntpq against a server
and ntpq crashes, try again using raw mode. Build or get a
patched ntpq and see if that fixes the problem. Report new
bugs in ntpq or abusive servers appropriately.
If you use ntpq in scripts, make sure ntpq does what you expect
in your scripts.
Credit: This weakness was discovered by Yves Younan and
Aleksander Nikolich of Cisco Talos.
* Invalid length data provided by a custom refclock driver could cause
a buffer overflow.
References: Sec 2920 / CVE-2015-7853 / TALOS-CAN-0064
Affects: Potentially all ntp-4 releases running up to, but not
including 4.2.8p4, and 4.3.0 up to, but not including 4.3.77
that have custom refclocks
CVSS: (AV:L/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 usual case,
5.9 unusual worst case
Summary: A negative value for the datalen parameter will overflow a
data buffer. NTF's ntpd driver implementations always set this
value to 0 and are therefore not vulnerable to this weakness.
If you are running a custom refclock driver in ntpd and that
driver supplies a negative value for datalen (no custom driver
of even minimal competence would do this) then ntpd would
overflow a data buffer. It is even hypothetically possible
in this case that instead of simply crashing ntpd the attacker
could effect a code injection attack.
Mitigation:
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade:
If you are running custom refclock drivers, make sure
the signed datalen value is either zero or positive.
Monitor your ntpd instances.
Credit: This weakness was discovered by Yves Younan of Cisco Talos.
* Password Length Memory Corruption Vulnerability
References: Sec 2921 / CVE-2015-7854 / TALOS-CAN-0065
Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:C/I:C/A:C) Base Score: 0.0 best case,
1.7 usual case, 6.8, worst case
Summary: If ntpd is configured to allow remote configuration, and if
the (possibly spoofed) source IP address is allowed to send
remote configuration requests, and if the attacker knows the
remote configuration password or if ntpd was (foolishly)
configured to disable authentication, then an attacker can
send a set of packets to ntpd that may cause it to crash,
with the hypothetical possibility of a small code injection.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade, remote configuration of NTF's
ntpd requires:
an explicitly configured "trusted" key. Only configure
this if you need it.
access from a permitted IP address. You choose the IPs.
authentication. Don't disable it. Practice secure key safety.
Monitor your ntpd instances.
Credit: This weakness was discovered by Yves Younan and
Aleksander Nikolich of Cisco Talos.
* decodenetnum() will ASSERT botch instead of returning FAIL on some
bogus values.
References: Sec 2922 / CVE-2015-7855
Affects: All ntp-4 releases up to, but not including 4.2.8p4, and
4.3.0 up to, but not including 4.3.77
CVSS: (AV:N/AC:H/Au:M/C:N/I:N/A:C) Base Score: 4.6, worst case
Summary: If ntpd is fed a crafted mode 6 or mode 7 packet containing
an unusually long data value where a network address is expected,
the decodenetnum() function will abort with an assertion failure
instead of simply returning a failure condition.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade:
mode 7 is disabled by default. Don't enable it.
Use restrict noquery to limit who can send mode 6
and mode 7 requests.
Configure and use the controlkey and requestkey
authentication directives to limit who can
send mode 6 and mode 7 requests.
Monitor your ntpd instances.
Credit: This weakness was discovered by John D "Doug" Birdwell of IDA.org.
* NAK to the Future: Symmetric association authentication bypass via
crypto-NAK.
References: Sec 2941 / CVE-2015-7871
Affects: All ntp-4 releases between 4.2.5p186 up to but not including
4.2.8p4, and 4.3.0 up to but not including 4.3.77
CVSS: (AV:N/AC:L/Au:N/C:N/I:P/A:P) Base Score: 6.4
Summary: Crypto-NAK packets can be used to cause ntpd to accept time
from unauthenticated ephemeral symmetric peers by bypassing the
authentication required to mobilize peer associations. This
vulnerability appears to have been introduced in ntp-4.2.5p186
when the code handling mobilization of new passive symmetric
associations (lines 1103-1165) was refactored.
Mitigation:
Implement BCP-38.
Upgrade to 4.2.8p4, or later, from the NTP Project Download
Page or the NTP Public Services Project Download Page.
If you are unable to upgrade:
Apply the patch to the bottom of the "authentic" check
block around line 1136 of ntp_proto.c.
Monitor your ntpd instances.
Credit: This weakness was discovered by Matthew Van Gundy of Cisco ASIG.
Backward-Incompatible changes:
* [Bug 2817] Default on Linux is now "rlimit memlock -1".
While the general default of 32M is still the case, under Linux
the default value has been changed to -1 (do not lock ntpd into
memory). A value of 0 means "lock ntpd into memory with whatever
memory it needs." If your ntp.conf file has an explicit "rlimit memlock"
value in it, that value will continue to be used.
* [Bug 2886] Misspelling: "outlyer" should be "outlier".
If you've written a script that looks for this case in, say, the
output of ntpq, you probably want to change your regex matches
from 'outlyer' to 'outl[iy]er'.
New features in this release:
* 'rlimit memlock' now has finer-grained control. A value of -1 means
"don't lock ntpd into memore". This is the default for Linux boxes.
A value of 0 means "lock ntpd into memory" with no limits. Otherwise
the value is the number of megabytes of memory to lock. The default
is 32 megabytes.
* The old Google Test framework has been replaced with a new framework,
based on http://www.throwtheswitch.org/unity/ .
Bug Fixes and Improvements:
* [Bug 2332] (reopened) Exercise thread cancellation once before dropping
privileges and limiting resources in NTPD removes the need to link
forcefully against 'libgcc_s' which does not always work. J.Perlinger
* [Bug 2595] ntpdate man page quirks. Hal Murray, Harlan Stenn.
* [Bug 2625] Deprecate flag1 in local refclock. Hal Murray, Harlan Stenn.
* [Bug 2817] Stop locking ntpd into memory by default under Linux. H.Stenn.
* [Bug 2821] minor build issues: fixed refclock_gpsdjson.c. perlinger@ntp.org
* [Bug 2823] ntpsweep with recursive peers option doesn't work. H.Stenn.
* [Bug 2849] Systems with more than one default route may never
synchronize. Brian Utterback. Note that this patch might need to
be reverted once Bug 2043 has been fixed.
* [Bug 2864] 4.2.8p3 fails to compile on Windows. Juergen Perlinger
* [Bug 2866] segmentation fault at initgroups(). Harlan Stenn.
* [Bug 2867] ntpd with autokey active crashed by 'ntpq -crv'. J.Perlinger
* [Bug 2873] libevent should not include .deps/ in the tarball. H.Stenn
* [Bug 2874] Don't distribute generated sntp/tests/fileHandlingTest.h. H.Stenn
* [Bug 2875] sntp/Makefile.am: Get rid of DIST_SUBDIRS. libevent must
be configured for the distribution targets. Harlan Stenn.
* [Bug 2883] ntpd crashes on exit with empty driftfile. Miroslav Lichvar.
* [Bug 2886] Mis-spelling: "outlyer" should be "outlier". dave@horsfall.org
* [Bug 2888] streamline calendar functions. perlinger@ntp.org
* [Bug 2889] ntp-dev-4.3.67 does not build on Windows. perlinger@ntp.org
* [Bug 2890] Ignore ENOBUFS on routing netlink socket. Konstantin Khlebnikov.
* [Bug 2906] make check needs better support for pthreads. Harlan Stenn.
* [Bug 2907] dist* build targets require our libevent/ to be enabled. HStenn.
* [Bug 2912] no munlockall() under Windows. David Taylor, Harlan Stenn.
* libntp/emalloc.c: Remove explicit include of stdint.h. Harlan Stenn.
* Put Unity CPPFLAGS items in unity_config.h. Harlan Stenn.
* tests/ntpd/g_leapsec.cpp typo fix. Harlan Stenn.
* Phase 1 deprecation of google test in sntp/tests/. Harlan Stenn.
* On some versions of HP-UX, inttypes.h does not include stdint.h. H.Stenn.
* top_srcdir can change based on ntp v. sntp. Harlan Stenn.
* sntp/tests/ function parameter list cleanup. Damir Tomić.
* tests/libntp/ function parameter list cleanup. Damir Tomić.
* tests/ntpd/ function parameter list cleanup. Damir Tomić.
* sntp/unity/unity_config.h: handle stdint.h. Harlan Stenn.
* sntp/unity/unity_internals.h: handle *INTPTR_MAX on old Solaris. H.Stenn.
* tests/libntp/timevalops.c and timespecops.c fixed error printing. D.Tomić.
* tests/libntp/ improvements in code and fixed error printing. Damir Tomić.
* tests/libntp: a_md5encrypt.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
caltontp.c, clocktime.c, humandate.c, hextolfp.c, decodenetnum.c - fixed
formatting; first declaration, then code (C90); deleted unnecessary comments;
changed from sprintf to snprintf; fixed order of includes. Tomasz Flendrich
* tests/libntp/lfpfunc.c remove unnecessary include, remove old comments,
fix formatting, cleanup. Tomasz Flendrich
* tests/libntp/lfptostr.c remove unnecessary include, add consts, fix formatting.
Tomasz Flendrich
* tests/libntp/statestr.c remove empty functions, remove unnecessary include,
fix formatting. Tomasz Flendrich
* tests/libntp/modetoa.c fixed formatting. Tomasz Flendrich
* tests/libntp/msyslog.c fixed formatting. Tomasz Flendrich
* tests/libntp/numtoa.c deleted unnecessary empty functions, fixed formatting.
Tomasz Flendrich
* tests/libntp/numtohost.c added const, fixed formatting. Tomasz Flendrich
* tests/libntp/refnumtoa.c fixed formatting. Tomasz Flendrich
* tests/libntp/ssl_init.c fixed formatting. Tomasz Flendrich
* tests/libntp/tvtots.c fixed a bug, fixed formatting. Tomasz Flendrich
* tests/libntp/uglydate.c removed an unnecessary include. Tomasz Flendrich
* tests/libntp/vi64ops.c removed an unnecessary comment, fixed formatting.
* tests/libntp/ymd3yd.c removed an empty function and an unnecessary include,
fixed formatting. Tomasz Flendrich
* tests/libntp/timespecops.c fixed formatting, fixed the order of includes,
removed unnecessary comments, cleanup. Tomasz Flendrich
* tests/libntp/timevalops.c fixed the order of includes, deleted unnecessary
comments, cleanup. Tomasz Flendrich
* tests/libntp/sockaddrtest.h making it agree to NTP's conventions of formatting.
Tomasz Flendrich
* tests/libntp/lfptest.h cleanup. Tomasz Flendrich
* tests/libntp/test-libntp.c fix formatting. Tomasz Flendrich
* sntp/tests/crypto.c is now using proper Unity's assertions, fixed formatting.
Tomasz Flendrich
* sntp/tests/kodDatabase.c added consts, deleted empty function,
fixed formatting. Tomasz Flendrich
* sntp/tests/kodFile.c cleanup, fixed formatting. Tomasz Flendrich
* sntp/tests/packetHandling.c is now using proper Unity's assertions,
fixed formatting, deleted unused variable. Tomasz Flendrich
* sntp/tests/keyFile.c is now using proper Unity's assertions, fixed formatting.
Tomasz Flendrich
* sntp/tests/packetProcessing.c changed from sprintf to snprintf,
fixed formatting. Tomasz Flendrich
* sntp/tests/utilities.c is now using proper Unity's assertions, changed
the order of includes, fixed formatting, removed unnecessary comments.
Tomasz Flendrich
* sntp/tests/sntptest.h fixed formatting. Tomasz Flendrich
* sntp/tests/fileHandlingTest.h.in fixed a possible buffer overflow problem,
made one function do its job, deleted unnecessary prints, fixed formatting.
Tomasz Flendrich
* sntp/unity/Makefile.am added a missing header. Tomasz Flendrich
* sntp/unity/unity_config.h: Distribute it. Harlan Stenn.
* sntp/libevent/evconfig-private.h: remove generated filefrom SCM. H.Stenn.
* sntp/unity/Makefile.am: fix some broken paths. Harlan Stenn.
* sntp/unity/unity.c: Clean up a printf(). Harlan Stenn.
* Phase 1 deprecation of google test in tests/libntp/. Harlan Stenn.
* Don't build sntp/libevent/sample/. Harlan Stenn.
* tests/libntp/test_caltontp needs -lpthread. Harlan Stenn.
* br-flock: --enable-local-libevent. Harlan Stenn.
* Wrote tests for ntpd/ntp_prio_q.c. Tomasz Flendrich
* scripts/lib/NTP/Util.pm: stratum output is version-dependent. Harlan Stenn.
* Get rid of the NTP_ prefix on our assertion macros. Harlan Stenn.
* Code cleanup. Harlan Stenn.
* libntp/icom.c: Typo fix. Harlan Stenn.
* util/ntptime.c: initialization nit. Harlan Stenn.
* ntpd/ntp_peer.c:newpeer(): added a DEBUG_REQUIRE(srcadr). Harlan Stenn.
* Add std_unity_tests to various Makefile.am files. Harlan Stenn.
* ntpd/ntp_restrict.c: added a few assertions, created tests for this file.
Tomasz Flendrich
* Changed progname to be const in many files - now it's consistent. Tomasz
Flendrich
* Typo fix for GCC warning suppression. Harlan Stenn.
* Added tests/ntpd/ntp_scanner.c test. Damir Tomić.
* Added declarations to all Unity tests, and did minor fixes to them.
Reduced the number of warnings by half. Damir Tomić.
* Updated generate_test_runner.rb and updated the sntp/unity/auto directory
with the latest Unity updates from Mark. Damir Tomić.
* Retire google test - phase I. Harlan Stenn.
* Unity test cleanup: move declaration of 'initializing'. Harlan Stenn.
* Update the NEWS file. Harlan Stenn.
* Autoconf cleanup. Harlan Stenn.
* Unit test dist cleanup. Harlan Stenn.
* Cleanup various test Makefile.am files. Harlan Stenn.
* Pthread autoconf macro cleanup. Harlan Stenn.
* Fix progname definition in unity runner scripts. Harlan Stenn.
* Clean trailing whitespace in tests/ntpd/Makefile.am. Harlan Stenn.
* Update the patch for bug 2817. Harlan Stenn.
* More updates for bug 2817. Harlan Stenn.
* Fix bugs in tests/ntpd/ntp_prio_q.c. Harlan Stenn.
* gcc on older HPUX may need +allowdups. Harlan Stenn.
* Adding missing MCAST protection. Harlan Stenn.
* Disable certain test programs on certain platforms. Harlan Stenn.
* Implement --enable-problem-tests (on by default). Harlan Stenn.
* build system tweaks. Harlan Stenn.
---
NTP 4.2.8p3 (Harlan Stenn <stenn@ntp.org>, 2015/06/29)
Focus: 1 Security fix. Bug fixes and enhancements. Leap-second improvements.
Severity: MEDIUM
Security Fix:
* [Sec 2853] Crafted remote config packet can crash some versions of
ntpd. Aleksis Kauppinen, Juergen Perlinger, Harlan Stenn.
Under specific circumstances an attacker can send a crafted packet to
cause a vulnerable ntpd instance to crash. This requires each of the
following to be true:
1) ntpd set up to allow remote configuration (not allowed by default), and
2) knowledge of the configuration password, and
3) access to a computer entrusted to perform remote configuration.
This vulnerability is considered low-risk.
New features in this release:
Optional (disabled by default) support to have ntpd provide smeared
leap second time. A specially built and configured ntpd will only
offer smeared time in response to client packets. These response
packets will also contain a "refid" of 254.a.b.c, where the 24 bits
of a, b, and c encode the amount of smear in a 2:22 integer:fraction
format. See README.leapsmear and http://bugs.ntp.org/2855 for more
information.
*IF YOU CHOOSE TO CONFIGURE NTPD TO PROVIDE LEAP SMEAR TIME*
*BE SURE YOU DO NOT OFFER THAT TIME ON PUBLIC TIMESERVERS.*
We've imported the Unity test framework, and have begun converting
the existing google-test items to this new framework. If you want
to write new tests or change old ones, you'll need to have ruby
installed. You don't need ruby to run the test suite.
Bug Fixes and Improvements:
* CID 739725: Fix a rare resource leak in libevent/listener.c.
* CID 1295478: Quiet a pedantic potential error from the fix for Bug 2776.
* CID 1296235: Fix refclock_jjy.c and correcting type of the driver40-ja.html
* CID 1269537: Clean up a line of dead code in getShmTime().
* [Bug 1060] Buffer overruns in libparse/clk_rawdcf.c. Helge Oldach.
* [Bug 2590] autogen-5.18.5.
* [Bug 2612] restrict: Warn when 'monitor' can't be disabled because
of 'limited'.
* [Bug 2650] fix includefile processing.
* [Bug 2745] ntpd -x steps clock on leap second
Fixed an initial-value problem that caused misbehaviour in absence of
any leapsecond information.
Do leap second stepping only of the step adjustment is beyond the
proper jump distance limit and step correction is allowed at all.
* [Bug 2750] build for Win64
Building for 32bit of loopback ppsapi needs def file
* [Bug 2776] Improve ntpq's 'help keytype'.
* [Bug 2778] Implement "apeers" ntpq command to include associd.
* [Bug 2782] Refactor refclock_shm.c, add memory barrier protection.
* [Bug 2792] If the IFF_RUNNING interface flag is supported then an
interface is ignored as long as this flag is not set since the
interface is not usable (e.g., no link).
* [Bug 2794] Clean up kernel clock status reports.
* [Bug 2800] refclock_true.c true_debug() can't open debug log because
of incompatible open/fdopen parameters.
* [Bug 2804] install-local-data assumes GNU 'find' semantics.
* [Bug 2805] ntpd fails to join multicast group.
* [Bug 2806] refclock_jjy.c supports the Telephone JJY.
* [Bug 2808] GPSD_JSON driver enhancements, step 1.
Fix crash during cleanup if GPS device not present and char device.
Increase internal token buffer to parse all JSON data, even SKY.
Defer logging of errors during driver init until the first unit is
started, so the syslog is not cluttered when the driver is not used.
Various improvements, see http://bugs.ntp.org/2808 for details.
Changed libjsmn to a more recent version.
* [Bug 2810] refclock_shm.c memory barrier code needs tweaks for QNX.
* [Bug 2813] HP-UX needs -D__STDC_VERSION__=199901L and limits.h.
* [Bug 2815] net-snmp before v5.4 has circular library dependencies.
* [Bug 2821] Add a missing NTP_PRINTF and a missing const.
* [Bug 2822] New leap column in sntp broke NTP::Util.pm.
* [Bug 2824] Convert update-leap to perl. (also see 2769)
* [Bug 2825] Quiet file installation in html/ .
* [Bug 2830] ntpd doesn't always transfer the correct TAI offset via autokey
NTPD transfers the current TAI (instead of an announcement) now.
This might still needed improvement.
Update autokey data ASAP when 'sys_tai' changes.
Fix unit test that was broken by changes for autokey update.
Avoid potential signature length issue and use DPRINTF where possible
in ntp_crypto.c.
* [Bug 2832] refclock_jjy.c supports the TDC-300.
* [Bug 2834] Correct a broken html tag in html/refclock.html
* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
robust, and require 2 consecutive timestamps to be consistent.
* [Bug 2837] Allow a configurable DSCP value.
* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
* [Bug 2842] Bug in mdoc2man.
* [Bug 2843] make check fails on 4.3.36
Fixed compiler warnings about numeric range overflow
(The original topic was fixed in a byplay to bug#2830)
* [Bug 2845] Harden memory allocation in ntpd.
* [Bug 2852] 'make check' can't find unity.h. Hal Murray.
* [Bug 2854] Missing brace in libntp/strdup.c. Masanari Iida.
* [Bug 2855] Parser fix for conditional leap smear code. Harlan Stenn.
* [Bug 2855] Report leap smear in the REFID. Harlan Stenn.
* [Bug 2855] Implement conditional leap smear code. Martin Burnicki.
* [Bug 2856] ntpd should wait() on terminated child processes. Paul Green.
* [Bug 2857] Stratus VOS does not support SIGIO. Paul Green.
* [Bug 2859] Improve raw DCF77 robustness deconding. Frank Kardel.
* [Bug 2860] ntpq ifstats sanity check is too stringent. Frank Kardel.
* html/drivers/driver22.html: typo fix. Harlan Stenn.
* refidsmear test cleanup. Tomasz Flendrich.
* refidsmear function support and tests. Harlan Stenn.
* sntp/tests/Makefile.am: remove g_nameresolution.cpp as it tested
something that was only in the 4.2.6 sntp. Harlan Stenn.
* Modified tests/bug-2803/Makefile.am so it builds Unity framework tests.
Damir Tomić
* Modified tests/libtnp/Makefile.am so it builds Unity framework tests.
Damir Tomić
* Modified sntp/tests/Makefile.am so it builds Unity framework tests.
Damir Tomić
* tests/sandbox/smeartest.c: Harlan Stenn, Damir Tomic, Juergen Perlinger.
* Converted from gtest to Unity: tests/bug-2803/. Damir Tomić
* Converted from gtest to Unity: tests/libntp/ a_md5encrypt, atoint.c,
atouint.c, authkeys.c, buftvtots.c, calendar.c, caljulian.c,
calyearstart.c, clocktime.c, hextoint.c, lfpfunc.c, modetoa.c,
numtoa.c, numtohost.c, refnumtoa.c, ssl_init.c, statestr.c,
timespecops.c, timevalops.c, uglydate.c, vi64ops.c, ymd2yd.c.
Damir Tomić
* Converted from gtest to Unity: sntp/tests/ kodDatabase.c, kodFile.c,
networking.c, keyFile.c, utilities.cpp, sntptest.h,
fileHandlingTest.h. Damir Tomić
* Initial support for experimental leap smear code. Harlan Stenn.
* Fixes to sntp/tests/fileHandlingTest.h.in. Harlan Stenn.
* Report select() debug messages at debug level 3 now.
* sntp/scripts/genLocInfo: treat raspbian as debian.
* Unity test framework fixes.
** Requires ruby for changes to tests.
* Initial support for PACKAGE_VERSION tests.
* sntp/libpkgver belongs in EXTRA_DIST, not DIST_SUBDIRS.
* tests/bug-2803/Makefile.am must distribute bug-2803.h.
* Add an assert to the ntpq ifstats code.
* Clean up the RLIMIT_STACK code.
* Improve the ntpq documentation around the controlkey keyid.
* ntpq.c cleanup.
* Windows port build cleanup.
---
NTP 4.2.8p2 (Harlan Stenn <stenn@ntp.org>, 2015/04/07)
Focus: Security and Bug fixes, enhancements.
Severity: MEDIUM
In addition to bug fixes and enhancements, this release fixes the
following medium-severity vulnerabilities involving private key
authentication:
* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
References: Sec 2779 / CVE-2015-1798 / VU#374268
Affects: All NTP4 releases starting with ntp-4.2.5p99 up to but not
including ntp-4.2.8p2 where the installation uses symmetric keys
to authenticate remote associations.
CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
Date Resolved: Stable (4.2.8p2) 07 Apr 2015
Summary: When ntpd is configured to use a symmetric key to authenticate
a remote NTP server/peer, it checks if the NTP message
authentication code (MAC) in received packets is valid, but not if
there actually is any MAC included. Packets without a MAC are
accepted as if they had a valid MAC. This allows a MITM attacker to
send false packets that are accepted by the client/peer without
having to know the symmetric key. The attacker needs to know the
transmit timestamp of the client to match it in the forged reply
and the false reply needs to reach the client before the genuine
reply from the server. The attacker doesn't necessarily need to be
relaying the packets between the client and the server.
Authentication using autokey doesn't have this problem as there is
a check that requires the key ID to be larger than NTP_MAXKEY,
which fails for packets without a MAC.
Mitigation:
Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Configure ntpd with enough time sources and monitor it properly.
Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
* [Sec 2781] Authentication doesn't protect symmetric associations against
DoS attacks.
References: Sec 2781 / CVE-2015-1799 / VU#374268
Affects: All NTP releases starting with at least xntp3.3wy up to but
not including ntp-4.2.8p2 where the installation uses symmetric
key authentication.
CVSS: (AV:A/AC:M/Au:N/C:P/I:P/A:P) Base Score: 5.4
Note: the CVSS base Score for this issue could be 4.3 or lower, and
it could be higher than 5.4.
Date Resolved: Stable (4.2.8p2) 07 Apr 2015
Summary: An attacker knowing that NTP hosts A and B are peering with
each other (symmetric association) can send a packet to host A
with source address of B which will set the NTP state variables
on A to the values sent by the attacker. Host A will then send
on its next poll to B a packet with originate timestamp that
doesn't match the transmit timestamp of B and the packet will
be dropped. If the attacker does this periodically for both
hosts, they won't be able to synchronize to each other. This is
a known denial-of-service attack, described at
https://www.eecis.udel.edu/~mills/onwire.html .
According to the document the NTP authentication is supposed to
protect symmetric associations against this attack, but that
doesn't seem to be the case. The state variables are updated even
when authentication fails and the peers are sending packets with
originate timestamps that don't match the transmit timestamps on
the receiving side.
This seems to be a very old problem, dating back to at least
xntp3.3wy. It's also in the NTPv3 (RFC 1305) and NTPv4 (RFC 5905)
specifications, so other NTP implementations with support for
symmetric associations and authentication may be vulnerable too.
An update to the NTP RFC to correct this error is in-process.
Mitigation:
Upgrade to 4.2.8p2, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Note that for users of autokey, this specific style of MITM attack
is simply a long-known potential problem.
Configure ntpd with appropriate time sources and monitor ntpd.
Alert your staff if problems are detected.
Credit: This issue was discovered by Miroslav Lichvar, of Red Hat.
* New script: update-leap
The update-leap script will verify and if necessary, update the
leap-second definition file.
It requires the following commands in order to work:
wget logger tr sed shasum
Some may choose to run this from cron. It needs more portability testing.
Bug Fixes and Improvements:
* [Bug 1787] DCF77's formerly "antenna" bit is "call bit" since 2003.
* [Bug 1960] setsockopt IPV6_MULTICAST_IF: Invalid argument.
* [Bug 2346] "graceful termination" signals do not do peer cleanup.
* [Bug 2728] See if C99-style structure initialization works.
* [Bug 2747] Upgrade libevent to 2.1.5-beta.
* [Bug 2749] ntp/lib/NTP/Util.pm needs update for ntpq -w, IPv6, .POOL. .
* [Bug 2751] jitter.h has stale copies of l_fp macros.
* [Bug 2756] ntpd hangs in startup with gcc 3.3.5 on ARM.
* [Bug 2757] Quiet compiler warnings.
* [Bug 2759] Expose nonvolatile/clk_wander_threshold to ntpq.
* [Bug 2763] Allow different thresholds for forward and backward steps.
* [Bug 2766] ntp-keygen output files should not be world-readable.
* [Bug 2767] ntp-keygen -M should symlink to ntp.keys.
* [Bug 2771] nonvolatile value is documented in wrong units.
* [Bug 2773] Early leap announcement from Palisade/Thunderbolt
* [Bug 2774] Unreasonably verbose printout - leap pending/warning
* [Bug 2775] ntp-keygen.c fails to compile under Windows.
* [Bug 2777] Fixed loops and decoding of Meinberg GPS satellite info.
Removed non-ASCII characters from some copyright comments.
Removed trailing whitespace.
Updated definitions for Meinberg clocks from current Meinberg header files.
Now use C99 fixed-width types and avoid non-ASCII characters in comments.
Account for updated definitions pulled from Meinberg header files.
Updated comments on Meinberg GPS receivers which are not only called GPS16x.
Replaced some constant numbers by defines from ntp_calendar.h
Modified creation of parse-specific variables for Meinberg devices
in gps16x_message().
Reworked mk_utcinfo() to avoid printing of ambiguous leap second dates.
Modified mbg_tm_str() which now expexts an additional parameter controlling
if the time status shall be printed.
* [Sec 2779] ntpd accepts unauthenticated packets with symmetric key crypto.
* [Sec 2781] Authentication doesn't protect symmetric associations against
DoS attacks.
* [Bug 2783] Quiet autoconf warnings about missing AC_LANG_SOURCE.
* [Bug 2789] Quiet compiler warnings from libevent.
* [Bug 2790] If ntpd sets the Windows MM timer highest resolution
pause briefly before measuring system clock precision to yield
correct results.
* Comment from Juergen Perlinger in ntp_calendar.c to make the code clearer.
* Use predefined function types for parse driver functions
used to set up function pointers.
Account for changed prototype of parse_inp_fnc_t functions.
Cast parse conversion results to appropriate types to avoid
compiler warnings.
Let ioctl() for Windows accept a (void *) to avoid compiler warnings
when called with pointers to different types.
---
NTP 4.2.8p1 (Harlan Stenn <stenn@ntp.org>, 2015/02/04)
Focus: Security and Bug fixes, enhancements.
Severity: HIGH
In addition to bug fixes and enhancements, this release fixes the
following high-severity vulnerabilities:
* vallen is not validated in several places in ntp_crypto.c, leading
to a potential information leak or possibly a crash
References: Sec 2671 / CVE-2014-9297 / VU#852879
Affects: All NTP4 releases before 4.2.8p1 that are running autokey.
CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
Date Resolved: Stable (4.2.8p1) 04 Feb 2015
Summary: The vallen packet value is not validated in several code
paths in ntp_crypto.c which can lead to information leakage
or perhaps a crash of the ntpd process.
Mitigation - any of:
Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page.
Disable Autokey Authentication by removing, or commenting out,
all configuration directives beginning with the "crypto"
keyword in your ntp.conf file.
Credit: This vulnerability was discovered by Stephen Roettger of the
Google Security Team, with additional cases found by Sebastian
Krahmer of the SUSE Security Team and Harlan Stenn of Network
Time Foundation.
* ::1 can be spoofed on some OSes, so ACLs based on IPv6 ::1 addresses
can be bypassed.
References: Sec 2672 / CVE-2014-9298 / VU#852879
Affects: All NTP4 releases before 4.2.8p1, under at least some
versions of MacOS and Linux. *BSD has not been seen to be vulnerable.
CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:C) Base Score: 9
Date Resolved: Stable (4.2.8p1) 04 Feb 2014
Summary: While available kernels will prevent 127.0.0.1 addresses
from "appearing" on non-localhost IPv4 interfaces, some kernels
do not offer the same protection for ::1 source addresses on
IPv6 interfaces. Since NTP's access control is based on source
address and localhost addresses generally have no restrictions,
an attacker can send malicious control and configuration packets
by spoofing ::1 addresses from the outside. Note Well: This is
not really a bug in NTP, it's a problem with some OSes. If you
have one of these OSes where ::1 can be spoofed, ALL ::1 -based
ACL restrictions on any application can be bypassed!
Mitigation:
Upgrade to 4.2.8p1, or later, from the NTP Project Download Page
or the NTP Public Services Project Download Page
Install firewall rules to block packets claiming to come from
::1 from inappropriate network interfaces.
Credit: This vulnerability was discovered by Stephen Roettger of
the Google Security Team.
Additionally, over 30 bugfixes and improvements were made to the codebase.
See the ChangeLog for more information.
---
NTP 4.2.8 (Harlan Stenn <stenn@ntp.org>, 2014/12/18)
Focus: Security and Bug fixes, enhancements.
Severity: HIGH
In addition to bug fixes and enhancements, this release fixes the
following high-severity vulnerabilities:
************************** vv NOTE WELL vv *****************************
The vulnerabilities listed below can be significantly mitigated by
following the BCP of putting
restrict default ... noquery
in the ntp.conf file. With the exception of:
receive(): missing return on error
References: Sec 2670 / CVE-2014-9296 / VU#852879
below (which is a limited-risk vulnerability), none of the recent
vulnerabilities listed below can be exploited if the source IP is
restricted from sending a 'query'-class packet by your ntp.conf file.
************************** ^^ NOTE WELL ^^ *****************************
* Weak default key in config_auth().
References: [Sec 2665] / CVE-2014-9293 / VU#852879
CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
Vulnerable Versions: all releases prior to 4.2.7p11
Date Resolved: 28 Jan 2010
Summary: If no 'auth' key is set in the configuration file, ntpd
would generate a random key on the fly. There were two
problems with this: 1) the generated key was 31 bits in size,
and 2) it used the (now weak) ntp_random() function, which was
seeded with a 32-bit value and could only provide 32 bits of
entropy. This was sufficient back in the late 1990s when the
code was written. Not today.
Mitigation - any of:
- Upgrade to 4.2.7p11 or later.
- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
Credit: This vulnerability was noticed in ntp-4.2.6 by Neel Mehta
of the Google Security Team.
* Non-cryptographic random number generator with weak seed used by
ntp-keygen to generate symmetric keys.
References: [Sec 2666] / CVE-2014-9294 / VU#852879
CVSS: (AV:N/AC:L/Au:M/C:P/I:P/A:C) Base Score: 7.3
Vulnerable Versions: All NTP4 releases before 4.2.7p230
Date Resolved: Dev (4.2.7p230) 01 Nov 2011
Summary: Prior to ntp-4.2.7p230 ntp-keygen used a weak seed to
prepare a random number generator that was of good quality back
in the late 1990s. The random numbers produced was then used to
generate symmetric keys. In ntp-4.2.8 we use a current-technology
cryptographic random number generator, either RAND_bytes from
OpenSSL, or arc4random().
Mitigation - any of:
- Upgrade to 4.2.7p230 or later.
- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
Credit: This vulnerability was discovered in ntp-4.2.6 by
Stephen Roettger of the Google Security Team.
* Buffer overflow in crypto_recv()
References: Sec 2667 / CVE-2014-9295 / VU#852879
CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
Versions: All releases before 4.2.8
Date Resolved: Stable (4.2.8) 18 Dec 2014
Summary: When Autokey Authentication is enabled (i.e. the ntp.conf
file contains a 'crypto pw ...' directive) a remote attacker
can send a carefully crafted packet that can overflow a stack
buffer and potentially allow malicious code to be executed
with the privilege level of the ntpd process.
Mitigation - any of:
- Upgrade to 4.2.8, or later, or
- Disable Autokey Authentication by removing, or commenting out,
all configuration directives beginning with the crypto keyword
in your ntp.conf file.
Credit: This vulnerability was discovered by Stephen Roettger of the
Google Security Team.
* Buffer overflow in ctl_putdata()
References: Sec 2668 / CVE-2014-9295 / VU#852879
CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
Versions: All NTP4 releases before 4.2.8
Date Resolved: Stable (4.2.8) 18 Dec 2014
Summary: A remote attacker can send a carefully crafted packet that
can overflow a stack buffer and potentially allow malicious
code to be executed with the privilege level of the ntpd process.
Mitigation - any of:
- Upgrade to 4.2.8, or later.
- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
Credit: This vulnerability was discovered by Stephen Roettger of the
Google Security Team.
* Buffer overflow in configure()
References: Sec 2669 / CVE-2014-9295 / VU#852879
CVSS: (AV:N/AC:L/Au:N/C:P/I:P/A:P) Base Score: 7.5
Versions: All NTP4 releases before 4.2.8
Date Resolved: Stable (4.2.8) 18 Dec 2014
Summary: A remote attacker can send a carefully crafted packet that
can overflow a stack buffer and potentially allow malicious
code to be executed with the privilege level of the ntpd process.
Mitigation - any of:
- Upgrade to 4.2.8, or later.
- Follow BCP and put 'restrict ... noquery' in your ntp.conf file.
Credit: This vulnerability was discovered by Stephen Roettger of the
Google Security Team.
* receive(): missing return on error
References: Sec 2670 / CVE-2014-9296 / VU#852879
CVSS: (AV:N/AC:L/Au:N/C:N/I:N/A:P) Base Score: 5.0
Versions: All NTP4 releases before 4.2.8
Date Resolved: Stable (4.2.8) 18 Dec 2014
Summary: Code in ntp_proto.c:receive() was missing a 'return;' in
the code path where an error was detected, which meant
processing did not stop when a specific rare error occurred.
We haven't found a way for this bug to affect system integrity.
If there is no way to affect system integrity the base CVSS
score for this bug is 0. If there is one avenue through which
system integrity can be partially affected, the base score
becomes a 5. If system integrity can be partially affected
via all three integrity metrics, the CVSS base score become 7.5.
Mitigation - any of:
- Upgrade to 4.2.8, or later,
- Remove or comment out all configuration directives
beginning with the crypto keyword in your ntp.conf file.
Credit: This vulnerability was discovered by Stephen Roettger of the
Google Security Team.
See http://support.ntp.org/security for more information.
New features / changes in this release:
Important Changes
* Internal NTP Era counters
The internal counters that track the "era" (range of years) we are in
rolls over every 136 years'. The current "era" started at the stroke of
midnight on 1 Jan 1900, and ends just before the stroke of midnight on
1 Jan 2036.
In the past, we have used the "midpoint" of the range to decide which
era we were in. Given the longevity of some products, it became clear
that it would be more functional to "look back" less, and "look forward"
more. We now compile a timestamp into the ntpd executable and when we
get a timestamp we us the "built-on" to tell us what era we are in.
This check "looks back" 10 years, and "looks forward" 126 years.
* ntpdc responses disabled by default
Dave Hart writes:
For a long time, ntpq and its mostly text-based mode 6 (control)
protocol have been preferred over ntpdc and its mode 7 (private
request) protocol for runtime queries and configuration. There has
been a goal of deprecating ntpdc, previously held back by numerous
capabilities exposed by ntpdc with no ntpq equivalent. I have been
adding commands to ntpq to cover these cases, and I believe I've
covered them all, though I've not compared command-by-command
recently.
As I've said previously, the binary mode 7 protocol involves a lot of
hand-rolled structure layout and byte-swapping code in both ntpd and
ntpdc which is hard to get right. As ntpd grows and changes, the
changes are difficult to expose via ntpdc while maintaining forward
and backward compatibility between ntpdc and ntpd. In contrast,
ntpq's text-based, label=value approach involves more code reuse and
allows compatible changes without extra work in most cases.
Mode 7 has always been defined as vendor/implementation-specific while
mode 6 is described in RFC 1305 and intended to be open to interoperate
with other implementations. There is an early draft of an updated
mode 6 description that likely will join the other NTPv4 RFCs
eventually. (http://tools.ietf.org/html/draft-odonoghue-ntpv4-control-01)
For these reasons, ntpd 4.2.7p230 by default disables processing of
ntpdc queries, reducing ntpd's attack surface and functionally
deprecating ntpdc. If you are in the habit of using ntpdc for certain
operations, please try the ntpq equivalent. If there's no equivalent,
please open a bug report at http://bugs.ntp.org./
In addition to the above, over 1100 issues have been resolved between
the 4.2.6 branch and 4.2.8. The ChangeLog file in the distribution
lists these.
---
NTP 4.2.6p5 (Harlan Stenn <stenn@ntp.org>, 2011/12/24)
Focus: Bug fixes
Severity: Medium
This is a recommended upgrade.
This release updates sys_rootdisp and sys_jitter calculations to match the
RFC specification, fixes a potential IPv6 address matching error for the
"nic" and "interface" configuration directives, suppresses the creation of
extraneous ephemeral associations for certain broadcastclient and
multicastclient configurations, cleans up some ntpq display issues, and
includes improvements to orphan mode, minor bugs fixes and code clean-ups.
New features / changes in this release:
ntpd
* Updated "nic" and "interface" IPv6 address handling to prevent
mismatches with localhost [::1] and wildcard [::] which resulted from
using the address/prefix format (e.g. fe80::/64)
* Fix orphan mode stratum incorrectly counting to infinity
* Orphan parent selection metric updated to includes missing ntohl()
* Non-printable stratum 16 refid no longer sent to ntp
* Duplicate ephemeral associations suppressed for broadcastclient and
multicastclient without broadcastdelay
* Exclude undetermined sys_refid from use in loopback TEST12
* Exclude MODE_SERVER responses from KoD rate limiting
* Include root delay in clock_update() sys_rootdisp calculations
* get_systime() updated to exclude sys_residual offset (which only
affected bits "below" sys_tick, the precision threshold)
* sys.peer jitter weighting corrected in sys_jitter calculation
ntpq
* -n option extended to include the billboard "server" column
* IPv6 addresses in the local column truncated to prevent overruns
---
NTP 4.2.6p4 (Harlan Stenn <stenn@ntp.org>, 2011/09/22)
Focus: Bug fixes and portability improvements
Severity: Medium
This is a recommended upgrade.
This release includes build infrastructure updates, code
clean-ups, minor bug fixes, fixes for a number of minor
ref-clock issues, and documentation revisions.
Portability improvements affect AIX, HP-UX, Linux, OS X and 64-bit time_t.
New features / changes in this release:
Build system
* Fix checking for struct rtattr
* Update config.guess and config.sub for AIX
* Upgrade required version of autogen and libopts for building
from our source code repository
ntpd
* Back-ported several fixes for Coverity warnings from ntp-dev
* Fix a rare boundary condition in UNLINK_EXPR_SLIST()
* Allow "logconfig =allall" configuration directive
* Bind tentative IPv6 addresses on Linux
* Correct WWVB/Spectracom driver to timestamp CR instead of LF
* Improved tally bit handling to prevent incorrect ntpq peer status reports
* Exclude the Undisciplined Local Clock and ACTS drivers from the initial
candidate list unless they are designated a "prefer peer"
* Prevent the consideration of Undisciplined Local Clock or ACTS drivers for
selection during the 'tos orphanwait' period
* Prefer an Orphan Mode Parent over the Undisciplined Local Clock or ACTS
drivers
* Improved support of the Parse Refclock trusttime flag in Meinberg mode
* Back-port utility routines from ntp-dev: mprintf(), emalloc_zero()
* Added the NTPD_TICKADJ_PPM environment variable for specifying baseline
clock slew on Microsoft Windows
* Code cleanup in libntpq
ntpdc
* Fix timerstats reporting
ntpdate
* Reduce time required to set clock
* Allow a timeout greater than 2 seconds
sntp
* Backward incompatible command-line option change:
-l/--filelog changed -l/--logfile (to be consistent with ntpd)
Documentation
* Update html2man. Fix some tags in the .html files
* Distribute ntp-wait.html
---
NTP 4.2.6p3 (Harlan Stenn <stenn@ntp.org>, 2011/01/03)
Focus: Bug fixes and portability improvements
Severity: Medium
This is a recommended upgrade.
This release includes build infrastructure updates, code
clean-ups, minor bug fixes, fixes for a number of minor
ref-clock issues, and documentation revisions.
Portability improvements in this release affect AIX, Atari FreeMiNT,
FreeBSD4, Linux and Microsoft Windows.
New features / changes in this release:
Build system
* Use lsb_release to get information about Linux distributions.
* 'test' is in /usr/bin (instead of /bin) on some systems.
* Basic sanity checks for the ChangeLog file.
* Source certain build files with ./filename for systems without . in PATH.
* IRIX portability fix.
* Use a single copy of the "libopts" code.
* autogen/libopts upgrade.
* configure.ac m4 quoting cleanup.
ntpd
* Do not bind to IN6_IFF_ANYCAST addresses.
* Log the reason for exiting under Windows.
* Multicast fixes for Windows.
* Interpolation fixes for Windows.
* IPv4 and IPv6 Multicast fixes.
* Manycast solicitation fixes and general repairs.
* JJY refclock cleanup.
* NMEA refclock improvements.
* Oncore debug message cleanup.
* Palisade refclock now builds under Linux.
* Give RAWDCF more baud rates.
* Support Truetime Satellite clocks under Windows.
* Support Arbiter 1093C Satellite clocks under Windows.
* Make sure that the "filegen" configuration command defaults to "enable".
* Range-check the status codes (plus other cleanup) in the RIPE-NCC driver.
* Prohibit 'includefile' directive in remote configuration command.
* Fix 'nic' interface bindings.
* Fix the way we link with openssl if openssl is installed in the base
system.
ntp-keygen
* Fix -V coredump.
* OpenSSL version display cleanup.
ntpdc
* Many counters should be treated as unsigned.
ntpdate
* Do not ignore replies with equal receive and transmit timestamps.
ntpq
* libntpq warning cleanup.
ntpsnmpd
* Correct SNMP type for "precision" and "resolution".
* Update the MIB from the draft version to RFC-5907.
sntp
* Display timezone offset when showing time for sntp in the local
timezone.
* Pay proper attention to RATE KoD packets.
* Fix a miscalculation of the offset.
* Properly parse empty lines in the key file.
* Logging cleanup.
* Use tv_usec correctly in set_time().
* Documentation cleanup.
---
NTP 4.2.6p2 (Harlan Stenn <stenn@ntp.org>, 2010/07/08)
Focus: Bug fixes and portability improvements
Severity: Medium
This is a recommended upgrade.
This release includes build infrastructure updates, code
clean-ups, minor bug fixes, fixes for a number of minor
ref-clock issues, improved KOD handling, OpenSSL related
updates and documentation revisions.
Portability improvements in this release affect Irix, Linux,
Mac OS, Microsoft Windows, OpenBSD and QNX6
New features / changes in this release:
ntpd
* Range syntax for the trustedkey configuration directive
* Unified IPv4 and IPv6 restrict lists
ntpdate
* Rate limiting and KOD handling
ntpsnmpd
* default connection to net-snmpd via a unix-domain socket
* command-line 'socket name' option
ntpq / ntpdc
* support for the "passwd ..." syntax
* key-type specific password prompts
sntp
* MD5 authentication of an ntpd
* Broadcast and crypto
* OpenSSL support
---
NTP 4.2.6p1 (Harlan Stenn <stenn@ntp.org>, 2010/04/09)
Focus: Bug fixes, portability fixes, and documentation improvements
Severity: Medium
This is a recommended upgrade.
---
NTP 4.2.6 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
Focus: enhancements and bug fixes.
---
NTP 4.2.4p8 (Harlan Stenn <stenn@ntp.org>, 2009/12/08)
Focus: Security Fixes
Severity: HIGH
This release fixes the following high-severity vulnerability:
* [Sec 1331] DoS with mode 7 packets - CVE-2009-3563.
See http://support.ntp.org/security for more information.
NTP mode 7 (MODE_PRIVATE) is used by the ntpdc query and control utility.
In contrast, ntpq uses NTP mode 6 (MODE_CONTROL), while routine NTP time
transfers use modes 1 through 5. Upon receipt of an incorrect mode 7
request or a mode 7 error response from an address which is not listed
in a "restrict ... noquery" or "restrict ... ignore" statement, ntpd will
reply with a mode 7 error response (and log a message). In this case:
* If an attacker spoofs the source address of ntpd host A in a
mode 7 response packet sent to ntpd host B, both A and B will
continuously send each other error responses, for as long as
those packets get through.
* If an attacker spoofs an address of ntpd host A in a mode 7
response packet sent to ntpd host A, A will respond to itself
endlessly, consuming CPU and logging excessively.
Credit for finding this vulnerability goes to Robin Park and Dmitri
Vinokurov of Alcatel-Lucent.
THIS IS A STRONGLY RECOMMENDED UPGRADE.
---
ntpd now syncs to refclocks right away.
Backward-Incompatible changes:
ntpd no longer accepts '-v name' or '-V name' to define internal variables.
Use '--var name' or '--dvar name' instead. (Bug 817)
---
NTP 4.2.4p7 (Harlan Stenn <stenn@ntp.org>, 2009/05/04)
Focus: Security and Bug Fixes
Severity: HIGH
This release fixes the following high-severity vulnerability:
* [Sec 1151] Remote exploit if autokey is enabled. CVE-2009-1252
See http://support.ntp.org/security for more information.
If autokey is enabled (if ntp.conf contains a "crypto pw whatever"
line) then a carefully crafted packet sent to the machine will cause
a buffer overflow and possible execution of injected code, running
with the privileges of the ntpd process (often root).
Credit for finding this vulnerability goes to Chris Ries of CMU.
This release fixes the following low-severity vulnerabilities:
* [Sec 1144] limited (two byte) buffer overflow in ntpq. CVE-2009-0159
Credit for finding this vulnerability goes to Geoff Keating of Apple.
* [Sec 1149] use SO_EXCLUSIVEADDRUSE on Windows
Credit for finding this issue goes to Dave Hart.
This release fixes a number of bugs and adds some improvements:
* Improved logging
* Fix many compiler warnings
* Many fixes and improvements for Windows
* Adds support for AIX 6.1
* Resolves some issues under MacOS X and Solaris
THIS IS A STRONGLY RECOMMENDED UPGRADE.
---
NTP 4.2.4p6 (Harlan Stenn <stenn@ntp.org>, 2009/01/07)
Focus: Security Fix
Severity: Low
This release fixes oCERT.org's CVE-2009-0021, a vulnerability affecting
the OpenSSL library relating to the incorrect checking of the return
value of EVP_VerifyFinal function.
Credit for finding this issue goes to the Google Security Team for
finding the original issue with OpenSSL, and to ocert.org for finding
the problem in NTP and telling us about it.
This is a recommended upgrade.
---
NTP 4.2.4p5 (Harlan Stenn <stenn@ntp.org>, 2008/08/17)
Focus: Minor Bugfixes
This release fixes a number of Windows-specific ntpd bugs and
platform-independent ntpdate bugs. A logging bugfix has been applied
to the ONCORE driver.
The "dynamic" keyword and is now obsolete and deferred binding to local
interfaces is the new default. The minimum time restriction for the
interface update interval has been dropped.
A number of minor build system and documentation fixes are included.
This is a recommended upgrade for Windows.
---
NTP 4.2.4p4 (Harlan Stenn <stenn@ntp.org>, 2007/09/10)
Focus: Minor Bugfixes
This release updates certain copyright information, fixes several display
bugs in ntpdc, avoids SIGIO interrupting malloc(), cleans up file descriptor
shutdown in the parse refclock driver, removes some lint from the code,
stops accessing certain buffers immediately after they were freed, fixes
a problem with non-command-line specification of -6, and allows the loopback
interface to share addresses with other interfaces.
---
NTP 4.2.4p3 (Harlan Stenn <stenn@ntp.org>, 2007/06/29)
Focus: Minor Bugfixes
This release fixes a bug in Windows that made it difficult to
terminate ntpd under windows.
This is a recommended upgrade for Windows.
---
NTP 4.2.4p2 (Harlan Stenn <stenn@ntp.org>, 2007/06/19)
Focus: Minor Bugfixes
This release fixes a multicast mode authentication problem,
an error in NTP packet handling on Windows that could lead to
ntpd crashing, and several other minor bugs. Handling of
multicast interfaces and logging configuration were improved.
The required versions of autogen and libopts were incremented.
This is a recommended upgrade for Windows and multicast users.
---
NTP 4.2.4 (Harlan Stenn <stenn@ntp.org>, 2006/12/31)
Focus: enhancements and bug fixes.
Dynamic interface rescanning was added to simplify the use of ntpd in
conjunction with DHCP. GNU AutoGen is used for its command-line options
processing. Separate PPS devices are supported for PARSE refclocks, MD5
signatures are now provided for the release files. Drivers have been
added for some new ref-clocks and have been removed for some older
ref-clocks. This release also includes other improvements, documentation
and bug fixes.
K&R C is no longer supported as of NTP-4.2.4. We are now aiming for ANSI
C support.
---
NTP 4.2.0 (Harlan Stenn <stenn@ntp.org>, 2003/10/15)
Focus: enhancements and bug fixes.
diff --git a/contrib/ntp/configure b/contrib/ntp/configure
index a8c2ba593aa3..5d09904bea03 100755
--- a/contrib/ntp/configure
+++ b/contrib/ntp/configure
@@ -1,37362 +1,37362 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for ntp 4.2.8p16.
+# Generated by GNU Autoconf 2.71 for ntp 4.2.8p17.
#
# Report bugs to <https://bugs.ntp.org/>.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
# Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="as_nop=:
if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1
test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
PATH=/empty FPATH=/empty; export PATH FPATH
test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
|| test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
else $as_nop
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$as_shell as_have_required=yes
if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
then :
break 2
fi
fi
done;;
esac
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi
fi
if test "x$CONFIG_SHELL" != x
then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
printf "%s\n" "$0: This script requires a shell more modern than all"
printf "%s\n" "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://bugs.ntp.org/ about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
$0: shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
SHELL=${CONFIG_SHELL-/bin/sh}
test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='ntp'
PACKAGE_TARNAME='ntp'
-PACKAGE_VERSION='4.2.8p16'
-PACKAGE_STRING='ntp 4.2.8p16'
+PACKAGE_VERSION='4.2.8p17'
+PACKAGE_STRING='ntp 4.2.8p17'
PACKAGE_BUGREPORT='https://bugs.ntp.org/'
PACKAGE_URL='https://www.ntp.org/'
# Factoring default headers for most tests.
ac_includes_default="\
#include <stddef.h>
#ifdef HAVE_STDIO_H
# include <stdio.h>
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
ac_header_c_list=
ac_func_c_list=
enable_option_checking=no
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
subdirs
PERLLIBDIR
NTP_KEYSDIR
BUILD_TEST_NTP_SIGND_FALSE
BUILD_TEST_NTP_SIGND_TRUE
BUILD_TEST_NTP_SCANNER_FALSE
BUILD_TEST_NTP_SCANNER_TRUE
BUILD_TEST_NTP_RESTRICT_FALSE
BUILD_TEST_NTP_RESTRICT_TRUE
UNITYBUILD_AVAILABLE_FALSE
UNITYBUILD_AVAILABLE_TRUE
PATH_RUBY
HAVE_LEAPSMEARINTERVAL
SAVECONFIG_ENABLED_FALSE
SAVECONFIG_ENABLED_TRUE
LSCF
MAKE_NTPSNMPD
SNMP_CFLAGS
SNMP_CPPFLAGS
SNMP_LIBS
BUILD_SNTP_FALSE
BUILD_SNTP_TRUE
SNTP
MAKE_NTPDSIM
MAKE_LIBNTPSIM
MAKE_TIMETRIM
MAKE_TICKADJ
MAKE_NTPTIME
MAKE_ADJTIMED
CHUTEST
PROPDELAY
MAKE_PARSEKMODULE
DCFD
TESTDCF
MAKE_CHECK_LAYOUT
VER_SUFFIX
MAKE_CHECK_Y2K
MAKE_LIBPARSE_KERNEL
MAKE_LIBPARSE
LIBPARSE
HAVE_RLIMIT_STACK
HAVE_RLIMIT_MEMLOCK
LDADD_NLIST
PATH_NET_SNMP_CONFIG
CONFIG_SHELL
PATH_TEST
PATH_PERL
LIBOBJS
PTHREADS_FALSE
PTHREADS_TRUE
LIBISC_PTHREADS_NOTHREADS
PTHREAD_LIBS
LTHREAD_LIBS
BUILD_THREAD
HAVE_INLINE
LDADD_LIBUTIL
ALLOCA
LIBM
EDITLINE_LIBS
LDADD_LIBNTP
NTP_CROSSCOMPILE_FALSE
NTP_CROSSCOMPILE_TRUE
BUILD_LIBEVENT_FALSE
BUILD_LIBEVENT_TRUE
LDADD_LIBEVENT
CPPFLAGS_LIBEVENT
CFLAGS_LIBEVENT
PKG_CONFIG
LIBOPTS_DIR
LIBOPTS_CFLAGS
LIBOPTS_LDADD
NEED_LIBOPTS_FALSE
NEED_LIBOPTS_TRUE
INSTALL_LIBOPTS_FALSE
INSTALL_LIBOPTS_TRUE
POSIX_SHELL
GL_GENERATE_STDNORETURN_H_FALSE
GL_GENERATE_STDNORETURN_H_TRUE
STDNORETURN_H
LIBTOOL_DEPS
LT_SYS_LIBRARY_PATH
OTOOL64
OTOOL
LIPO
NMEDIT
DSYMUTIL
MANIFEST_TOOL
RANLIB
DLLTOOL
OBJDUMP
LN_S
NM
ac_ct_DUMPBIN
DUMPBIN
LD
FGREP
SED
LIBTOOL
ac_ct_AR
AR
INSTALL_UPDATE_LEAP_FALSE
INSTALL_UPDATE_LEAP_TRUE
UPDATE_LEAP_NI
UPDATE_LEAP_MS
UPDATE_LEAP_DS
UPDATE_LEAP_DL
UPDATE_LEAP_DB
TIMETRIM_NI
TIMETRIM_MS
TIMETRIM_DS
TIMETRIM_DL
TIMETRIM_DB
TICKADJ_NI
TICKADJ_MS
TICKADJ_DS
TICKADJ_DL
TICKADJ_DB
SNTP_NI
SNTP_MS
SNTP_DS
SNTP_DL
SNTP_DB
NTP_WAIT_NI
NTP_WAIT_MS
NTP_WAIT_DS
NTP_WAIT_DL
NTP_WAIT_DB
NTP_KEYGEN_NI
NTP_KEYGEN_MS
NTP_KEYGEN_DS
NTP_KEYGEN_DL
NTP_KEYGEN_DB
NTPTRACE_NI
NTPTRACE_MS
NTPTRACE_DS
NTPTRACE_DL
NTPTRACE_DB
NTPTIME_NI
NTPTIME_MS
NTPTIME_DS
NTPTIME_DL
NTPTIME_DB
INSTALL_NTPSWEEP_FALSE
INSTALL_NTPSWEEP_TRUE
NTPSWEEP_NI
NTPSWEEP_MS
NTPSWEEP_DS
NTPSWEEP_DL
NTPSWEEP_DB
NTPSNMPD_NI
NTPSNMPD_MS
NTPSNMPD_DS
NTPSNMPD_DL
NTPSNMPD_DB
NTPQ_NI
NTPQ_MS
NTPQ_DS
NTPQ_DL
NTPQ_DB
NTPD_NI
NTPD_MS
NTPD_DS
NTPD_DL
NTPD_DB
NTPDSIM_NI
NTPDSIM_MS
NTPDSIM_DS
NTPDSIM_DL
NTPDSIM_DB
NTPDC_NI
NTPDC_MS
NTPDC_DS
NTPDC_DL
NTPDC_DB
NTPDATE_NI
NTPDATE_MS
NTPDATE_DS
NTPDATE_DL
NTPDATE_DB
MANTAGFMT
CALC_TICKADJ_NI
CALC_TICKADJ_MS
CALC_TICKADJ_DS
CALC_TICKADJ_DL
CALC_TICKADJ_DB
WANT_CALC_TICKADJ_MS_FALSE
WANT_CALC_TICKADJ_MS_TRUE
VPATH_HACK_FALSE
VPATH_HACK_TRUE
NTP_HARD_LDFLAGS
NTP_HARD_CPPFLAGS
NTP_HARD_CFLAGS
YFLAGS
YACC
LDFLAGS_NTP
LDADD_NTP
CPPFLAGS_NTP
CFLAGS_NTP
CC_NOFORMAT
EGREP
GREP
CPP
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__include
DEPDIR
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
CSCOPE
ETAGS
CTAGS
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL
am__quote'
ac_subst_files='calc_tickadj_opts
ntp_wait_opts
ntpsweep_opts
ntptrace_opts
summary_opts
plot_summary_opts'
ac_user_opts='
enable_option_checking
enable_silent_rules
enable_dependency_tracking
with_hardenfile
with_locfile
enable_shared
enable_static
with_pic
enable_fast_install
with_aix_soname
with_gnu_ld
with_sysroot
enable_libtool_lock
enable_nls
enable_local_libopts
enable_libopts_install
with_autoopts_config
enable_local_libevent
with_lineeditlibs
enable_debugging
enable_thread_support
with_threads
with_yielding_select
enable_c99_snprintf
enable_clockctl
enable_linuxcaps
enable_solarisprivs
enable_trustedbsd_mac
enable_signalled_io
with_arlib
with_net_snmp_config
enable_libseccomp
with_stack_limit
with_memlock
enable_debug_timing
enable_dst_minutes
enable_ignore_dns_errors
enable_BANCOMM
enable_GPSVME
enable_all_clocks
enable_ACTS
enable_ARBITER
enable_ARCRON_MSF
enable_AS2201
enable_ATOM
enable_CHRONOLOG
enable_CHU
enable_AUDIO_CHU
enable_DATUM
enable_DUMBCLOCK
enable_FG
enable_HEATH
enable_HOPFSERIAL
enable_HOPFPCI
enable_HPGPS
enable_IRIG
enable_JJY
enable_JUPITER
enable_LEITCH
enable_LOCAL_CLOCK
enable_MX4200
enable_NEOCLOCK4X
enable_NMEA
enable_GPSD
enable_ONCORE
enable_PALISADE
enable_PCF
enable_PST
enable_RIPENCC
enable_SHM
enable_SPECTRACOM
enable_TPRO
enable_TRUETIME
enable_TT560
enable_ULINK
enable_TSYNCPCI
enable_WWV
enable_ZYFER
enable_parse_clocks
enable_COMPUTIME
enable_DCF7000
enable_HOPF6021
enable_MEINBERG
enable_RAWDCF
enable_RCC8000
enable_SCHMID
enable_TRIMTAIP
enable_TRIMTSIP
enable_WHARTON
enable_VARITEXT
enable_SEL240X
with_crypto
with_openssl_libdir
with_openssl_incdir
with_rpath
enable_openssl_random
enable_autokey
enable_kmem
enable_accurate_adjtime
enable_tick
enable_tickadj
enable_simulator
with_sntp
with_ntpsnmpd
enable_slew_always
enable_step_slew
enable_ntpdate_step
enable_hourly_todr_sync
enable_kernel_fll_bug
enable_bug1243_fix
enable_bug3020_fix
enable_bug3527_fix
enable_bug3767_fix
enable_irig_sawtooth
enable_nist
enable_ntp_signd
enable_magicpps
enable_ipv6
with_kame
enable_getifaddrs
enable_saveconfig
enable_leap_smear
enable_dynamic_interleave
enable_problem_tests
'
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
YACC
YFLAGS
LT_SYS_LIBRARY_PATH'
ac_subdirs_all='sntp'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ntp 4.2.8p16 to adapt to many kinds of systems.
+\`configure' configures ntp 4.2.8p17 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/ntp]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ntp 4.2.8p16:";;
+ short | recursive ) echo "Configuration of ntp 4.2.8p17:";;
esac
cat <<\_ACEOF
Optional Features and Packages:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--with-hardenfile=XXX os-specific or "/dev/null"
--with-locfile=XXX os-specific or "legacy"
--enable-shared[=PKGS] build shared libraries [default=no]
--enable-static[=PKGS] build static libraries [default=yes]
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--with-aix-soname=aix|svr4|both
shared library versioning (aka "SONAME") variant to
provide on AIX, [default=aix].
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-nls disable nls support in libopts
--enable-local-libopts Use the supplied libopts tearoff code
--enable-libopts-install
Install libopts with client installation
--with-autoopts-config specify the config-info script
--enable-local-libevent Force using the supplied libevent tearoff code
--with-lineeditlibs edit,editline (readline may be specified if desired)
defaults: + yes, - no, s system-specific
--enable-debugging + include ntpd debugging code
--enable-thread-support s use threads (+ if available)
--with-threads with threads [auto]
--with-yielding-select with yielding select [auto]
--enable-c99-snprintf s force replacement
--enable-clockctl s Use /dev/clockctl for non-root clock control
--enable-linuxcaps + Use Linux capabilities for non-root clock control
--enable-solarisprivs + Use Solaris privileges for non-root clock control
--enable-trustedbsd-mac s Use TrustedBSD MAC policy for non-root clock
control
--enable-signalled-io s Use signalled IO if we can
--with-arlib - deprecated, arlib not distributed
--with-net-snmp-config + =net-snmp-config
--enable-libseccomp EXPERIMENTAL: enable support for libseccomp
sandboxing (default is no)
--with-stack-limit ? =50 (200 for openbsd) 4k pages
--with-memlock ? =32 (-1 on linux) megabytes
--enable-debug-timing - include processing time debugging code (costs
performance)
--enable-dst-minutes =60 minutes per DST adjustment
--enable-ignore-dns-errors
- retry DNS queries on any error
--enable-BANCOMM - Datum/Bancomm bc635/VME interface
--enable-GPSVME - TrueTime GPS receiver/VME interface
--enable-all-clocks + include all suitable non-PARSE clocks:
--enable-ACTS s ACTS modem service
--enable-ARBITER + Arbiter 1088A/B GPS receiver
--enable-ARCRON-MSF + Arcron MSF receiver
--enable-AS2201 + Austron 2200A/2201A GPS receiver
--enable-ATOM s ATOM PPS interface
--enable-CHRONOLOG + Chrono-log K-series WWVB receiver
--enable-CHU + CHU modem/decoder
--enable-AUDIO-CHU s CHU audio/decoder
--enable-DATUM s Datum Programmable Time System
--enable-DUMBCLOCK + Dumb generic hh:mm:ss local clock
--enable-FG + Forum Graphic GPS
--enable-HEATH s Heath GC-1000 WWV/WWVH receiver
--enable-HOPFSERIAL + hopf serial clock device
--enable-HOPFPCI + hopf 6039 PCI board
--enable-HPGPS + HP 58503A GPS receiver
--enable-IRIG s IRIG audio decoder
--enable-JJY + JJY receiver
--enable-JUPITER s Rockwell Jupiter GPS receiver
--enable-LEITCH + Leitch CSD 5300 Master Clock System Driver
--enable-LOCAL-CLOCK + local clock reference
--enable-MX4200 s Magnavox MX4200 GPS receiver
--enable-NEOCLOCK4X + NeoClock4X DCF77 / TDF receiver
--enable-NMEA + NMEA GPS receiver
--enable-GPSD + GPSD JSON receiver
--enable-ONCORE s Motorola VP/UT Oncore GPS receiver
--enable-PALISADE s Palisade clock
--enable-PCF + Conrad parallel port radio clock
--enable-PST + PST/Traconex 1020 WWV/WWVH receiver
--enable-RIPENCC - RIPENCC specific Trimble driver
--enable-SHM s SHM clock attached thru shared memory
--enable-SPECTRACOM + Spectracom 8170/Netclock/2 WWVB receiver
--enable-TPRO s KSI/Odetics TPRO/S GPS receiver/IRIG interface
--enable-TRUETIME s Kinemetrics/TrueTime receivers
--enable-TT560 - TrueTime 560 IRIG-B decoder
--enable-ULINK + Ultralink WWVB receiver
--enable-TSYNCPCI s Spectracom TSYNC timing board
--enable-WWV s WWV Audio receiver
--enable-ZYFER + Zyfer GPStarplus receiver
--enable-parse-clocks - include all suitable PARSE clocks:
--enable-COMPUTIME s Diem Computime Radio Clock
--enable-DCF7000 s ELV/DCF7000 clock
--enable-HOPF6021 s HOPF 6021 clock
--enable-MEINBERG s Meinberg clocks
--enable-RAWDCF s DCF77 raw time code
--enable-RCC8000 s RCC 8000 clock
--enable-SCHMID s Schmid DCF77 clock
--enable-TRIMTAIP s Trimble GPS receiver/TAIP protocol
--enable-TRIMTSIP s Trimble GPS receiver/TSIP protocol
--enable-WHARTON s WHARTON 400A Series clock
--enable-VARITEXT s VARITEXT clock
--enable-SEL240X s SEL240X clock
--with-crypto + =openssl,libcrypto
--with-openssl-libdir + =/something/reasonable
--with-openssl-incdir + =/something/reasonable
--without-rpath s Disable auto-added -R linker paths
--enable-openssl-random Use OpenSSL's crypto random number functions, if
available (default is yes)
--enable-autokey + support NTP Autokey protocol
--enable-kmem s read /dev/kmem for tick and/or tickadj
--enable-accurate-adjtime
s the adjtime() call is accurate
--enable-tick=VALUE s force a value for 'tick'
--enable-tickadj=VALUE s force a value for 'tickadj'
--enable-simulator - build/install the NTPD simulator?
--without-sntp - disable building sntp and sntp/tests
--with-ntpsnmpd s Build ntpsnmpd MIB agent?
--enable-slew-always s always slew the time
--enable-step-slew s step and slew the time
--enable-ntpdate-step s if ntpdate should step the time
--enable-hourly-todr-sync
s if we should sync TODR hourly
--enable-kernel-fll-bug s if we should avoid a kernel FLL bug
--enable-bug1243-fix + use unmodified autokey session keys
--enable-bug3020-fix + Provide the explicit 127.0.0.0/8 martian filter
--enable-bug3527-fix + provide correct mode7 fudgetime2 behavior
--enable-bug3767-fix + Disable debug assertion on OOB KoD RATE value
--enable-irig-sawtooth s if we should enable the IRIG sawtooth filter
--enable-nist - if we should enable the NIST lockclock scheme
--enable-ntp-signd - Provide support for Samba's signing daemon,
=/var/run/ntp_signd
--enable-magicpps + try to auto-instantiate PPS devices on Linux
--enable-ipv6 s use IPv6?
--with-kame - =/usr/local/v6
--enable-getifaddrs + Enable the use of getifaddrs() [[yes|no]].
--enable-saveconfig + saveconfig mechanism
--enable-leap-smear - experimental leap smear code
--enable-dynamic-interleave
- dynamic interleave support
--enable-problem-tests + enable tests with undiagnosed problems
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
YACC The `Yet Another Compiler Compiler' implementation to use.
Defaults to the first program found out of: `bison -y', `byacc',
`yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
default value of `-d' given by some make applications.
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <https://bugs.ntp.org/>.
ntp home page: <https://www.ntp.org/>.
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ntp configure 4.2.8p16
+ntp configure 4.2.8p17
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
}
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
# ac_fn_c_try_run LINENO
# ----------------------
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
# executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: program exited with status $ac_status" >&5
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (); below. */
#include <limits.h>
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
# Tests whether TYPE exists after having included INCLUDES, setting cache
# variable VAR accordingly.
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof ($2))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof (($2)))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
eval "$3=yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
# Tries to find the compile-time value of EXPR in a program that includes
# INCLUDES, setting VAR accordingly. Returns whether the value could be
# computed
ac_fn_c_compute_int ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=0 ac_mid=0
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid; break
else $as_nop
as_fn_arith $ac_mid + 1 && ac_lo=$as_val
if test $ac_lo -le $ac_mid; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) < 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=-1 ac_mid=-1
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=$ac_mid; break
else $as_nop
as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
if test $ac_mid -le $ac_hi; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else $as_nop
ac_lo= ac_hi=
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Binary search between lo and hi bounds.
while test "x$ac_lo" != "x$ac_hi"; do
as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid
else $as_nop
as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
case $ac_lo in #((
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
'') ac_retval=1 ;;
esac
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
static long int longval (void) { return $2; }
static unsigned long int ulongval (void) { return $2; }
#include <stdio.h>
#include <stdlib.h>
int
main (void)
{
FILE *f = fopen ("conftest.val", "w");
if (! f)
return 1;
if (($2) < 0)
{
long int i = longval ();
if (i != ($2))
return 1;
fprintf (f, "%ld", i);
}
else
{
unsigned long int i = ulongval ();
if (i != ($2))
return 1;
fprintf (f, "%lu", i);
}
/* Do not output a trailing newline, as this causes \r\n confusion
on some platforms. */
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
echo >>conftest.val; read $3 <conftest.val; ac_retval=0
else $as_nop
ac_retval=1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
rm -f conftest.val
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
eval ac_save_FLAGS=\$$6
as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
#ifndef $as_decl_name
#ifdef __cplusplus
(void) $as_decl_use;
#else
(void) $as_decl_name;
#endif
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
eval $6=\$ac_save_FLAGS
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_check_decl
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
# Tries to find if the field MEMBER exists in type AGGR, after including
# INCLUDES, setting cache variable VAR accordingly.
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
printf %s "checking for $2.$3... " >&6; }
if eval test \${$4+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else $as_nop
eval "$4=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$4
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
ac_configure_args_raw=
for ac_arg
do
case $ac_arg in
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_configure_args_raw " '$ac_arg'"
done
case $ac_configure_args_raw in
*$as_nl*)
ac_safe_unquote= ;;
*)
ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
ac_unsafe_a="$ac_unsafe_z#~"
ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
esac
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ntp $as_me 4.2.8p16, which was
+It was created by ntp $as_me 4.2.8p17, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Sanitize IFS.
IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
printf "%s\n" "$as_me: caught signal $ac_signal"
printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
if test -n "$CONFIG_SITE"; then
ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
for ac_site_file in $ac_site_files
do
case $ac_site_file in #(
*/*) :
;; #(
*) :
ac_site_file=./$ac_site_file ;;
esac
if test -f "$ac_site_file" && test -r "$ac_site_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Test code for whether the C compiler supports C89 (global declarations)
ac_c_conftest_c89_globals='
/* Does the compiler advertise C89 conformance?
Do not test the value of __STDC__, because some compilers set it to 0
while being otherwise adequately conformant. */
#if !defined __STDC__
# error "Compiler does not advertise C89 conformance"
#endif
#include <stddef.h>
#include <stdarg.h>
struct stat;
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not \xHH hex character constants.
These do not provoke an error unfortunately, instead are silently treated
as an "x". The following induces an error, until -std is added to get
proper ANSI mode. Curiously \x00 != x always comes out true, for an
array size at least. It is necessary to write \x00 == 0 to get something
that is true only with -std. */
int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) '\''x'\''
int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
int, int);'
# Test code for whether the C compiler supports C89 (body of main).
ac_c_conftest_c89_main='
ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
'
# Test code for whether the C compiler supports C99 (global declarations)
ac_c_conftest_c99_globals='
// Does the compiler advertise C99 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
# error "Compiler does not advertise C99 conformance"
#endif
#include <stdbool.h>
extern int puts (const char *);
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
// FILE and stderr.
#define debug(...) dprintf (2, __VA_ARGS__)
#define showlist(...) puts (#__VA_ARGS__)
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
static void
test_varargs_macros (void)
{
int x = 1234;
int y = 5678;
debug ("Flag");
debug ("X = %d\n", x);
showlist (The first, second, and third items.);
report (x>y, "x is %d but y is %d", x, y);
}
// Check long long types.
#define BIG64 18446744073709551615ull
#define BIG32 4294967295ul
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
#if !BIG_OK
#error "your preprocessor is broken"
#endif
#if BIG_OK
#else
#error "your preprocessor is broken"
#endif
static long long int bignum = -9223372036854775807LL;
static unsigned long long int ubignum = BIG64;
struct incomplete_array
{
int datasize;
double data[];
};
struct named_init {
int number;
const wchar_t *name;
double average;
};
typedef const char *ccp;
static inline int
test_restrict (ccp restrict text)
{
// See if C++-style comments work.
// Iterate through items via the restricted pointer.
// Also check for declarations in for loops.
for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
continue;
return 0;
}
// Check varargs and va_copy.
static bool
test_varargs (const char *format, ...)
{
va_list args;
va_start (args, format);
va_list args_copy;
va_copy (args_copy, args);
const char *str = "";
int number = 0;
float fnumber = 0;
while (*format)
{
switch (*format++)
{
case '\''s'\'': // string
str = va_arg (args_copy, const char *);
break;
case '\''d'\'': // int
number = va_arg (args_copy, int);
break;
case '\''f'\'': // float
fnumber = va_arg (args_copy, double);
break;
default:
break;
}
}
va_end (args_copy);
va_end (args);
return *str && number && fnumber;
}
'
# Test code for whether the C compiler supports C99 (body of main).
ac_c_conftest_c99_main='
// Check bool.
_Bool success = false;
success |= (argc != 0);
// Check restrict.
if (test_restrict ("String literal") == 0)
success = true;
char *restrict newvar = "Another string";
// Check varargs.
success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
test_varargs_macros ();
// Check flexible array members.
struct incomplete_array *ia =
malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
// Check named initializers.
struct named_init ni = {
.number = 34,
.name = L"Test wide string",
.average = 543.34343,
};
ni.number = 58;
int dynamic_array[ni.number];
dynamic_array[0] = argv[0][0];
dynamic_array[ni.number - 1] = 543;
// work around unused variable warnings
ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
|| dynamic_array[ni.number - 1] != 543);
'
# Test code for whether the C compiler supports C11 (global declarations)
ac_c_conftest_c11_globals='
// Does the compiler advertise C11 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
# error "Compiler does not advertise C11 conformance"
#endif
// Check _Alignas.
char _Alignas (double) aligned_as_double;
char _Alignas (0) no_special_alignment;
extern char aligned_as_int;
char _Alignas (0) _Alignas (int) aligned_as_int;
// Check _Alignof.
enum
{
int_alignment = _Alignof (int),
int_array_alignment = _Alignof (int[100]),
char_alignment = _Alignof (char)
};
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
// Check _Noreturn.
int _Noreturn does_not_return (void) { for (;;) continue; }
// Check _Static_assert.
struct test_static_assert
{
int x;
_Static_assert (sizeof (int) <= sizeof (long int),
"_Static_assert does not work in struct");
long int y;
};
// Check UTF-8 literals.
#define u8 syntax error!
char const utf8_literal[] = u8"happens to be ASCII" "another string";
// Check duplicate typedefs.
typedef long *long_ptr;
typedef long int *long_ptr;
typedef long_ptr long_ptr;
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
struct anonymous
{
union {
struct { int i; int j; };
struct { int k; long int l; } w;
};
int m;
} v1;
'
# Test code for whether the C compiler supports C11 (body of main).
ac_c_conftest_c11_main='
_Static_assert ((offsetof (struct anonymous, i)
== offsetof (struct anonymous, w.k)),
"Anonymous union alignment botch");
v1.i = 2;
v1.w.k = 5;
ok |= v1.i != 5;
'
# Test code for whether the C compiler supports C11 (complete).
ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
${ac_c_conftest_c11_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
${ac_c_conftest_c11_main}
return ok;
}
"
# Test code for whether the C compiler supports C99 (complete).
ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
return ok;
}
"
# Test code for whether the C compiler supports C89 (complete).
ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
return ok;
}
"
as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
as_fn_append ac_func_c_list " vprintf HAVE_VPRINTF"
as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
as_fn_append ac_func_c_list " fork HAVE_FORK"
as_fn_append ac_func_c_list " vfork HAVE_VFORK"
as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H"
as_fn_append ac_header_c_list " stdarg.h stdarg_h HAVE_STDARG_H"
# Auxiliary files required by this configure script.
ac_aux_files="ltmain.sh ar-lib compile config.guess config.sub missing install-sh"
# Locations in which to look for auxiliary files.
ac_aux_dir_candidates="${srcdir}/sntp/libevent/build-aux"
# Search for a directory containing all of the required auxiliary files,
# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
# If we don't find one directory that contains all the files we need,
# we report the set of missing files from the *first* directory in
# $ac_aux_dir_candidates and give up.
ac_missing_aux_files=""
ac_first_candidate=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in $ac_aux_dir_candidates
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
ac_aux_dir_found=yes
ac_install_sh=
for ac_aux in $ac_aux_files
do
# As a special case, if "install-sh" is required, that requirement
# can be satisfied by any of "install-sh", "install.sh", or "shtool",
# and $ac_install_sh is set appropriately for whichever one is found.
if test x"$ac_aux" = x"install-sh"
then
if test -f "${as_dir}install-sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
ac_install_sh="${as_dir}install-sh -c"
elif test -f "${as_dir}install.sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
ac_install_sh="${as_dir}install.sh -c"
elif test -f "${as_dir}shtool"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
ac_install_sh="${as_dir}shtool install -c"
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} install-sh"
else
break
fi
fi
else
if test -f "${as_dir}${ac_aux}"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
else
break
fi
fi
fi
done
if test "$ac_aux_dir_found" = yes; then
ac_aux_dir="$as_dir"
break
fi
ac_first_candidate=false
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
if test -f "${ac_aux_dir}config.guess"; then
ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
fi
if test -f "${ac_aux_dir}config.sub"; then
ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
fi
if test -f "$ac_aux_dir/configure"; then
ac_configure="$SHELL ${ac_aux_dir}configure"
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Bump ntp_configure_cache_version for each change to configure.ac or
# .m4 files which invalidates cached values from previous configure
# runs.
#
# If the change affects cache variables used only by the main NTP
# configure.ac, then only its version number should be bumped, while
# the subdir configure.ac version numbers should be unchanged. The
# same is true for a test/variable that is used only by one subdir
# being changed incompatibly; only that subdir's cache version needs
# bumping.
#
# If a change affects variables shared by all NTP configure scripts,
# please bump the version numbers of each. If you are not sure, the
# safe choice is to bump all on any cache-invalidating change.
#
# In order to avoid the risk of version stamp collision between -stable
# and -dev branches, do not simply increment the version, instead use
# the date YYYYMMDD optionally with -HHMM if there is more than one
# bump in a day.
ntp_configure_cache_version=20230326
# When the cache version of config.cache and configure do not
# match, NTP_CACHEVERSION will flush the cache.
ntp_cache_flush=1
case "$ntp_cv_main_cache_version" in
$ntp_configure_cache_version)
# same version, good
ntp_cache_flush=0
;;
'')
# No cache, predates ntp_cv_main_cache_version, or is empty.
case "$cache_file" in
/dev/null)
ntp_cache_flush=0
;;
*)
case "$NTP_CACHEVERSION_PARENT" in
'')
# Do not clear the cache immediately after it is created
# empty as it is noisy. Differentiate a newly-created
# config.cache from one predating the cache version
# mechanism by looking for the first cached variable set
# by Autoconf
case "$ac_cv_path_install" in
'')
# empty config.cache file
ntp_cache_flush=0
esac
;;
*)
# Parent configure just created cache from empty,
# flushing would be counterproductive.
ntp_cache_flush=0;
;;
esac
esac
;;
*)
# configure cache version mismatches config.cache version
;;
esac
case "$ntp_cache_flush" in
1)
c_version="${ntp_cv_main_cache_version:-(no version found)}"
# Do we flush all variables or exclude others' version stamps?
case "$NTP_CACHEVERSION_PARENT" in
'')
# Clear all *_cv_* variables including our child subdirs'
# ntp_cv_*_cache_version variables. This prevents subdir
# configure scripts from noticing a version mismatch just
# after the top configure in the invocation cleared and
# recreated the cache.
c_varname_list=`set |
sed -n -e 's/=.*$//' \
-e '/_cv_/p'
`
;;
*)
# This is not the top configure this particular invocation.
# Clear all *_cv_* variables sparing the version stamps
# of other configure scripts, so we don't trigger
# useless repeated clearings.
c_varname_list=`set |
sed -n -e 's/=.*$//' \
-e '/ntp_cv_.*_cache_version/d' \
-e '/_cv_/p'
`
esac
for c_varname in $c_varname_list
do
{ eval $c_varname=; unset $c_varname;}
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $cache_file saved by another version, ignored." >&5
printf "%s\n" "$as_me: $cache_file saved by another version, ignored." >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: configure script cache version: $ntp_configure_cache_version" >&5
printf "%s\n" "$as_me: configure script cache version: $ntp_configure_cache_version" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $cache_file version: $c_version" >&5
printf "%s\n" "$as_me: $cache_file version: $c_version" >&6;}
{ c_varname=; unset c_varname;}
{ c_varname_list=; unset c_varname_list;}
{ c_version=; unset c_version;}
esac
{ ntp_cache_flush=; unset ntp_cache_flush;}
# save configure version in config.cache for next time
ntp_cv_main_cache_version="$ntp_configure_cache_version"
# let any subdir configure.ac NTP_CACHEVERSION invocations
# know they are not the top level.
NTP_CACHEVERSION_PARENT='main' ; export NTP_CACHEVERSION_PARENT
am__api_version='1.16'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test ${ac_cv_path_install+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
# Account for fact that we put trailing slashes in our PATH walk.
case $as_dir in #((
./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
printf %s "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
esac
# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
am_has_slept=no
for am_try in 1 2; do
echo "timestamp, slept: $am_has_slept" > conftest.file
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
if test "$*" != "X $srcdir/configure conftest.file" \
&& test "$*" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
if test "$2" = conftest.file || test $am_try -eq 2; then
break
fi
# Just in case.
sleep 1
am_has_slept=yes
done
test "$2" = conftest.file
)
then
# Ok.
:
else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
( sleep 1 ) &
am_sleep_pid=$!
fi
rm -f conftest.file
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
test "$program_suffix" != NONE &&
program_transform_name="s&\$&$program_suffix&;$program_transform_name"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
# Installed binaries are usually stripped using 'strip' when the user
# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the 'STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
printf "%s\n" "$STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
printf "%s\n" "$ac_ct_STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
printf %s "checking for a race-free mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
if test ${ac_cv_path_mkdir+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir ('*'coreutils) '* | \
'BusyBox '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
fi
test -d ./--version && rmdir ./--version
if test ${ac_cv_path_mkdir+y}; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
MKDIR_P="$ac_install_sh -d"
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
printf "%s\n" "$MKDIR_P" >&6; }
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval test \${ac_cv_prog_make_${ac_make}_set+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
SET_MAKE=
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=1;;
esac
am_make=${MAKE-make}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
printf %s "checking whether $am_make supports nested variables... " >&6; }
if test ${am_cv_make_support_nested_variables+y}
then :
printf %s "(cached) " >&6
else $as_nop
if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
# Define the identity of the package.
PACKAGE='ntp'
- VERSION='4.2.8p16'
+ VERSION='4.2.8p17'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
# Some tools Automake needs.
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
mkdir_p='$(MKDIR_P)'
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar pax cpio none'
am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
# Variables for tags utilities; see am/tags.am
if test -z "$CTAGS"; then
CTAGS=ctags
fi
if test -z "$ETAGS"; then
ETAGS=etags
fi
if test -z "$CSCOPE"; then
CSCOPE=cscope
fi
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
# recipes. So use an aggressive probe to check that the usage we want is
# actually supported "in the wild" to an acceptable degree.
# See automake bug#10828.
# To make any issue more visible, cause the running configure to be aborted
# by default if the 'rm' program in use doesn't match our expectations; the
# user can still override this though.
if rm -f && rm -fr && rm -rf; then : OK; else
cat >&2 <<'END'
Oops!
Your 'rm' program seems unable to run without file operands specified
on the command line, even when the '-f' option is present. This is contrary
to the behaviour of most rm programs out there, and not conforming with
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
Please tell bug-automake@gnu.org about your system, including the value
of your $PATH and any error possibly output before this message. This
can help us improve future automake versions.
END
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
echo 'Configuration will proceed anyway, since you have set the' >&2
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
echo >&2
else
cat >&2 <<'END'
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
to "yes", and re-run configure.
END
as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
fi
fi
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
printf %s "checking whether $am_make supports nested variables... " >&6; }
if test ${am_cv_make_support_nested_variables+y}
then :
printf %s "(cached) " >&6
else $as_nop
if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
# Make sure we can run config.sub.
$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
printf %s "checking build system type... " >&6; }
if test ${ac_cv_build+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
printf %s "checking host system type... " >&6; }
if test ${ac_cv_host+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
printf "%s\n" "#define STR_SYSTEM \"$host\"" >>confdefs.h
ac_config_headers="$ac_config_headers config.h"
ntp_atom_ok=${ntp_atom_ok=no}
ntp_oncore_ok=${ntp_oncore_ok=no}
ntp_parse_ok=${ntp_parse_ok=no}
ntp_ripe_ncc_ok=${ntp_parse_ok=no}
ntp_jupiter_ok=${ntp_jupiter_ok=no}
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
am__include="#"
am__quote=
# BSD make does it like this.
echo '.include "confinc.mk" # ignored' > confmf.BSD
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
echo 'include confinc.mk # ignored' > confmf.GNU
_am_result=no
for s in GNU BSD; do
{ echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
(${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
case $?:`cat confinc.out 2>/dev/null` in #(
'0:this is the am__doit target') :
case $s in #(
BSD) :
am__include='.include' am__quote='"' ;; #(
*) :
am__include='include' am__quote='' ;;
esac ;; #(
*) :
;;
esac
if test "$am__include" != "#"; then
_am_result="yes ($s style)"
break
fi
done
rm -f confinc.* confmf.*
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
printf "%s\n" "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
if test ${enable_dependency_tracking+y}
then :
enableval=$enable_dependency_tracking;
fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
AMDEP_FALSE='#'
else
AMDEP_TRUE='#'
AMDEP_FALSE=
fi
case "$build" in
*-*-freebsd1?.*)
cclist=cc
;;
*)
cclist="cc gcc"
;;
esac
#AC_USE_SYSTEM_EXTENSIONS
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
for ac_prog in $cclist
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in $cclist
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
printf %s "checking whether the C compiler works... " >&6; }
ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else $as_nop
ac_file=''
fi
if test -z "$ac_file"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
else $as_nop
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c11=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
ac_prog_cc_stdc=c11
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c99_program
_ACEOF
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c99=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
ac_prog_cc_stdc=c99
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
ac_prog_cc_stdc=c89
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
printf %s "checking whether $CC understands -c and -o together... " >&6; }
if test ${am_cv_prog_cc_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
# Make sure it works both with $CC and with simple cc.
# Following AC_PROG_CC_C_O, we do the test twice because some
# compilers refuse to overwrite an existing .o file with -o,
# though they will create one.
am_cv_prog_cc_c_o=yes
for am_i in 1 2; do
if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } \
&& test -f conftest2.$ac_objext; then
: OK
else
am_cv_prog_cc_c_o=no
break
fi
done
rm -f core conftest*
unset am_i
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
printf %s "checking dependency style of $depcc... " >&6; }
if test ${am_cv_CC_dependencies_compiler_type+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named 'D' -- because '-MD' means "put the output
# in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
# Solaris 10 /bin/sh.
echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle '-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# After this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
ac_header= ac_cache=
for ac_item in $ac_header_c_list
do
if test $ac_cache; then
ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
printf "%s\n" "#define $ac_item 1" >> confdefs.h
fi
ac_header= ac_cache=
elif test $ac_header; then
ac_cache=$ac_item
else
ac_header=$ac_item
fi
done
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
then :
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if test ${ac_cv_safe_to_define___extensions__+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# define __EXTENSIONS__ 1
$ac_includes_default
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_safe_to_define___extensions__=yes
else $as_nop
ac_cv_safe_to_define___extensions__=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
if test ${ac_cv_should_define__xopen_source+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_should_define__xopen_source=no
if test $ac_cv_header_wchar_h = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wchar.h>
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 500
#include <wchar.h>
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_should_define__xopen_source=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
if test $ac_cv_header_minix_config_h = yes
then :
MINIX=yes
printf "%s\n" "#define _MINIX 1" >>confdefs.h
printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
else $as_nop
MINIX=
fi
if test $ac_cv_safe_to_define___extensions__ = yes
then :
printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
fi
if test $ac_cv_should_define__xopen_source = yes
then :
printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test ${ac_cv_prog_CPP+y}
then :
printf %s "(cached) " >&6
else $as_nop
# Double quotes because $CC needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
printf %s "checking for grep that handles long lines and -e... " >&6; }
if test ${ac_cv_path_GREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
ac_path_GREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_GREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
printf "%s\n" "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
# Ralf Wildenhues: With per-target flags we need CC_C_O
# AM_PROG_CC_C_O supersets AC_PROG_CC_C_O
if test $ac_cv_c_compiler_gnu = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
printf %s "checking whether $CC needs -traditional... " >&6; }
if test ${ac_cv_prog_gcc_traditional+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_pattern="Autoconf.*'x'"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sgtty.h>
Autoconf TIOCGETP
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "$ac_pattern" >/dev/null 2>&1
then :
ac_cv_prog_gcc_traditional=yes
else $as_nop
ac_cv_prog_gcc_traditional=no
fi
rm -rf conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termio.h>
Autoconf TCGETA
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "$ac_pattern" >/dev/null 2>&1
then :
ac_cv_prog_gcc_traditional=yes
fi
rm -rf conftest*
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5
printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; }
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
fi
fi
CC_NOFORMAT=
CFLAGS_NTP=
CPPFLAGS_NTP=
LDADD_NTP=
LDFLAGS_NTP=
case "$ac_cv_prog_cc_c89" in
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ANSI C89/ISO C90 is the minimum to compile NTP
version 4.2.5 and higher." >&5
printf "%s\n" "$as_me: WARNING: ANSI C89/ISO C90 is the minimum to compile NTP
version 4.2.5 and higher." >&2;}
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle #warning" >&5
printf %s "checking if $CC can handle #warning... " >&6; }
if test ${ntp_cv_cpp_warning+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#warning foo
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_cpp_warning=yes
else $as_nop
ntp_cv_cpp_warning=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_cpp_warning" >&5
printf "%s\n" "$ntp_cv_cpp_warning" >&6; }
case "$ntp_cv_cpp_warning" in
no)
printf "%s\n" "#define NO_OPTION_NAME_WARNINGS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports __attribute__((...))" >&5
printf %s "checking if $CC supports __attribute__((...))... " >&6; }
if test ${ntp_cv_cc_attribute+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
void foo(void) __attribute__((__noreturn__));
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_cc_attribute=yes
else $as_nop
ntp_cv_cc_attribute=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_cc_attribute" >&5
printf "%s\n" "$ntp_cv_cc_attribute" >&6; }
case "$ntp_cv_cc_attribute" in
yes)
printf "%s\n" "#define HAVE___ATTRIBUTE__ /**/" >>confdefs.h
esac
case "$GCC" in
yes)
SAVED_CFLAGS="$CFLAGS"
CFLAGS="$SAVED_CFLAGS -Wstrict-overflow"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Wstrict-overflow" >&5
printf %s "checking if $CC can handle -Wstrict-overflow... " >&6; }
if test ${ntp_cv_gcc_Wstrict_overflow+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Wstrict_overflow=yes
else $as_nop
ntp_cv_gcc_Wstrict_overflow=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Wstrict_overflow" >&5
printf "%s\n" "$ntp_cv_gcc_Wstrict_overflow" >&6; }
#
# $ntp_cv_gcc_Wstrict_overflow is tested later to add the
# flag to CFLAGS.
#
CFLAGS="$SAVED_CFLAGS -Winit-self"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Winit-self" >&5
printf %s "checking if $CC can handle -Winit-self... " >&6; }
if test ${ntp_cv_gcc_Winit_self+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Winit_self=yes
else $as_nop
ntp_cv_gcc_Winit_self=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Winit_self" >&5
printf "%s\n" "$ntp_cv_gcc_Winit_self" >&6; }
#
# libopts specifically builds a string with embedded NULs.
# This causes a bunch of distracting warnings due to -Wformat.
# Let's see if we can figure out how to disable these.
#
CFLAGS="$SAVED_CFLAGS -Wno-format"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Wno-format" >&5
printf %s "checking if $CC can handle -Wno-format... " >&6; }
if test ${ntp_cv_gcc_Wno_format+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Wno_format=yes
else $as_nop
ntp_cv_gcc_Wno_format=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Wno_format" >&5
printf "%s\n" "$ntp_cv_gcc_Wno_format" >&6; }
case "$ntp_cv_gcc_Wno_format" in
yes)
CC_NOFORMAT="$CC_NOFORMAT -Wno-format"
;;
no)
;;
esac
CFLAGS="$SAVED_CFLAGS"
{ SAVED_CFLAGS=; unset SAVED_CFLAGS;}
#
# $ntp_cv_gcc_Winit_self is tested later to add the
# flag to CFLAGS_NTP.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linker supports omitting unused code and data" >&5
printf %s "checking if linker supports omitting unused code and data... " >&6; }
if test ${ntp_cv_gc_sections_runs+y}
then :
printf %s "(cached) " >&6
else $as_nop
origCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wl,--gc-sections"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdio.h>
int
main (void)
{
FILE * fpC;
char buf[32];
size_t cch;
int read_success_once;
fpC = fopen("conftest.c", "r");
if (NULL == fpC)
exit(1);
do {
cch = fread(buf, sizeof(buf), 1, fpC);
read_success_once |= (0 != cch);
} while (0 != cch);
if (!read_success_once)
exit(2);
if (!feof(fpC))
exit(3);
if (0 != fclose(fpC))
exit(4);
exit(EXIT_SUCCESS);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if test "X$cross_compiling" = "Xyes" || grep gc-sections conftest.err ; then
ntp_cv_gc_sections_runs=no
else
ntp_cv_gc_sections_runs=no
./conftest >/dev/null 2>&1 && ntp_cv_gc_sections_runs=yes
fi
else $as_nop
ntp_cv_gc_sections_runs=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$origCFLAGS"
{ origCFLAGS=; unset origCFLAGS;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gc_sections_runs" >&5
printf "%s\n" "$ntp_cv_gc_sections_runs" >&6; }
case "$ntp_cv_gc_sections_runs" in
yes)
LDADD_LIBNTP="-Wl,--gc-sections"
CFLAGS_NTP="$CFLAGS_NTP -ffunction-sections -fdata-sections"
;;
no)
LDADD_LIBNTP=
;;
esac
CFLAGS_NTP="$CFLAGS_NTP -Wall"
CFLAGS_NTP="$CFLAGS_NTP -Wcast-align"
CFLAGS_NTP="$CFLAGS_NTP -Wcast-qual"
# CFLAGS_NTP="$CFLAGS_NTP -Wconversion"
# CFLAGS_NTP="$CFLAGS_NTP -Werror"
# CFLAGS_NTP="$CFLAGS_NTP -Wextra"
# CFLAGS_NTP="$CFLAGS_NTP -Wfloat-equal"
CFLAGS_NTP="$CFLAGS_NTP -Wmissing-prototypes"
CFLAGS_NTP="$CFLAGS_NTP -Wpointer-arith"
CFLAGS_NTP="$CFLAGS_NTP -Wshadow"
# CFLAGS_NTP="$CFLAGS_NTP -Wtraditional"
# CFLAGS_NTP="$CFLAGS_NTP -Wwrite-strings"
case "$ntp_cv_gcc_Winit_self" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Winit-self"
esac
case "$ntp_cv_gcc_Wstrict_overflow" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-overflow"
esac
# -W[no-]strict-prototypes might be added by NTP_OPENSSL
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking additional compiler flags" >&5
printf %s "checking additional compiler flags... " >&6; }
# allow ntp_os_cflags to be preset to skip this stuff
case "${ntp_os_cflags+set}" in
set)
;;
*)
ntp_os_cflags=
case "$host_os" in
aix[1-3]*)
;;
aix4.[0-2]*)
# turn on additional headers
ntp_os_cflags="-D_XOPEN_EXTENDED_SOURCE"
;;
aix5.3*)
# avoid circular dependencies in yp headers, and more
ntp_os_cflags="-DHAVE_BAD_HEADERS -D_XOPEN_EXTENDED_SOURCE"
ntp_os_cflags="${ntp_os_cflags} -D_USE_IRS -D_MSGQSUPPORT"
;;
aix*)
# XXX Only verified thru AIX6.
# aix7 seems to need a different XOPEN_SOURCE_EXTENDED thing.
# avoid circular dependencies in yp headers
# _XOPEN_SOURCE=500 = X/Open 5: POSIX 1995
# _XOPEN_SOURCE=600 = X/Open 6: POSIX 2004
# _XOPEN_SOURCE=700 = X/Open 7: POSIX 2008
ntp_os_cflags="-DHAVE_BAD_HEADERS -D_XOPEN_SOURCE=600"
ntp_os_cflags="${ntp_os_cflags} -D_USE_IRS"
;;
amigaos)
ntp_os_cflags="-DSYS_AMIGA"
;;
darwin*|macosx*|rhapsody*)
ntp_os_cflags="-D_P1003_1B_VISIBLE"
;;
hpux10.*) # at least for hppa2.0-hp-hpux10.20
case "$GCC" in
yes)
;;
*)
# use Ansi compiler on HPUX, and some -Wp magic
ntp_os_cflags="-Ae -Wp,-H18816"
;;
esac
ntp_os_cflags="${ntp_os_cflags} -D_HPUX_SOURCE -D__STDC_VERSION__=199901L"
;;
hpux*)
case "$GCC" in
yes)
;;
*)
# use Ansi compiler on HPUX
ntp_os_cflags="-Ae"
esac
ntp_os_cflags="${ntp_os_cflags} -D_HPUX_SOURCE -D__STDC_VERSION__=199901L"
;;
irix6*)
case "$CC" in
cc)
# do not use 64-bit compiler
ntp_os_cflags="-n32 -mips3 -Wl,-woff,84"
esac
;;
nextstep3)
ntp_os_cflags="-posix"
;;
solaris1*|solaris2.[0-5]|solaris2.5.*)
;;
sunos[34]*|sunos5.[0-5]|sunos5.5.*)
;;
solaris2*|sunos5*)
# turn on 64-bit file offset interface
ntp_os_cflags="-D_LARGEFILE64_SOURCE"
;;
vxworks*)
case "$build" in
$host)
;;
*)
# Quick and dirty sanity check
case "$VX_KERNEL" in
'')
as_fn_error $? "See html/build/hints/vxworks.html" "$LINENO" 5
esac
ntp_os_cflags="-DSYS_VXWORKS"
esac
;;
esac
esac
case "$ntp_os_cflags" in
'')
ntp_os_cflags_msg="none needed"
;;
*)
ntp_os_cflags_msg="$ntp_os_cflags"
esac
CFLAGS_NTP="$CFLAGS_NTP $ntp_os_cflags"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_os_cflags_msg" >&5
printf "%s\n" "$ntp_os_cflags_msg" >&6; }
{ ntp_os_cflags_msg=; unset ntp_os_cflags_msg;}
###
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking additional linker flags" >&5
printf %s "checking additional linker flags... " >&6; }
# HMS: The following might still need tweaking
# allow ntp_os_ldflags to be preset to skip this stuff
case "${ntp_os_ldflags+set}" in
set)
;;
*)
ntp_os_ldflags=
case "$host_os" in
hpux*)
case "$GCC" in
yes)
ntp_os_ldflags="-Wl,+allowdups"
;;
esac
;;
esac
;;
esac
case "$ntp_os_ldflags" in
'')
ntp_os_ldflags_msg="none needed"
;;
*)
ntp_os_ldflags_msg="$ntp_os_ldflags"
esac
LDFLAGS_NTP="$LDFLAGS_NTP $ntp_os_ldflags"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_os_ldflags_msg" >&5
printf "%s\n" "$ntp_os_ldflags_msg" >&6; }
{ ntp_os_ldflags_msg=; unset ntp_os_ldflags_msg;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
printf %s "checking whether byte ordering is bigendian... " >&6; }
if test ${ac_cv_c_bigendian+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_c_bigendian=unknown
# See if we're dealing with a universal compiler.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __APPLE_CC__
not a universal capable compiler
#endif
typedef int dummy;
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# Check for potential -arch flags. It is not universal unless
# there are at least two -arch flags with different values.
ac_arch=
ac_prev=
for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
if test -n "$ac_prev"; then
case $ac_word in
i?86 | x86_64 | ppc | ppc64)
if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
ac_arch=$ac_word
else
ac_cv_c_bigendian=universal
break
fi
;;
esac
ac_prev=
elif test "x$ac_word" = "x-arch"; then
ac_prev=arch
fi
done
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test $ac_cv_c_bigendian = unknown; then
# See if sys/param.h defines the BYTE_ORDER macro.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
int
main (void)
{
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
&& defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
&& LITTLE_ENDIAN)
bogus endian macros
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# It does; now see whether it defined to BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
int
main (void)
{
#if BYTE_ORDER != BIG_ENDIAN
not big endian
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_bigendian=yes
else $as_nop
ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
main (void)
{
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
bogus endian macros
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# It does; now see whether it defined to _BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
main (void)
{
#ifndef _BIG_ENDIAN
not big endian
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_bigendian=yes
else $as_nop
ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# Compile a test program.
if test "$cross_compiling" = yes
then :
# Try to guess by grepping values from an object file.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
unsigned short int ascii_mm[] =
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
unsigned short int ascii_ii[] =
{ 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
int use_ascii (int i) {
return ascii_mm[i] + ascii_ii[i];
}
unsigned short int ebcdic_ii[] =
{ 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
unsigned short int ebcdic_mm[] =
{ 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
int use_ebcdic (int i) {
return ebcdic_mm[i] + ebcdic_ii[i];
}
extern int foo;
int
main (void)
{
return use_ascii (foo) == use_ebcdic (foo);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
ac_cv_c_bigendian=yes
fi
if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
if test "$ac_cv_c_bigendian" = unknown; then
ac_cv_c_bigendian=no
else
# finding both strings is unlikely to happen, but who knows?
ac_cv_c_bigendian=unknown
fi
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* Are we little or big endian? From Harbison&Steele. */
union
{
long int l;
char c[sizeof (long int)];
} u;
u.l = 1;
return u.c[sizeof (long int) - 1] == 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_c_bigendian=no
else $as_nop
ac_cv_c_bigendian=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
printf "%s\n" "$ac_cv_c_bigendian" >&6; }
case $ac_cv_c_bigendian in #(
yes)
printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
no)
;; #(
universal)
printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
as_fn_error $? "unknown endianness
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
printf %s "checking for working volatile... " >&6; }
if test ${ac_cv_c_volatile+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
volatile int x;
int * volatile y = (int *) 0;
return !x && !y;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_volatile=yes
else $as_nop
ac_cv_c_volatile=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
printf "%s\n" "$ac_cv_c_volatile" >&6; }
if test $ac_cv_c_volatile = no; then
printf "%s\n" "#define volatile /**/" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test ${ac_cv_prog_CPP+y}
then :
printf %s "(cached) " >&6
else $as_nop
# Double quotes because $CC needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
for ac_prog in 'bison -y' byacc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_YACC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$YACC"; then
ac_cv_prog_YACC="$YACC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_YACC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
printf "%s\n" "$YACC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$YACC" && break
done
test -n "$YACC" || YACC="yacc"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports C99 structure initialization" >&5
printf %s "checking whether the compiler supports C99 structure initialization... " >&6; }
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
struct foo_s {int i1; int i2;};
int main() { struct foo_s foo[] = { { .i1 = 1, .i2 = 1 }, { .i1 = 2, .i2 = 2 }, { .i1 = 0, .i2 = 0 } }; }
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "#define MISSING_C99_STRUCT_INIT 1" >>confdefs.h
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compile/link hardening flags" >&5
printf %s "checking for compile/link hardening flags... " >&6; }
# Check whether --with-hardenfile was given.
if test ${with_hardenfile+y}
then :
withval=$with_hardenfile;
else $as_nop
with_hardenfile=no
fi
( \
SENTINEL_DIR="$PWD" && \
cd $srcdir/sntp && \
case "$with_hardenfile" in \
yes|no|'') \
scripts/genHardFlags -d "$SENTINEL_DIR" \
;; \
*) \
scripts/genHardFlags -d "$SENTINEL_DIR" -f "$with_hardenfile" \
;; \
esac \
) > genHardFlags.i 2> genHardFlags.err
. ./genHardFlags.i
case "$GENHARDFLAG" in
OK)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in file $GENHARDFLAGFILE" >&5
printf "%s\n" "in file $GENHARDFLAGFILE" >&6; }
rm genHardFlags.err genHardFlags.i
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed." >&5
printf "%s\n" "failed." >&6; }
as_fn_error $? "Problem with genHardFlags!" "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking to see if we need ylwrap VPATH hack" >&5
printf %s "checking to see if we need ylwrap VPATH hack... " >&6; }
ntp_vpath_hack="no"
case "$srcdir::${force_ntp_vpath_hack-no}" in
.::*)
;; # VPATH_HACK path is for VPATH builds only.
*::yes)
ntp_vpath_hack="yes"
;;
*::*)
case "`${MAKE-make} -v -f /dev/null 2>/dev/null | grep 'GNU Make'`" in
'')
ntp_vpath_hack="yes"
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_vpath_hack" >&5
printf "%s\n" "$ntp_vpath_hack" >&6; }
if test x$ntp_vpath_hack = xyes; then
VPATH_HACK_TRUE=
VPATH_HACK_FALSE='#'
else
VPATH_HACK_TRUE='#'
VPATH_HACK_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for install dir and man conventions" >&5
printf %s "checking for install dir and man conventions... " >&6; }
# Check whether --with-locfile was given.
if test ${with_locfile+y}
then :
withval=$with_locfile;
else $as_nop
with_locfile=no
fi
( \
SENTINEL_DIR="$PWD" && \
cd $srcdir/sntp && \
case "$with_locfile" in \
yes|no|'') \
scripts/genLocInfo -d "$SENTINEL_DIR" \
;; \
*) \
scripts/genLocInfo -d "$SENTINEL_DIR" -f "$with_locfile" \
;; \
esac \
) > genLocInfo.i 2> genLocInfo.err
. ./genLocInfo.i
case "$GENLOCINFO" in
OK)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in file $GENLOCINFOFILE" >&5
printf "%s\n" "in file $GENLOCINFOFILE" >&6; }
rm genLocInfo.err genLocInfo.i
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed." >&5
printf "%s\n" "failed." >&6; }
as_fn_error $? "Problem with genLocInfo!" "$LINENO" 5
;;
esac
if test "$CALC_TICKADJ_MS" ; then
WANT_CALC_TICKADJ_MS_TRUE=
WANT_CALC_TICKADJ_MS_FALSE='#'
else
WANT_CALC_TICKADJ_MS_TRUE='#'
WANT_CALC_TICKADJ_MS_FALSE=
fi
if test -z "$NTPSWEEP_NI" ; then
INSTALL_NTPSWEEP_TRUE=
INSTALL_NTPSWEEP_FALSE='#'
else
INSTALL_NTPSWEEP_TRUE='#'
INSTALL_NTPSWEEP_FALSE=
fi
if test -z "$UPDATE_LEAP_NI" ; then
INSTALL_UPDATE_LEAP_TRUE=
INSTALL_UPDATE_LEAP_FALSE='#'
else
INSTALL_UPDATE_LEAP_TRUE='#'
INSTALL_UPDATE_LEAP_FALSE=
fi
if test -n "$ac_tool_prefix"; then
for ac_prog in ar lib "link -lib"
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
printf "%s\n" "$AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AR" && break
done
fi
if test -z "$AR"; then
ac_ct_AR=$AR
for ac_prog in ar lib "link -lib"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
printf "%s\n" "$ac_ct_AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then
AR="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
fi
: ${AR=ar}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5
printf %s "checking the archiver ($AR) interface... " >&6; }
if test ${am_cv_ar_interface+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
am_cv_ar_interface=ar
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int some_variable = 0;
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
(eval $am_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test "$ac_status" -eq 0; then
am_cv_ar_interface=ar
else
am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
(eval $am_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test "$ac_status" -eq 0; then
am_cv_ar_interface=lib
else
am_cv_ar_interface=unknown
fi
fi
rm -f conftest.lib libconftest.a
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
printf "%s\n" "$am_cv_ar_interface" >&6; }
case $am_cv_ar_interface in
ar)
;;
lib)
# Microsoft lib, so override with the ar-lib wrapper script.
# FIXME: It is wrong to rewrite AR.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__AR in this case,
# and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
# similar.
AR="$am_aux_dir/ar-lib $AR"
;;
unknown)
as_fn_error $? "could not determine $AR interface" "$LINENO" 5
;;
esac
# So far, the only shared library we might use is libopts.
# It's a small library - we might as well use a static version of it.
# Check whether --enable-shared was given.
if test ${enable_shared+y}
then :
enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_shared=no
fi
case `pwd` in
*\ * | *\ *)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac
macro_version='2.4.6'
macro_revision='2.4.6'
ltmain=$ac_aux_dir/ltmain.sh
# Backslashify metacharacters that are still active within
# double-quoted strings.
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
# Same as above, but do not quote variable references.
double_quote_subst='s/\(["`\\]\)/\\\1/g'
# Sed substitution to delay expansion of an escaped shell variable in a
# double_quote_subst'ed string.
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
# Sed substitution to delay expansion of an escaped single quote.
delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
# Sed substitution to avoid accidental globbing in evaled expressions
no_glob_subst='s/\*/\\\*/g'
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
printf %s "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='printf %s\n'
else
# Use this function as a fallback that always works.
func_fallback_echo ()
{
eval 'cat <<_LTECHO_EOF
$1
_LTECHO_EOF'
}
ECHO='func_fallback_echo'
fi
# func_echo_all arg...
# Invoke $ECHO with all args, space-separated.
func_echo_all ()
{
$ECHO ""
}
case $ECHO in
printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
printf "%s\n" "printf" >&6; } ;;
print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
printf "%s\n" "print -r" >&6; } ;;
*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
printf "%s\n" "cat" >&6; } ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
{ ac_script=; unset ac_script;}
if test -z "$SED"; then
ac_path_SED_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in sed gsed
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_SED_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_SED="$ac_path_SED"
ac_path_SED_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_SED_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
test -z "$SED" && SED=sed
Xsed="$SED -e 1s/^X//"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
printf %s "checking for fgrep... " >&6; }
if test ${ac_cv_path_FGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
if test -z "$FGREP"; then
ac_path_FGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in fgrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
*GNU*)
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'FGREP' >> "conftest.nl"
"$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_FGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_FGREP="$ac_path_FGREP"
ac_path_FGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_FGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_FGREP"; then
as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_FGREP=$FGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
printf "%s\n" "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
test -z "$GREP" && GREP=grep
# Check whether --with-gnu-ld was given.
if test ${with_gnu_ld+y}
then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[\\/]* | ?:[\\/]*)
re_direlt='/[^/][^/]*/\.\./'
# Canonicalize the pathname of ld
ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
done
test -z "$LD" && LD=$ac_prog
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test yes = "$with_gnu_ld"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
printf %s "checking for GNU ld... " >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
printf %s "checking for non-GNU ld... " >&6; }
fi
if test ${lt_cv_path_LD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
lt_cv_path_LD=$ac_dir/$ac_prog
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some variants of GNU ld only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
test no != "$with_gnu_ld" && break
;;
*)
test yes != "$with_gnu_ld" && break
;;
esac
fi
done
IFS=$lt_save_ifs
else
lt_cv_path_LD=$LD # Let the user override the test with a path.
fi
fi
LD=$lt_cv_path_LD
if test -n "$LD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
printf "%s\n" "$LD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
printf %s "(cached) " >&6
else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes
;;
*)
lt_cv_prog_gnu_ld=no
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
if test ${lt_cv_path_NM+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
else
lt_nm_to_check=${ac_tool_prefix}nm
if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
lt_nm_to_check="$lt_nm_to_check nm"
fi
for lt_tmp_nm in $lt_nm_to_check; do
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
tmp_nm=$ac_dir/$lt_tmp_nm
if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
# Tru64's nm complains that /dev/null is an invalid object file
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
case $build_os in
mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;;
esac
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B"
break 2
;;
*)
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
*/dev/null*)
lt_cv_path_NM="$tmp_nm -p"
break 2
;;
*)
lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
continue # so that we can try to find one that supports BSD flags
;;
esac
;;
esac
fi
done
IFS=$lt_save_ifs
done
: ${lt_cv_path_NM=no}
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
printf "%s\n" "$lt_cv_path_NM" >&6; }
if test no != "$lt_cv_path_NM"; then
NM=$lt_cv_path_NM
else
# Didn't find any BSD compatible name lister, look for dumpbin.
if test -n "$DUMPBIN"; then :
# Let the user override the test.
else
if test -n "$ac_tool_prefix"; then
for ac_prog in dumpbin "link -dump"
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DUMPBIN+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
printf "%s\n" "$DUMPBIN" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$DUMPBIN" && break
done
fi
if test -z "$DUMPBIN"; then
ac_ct_DUMPBIN=$DUMPBIN
for ac_prog in dumpbin "link -dump"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_DUMPBIN" && break
done
if test "x$ac_ct_DUMPBIN" = x; then
DUMPBIN=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DUMPBIN=$ac_ct_DUMPBIN
fi
fi
case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
*COFF*)
DUMPBIN="$DUMPBIN -symbols -headers"
;;
*)
DUMPBIN=:
;;
esac
fi
if test : != "$DUMPBIN"; then
NM=$DUMPBIN
fi
fi
test -z "$NM" && NM=nm
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
printf %s "checking the name lister ($NM) interface... " >&6; }
if test ${lt_cv_nm_interface+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
(eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
(eval echo "\"\$as_me:$LINENO: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
fi
rm -f conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
printf "%s\n" "$lt_cv_nm_interface" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
printf "%s\n" "no, using $LN_S" >&6; }
fi
# find the maximum length of command line arguments
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
printf %s "checking the maximum length of command line arguments... " >&6; }
if test ${lt_cv_sys_max_cmd_len+y}
then :
printf %s "(cached) " >&6
else $as_nop
i=0
teststring=ABCD
case $build_os in
msdosdjgpp*)
# On DJGPP, this test can blow up pretty badly due to problems in libc
# (any single argument exceeding 2000 bytes causes a buffer overrun
# during glob expansion). Even if it were fixed, the result of this
# check would be larger than it should be.
lt_cv_sys_max_cmd_len=12288; # 12K is about right
;;
gnu*)
# Under GNU Hurd, this test is not required because there is
# no limit to the length of command line arguments.
# Libtool will interpret -1 as no limit whatsoever
lt_cv_sys_max_cmd_len=-1;
;;
cygwin* | mingw* | cegcc*)
# On Win9x/ME, this test blows up -- it succeeds, but takes
# about 5 minutes as the teststring grows exponentially.
# Worse, since 9x/ME are not pre-emptively multitasking,
# you end up with a "frozen" computer, even though with patience
# the test eventually succeeds (with a max line length of 256k).
# Instead, let's just punt: use the minimum linelength reported by
# all of the supported platforms: 8192 (on NT/2K/XP).
lt_cv_sys_max_cmd_len=8192;
;;
mint*)
# On MiNT this can take a long time and run out of memory.
lt_cv_sys_max_cmd_len=8192;
;;
amigaos*)
# On AmigaOS with pdksh, this test takes hours, literally.
# So we just punt and use a minimum line length of 8192.
lt_cv_sys_max_cmd_len=8192;
;;
bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
# This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
elif test -x /usr/sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
else
lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
fi
# And add a safety zone
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
;;
interix*)
# We know the value 262144 and hardcode it with a safety zone (like BSD)
lt_cv_sys_max_cmd_len=196608
;;
os2*)
# The test takes a long time on OS/2.
lt_cv_sys_max_cmd_len=8192
;;
osf*)
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
# due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
# nice to cause kernel panics so lets avoid the loop below.
# First set a reasonable default.
lt_cv_sys_max_cmd_len=16384
#
if test -x /sbin/sysconfig; then
case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
*1*) lt_cv_sys_max_cmd_len=-1 ;;
esac
fi
;;
sco3.2v5*)
lt_cv_sys_max_cmd_len=102400
;;
sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then
lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
else
lt_cv_sys_max_cmd_len=32768
fi
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
if test -n "$lt_cv_sys_max_cmd_len" && \
test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
# Make teststring a little bigger before we do anything with it.
# a 1K string should be a reasonable start.
for i in 1 2 3 4 5 6 7 8; do
teststring=$teststring$teststring
done
SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
# If test is not a shell built-in, we'll probably end up computing a
# maximum length that is only half of the actual maximum length, but
# we can't tell.
while { test X`env echo "$teststring$teststring" 2>/dev/null` \
= "X$teststring$teststring"; } >/dev/null 2>&1 &&
test 17 != "$i" # 1/2 MB should be enough
do
i=`expr $i + 1`
teststring=$teststring$teststring
done
# Only check the string length outside the loop.
lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
teststring=
# Add a significant safety factor because C++ compilers can tack on
# massive amounts of additional arguments before passing them to the
# linker. It appears as though 1/2 is a usable value.
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
fi
;;
esac
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
printf "%s\n" "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len
: ${CP="cp -f"}
: ${MV="mv -f"}
: ${RM="rm -f"}
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
lt_unset=unset
else
lt_unset=false
fi
# test EBCDIC or ASCII
case `echo X|tr X '\101'` in
A) # ASCII based system
# \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
lt_SP2NL='tr \040 \012'
lt_NL2SP='tr \015\012 \040\040'
;;
*) # EBCDIC based system
lt_SP2NL='tr \100 \n'
lt_NL2SP='tr \r\n \100\100'
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
printf %s "checking how to convert $build file names to $host format... " >&6; }
if test ${lt_cv_to_host_file_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $host in
*-*-mingw* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
;;
*-*-cygwin* )
lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
;;
* ) # otherwise, assume *nix
lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
;;
esac
;;
*-*-cygwin* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
;;
*-*-cygwin* )
lt_cv_to_host_file_cmd=func_convert_file_noop
;;
* ) # otherwise, assume *nix
lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
;;
esac
;;
* ) # unhandled hosts (and "normal" native builds)
lt_cv_to_host_file_cmd=func_convert_file_noop
;;
esac
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
printf %s "checking how to convert $build file names to toolchain format... " >&6; }
if test ${lt_cv_to_tool_file_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
*-*-mingw* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
;;
esac
;;
esac
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
printf %s "checking for $LD option to reload object files... " >&6; }
if test ${lt_cv_ld_reload_flag+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_reload_flag='-r'
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
*) reload_flag=" $reload_flag" ;;
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
if test yes != "$GCC"; then
reload_cmds=false
fi
;;
darwin*)
if test yes = "$GCC"; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
else
reload_cmds='$LD$reload_flag -o $output$reload_objs'
fi
;;
esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OBJDUMP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
printf "%s\n" "$OBJDUMP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OBJDUMP"; then
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
OBJDUMP="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
fi
else
OBJDUMP="$ac_cv_prog_OBJDUMP"
fi
test -z "$OBJDUMP" && OBJDUMP=objdump
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
printf %s "checking how to recognize dependent libraries... " >&6; }
if test ${lt_cv_deplibs_check_method+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
# Need to set the preceding variable on all platforms that support
# interlibrary dependencies.
# 'none' -- dependencies not supported.
# 'unknown' -- same as none, but documents that we really don't know.
# 'pass_all' -- all dependencies passed with no checks.
# 'test_compile' -- check by making test program.
# 'file_magic [[regex]]' -- check by looking for files in library path
# that responds to the $file_magic_cmd with a given extended regex.
# If you have 'file' or equivalent on your system and you're not sure
# whether 'pass_all' will *always* work, you probably want this one.
case $host_os in
aix[4-9]*)
lt_cv_deplibs_check_method=pass_all
;;
beos*)
lt_cv_deplibs_check_method=pass_all
;;
bsdi[45]*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L'
lt_cv_file_magic_test_file=/shlib/libc.so
;;
cygwin*)
# func_win32_libid is a shell function defined in ltmain.sh
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
;;
mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
# func_win32_libid shell function, so use a weaker test based on 'objdump',
# unless we find 'file', for example because we are cross-compiling.
if ( file / ) >/dev/null 2>&1; then
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
# Keep this pattern in sync with the one in func_win32_libid.
lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
cegcc*)
# use the weaker test based on 'objdump'. See mingw*.
lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
lt_cv_file_magic_cmd='$OBJDUMP -f'
;;
darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all
;;
freebsd* | dragonfly*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in
i*86 )
# Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
esac
else
lt_cv_deplibs_check_method=pass_all
fi
;;
haiku*)
lt_cv_deplibs_check_method=pass_all
;;
hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file
case $host_cpu in
ia64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
;;
hppa*64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
;;
*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
lt_cv_file_magic_test_file=/usr/lib/libc.sl
;;
esac
;;
interix[3-9]*)
# PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
;;
irix5* | irix6* | nonstopux*)
case $LD in
*-32|*"-32 ") libmagic=32-bit;;
*-n32|*"-n32 ") libmagic=N32;;
*-64|*"-64 ") libmagic=64-bit;;
*) libmagic=never-match;;
esac
lt_cv_deplibs_check_method=pass_all
;;
# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
fi
;;
newos6*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=/usr/lib/libnls.so
;;
*nto* | *qnx*)
lt_cv_deplibs_check_method=pass_all
;;
openbsd* | bitrig*)
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
else
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
fi
;;
osf3* | osf4* | osf5*)
lt_cv_deplibs_check_method=pass_all
;;
rdos*)
lt_cv_deplibs_check_method=pass_all
;;
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
lt_cv_deplibs_check_method=pass_all
;;
sysv4 | sysv4.3*)
case $host_vendor in
motorola)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
;;
ncr)
lt_cv_deplibs_check_method=pass_all
;;
sequent)
lt_cv_file_magic_cmd='/bin/file'
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
;;
sni)
lt_cv_file_magic_cmd='/bin/file'
lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
lt_cv_file_magic_test_file=/lib/libc.so
;;
siemens)
lt_cv_deplibs_check_method=pass_all
;;
pc)
lt_cv_deplibs_check_method=pass_all
;;
esac
;;
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
os2*)
lt_cv_deplibs_check_method=pass_all
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
file_magic_glob=
want_nocaseglob=no
if test "$build" = "$host"; then
case $host_os in
mingw* | pw32*)
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
want_nocaseglob=yes
else
file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
fi
;;
esac
fi
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DLLTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
printf "%s\n" "$DLLTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_DLLTOOL"; then
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
DLLTOOL="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
fi
else
DLLTOOL="$ac_cv_prog_DLLTOOL"
fi
test -z "$DLLTOOL" && DLLTOOL=dlltool
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
printf %s "checking how to associate runtime and link libraries... " >&6; }
if test ${lt_cv_sharedlib_from_linklib_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
# two different shell functions defined in ltmain.sh;
# decide which one to use based on capabilities of $DLLTOOL
case `$DLLTOOL --help 2>&1` in
*--identify-strict*)
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
;;
*)
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
;;
esac
;;
*)
# fallback: assume linklib IS sharedlib
lt_cv_sharedlib_from_linklib_cmd=$ECHO
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
if test -n "$ac_tool_prefix"; then
for ac_prog in ar
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
printf "%s\n" "$AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AR" && break
done
fi
if test -z "$AR"; then
ac_ct_AR=$AR
for ac_prog in ar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
printf "%s\n" "$ac_ct_AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then
AR="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
fi
: ${AR=ar}
: ${AR_FLAGS=cru}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
printf %s "checking for archiver @FILE support... " >&6; }
if test ${lt_cv_ar_at_file+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
echo conftest.$ac_objext > conftest.lst
lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -eq "$ac_status"; then
# Ensure the archiver fails upon bogus file names.
rm -f conftest.$ac_objext libconftest.a
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -ne "$ac_status"; then
lt_cv_ar_at_file=@
fi
fi
rm -f conftest.* libconftest.a
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
printf "%s\n" "$lt_cv_ar_at_file" >&6; }
if test no = "$lt_cv_ar_at_file"; then
archiver_list_spec=
else
archiver_list_spec=$lt_cv_ar_at_file
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
printf "%s\n" "$STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
printf "%s\n" "$ac_ct_STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
test -z "$STRIP" && STRIP=:
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_RANLIB+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
printf "%s\n" "$RANLIB" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_RANLIB+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
printf "%s\n" "$ac_ct_RANLIB" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
RANLIB=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
fi
else
RANLIB="$ac_cv_prog_RANLIB"
fi
test -z "$RANLIB" && RANLIB=:
# Determine commands to create old-style static archives.
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
if test -n "$RANLIB"; then
case $host_os in
bitrig* | openbsd*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
;;
*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
;;
esac
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
fi
case $host_os in
darwin*)
lock_old_archive_extraction=yes ;;
*)
lock_old_archive_extraction=no ;;
esac
# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}
# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
# Allow CC to be a program name with arguments.
compiler=$CC
# Check for command to grab the raw symbol name followed by C symbol from nm.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
printf %s "checking command to parse $NM output from $compiler object... " >&6; }
if test ${lt_cv_sys_global_symbol_pipe+y}
then :
printf %s "(cached) " >&6
else $as_nop
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
# Character class describing NM global symbol codes.
symcode='[BCDEGRST]'
# Regexp to match symbols that can be accessed directly from C.
sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
# Define system-specific variables.
case $host_os in
aix*)
symcode='[BCDT]'
;;
cygwin* | mingw* | pw32* | cegcc*)
symcode='[ABCDGISTW]'
;;
hpux*)
if test ia64 = "$host_cpu"; then
symcode='[ABCDEGRST]'
fi
;;
irix* | nonstopux*)
symcode='[BCDEGRST]'
;;
osf*)
symcode='[BCDEGQRST]'
;;
solaris*)
symcode='[BDRT]'
;;
sco3.2v5*)
symcode='[DT]'
;;
sysv4.2uw2*)
symcode='[DT]'
;;
sysv5* | sco5v6* | unixware* | OpenUNIX*)
symcode='[ABDT]'
;;
sysv4)
symcode='[DFNSTU]'
;;
esac
# If we're using GNU nm, then use its standard symbol codes.
case `$NM -V 2>&1` in
*GNU* | *'with BFD'*)
symcode='[ABCDGIRSTW]' ;;
esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import.
lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
lt_c_name_lib_hook="\
-e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
-e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
else
# Disable hooks by default.
lt_cv_sys_global_symbol_to_import=
lt_cdecl_hook=
lt_c_name_hook=
lt_c_name_lib_hook=
fi
# Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n"\
$lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
$lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and
# symbol address.
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
$lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
# Handle CRLF in mingw tool chain
opt_cr=
case $build_os in
mingw*)
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
;;
esac
# Try without a prefix underscore, then with it.
for ac_symprfx in "" "_"; do
# Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
symxfrm="\\1 $ac_symprfx\\2 \\2"
# Write the raw and C identifiers.
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
# Also find C++ and __fastcall symbols from MSVC++,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\
" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
" \$ 0!~/External *\|/{next};"\
" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
" {if(hide[section]) next};"\
" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx"
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
# Check to see that the pipe works correctly.
pipe_works=no
rm -f conftest*
cat > conftest.$ac_ext <<_LT_EOF
#ifdef __cplusplus
extern "C" {
#endif
char nm_test_var;
void nm_test_func(void);
void nm_test_func(void){}
#ifdef __cplusplus
}
#endif
int main(){nm_test_var='a';nm_test_func();return(0);}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
(eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
else
rm -f "$nlist"T
fi
# Make sure that we snagged all the symbols we need.
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
/* DATA imports from DLLs on WIN32 can't be const, because runtime
relocations are performed -- see ld's documentation on pseudo-relocs. */
# define LT_DLSYM_CONST
#elif defined __osf__
/* This system does not cope well with relocations in const data. */
# define LT_DLSYM_CONST
#else
# define LT_DLSYM_CONST const
#endif
#ifdef __cplusplus
extern "C" {
#endif
_LT_EOF
# Now generate the symbol file.
eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
LT_DLSYM_CONST struct {
const char *name;
void *address;
}
lt__PROGRAM__LTX_preloaded_symbols[] =
{
{ "@PROGRAM@", (void *) 0 },
_LT_EOF
$SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
cat <<\_LT_EOF >> conftest.$ac_ext
{0, (void *) 0}
};
/* This works around a problem in FreeBSD linker */
#ifdef FREEBSD_WORKAROUND
static const void *lt_preloaded_setup() {
return lt__PROGRAM__LTX_preloaded_symbols;
}
#endif
#ifdef __cplusplus
}
#endif
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
lt_globsym_save_LIBS=$LIBS
lt_globsym_save_CFLAGS=$CFLAGS
LIBS=conftstm.$ac_objext
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest$ac_exeext; then
pipe_works=yes
fi
LIBS=$lt_globsym_save_LIBS
CFLAGS=$lt_globsym_save_CFLAGS
else
echo "cannot find nm_test_func in $nlist" >&5
fi
else
echo "cannot find nm_test_var in $nlist" >&5
fi
else
echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
fi
else
echo "$progname: failed program was:" >&5
cat conftest.$ac_ext >&5
fi
rm -rf conftest* conftst*
# Do not use the global_symbol_pipe unless it works.
if test yes = "$pipe_works"; then
break
else
lt_cv_sys_global_symbol_pipe=
fi
done
fi
if test -z "$lt_cv_sys_global_symbol_pipe"; then
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
printf "%s\n" "failed" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
printf "%s\n" "ok" >&6; }
fi
# Response file support.
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
nm_file_list_spec='@'
elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
nm_file_list_spec='@'
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
printf %s "checking for sysroot... " >&6; }
# Check whether --with-sysroot was given.
if test ${with_sysroot+y}
then :
withval=$with_sysroot;
else $as_nop
with_sysroot=no
fi
lt_sysroot=
case $with_sysroot in #(
yes)
if test yes = "$GCC"; then
lt_sysroot=`$CC --print-sysroot 2>/dev/null`
fi
;; #(
/*)
lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
;; #(
no|'')
;; #(
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
printf "%s\n" "$with_sysroot" >&6; }
as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
printf "%s\n" "${lt_sysroot:-no}" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
printf %s "checking for a working dd... " >&6; }
if test ${ac_cv_path_lt_DD+y}
then :
printf %s "(cached) " >&6
else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
if test -z "$lt_DD"; then
ac_path_lt_DD_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in dd
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_lt_DD" || continue
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
&& ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
fi
$ac_path_lt_DD_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_lt_DD"; then
:
fi
else
ac_cv_path_lt_DD=$lt_DD
fi
rm -f conftest.i conftest2.i conftest.out
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
printf %s "checking how to truncate binary pipes... " >&6; }
if test ${lt_cv_truncate_bin+y}
then :
printf %s "(cached) " >&6
else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
&& lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
fi
rm -f conftest.i conftest2.i conftest.out
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
printf "%s\n" "$lt_cv_truncate_bin" >&6; }
# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
func_cc_basename ()
{
for cc_temp in $*""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
}
# Check whether --enable-libtool-lock was given.
if test ${enable_libtool_lock+y}
then :
enableval=$enable_libtool_lock;
fi
test no = "$enable_libtool_lock" || enable_libtool_lock=yes
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case $host in
ia64-*-hpux*)
# Find out what ABI is being produced by ac_compile, and set mode
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
HPUX_IA64_MODE=32
;;
*ELF-64*)
HPUX_IA64_MODE=64
;;
esac
fi
rm -rf conftest*
;;
*-*-irix6*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo '#line '$LINENO' "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -melf32bsmip"
;;
*N32*)
LD="${LD-ld} -melf32bmipn32"
;;
*64-bit*)
LD="${LD-ld} -melf64bmip"
;;
esac
else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
;;
*N32*)
LD="${LD-ld} -n32"
;;
*64-bit*)
LD="${LD-ld} -64"
;;
esac
fi
fi
rm -rf conftest*
;;
mips64*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo '#line '$LINENO' "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
emul="${emul}32"
;;
*64-bit*)
emul="${emul}64"
;;
esac
case `/usr/bin/file conftest.$ac_objext` in
*MSB*)
emul="${emul}btsmip"
;;
*LSB*)
emul="${emul}ltsmip"
;;
esac
case `/usr/bin/file conftest.$ac_objext` in
*N32*)
emul="${emul}n32"
;;
esac
LD="${LD-ld} -m $emul"
fi
rm -rf conftest*
;;
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly. Note that the listed cases only cover the
# situations where additional linker options are needed (such as when
# doing 32-bit compilation for a host where ld defaults to 64-bit, or
# vice versa); the common cases where no linker options are needed do
# not appear in the list.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
*)
LD="${LD-ld} -m elf_i386"
;;
esac
;;
powerpc64le-*linux*)
LD="${LD-ld} -m elf32lppclinux"
;;
powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
LD="${LD-ld} -m elf_s390"
;;
sparc64-*linux*)
LD="${LD-ld} -m elf32_sparc"
;;
esac
;;
*64-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_x86_64_fbsd"
;;
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
powerpcle-*linux*)
LD="${LD-ld} -m elf64lppc"
;;
powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
LD="${LD-ld} -m elf64_s390"
;;
sparc*-*linux*)
LD="${LD-ld} -m elf64_sparc"
;;
esac
;;
esac
fi
rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -belf"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
printf %s "checking whether the C compiler needs -belf... " >&6; }
if test ${lt_cv_cc_needs_belf+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_cc_needs_belf=yes
else $as_nop
lt_cv_cc_needs_belf=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
if test yes != "$lt_cv_cc_needs_belf"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS=$SAVE_CFLAGS
fi
;;
*-*solaris*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*)
case $host in
i?86-*-solaris*|x86_64-*-solaris*)
LD="${LD-ld} -m elf_x86_64"
;;
sparc*-*-solaris*)
LD="${LD-ld} -m elf64_sparc"
;;
esac
# GNU ld 2.21 introduced _sol2 emulations. Use them if available.
if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
LD=${LD-ld}_sol2
fi
;;
*)
if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
LD="${LD-ld} -64"
fi
;;
esac
;;
esac
fi
rm -rf conftest*
;;
esac
need_locks=$enable_libtool_lock
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
printf "%s\n" "$MANIFEST_TOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
# Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_MANIFEST_TOOL" = x; then
MANIFEST_TOOL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
fi
else
MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
if test ${lt_cv_path_mainfest_tool+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
cat conftest.err >&5
if $GREP 'Manifest Tool' conftest.out > /dev/null; then
lt_cv_path_mainfest_tool=yes
fi
rm -f conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
case $host_os in
rhapsody* | darwin*)
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
printf "%s\n" "$DSYMUTIL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_DSYMUTIL"; then
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
DSYMUTIL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
fi
else
DSYMUTIL="$ac_cv_prog_DSYMUTIL"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_NMEDIT+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
printf "%s\n" "$NMEDIT" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_NMEDIT"; then
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_NMEDIT+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
printf "%s\n" "$ac_ct_NMEDIT" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
NMEDIT=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
fi
else
NMEDIT="$ac_cv_prog_NMEDIT"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LIPO+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
printf "%s\n" "$LIPO" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_LIPO"; then
ac_ct_LIPO=$LIPO
# Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_LIPO+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
printf "%s\n" "$ac_ct_LIPO" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_LIPO" = x; then
LIPO=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
LIPO=$ac_ct_LIPO
fi
else
LIPO="$ac_cv_prog_LIPO"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
printf "%s\n" "$OTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OTOOL"; then
ac_ct_OTOOL=$OTOOL
# Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
printf "%s\n" "$ac_ct_OTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL" = x; then
OTOOL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL=$ac_ct_OTOOL
fi
else
OTOOL="$ac_cv_prog_OTOOL"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL64+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
printf "%s\n" "$OTOOL64" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OTOOL64"; then
ac_ct_OTOOL64=$OTOOL64
# Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL64+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
printf "%s\n" "$ac_ct_OTOOL64" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL64" = x; then
OTOOL64=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL64=$ac_ct_OTOOL64
fi
else
OTOOL64="$ac_cv_prog_OTOOL64"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
printf %s "checking for -single_module linker flag... " >&6; }
if test ${lt_cv_apple_cc_single_mod+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
# by either setting the environment variable LT_MULTI_MODULE
# non-empty at configure time, or by adding -multi_module to the
# link flags.
rm -rf libconftest.dylib*
echo "int foo(void){return 1;}" > conftest.c
echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-dynamiclib -Wl,-single_module conftest.c" >&5
$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-dynamiclib -Wl,-single_module conftest.c 2>conftest.err
_lt_result=$?
# If there is a non-empty error log, and "single_module"
# appears in it, assume the flag caused a linker warning
if test -s conftest.err && $GREP single_module conftest.err; then
cat conftest.err >&5
# Otherwise, if the output was created with a 0 exit code from
# the compiler, it worked.
elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
lt_cv_apple_cc_single_mod=yes
else
cat conftest.err >&5
fi
rm -rf libconftest.dylib*
rm -f conftest.*
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
printf %s "checking for -exported_symbols_list linker flag... " >&6; }
if test ${lt_cv_ld_exported_symbols_list+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_ld_exported_symbols_list=yes
else $as_nop
lt_cv_ld_exported_symbols_list=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
printf %s "checking for -force_load linker flag... " >&6; }
if test ${lt_cv_ld_force_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
_lt_result=$?
if test -s conftest.err && $GREP force_load conftest.err; then
cat conftest.err >&5
elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
lt_cv_ld_force_load=yes
else
cat conftest.err >&5
fi
rm -f conftest.err libconftest.a conftest conftest.c
rm -rf conftest.dSYM
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
printf "%s\n" "$lt_cv_ld_force_load" >&6; }
case $host_os in
rhapsody* | darwin1.[012])
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
darwin*) # darwin 5.x on
# if running on 10.5 or later, the deployment target defaults
# to the OS version, if on x86, and 10.4, the deployment
# target defaults to 10.4. Don't you love it?
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
10.0,*86*-darwin8*|10.0,*-darwin[91]*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[012][,.]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
esac
if test yes = "$lt_cv_apple_cc_single_mod"; then
_lt_dar_single_mod='$single_module'
fi
if test yes = "$lt_cv_ld_exported_symbols_list"; then
_lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
else
_lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
fi
if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
_lt_dsymutil='~$DSYMUTIL $lib || :'
else
_lt_dsymutil=
fi
;;
esac
# func_munge_path_list VARIABLE PATH
# -----------------------------------
# VARIABLE is name of variable containing _space_ separated list of
# directories to be munged by the contents of PATH, which is string
# having a format:
# "DIR[:DIR]:"
# string "DIR[ DIR]" will be prepended to VARIABLE
# ":DIR[:DIR]"
# string "DIR[ DIR]" will be appended to VARIABLE
# "DIRP[:DIRP]::[DIRA:]DIRA"
# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
# "DIRA[ DIRA]" will be appended to VARIABLE
# "DIR[:DIR]"
# VARIABLE will be replaced by "DIR[ DIR]"
func_munge_path_list ()
{
case x$2 in
x)
;;
*:)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
;;
x:*)
eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
;;
*::*)
eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
;;
*)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
;;
esac
}
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
# Set options
enable_dlopen=no
enable_win32_dll=no
# Check whether --enable-static was given.
if test ${enable_static+y}
then :
enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_static=yes
fi
# Check whether --with-pic was given.
if test ${with_pic+y}
then :
withval=$with_pic; lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
pic_mode=default
fi
# Check whether --enable-fast-install was given.
if test ${enable_fast_install+y}
then :
enableval=$enable_fast_install; p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
no) enable_fast_install=no ;;
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_fast_install=yes
fi
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
printf %s "checking which variant of shared library versioning to provide... " >&6; }
# Check whether --with-aix-soname was given.
if test ${with_aix_soname+y}
then :
withval=$with_aix_soname; case $withval in
aix|svr4|both)
;;
*)
as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
;;
esac
lt_cv_with_aix_soname=$with_aix_soname
else $as_nop
if test ${lt_cv_with_aix_soname+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_with_aix_soname=aix
fi
with_aix_soname=$lt_cv_with_aix_soname
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
# and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
# Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
# the AIX toolchain works better with OBJECT_MODE set (default 32).
if test 64 = "${OBJECT_MODE-32}"; then
shared_archive_member_spec=shr_64
else
shared_archive_member_spec=shr
fi
fi
;;
*)
with_aix_soname=aix
;;
esac
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS=$ltmain
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
test -z "$LN_S" && LN_S="ln -s"
if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
printf %s "checking for objdir... " >&6; }
if test ${lt_cv_objdir+y}
then :
printf %s "(cached) " >&6
else $as_nop
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
lt_cv_objdir=.libs
else
# MS-DOS does not allow filenames that begin with a dot.
lt_cv_objdir=_libs
fi
rmdir .libs 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
printf "%s\n" "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
case $host_os in
aix3*)
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test set != "${COLLECT_NAMES+set}"; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
;;
esac
# Global variables:
ofile=libtool
can_build_shared=yes
# All known linkers require a '.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
old_CC=$CC
old_CFLAGS=$CFLAGS
# Set sane defaults for various variables
test -z "$CC" && CC=cc
test -z "$LTCC" && LTCC=$CC
test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
test -z "$LD" && LD=ld
test -z "$ac_objext" && ac_objext=o
func_cc_basename $compiler
cc_basename=$func_cc_basename_result
# Only perform the check for file, if the check method requires it
test -z "$MAGIC_CMD" && MAGIC_CMD=file
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
printf %s "checking for ${ac_tool_prefix}file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
*)
lt_save_MAGIC_CMD=$MAGIC_CMD
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
for ac_dir in $ac_dummy; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/${ac_tool_prefix}file"; then
lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
if test -n "$file_magic_test_file"; then
case $deplibs_check_method in
"file_magic "*)
file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
$EGREP "$file_magic_regex" > /dev/null; then
:
else
cat <<_LT_EOF 1>&2
*** Warning: the command libtool uses to detect shared libraries,
*** $file_magic_cmd, produces output that libtool cannot recognize.
*** The result is that libtool may fail to recognize shared libraries
*** as such. This will affect the creation of libtool libraries that
*** depend on shared libraries, but programs linked with such libtool
*** libraries will work regardless of this problem. Nevertheless, you
*** may want to report the problem to your system manager and/or to
*** bug-libtool@gnu.org
_LT_EOF
fi ;;
esac
fi
break
fi
done
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
esac
fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
printf "%s\n" "$MAGIC_CMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
printf %s "checking for file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
*)
lt_save_MAGIC_CMD=$MAGIC_CMD
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
for ac_dir in $ac_dummy; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/file"; then
lt_cv_path_MAGIC_CMD=$ac_dir/"file"
if test -n "$file_magic_test_file"; then
case $deplibs_check_method in
"file_magic "*)
file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
$EGREP "$file_magic_regex" > /dev/null; then
:
else
cat <<_LT_EOF 1>&2
*** Warning: the command libtool uses to detect shared libraries,
*** $file_magic_cmd, produces output that libtool cannot recognize.
*** The result is that libtool may fail to recognize shared libraries
*** as such. This will affect the creation of libtool libraries that
*** depend on shared libraries, but programs linked with such libtool
*** libraries will work regardless of this problem. Nevertheless, you
*** may want to report the problem to your system manager and/or to
*** bug-libtool@gnu.org
_LT_EOF
fi ;;
esac
fi
break
fi
done
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
esac
fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
printf "%s\n" "$MAGIC_CMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
else
MAGIC_CMD=:
fi
fi
fi
;;
esac
# Use C for the default configuration in the libtool script
lt_save_CC=$CC
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Source file extension for C test sources.
ac_ext=c
# Object file extension for compiled C test sources.
objext=o
objext=$objext
# Code to be used in simple compile tests
lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
lt_simple_link_test_code='int main(){return(0);}'
# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}
# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
# Allow CC to be a program name with arguments.
compiler=$CC
# Save the default compiler, since it gets overwritten when the other
# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
compiler_DEFAULT=$CC
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$RM conftest*
ac_outfile=conftest.$ac_objext
echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
$RM -r conftest*
## CAVEAT EMPTOR:
## There is no encapsulation within the following macros, do not change
## the running order or otherwise move them around unless you know exactly
## what you are doing...
if test -n "$compiler"; then
lt_prog_compiler_no_builtin_flag=
if test yes = "$GCC"; then
case $cc_basename in
nvcc*)
lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
*)
lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
if test ${lt_cv_prog_compiler_rtti_exceptions+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
# The option is referenced via a variable to avoid confusing sed.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_rtti_exceptions=yes
fi
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
else
:
fi
fi
lt_prog_compiler_wl=
lt_prog_compiler_pic=
lt_prog_compiler_static=
if test yes = "$GCC"; then
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_static='-static'
case $host_os in
aix*)
# All AIX code is PIC.
if test ia64 = "$host_cpu"; then
# AIX 5 now supports IA64 processor
lt_prog_compiler_static='-Bstatic'
fi
lt_prog_compiler_pic='-fPIC'
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
lt_prog_compiler_pic='-fPIC'
;;
m68k)
# FIXME: we need at least 68020 code to build shared libraries, but
# adding the '-m68020' flag to GCC prevents building anything better,
# like '-m68040'.
lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
;;
esac
;;
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
# (--disable-auto-import) libraries
lt_prog_compiler_pic='-DDLL_EXPORT'
case $host_os in
os2*)
lt_prog_compiler_static='$wl-static'
;;
esac
;;
darwin* | rhapsody*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
lt_prog_compiler_pic='-fno-common'
;;
haiku*)
# PIC is the default for Haiku.
# The "-static" flag exists, but is broken.
lt_prog_compiler_static=
;;
hpux*)
# PIC is the default for 64-bit PA HP-UX, but not for 32-bit
# PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
case $host_cpu in
hppa*64*)
# +Z the default
;;
*)
lt_prog_compiler_pic='-fPIC'
;;
esac
;;
interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
msdosdjgpp*)
# Just because we use GCC doesn't mean we suddenly get shared libraries
# on systems that don't support them.
lt_prog_compiler_can_build_shared=no
enable_shared=no
;;
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
lt_prog_compiler_pic='-fPIC -shared'
;;
sysv4*MP*)
if test -d /usr/nec; then
lt_prog_compiler_pic=-Kconform_pic
fi
;;
*)
lt_prog_compiler_pic='-fPIC'
;;
esac
case $cc_basename in
nvcc*) # Cuda Compiler Driver 2.2
lt_prog_compiler_wl='-Xlinker '
if test -n "$lt_prog_compiler_pic"; then
lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
fi
;;
esac
else
# PORTME Check for flag to pass linker flags through the system compiler.
case $host_os in
aix*)
lt_prog_compiler_wl='-Wl,'
if test ia64 = "$host_cpu"; then
# AIX 5 now supports IA64 processor
lt_prog_compiler_static='-Bstatic'
else
lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
fi
;;
darwin* | rhapsody*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
lt_prog_compiler_pic='-fno-common'
case $cc_basename in
nagfor*)
# NAG Fortran compiler
lt_prog_compiler_wl='-Wl,-Wl,,'
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
esac
;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
lt_prog_compiler_pic='-DDLL_EXPORT'
case $host_os in
os2*)
lt_prog_compiler_static='$wl-static'
;;
esac
;;
hpux9* | hpux10* | hpux11*)
lt_prog_compiler_wl='-Wl,'
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX.
case $host_cpu in
hppa*64*|ia64*)
# +Z the default
;;
*)
lt_prog_compiler_pic='+Z'
;;
esac
# Is there a better lt_prog_compiler_static that works with the bundled CC?
lt_prog_compiler_static='$wl-a ${wl}archive'
;;
irix5* | irix6* | nonstopux*)
lt_prog_compiler_wl='-Wl,'
# PIC (with -KPIC) is the default.
lt_prog_compiler_static='-non_shared'
;;
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
case $cc_basename in
# old Intel for x86_64, which still supported -KPIC.
ecc*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-static'
;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
# Lahey Fortran 8.1.
lf95*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
nagfor*)
# NAG Fortran compiler
lt_prog_compiler_wl='-Wl,-Wl,,'
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
tcc*)
# Fabrice Bellard et al's Tiny C Compiler
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fpic'
lt_prog_compiler_static='-Bstatic'
;;
ccc*)
lt_prog_compiler_wl='-Wl,'
# All Alpha code is PIC.
lt_prog_compiler_static='-non_shared'
;;
xl* | bgxl* | bgf* | mpixl*)
# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-qpic'
lt_prog_compiler_static='-qstaticlink'
;;
*)
case `$CC -V 2>&1 | sed 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl=''
;;
*Sun\ F* | *Sun*Fortran*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl='-Qoption ld '
;;
*Sun\ C*)
# Sun C 5.9
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl='-Wl,'
;;
*Intel*\ [CF]*Compiler*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
*Portland\ Group*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fpic'
lt_prog_compiler_static='-Bstatic'
;;
esac
;;
esac
;;
newsos6)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
lt_prog_compiler_pic='-fPIC -shared'
;;
osf3* | osf4* | osf5*)
lt_prog_compiler_wl='-Wl,'
# All OSF/1 code is PIC.
lt_prog_compiler_static='-non_shared'
;;
rdos*)
lt_prog_compiler_static='-non_shared'
;;
solaris*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
esac
;;
sunos4*)
lt_prog_compiler_wl='-Qoption ld '
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
sysv4 | sysv4.2uw2* | sysv4.3*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
sysv4*MP*)
if test -d /usr/nec; then
lt_prog_compiler_pic='-Kconform_pic'
lt_prog_compiler_static='-Bstatic'
fi
;;
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
unicos*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_can_build_shared=no
;;
uts4*)
lt_prog_compiler_pic='-pic'
lt_prog_compiler_static='-Bstatic'
;;
*)
lt_prog_compiler_can_build_shared=no
;;
esac
fi
case $host_os in
# For platforms that do not support PIC, -DPIC is meaningless:
*djgpp*)
lt_prog_compiler_pic=
;;
*)
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
printf %s "checking for $compiler option to produce PIC... " >&6; }
if test ${lt_cv_prog_compiler_pic+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
if test ${lt_cv_prog_compiler_pic_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
# The option is referenced via a variable to avoid confusing sed.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_pic_works=yes
fi
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
if test yes = "$lt_cv_prog_compiler_pic_works"; then
case $lt_prog_compiler_pic in
"" | " "*) ;;
*) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
esac
else
lt_prog_compiler_pic=
lt_prog_compiler_can_build_shared=no
fi
fi
#
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
if test ${lt_cv_prog_compiler_static_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&5
$ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_static_works=yes
fi
else
lt_cv_prog_compiler_static_works=yes
fi
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
if test yes = "$lt_cv_prog_compiler_static_works"; then
:
else
lt_prog_compiler_static=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
mkdir out
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
$SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o=yes
fi
fi
chmod u+w . 2>&5
$RM conftest*
# SGI C++ compiler will create directory out/ii_files/ for
# template instantiation
test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
$RM out/* && rmdir out
cd ..
$RM -r conftest
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
mkdir out
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
$SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o=yes
fi
fi
chmod u+w . 2>&5
$RM conftest*
# SGI C++ compiler will create directory out/ii_files/ for
# template instantiation
test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
$RM out/* && rmdir out
cd ..
$RM -r conftest
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
hard_links=nottested
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
# do not overwrite the value of need_locks provided by the user
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$RM conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
printf "%s\n" "$hard_links" >&6; }
if test no = "$hard_links"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
need_locks=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
allow_undefined_flag=
always_export_symbols=no
archive_cmds=
archive_expsym_cmds=
compiler_needs_object=no
enable_shared_with_static_runtimes=no
export_dynamic_flag_spec=
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
hardcode_automatic=no
hardcode_direct=no
hardcode_direct_absolute=no
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
inherit_rpath=no
link_all_deplibs=unknown
module_cmds=
module_expsym_cmds=
old_archive_from_new_cmds=
old_archive_from_expsyms_cmds=
thread_safe_flag_spec=
whole_archive_flag_spec=
# include_expsyms should be a list of space-separated symbols to be *always*
# included in the symbol list
include_expsyms=
# exclude_expsyms can be an extended regexp of symbols to exclude
# it will be wrapped by ' (' and ')$', so one must not match beginning or
# end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
# as well as any symbol that contains 'd'.
exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
# Exclude shared library initialization/finalization symbols.
extract_expsyms_cmds=
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
openbsd* | bitrig*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
# On some targets, GNU ld is compatible enough with the native linker
# that we're better off using the native interface for both.
lt_use_gnu_ld_interface=no
if test yes = "$with_gnu_ld"; then
case $host_os in
aix*)
# The AIX port of GNU ld has always aspired to compatibility
# with the native linker. However, as the warning in the GNU ld
# block says, versions before 2.19.5* couldn't really create working
# shared libraries, regardless of the interface used.
case `$LD -v 2>&1` in
*\ \(GNU\ Binutils\)\ 2.19.5*) ;;
*\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
*\ \(GNU\ Binutils\)\ [3-9]*) ;;
*)
lt_use_gnu_ld_interface=yes
;;
esac
;;
*)
lt_use_gnu_ld_interface=yes
;;
esac
fi
if test yes = "$lt_use_gnu_ld_interface"; then
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='$wl'
# Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary.
runpath_var=LD_RUN_PATH
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
export_dynamic_flag_spec='$wl--export-dynamic'
# ancient GNU ld didn't support --whole-archive et. al.
if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
else
whole_archive_flag_spec=
fi
supports_anon_versioning=no
case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;;
*\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
*\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
*\ 2.11.*) ;; # other 2.11 versions
*) supports_anon_versioning=yes ;;
esac
# See if GNU ld supports shared libraries.
case $host_os in
aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test ia64 != "$host_cpu"; then
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: the GNU linker, at least up to release 2.19, is reported
*** to be unable to reliably create shared libraries on AIX.
*** Therefore, libtool is disabling shared libraries support. If you
*** really care for shared libraries, you may want to install binutils
*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
*** You will then need to restart the configuration process.
_LT_EOF
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds=''
;;
m68k)
archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
esac
;;
beos*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
allow_undefined_flag=unsupported
# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
# support --undefined. This deserves some investigation. FIXME
archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32* | cegcc*)
# _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
# as there is no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
export_dynamic_flag_spec='$wl--export-all-symbols'
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
# If the export-symbols file already is a .def file, use it as
# is; otherwise, prepend EXPORTS...
archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
cp $export_symbols $output_objdir/$soname.def;
else
echo EXPORTS > $output_objdir/$soname.def;
cat $export_symbols >> $output_objdir/$soname.def;
fi~
$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
else
ld_shlibs=no
fi
;;
haiku*)
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
link_all_deplibs=yes
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
shrext_cmds=.dll
archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
prefix_cmds="$SED"~
if test EXPORTS = "`$SED 1q $export_symbols`"; then
prefix_cmds="$prefix_cmds -e 1d";
fi~
prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
;;
interix[3-9]*)
hardcode_direct=no
hardcode_shlibpath_var=no
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
export_dynamic_flag_spec='$wl-E'
# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
# Instead, shared libraries are loaded at an image base (0x10000000 by
# default) and relocated if they conflict, which is a slow very memory
# consuming and fragmenting process. To avoid this, we pick a random,
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space.
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
tmp_diet=no
if test linux-dietlibc = "$host_os"; then
case $cc_basename in
diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
esac
fi
if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
&& test no = "$tmp_diet"
then
tmp_addflag=' $pic_flag'
tmp_sharedflag='-shared'
case $cc_basename,$host_cpu in
pgcc*) # Portland Group C compiler
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
tmp_addflag=' $pic_flag'
;;
pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group f77 and f90 compilers
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
tmp_addflag=' $pic_flag -Mnomain' ;;
ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
tmp_addflag=' -i_dynamic' ;;
efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
tmp_addflag=' -i_dynamic -nofor_main' ;;
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
lf95*) # Lahey Fortran 8.1
whole_archive_flag_spec=
tmp_sharedflag='--shared' ;;
nagfor*) # NAGFOR 5.3
tmp_sharedflag='-Wl,-shared' ;;
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
tmp_sharedflag='-qmkshrobj'
tmp_addflag= ;;
nvcc*) # Cuda Compiler Driver 2.2
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes
;;
esac
case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*) # Sun C 5.9
whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes
tmp_sharedflag='-G' ;;
*Sun\ F*) # Sun Fortran 8.3
tmp_sharedflag='-G' ;;
esac
archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi
case $cc_basename in
tcc*)
export_dynamic_flag_spec='-rdynamic'
;;
xlf* | bgf* | bgxlf* | mpixlf*)
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi
;;
esac
else
ld_shlibs=no
fi
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
fi
;;
solaris*)
if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: The releases 2.8.* of the GNU linker cannot reliably
*** create shared libraries on Solaris systems. Therefore, libtool
*** is disabling shared libraries support. We urge you to upgrade GNU
*** binutils to release 2.9.1 or newer. Another option is to modify
*** your PATH or compiler configuration so that the native linker is
*** used, and then restart.
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
*** reliably create shared libraries on SCO systems. Therefore, libtool
*** is disabling shared libraries support. We urge you to upgrade GNU
*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
*** your PATH or compiler configuration so that the native linker is
*** used, and then restart.
_LT_EOF
;;
*)
# For security reasons, it is highly recommended that you always
# use absolute paths for naming shared libraries, and exclude the
# DT_RUNPATH tag from executables and libraries. But doing so
# requires that you compile everything twice, which is a pain.
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
esac
;;
sunos4*)
archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
wlarc=
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
esac
if test no = "$ld_shlibs"; then
runpath_var=
hardcode_libdir_flag_spec=
export_dynamic_flag_spec=
whole_archive_flag_spec=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
case $host_os in
aix3*)
allow_undefined_flag=unsupported
always_export_symbols=yes
archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix[4-9]*)
if test ia64 = "$host_cpu"; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
exp_sym_flag='-Bexport'
no_entry_flag=
else
# If we're using GNU nm, then we don't want the "-C" option.
# -C means demangle to GNU nm, but means don't demangle to AIX nm.
# Without the "-l" option, or with the "-B" option, AIX nm treats
# weak defined symbols like other global defined symbols, whereas
# GNU nm marks them as "W".
# While the 'weak' keyword is ignored in the Export File, we need
# it in the Import File for the 'aix-soname' feature, so we have
# to replace the "-B" option with "-P" for AIX nm.
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# have runtime linking enabled, and use it for executables.
# For shared libraries, we enable/disable runtime linking
# depending on the kind of the shared library created -
# when "with_aix_soname,aix_use_runtimelinking" is:
# "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
# "aix,yes" lib.so shared, rtl:yes, for executables
# lib.a static archive
# "both,no" lib.so.V(shr.o) shared, rtl:yes
# lib.a(lib.so.V) shared, rtl:no, for executables
# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
# lib.a(lib.so.V) shared, rtl:no
# "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
# lib.a static archive
case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
aix_use_runtimelinking=yes
break
fi
done
if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
# With aix-soname=svr4, we create the lib.so.V shared archives only,
# so we don't have lib.a shared libs to link our executables.
# We have to force runtime linking in this case.
aix_use_runtimelinking=yes
LDFLAGS="$LDFLAGS -Wl,-brtl"
fi
;;
esac
exp_sym_flag='-bexport'
no_entry_flag='-bnoentry'
fi
# When large executables or shared objects are built, AIX ld can
# have problems creating the table of contents. If linking a library
# or program results in "error TOC overflow" add -mminimal-toc to
# CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
# enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
archive_cmds=''
hardcode_direct=yes
hardcode_direct_absolute=yes
hardcode_libdir_separator=':'
link_all_deplibs=yes
file_list_spec='$wl-f,'
case $with_aix_soname,$aix_use_runtimelinking in
aix,*) ;; # traditional, no import file
svr4,* | *,yes) # use import file
# The Import File defines what to hardcode.
hardcode_direct=no
hardcode_direct_absolute=no
;;
esac
if test yes = "$GCC"; then
case $host_os in aix4.[012]|aix4.[012].*)
# We only want to do this on AIX 4.2 and lower, the check
# below for broken collect2 doesn't work under 4.3+
collect2name=`$CC -print-prog-name=collect2`
if test -f "$collect2name" &&
strings "$collect2name" | $GREP resolve_lib_name >/dev/null
then
# We have reworked collect2
:
else
# We have old collect2
hardcode_direct=unsupported
# It fails to find uninstalled libraries when the uninstalled
# path is not listed in the libpath. Setting hardcode_minus_L
# to unsupported forces relinking
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
;;
esac
shared_flag='-shared'
if test yes = "$aix_use_runtimelinking"; then
shared_flag="$shared_flag "'$wl-G'
fi
# Need to ensure runtime linking is disabled for the traditional
# shared library, or the linker may eventually find shared libraries
# /with/ Import File - we do not want to mix them.
shared_flag_aix='-shared'
shared_flag_svr4='-shared $wl-G'
else
# not using gcc
if test ia64 = "$host_cpu"; then
# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
# chokes on -Wl,-G. The following line is correct:
shared_flag='-G'
else
if test yes = "$aix_use_runtimelinking"; then
shared_flag='$wl-G'
else
shared_flag='$wl-bM:SRE'
fi
shared_flag_aix='$wl-bM:SRE'
shared_flag_svr4='$wl-G'
fi
fi
export_dynamic_flag_spec='$wl-bexpall'
# It seems that -bexpall does not export symbols beginning with
# underscore (_), so it is better to generate a list of symbols to export.
always_export_symbols=yes
if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
# Warning - without using the other runtime loading flags (-brtl),
# -berok will link without error, but may produce a broken library.
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
/^0/ {
s/^0 *\([^ ]*\) *$/\1/
p
}
}'
lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
fi
aix_libpath=$lt_cv_aix_libpath_
fi
hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
else
if test ia64 = "$host_cpu"; then
hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
allow_undefined_flag="-z nodefs"
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
else
# Determine the default libpath from the value encoded in an
# empty executable.
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
/^0/ {
s/^0 *\([^ ]*\) *$/\1/
p
}
}'
lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
fi
aix_libpath=$lt_cv_aix_libpath_
fi
hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
# -berok will link without error, but may produce a broken library.
no_undefined_flag=' $wl-bernotok'
allow_undefined_flag=' $wl-berok'
if test yes = "$with_gnu_ld"; then
# We only use this code for GNU lds that support --whole-archive.
whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
else
# Exported symbols can be pulled into shared objects from archives
whole_archive_flag_spec='$convenience'
fi
archive_cmds_need_lc=yes
archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
# -brtl affects multiple linker settings, -berok does not and is overridden later
compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
if test svr4 != "$with_aix_soname"; then
# This is similar to how AIX traditionally builds its shared libraries.
archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
fi
if test aix != "$with_aix_soname"; then
archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
else
# used by -dlpreopen to get the symbols
archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
fi
archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
fi
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds=''
;;
m68k)
archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
esac
;;
bsdi[45]*)
export_dynamic_flag_spec=-rdynamic
;;
cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
cl*)
# Native MSVC
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
always_export_symbols=yes
file_list_spec='@'
# Tell ltmain to make .lib files, not .a files.
libext=lib
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
cp "$export_symbols" "$output_objdir/$soname.def";
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
else
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
fi~
$CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
linknames='
# The linker will not automatically build a static lib if we build a DLL.
# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
enable_shared_with_static_runtimes=yes
exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
# Don't use ranlib
old_postinstall_cmds='chmod 644 $oldlib'
postlink_cmds='lt_outputfile="@OUTPUT@"~
lt_tool_outputfile="@TOOL_OUTPUT@"~
case $lt_outputfile in
*.exe|*.EXE) ;;
*)
lt_outputfile=$lt_outputfile.exe
lt_tool_outputfile=$lt_tool_outputfile.exe
;;
esac~
if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
$MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
$RM "$lt_outputfile.manifest";
fi'
;;
*)
# Assume MSVC wrapper
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files.
libext=lib
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
# The linker will automatically build a .lib file if we build a DLL.
old_archive_from_new_cmds='true'
# FIXME: Should let the user specify the lib program.
old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
enable_shared_with_static_runtimes=yes
;;
esac
;;
darwin* | rhapsody*)
archive_cmds_need_lc=no
hardcode_direct=no
hardcode_automatic=yes
hardcode_shlibpath_var=unsupported
if test yes = "$lt_cv_ld_force_load"; then
whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
else
whole_archive_flag_spec=''
fi
link_all_deplibs=yes
allow_undefined_flag=$_lt_dar_allow_undefined
case $cc_basename in
ifort*|nagfor*) _lt_dar_can_shared=yes ;;
*) _lt_dar_can_shared=$GCC ;;
esac
if test yes = "$_lt_dar_can_shared"; then
output_verbose_link_cmd=func_echo_all
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
else
ld_shlibs=no
fi
;;
dgux*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_shlibpath_var=no
;;
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
# support. Future versions do this automatically, but an explicit c++rt0.o
# does not break anything, and helps significantly (at the cost of a little
# extra space).
freebsd2.2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
hpux9*)
if test yes = "$GCC"; then
archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
fi
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
export_dynamic_flag_spec='$wl-E'
;;
hpux10*)
if test yes,no = "$GCC,$with_gnu_ld"; then
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
if test no = "$with_gnu_ld"; then
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
hardcode_direct_absolute=yes
export_dynamic_flag_spec='$wl-E'
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
fi
;;
hpux11*)
if test yes,no = "$GCC,$with_gnu_ld"; then
case $host_cpu in
hppa*64*)
archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
;;
*)
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
;;
esac
else
case $host_cpu in
hppa*64*)
archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
;;
*)
# Older versions of the 11.00 compiler do not understand -b yet
# (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
printf %s "checking if $CC understands -b... " >&6; }
if test ${lt_cv_prog_compiler__b+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&5
$ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler__b=yes
fi
else
lt_cv_prog_compiler__b=yes
fi
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
if test yes = "$lt_cv_prog_compiler__b"; then
archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
;;
esac
fi
if test no = "$with_gnu_ld"; then
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
case $host_cpu in
hppa*64*|ia64*)
hardcode_direct=no
hardcode_shlibpath_var=no
;;
*)
hardcode_direct=yes
hardcode_direct_absolute=yes
export_dynamic_flag_spec='$wl-E'
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
if test yes = "$GCC"; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
# Try to use the -exported_symbol ld option, if it does not
# work, assume that -exports_file does not work either and
# implicitly export all symbols.
# This should be the same for all languages, so no per-tag cache variable.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
if test ${lt_cv_irix_exported_symbol+y}
then :
printf %s "(cached) " >&6
else $as_nop
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo (void) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_irix_exported_symbol=yes
else $as_nop
lt_cv_irix_exported_symbol=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
fi
archive_cmds_need_lc='no'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
inherit_rpath=yes
link_all_deplibs=yes
;;
linux*)
case $cc_basename in
tcc*)
# Fabrice Bellard et al's Tiny C Compiler
ld_shlibs=yes
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
;;
esac
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
fi
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
newsos6)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
hardcode_shlibpath_var=no
;;
*nto* | *qnx*)
;;
openbsd* | bitrig*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
hardcode_shlibpath_var=no
hardcode_direct_absolute=yes
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
export_dynamic_flag_spec='$wl-E'
else
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
fi
else
ld_shlibs=no
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
shrext_cmds=.dll
archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
prefix_cmds="$SED"~
if test EXPORTS = "`$SED 1q $export_symbols`"; then
prefix_cmds="$prefix_cmds -e 1d";
fi~
prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
;;
osf3*)
if test yes = "$GCC"; then
allow_undefined_flag=' $wl-expect_unresolved $wl\*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
else
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
fi
archive_cmds_need_lc='no'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test yes = "$GCC"; then
allow_undefined_flag=' $wl-expect_unresolved $wl\*'
archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
$CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
# Both c and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
archive_cmds_need_lc='no'
hardcode_libdir_separator=:
;;
solaris*)
no_undefined_flag=' -z defs'
if test yes = "$GCC"; then
wlarc='$wl'
archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
wlarc=''
archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
;;
*)
wlarc='$wl'
archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
;;
esac
fi
hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
# The compiler driver will combine and reorder linker options,
# but understands '-z linker_flag'. GCC discards it without '$wl',
# but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
if test yes = "$GCC"; then
whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
else
whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
fi
;;
esac
link_all_deplibs=yes
;;
sunos4*)
if test sequent = "$host_vendor"; then
# Use $CC to link under sequent, because it throws in some extra .o
# files that make .init and .fini sections work.
archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
fi
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
sysv4)
case $host_vendor in
sni)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes # is this really true???
;;
siemens)
## LD is ld it makes a PLAMLIB
## CC just makes a GrossModule.
archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
reload_cmds='$CC -r -o $output$reload_objs'
hardcode_direct=no
;;
motorola)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
runpath_var='LD_RUN_PATH'
hardcode_shlibpath_var=no
;;
sysv4.3*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_shlibpath_var=no
export_dynamic_flag_spec='-Bexport'
;;
sysv4*MP*)
if test -d /usr/nec; then
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_shlibpath_var=no
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
fi
;;
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
no_undefined_flag='$wl-z,text'
archive_cmds_need_lc=no
hardcode_shlibpath_var=no
runpath_var='LD_RUN_PATH'
if test yes = "$GCC"; then
archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
fi
;;
sysv5* | sco3.2v5* | sco5v6*)
# Note: We CANNOT use -z defs as we might desire, because we do not
# link with -lc, and that would cause any symbols used from libc to
# always be unresolved, which means just about no library would
# ever link correctly. If we're not using GNU ld we use -z text
# though, which does catch some bad symbols but isn't as heavy-handed
# as -z defs.
no_undefined_flag='$wl-z,text'
allow_undefined_flag='$wl-z,nodefs'
archive_cmds_need_lc=no
hardcode_shlibpath_var=no
hardcode_libdir_flag_spec='$wl-R,$libdir'
hardcode_libdir_separator=':'
link_all_deplibs=yes
export_dynamic_flag_spec='$wl-Bexport'
runpath_var='LD_RUN_PATH'
if test yes = "$GCC"; then
archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
fi
;;
uts4*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_shlibpath_var=no
;;
*)
ld_shlibs=no
;;
esac
if test sni = "$host_vendor"; then
case $host in
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
export_dynamic_flag_spec='$wl-Blargedynsym'
;;
esac
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
printf "%s\n" "$ld_shlibs" >&6; }
test no = "$ld_shlibs" && can_build_shared=no
with_gnu_ld=$with_gnu_ld
#
# Do we need to explicitly link libc?
#
case "x$archive_cmds_need_lc" in
x|xyes)
# Assume -lc should be added
archive_cmds_need_lc=yes
if test yes,yes = "$GCC,$enable_shared"; then
case $archive_cmds in
*'~'*)
# FIXME: we may have to deal with multi-command sequences.
;;
'$CC '*)
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
printf %s "checking whether -lc should be explicitly linked in... " >&6; }
if test ${lt_cv_archive_cmds_need_lc+y}
then :
printf %s "(cached) " >&6
else $as_nop
$RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
libobjs=conftest.$ac_objext
deplibs=
wl=$lt_prog_compiler_wl
pic_flag=$lt_prog_compiler_pic
compiler_flags=-v
linker_flags=-v
verstring=
output_objdir=.
libname=conftest
lt_save_allow_undefined_flag=$allow_undefined_flag
allow_undefined_flag=
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
lt_cv_archive_cmds_need_lc=no
else
lt_cv_archive_cmds_need_lc=yes
fi
allow_undefined_flag=$lt_save_allow_undefined_flag
else
cat conftest.err 1>&5
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
printf %s "checking dynamic linker characteristics... " >&6; }
if test yes = "$GCC"; then
case $host_os in
darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
*) lt_awk_arg='/^libraries:/' ;;
esac
case $host_os in
mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
*) lt_sed_strip_eq='s|=/|/|g' ;;
esac
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
case $lt_search_path_spec in
*\;*)
# if the path contains ";" then we assume it to be the separator
# otherwise default to the standard path separator (i.e. ":") - it is
# assumed that no part of a normal pathname contains ";" but that should
# okay in the real world where ";" in dirpaths is itself problematic.
lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
;;
*)
lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
;;
esac
# Ok, now we have the path, separated by spaces, we can step through it
# and add multilib dir if necessary...
lt_tmp_lt_search_path_spec=
lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
# ...but if some path component already ends with the multilib dir we assume
# that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
case "$lt_multi_os_dir; $lt_search_path_spec " in
"/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
lt_multi_os_dir=
;;
esac
for lt_sys_path in $lt_search_path_spec; do
if test -d "$lt_sys_path$lt_multi_os_dir"; then
lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
elif test -n "$lt_multi_os_dir"; then
test -d "$lt_sys_path" && \
lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
fi
done
lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
BEGIN {RS = " "; FS = "/|\n";} {
lt_foo = "";
lt_count = 0;
for (lt_i = NF; lt_i > 0; lt_i--) {
if ($lt_i != "" && $lt_i != ".") {
if ($lt_i == "..") {
lt_count++;
} else {
if (lt_count == 0) {
lt_foo = "/" $lt_i lt_foo;
} else {
lt_count--;
}
}
}
}
if (lt_foo != "") { lt_freq[lt_foo]++; }
if (lt_freq[lt_foo] == 1) { print lt_foo; }
}'`
# AWK program above erroneously prepends '/' to C:/dos/paths
# for these hosts.
case $host_os in
mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
$SED 's|/\([A-Za-z]:\)|\1|g'` ;;
esac
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
else
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
fi
library_names_spec=
libname_spec='lib$name'
soname_spec=
shrext_cmds=.so
postinstall_cmds=
postuninstall_cmds=
finish_cmds=
finish_eval=
shlibpath_var=
shlibpath_overrides_runpath=unknown
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
need_lib_prefix=unknown
hardcode_into_libs=no
# when you set need_version to no, make sure it does not cause -set_version
# flags to be left without arguments
need_version=unknown
case $host_os in
aix3*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
shlibpath_var=LIBPATH
# AIX 3 has no versioning support, so we append a major version to the name.
soname_spec='$libname$release$shared_ext$major'
;;
aix[4-9]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
hardcode_into_libs=yes
if test ia64 = "$host_cpu"; then
# AIX 5 supports IA64
library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
else
# With GCC up to 2.95.x, collect2 would create an import file
# for dependence libraries. The import file would start with
# the line '#! .'. This would cause the generated library to
# depend on '.', always an invalid library. This was fixed in
# development snapshots of GCC prior to 3.0.
case $host_os in
aix4 | aix4.[01] | aix4.[01].*)
if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
echo ' yes '
echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
:
else
can_build_shared=no
fi
;;
esac
# Using Import Files as archive members, it is possible to support
# filename-based versioning of shared library archives on AIX. While
# this would work for both with and without runtime linking, it will
# prevent static linking of such archives. So we do filename-based
# shared library versioning with .so extension only, which is used
# when both runtime linking and shared linking is enabled.
# Unfortunately, runtime linking may impact performance, so we do
# not want this to be the default eventually. Also, we use the
# versioned .so libs for executables only if there is the -brtl
# linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
# To allow for filename-based versioning support, we need to create
# libNAME.so.V as an archive file, containing:
# *) an Import File, referring to the versioned filename of the
# archive as well as the shared archive member, telling the
# bitwidth (32 or 64) of that shared object, and providing the
# list of exported symbols of that shared object, eventually
# decorated with the 'weak' keyword
# *) the shared object with the F_LOADONLY flag set, to really avoid
# it being seen by the linker.
# At run time we better use the real file rather than another symlink,
# but for link time we create the symlink libNAME.so -> libNAME.so.V
case $with_aix_soname,$aix_use_runtimelinking in
# AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
# soname into executable. Probably we can add versioning support to
# collect2, so additional links can be useful in future.
aix,yes) # traditional libtool
dynamic_linker='AIX unversionable lib.so'
# If using run time linking (on AIX 4.2 or later) use lib<name>.so
# instead of lib<name>.a to let people know that these are not
# typical AIX shared libraries.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
;;
aix,no) # traditional AIX only
dynamic_linker='AIX lib.a(lib.so.V)'
# We preserve .a as extension for shared libraries through AIX4.2
# and later when we are not doing run time linking.
library_names_spec='$libname$release.a $libname.a'
soname_spec='$libname$release$shared_ext$major'
;;
svr4,*) # full svr4 only
dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
# We do not specify a path in Import Files, so LIBPATH fires.
shlibpath_overrides_runpath=yes
;;
*,yes) # both, prefer svr4
dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
# unpreferred sharedlib libNAME.a needs extra handling
postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
# We do not specify a path in Import Files, so LIBPATH fires.
shlibpath_overrides_runpath=yes
;;
*,no) # both, prefer aix
dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
library_names_spec='$libname$release.a $libname.a'
soname_spec='$libname$release$shared_ext$major'
# unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
;;
esac
shlibpath_var=LIBPATH
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# Since July 2007 AmigaOS4 officially supports .so libraries.
# When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
;;
m68k)
library_names_spec='$libname.ixlibrary $libname.a'
# Create ${libname}_ixlibrary.a entries in /sys/libs.
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
;;
esac
;;
beos*)
library_names_spec='$libname$shared_ext'
dynamic_linker="$host_os ld.so"
shlibpath_var=LIBRARY_PATH
;;
bsdi[45]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
# the default ld.so.conf also contains /usr/contrib/lib and
# /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
# libtool to hard-code these into programs
;;
cygwin* | mingw* | pw32* | cegcc*)
version_type=windows
shrext_cmds=.dll
need_version=no
need_lib_prefix=no
case $GCC,$cc_basename in
yes,*)
# gcc
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname~
chmod a+x \$dldir/$dlname~
if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
shlibpath_overrides_runpath=yes
case $host_os in
cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
;;
mingw* | cegcc*)
# MinGW DLLs use traditional 'lib' prefix
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib'
library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
esac
dynamic_linker='Win32 ld.exe'
;;
*,cl*)
# Native MSVC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
case $build_os in
mingw*)
sys_lib_search_path_spec=
lt_save_ifs=$IFS
IFS=';'
for lt_path in $LIB
do
IFS=$lt_save_ifs
# Let DOS variable expansion print the short 8.3 style file name.
lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
done
IFS=$lt_save_ifs
# Convert to MSYS style.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
;;
cygwin*)
# Convert to unix form, then to dos form, then back to unix form
# but this time dos style (no spaces!) so that the unix form looks
# like /cygdrive/c/PROGRA~1:/cygdr...
sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
;;
*)
sys_lib_search_path_spec=$LIB
if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
# It is most probably a Windows format PATH.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
else
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
fi
# FIXME: find the short name or the path components, as spaces are
# common. (e.g. "Program Files" -> "PROGRA~1")
;;
esac
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
shlibpath_overrides_runpath=yes
dynamic_linker='Win32 link.exe'
;;
*)
# Assume MSVC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
esac
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
darwin* | rhapsody*)
dynamic_linker="$host_os dyld"
version_type=darwin
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
soname_spec='$libname$release$major$shared_ext'
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
dgux*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
;;
freebsd* | dragonfly*)
# DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
version_type=freebsd-$objformat
case $version_type in
freebsd-elf*)
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
need_version=no
need_lib_prefix=no
;;
freebsd-*)
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
need_version=yes
;;
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
*) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
esac
;;
haiku*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
dynamic_linker="$host_os runtime_loader"
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=no
sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
hardcode_into_libs=yes
;;
hpux9* | hpux10* | hpux11*)
# Give a soname corresponding to the major version so that dld.sl refuses to
# link against other versions.
version_type=sunos
need_lib_prefix=no
need_version=no
case $host_cpu in
ia64*)
shrext_cmds='.so'
hardcode_into_libs=yes
dynamic_linker="$host_os dld.so"
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
if test 32 = "$HPUX_IA64_MODE"; then
sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
sys_lib_dlsearch_path_spec=/usr/lib/hpux32
else
sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
sys_lib_dlsearch_path_spec=/usr/lib/hpux64
fi
;;
hppa*64*)
shrext_cmds='.sl'
hardcode_into_libs=yes
dynamic_linker="$host_os dld.sl"
shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
;;
*)
shrext_cmds='.sl'
dynamic_linker="$host_os dld.sl"
shlibpath_var=SHLIB_PATH
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
;;
esac
# HP-UX runs *really* slowly unless shared libraries are mode 555, ...
postinstall_cmds='chmod 555 $lib'
# or fails outright, so override atomically:
install_override_mode=555
;;
interix[3-9]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
irix5* | irix6* | nonstopux*)
case $host_os in
nonstopux*) version_type=nonstopux ;;
*)
if test yes = "$lt_cv_prog_gnu_ld"; then
version_type=linux # correct to gnu/linux during the next big refactor
else
version_type=irix
fi ;;
esac
need_lib_prefix=no
need_version=no
soname_spec='$libname$release$shared_ext$major'
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
case $host_os in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in # libtool.m4 will add one of these switches to LD
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
libsuff= shlibsuff= libmagic=32-bit;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
libsuff=32 shlibsuff=N32 libmagic=N32;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
libsuff=64 shlibsuff=64 libmagic=64-bit;;
*) libsuff= shlibsuff= libmagic=never-match;;
esac
;;
esac
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
shlibpath_overrides_runpath=no
sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
hardcode_into_libs=yes
;;
# No shared lib support for Linux oldld, aout, or coff.
linux*oldld* | linux*aout* | linux*coff*)
dynamic_linker=no
;;
linux*android*)
version_type=none # Android doesn't support versioned libraries.
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext'
soname_spec='$libname$release$shared_ext'
finish_cmds=
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
# before this can be enabled.
hardcode_into_libs=yes
dynamic_linker='Android linker'
# Don't embed -rpath directories since the linker doesn't support them.
hardcode_libdir_flag_spec='-L$libdir'
;;
# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
# Some binutils ld are patched to set DT_RUNPATH
if test ${lt_cv_shlibpath_overrides_runpath+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
then :
lt_cv_shlibpath_overrides_runpath=yes
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
fi
shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
# before this can be enabled.
hardcode_into_libs=yes
# Ideally, we could use ldconfig to report *all* directores which are
# searched for libraries, however this is still not possible. Aside from not
# being certain /sbin/ldconfig is available, command
# 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
# even though it is searched at run-time. Try to do the best guess by
# appending ld.so.conf contents (and includes) to the search path.
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
# powerpc, because MkLinux only supported shared libraries with the
# GNU dynamic linker. Since this was broken with cross compilers,
# most powerpc-linux boxes support dynamic linking these days and
# people can always --disable-shared, the test was removed, and we
# assume the GNU/Linux dynamic linker is in use.
dynamic_linker='GNU/Linux ld.so'
;;
netbsd*)
version_type=sunos
need_lib_prefix=no
need_version=no
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
dynamic_linker='NetBSD (a.out) ld.so'
else
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
dynamic_linker='NetBSD ld.elf_so'
fi
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
newsos6)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
;;
*nto* | *qnx*)
version_type=qnx
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
dynamic_linker='ldqnx.so'
;;
openbsd* | bitrig*)
version_type=sunos
sys_lib_dlsearch_path_spec=/usr/lib
need_lib_prefix=no
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
need_version=no
else
need_version=yes
fi
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
;;
os2*)
libname_spec='$name'
version_type=windows
shrext_cmds=.dll
need_version=no
need_lib_prefix=no
# OS/2 can only load a DLL with a base name of 8 characters or less.
soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
v=$($ECHO $release$versuffix | tr -d .-);
n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
$ECHO $n$v`$shared_ext'
library_names_spec='${libname}_dll.$libext'
dynamic_linker='OS/2 ld.exe'
shlibpath_var=BEGINLIBPATH
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname~
chmod a+x \$dldir/$dlname~
if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
;;
osf3* | osf4* | osf5*)
version_type=osf
need_lib_prefix=no
need_version=no
soname_spec='$libname$release$shared_ext$major'
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
;;
rdos*)
dynamic_linker=no
;;
solaris*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
# ldd complains unless libraries are executable
postinstall_cmds='chmod +x $lib'
;;
sunos4*)
version_type=sunos
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
if test yes = "$with_gnu_ld"; then
need_lib_prefix=no
fi
need_version=yes
;;
sysv4 | sysv4.3*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
case $host_vendor in
sni)
shlibpath_overrides_runpath=no
need_lib_prefix=no
runpath_var=LD_RUN_PATH
;;
siemens)
need_lib_prefix=no
;;
motorola)
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=no
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
;;
esac
;;
sysv4*MP*)
if test -d /usr/nec; then
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
soname_spec='$libname$shared_ext.$major'
shlibpath_var=LD_LIBRARY_PATH
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
version_type=sco
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
if test yes = "$with_gnu_ld"; then
sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
else
sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
case $host_os in
sco3.2v5*)
sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
;;
esac
fi
sys_lib_dlsearch_path_spec='/usr/lib'
;;
tpf*)
# TPF is a cross-target only. Preferred cross-host = GNU/Linux.
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
uts4*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
;;
*)
dynamic_linker=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
printf "%s\n" "$dynamic_linker" >&6; }
test no = "$dynamic_linker" && can_build_shared=no
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test yes = "$GCC"; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
fi
if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
fi
if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
fi
# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
test -n "$runpath_var" ||
test yes = "$hardcode_automatic"; then
# We can hardcode non-existent directories.
if test no != "$hardcode_direct" &&
# If the only mechanism to avoid hardcoding is shlibpath_var, we
# have to relink, otherwise we might link with an installed library
# when we should be linking with a yet-to-be-installed one
## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
test no != "$hardcode_minus_L"; then
# Linking always hardcodes the temporary library directory.
hardcode_action=relink
else
# We can link without hardcoding, and we can hardcode nonexisting dirs.
hardcode_action=immediate
fi
else
# We cannot hardcode anything, or else we can only hardcode existing
# directories.
hardcode_action=unsupported
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
printf "%s\n" "$hardcode_action" >&6; }
if test relink = "$hardcode_action" ||
test yes = "$inherit_rpath"; then
# Fast installation is not supported
enable_fast_install=no
elif test yes = "$shlibpath_overrides_runpath" ||
test no = "$enable_shared"; then
# Fast installation is not necessary
enable_fast_install=needless
fi
if test yes != "$enable_dlopen"; then
enable_dlopen=unknown
enable_dlopen_self=unknown
enable_dlopen_self_static=unknown
else
lt_cv_dlopen=no
lt_cv_dlopen_libs=
case $host_os in
beos*)
lt_cv_dlopen=load_add_on
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
;;
mingw* | pw32* | cegcc*)
lt_cv_dlopen=LoadLibrary
lt_cv_dlopen_libs=
;;
cygwin*)
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=
;;
darwin*)
# if libdl is installed we need to link against it
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
else $as_nop
ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
else $as_nop
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
fi
;;
tpf*)
# Don't try to run any link tests for TPF. We know it's impossible
# because TPF is a cross-compiler, and we know how we open DSOs.
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=
lt_cv_dlopen_self=no
;;
*)
ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
if test "x$ac_cv_func_shl_load" = xyes
then :
lt_cv_dlopen=shl_load
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
printf %s "checking for shl_load in -ldld... " >&6; }
if test ${ac_cv_lib_dld_shl_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char shl_load ();
int
main (void)
{
return shl_load ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_shl_load=yes
else $as_nop
ac_cv_lib_dld_shl_load=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
if test "x$ac_cv_lib_dld_shl_load" = xyes
then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
else $as_nop
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
if test "x$ac_cv_func_dlopen" = xyes
then :
lt_cv_dlopen=dlopen
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
else $as_nop
ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
printf %s "checking for dlopen in -lsvld... " >&6; }
if test ${ac_cv_lib_svld_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_svld_dlopen=yes
else $as_nop
ac_cv_lib_svld_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
if test "x$ac_cv_lib_svld_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
printf %s "checking for dld_link in -ldld... " >&6; }
if test ${ac_cv_lib_dld_dld_link+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dld_link ();
int
main (void)
{
return dld_link ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_dld_link=yes
else $as_nop
ac_cv_lib_dld_dld_link=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
if test "x$ac_cv_lib_dld_dld_link" = xyes
then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
fi
fi
fi
fi
fi
;;
esac
if test no = "$lt_cv_dlopen"; then
enable_dlopen=no
else
enable_dlopen=yes
fi
case $lt_cv_dlopen in
dlopen)
save_CPPFLAGS=$CPPFLAGS
test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
save_LDFLAGS=$LDFLAGS
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
save_LIBS=$LIBS
LIBS="$lt_cv_dlopen_libs $LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
printf %s "checking whether a program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <stdio.h>
#ifdef RTLD_GLOBAL
# define LT_DLGLOBAL RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
# define LT_DLGLOBAL DL_GLOBAL
# else
# define LT_DLGLOBAL 0
# endif
#endif
/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
#ifndef LT_DLLAZY_OR_NOW
# ifdef RTLD_LAZY
# define LT_DLLAZY_OR_NOW RTLD_LAZY
# else
# ifdef DL_LAZY
# define LT_DLLAZY_OR_NOW DL_LAZY
# else
# ifdef RTLD_NOW
# define LT_DLLAZY_OR_NOW RTLD_NOW
# else
# ifdef DL_NOW
# define LT_DLLAZY_OR_NOW DL_NOW
# else
# define LT_DLLAZY_OR_NOW 0
# endif
# endif
# endif
# endif
#endif
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif
int fnord () { return 42; }
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
if (self)
{
if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
else
{
if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
else puts (dlerror ());
}
/* dlclose (self); */
}
else
puts (dlerror ());
return status;
}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
esac
else :
# compilation failed
lt_cv_dlopen_self=no
fi
fi
rm -fr conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
printf "%s\n" "$lt_cv_dlopen_self" >&6; }
if test yes = "$lt_cv_dlopen_self"; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self_static+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <stdio.h>
#ifdef RTLD_GLOBAL
# define LT_DLGLOBAL RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
# define LT_DLGLOBAL DL_GLOBAL
# else
# define LT_DLGLOBAL 0
# endif
#endif
/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
#ifndef LT_DLLAZY_OR_NOW
# ifdef RTLD_LAZY
# define LT_DLLAZY_OR_NOW RTLD_LAZY
# else
# ifdef DL_LAZY
# define LT_DLLAZY_OR_NOW DL_LAZY
# else
# ifdef RTLD_NOW
# define LT_DLLAZY_OR_NOW RTLD_NOW
# else
# ifdef DL_NOW
# define LT_DLLAZY_OR_NOW DL_NOW
# else
# define LT_DLLAZY_OR_NOW 0
# endif
# endif
# endif
# endif
#endif
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif
int fnord () { return 42; }
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
if (self)
{
if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
else
{
if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
else puts (dlerror ());
}
/* dlclose (self); */
}
else
puts (dlerror ());
return status;
}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
esac
else :
# compilation failed
lt_cv_dlopen_self_static=no
fi
fi
rm -fr conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
;;
esac
case $lt_cv_dlopen_self in
yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
*) enable_dlopen_self=unknown ;;
esac
case $lt_cv_dlopen_self_static in
yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
*) enable_dlopen_self_static=unknown ;;
esac
fi
striplib=
old_striplib=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
darwin*)
if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
esac
fi
# Report what library types will actually be built
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
printf %s "checking if libtool supports shared libraries... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
printf "%s\n" "$can_build_shared" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
printf %s "checking whether to build shared libraries... " >&6; }
test no = "$can_build_shared" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
case $host_os in
aix3*)
test yes = "$enable_shared" && enable_static=no
if test -n "$RANLIB"; then
archive_cmds="$archive_cmds~\$RANLIB \$lib"
postinstall_cmds='$RANLIB $lib'
fi
;;
aix[4-9]*)
if test ia64 != "$host_cpu"; then
case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
yes,aix,yes) ;; # shared object as lib.so file only
yes,svr4,*) ;; # shared object as lib.so archive member only
yes,*) enable_static=no ;; # shared object in lib.a archive as well
esac
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
printf "%s\n" "$enable_shared" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test yes = "$enable_shared" || enable_static=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
printf "%s\n" "$enable_static" >&6; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
CC=$lt_save_CC
ac_config_commands="$ac_config_commands libtool"
# Only expand once:
# NTP has (so far) been relying on leading-edge autogen, which
# means we need the appropriate corresponding libopts as well.
# Therefore, by default:
# - use the version of libopts we ship with
# - do not install it
# - build a static copy (AC_DISABLE_SHARED - done earlier)
case "${enable_local_libopts+set}" in
set) ;;
*) enable_local_libopts=yes ;;
esac
case "${enable_libopts_install+set}" in
set) ;;
*) enable_libopts_install=no ;;
esac
enable_nls=no
# Autoupdate added the next two lines to ensure that your configure
# script's behavior did not change. They are probably safe to remove.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
ac_func=
for ac_item in $ac_func_c_list
do
if test $ac_func; then
ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
echo "#define $ac_item 1" >> confdefs.h
fi
ac_func=
else
ac_func=$ac_item
fi
done
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
"
if test "x$ac_cv_type_pid_t" = xyes
then :
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined _WIN64 && !defined __CYGWIN__
LLP64
#endif
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_pid_type='int'
else $as_nop
ac_pid_type='__int64'
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
fi
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
printf %s "checking for $ac_hdr that defines DIR... " >&6; }
if eval test \${$as_ac_Header+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <$ac_hdr>
int
main (void)
{
if ((DIR *) 0)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$as_ac_Header=yes"
else $as_nop
eval "$as_ac_Header=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$as_ac_Header
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1
_ACEOF
ac_header_dirent=$ac_hdr; break
fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
printf %s "checking for library containing opendir... " >&6; }
if test ${ac_cv_search_opendir+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char opendir ();
int
main (void)
{
return opendir ();
;
return 0;
}
_ACEOF
for ac_lib in '' dir
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_opendir=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_opendir+y}
then :
break
fi
done
if test ${ac_cv_search_opendir+y}
then :
else $as_nop
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
printf "%s\n" "$ac_cv_search_opendir" >&6; }
ac_res=$ac_cv_search_opendir
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
printf %s "checking for library containing opendir... " >&6; }
if test ${ac_cv_search_opendir+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char opendir ();
int
main (void)
{
return opendir ();
;
return 0;
}
_ACEOF
for ac_lib in '' x
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_opendir=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_opendir+y}
then :
break
fi
done
if test ${ac_cv_search_opendir+y}
then :
else $as_nop
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
printf "%s\n" "$ac_cv_search_opendir" >&6; }
ac_res=$ac_cv_search_opendir
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
fi
# =================
# AC_CHECK_HEADERS
# =================
ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mman_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_poll_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/procset.h" "ac_cv_header_sys_procset_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_procset_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PROCSET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_select_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/stropts.h" "ac_cv_header_sys_stropts_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_stropts_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_STROPTS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_time_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_un_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_wait_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
if test "x$ac_cv_header_errno_h" = xyes
then :
printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
if test "x$ac_cv_header_fcntl_h" = xyes
then :
printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "$ac_includes_default"
if test "x$ac_cv_header_libgen_h" = xyes
then :
printf "%s\n" "#define HAVE_LIBGEN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
if test "x$ac_cv_header_libintl_h" = xyes
then :
printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "memory.h" "ac_cv_header_memory_h" "$ac_includes_default"
if test "x$ac_cv_header_memory_h" = xyes
then :
printf "%s\n" "#define HAVE_MEMORY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default"
if test "x$ac_cv_header_setjmp_h" = xyes
then :
printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default"
if test "x$ac_cv_header_stdbool_h" = xyes
then :
printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sysexits.h" "ac_cv_header_sysexits_h" "$ac_includes_default"
if test "x$ac_cv_header_sysexits_h" = xyes
then :
printf "%s\n" "#define HAVE_SYSEXITS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
if test "x$ac_cv_header_unistd_h" = xyes
then :
printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "$ac_includes_default"
if test "x$ac_cv_header_utime_h" = xyes
then :
printf "%s\n" "#define HAVE_UTIME_H 1" >>confdefs.h
fi
for ac_header in stdarg.h varargs.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_arg_hdr=true;break
else $as_nop
lo_have_arg_hdr=false
fi
done
for ac_header in string.h strings.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_str_hdr=true;break
else $as_nop
lo_have_str_hdr=false
fi
done
for ac_header in limits.h sys/limits.h values.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_lim_hdr=true;break
else $as_nop
lo_have_lim_hdr=false
fi
done
for ac_header in inttypes.h stdint.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_typ_hdr=true;break
else $as_nop
lo_have_typ_hdr=false
fi
done
case "$host_os" in
cygwin*)
STDNORETURN_H='stdnoreturn.h'
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stdnoreturn.h" >&5
printf %s "checking for working stdnoreturn.h... " >&6; }
if test ${gl_cv_header_working_stdnoreturn_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdnoreturn.h>
/* Do not check for 'noreturn' after the return type.
C11 allows it, but it's rarely done that way
and circa-2012 bleeding-edge GCC rejects it when given
-Werror=old-style-declaration. */
noreturn void foo1 (void) { exit (0); }
_Noreturn void foo2 (void) { exit (0); }
int testit (int argc, char **argv)
{
if (argc & 1)
return 0;
(argv[0][0] ? foo1 : foo2) ();
}
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
gl_cv_header_working_stdnoreturn_h=yes
else $as_nop
gl_cv_header_working_stdnoreturn_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdnoreturn_h" >&5
printf "%s\n" "$gl_cv_header_working_stdnoreturn_h" >&6; }
if test $gl_cv_header_working_stdnoreturn_h = yes; then
STDNORETURN_H=''
else
STDNORETURN_H='stdnoreturn.h'
fi
;;
esac
if test -n "$STDNORETURN_H"; then
GL_GENERATE_STDNORETURN_H_TRUE=
GL_GENERATE_STDNORETURN_H_FALSE='#'
else
GL_GENERATE_STDNORETURN_H_TRUE='#'
GL_GENERATE_STDNORETURN_H_FALSE=
fi
# ----------------------------------------------------------------------
# check for various programs used during the build.
# On OS/X, "wchar.h" needs "runetype.h" to work properly.
# ----------------------------------------------------------------------
ac_fn_c_check_header_compile "$LINENO" "runetype.h" "ac_cv_header_runetype_h" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
"
if test "x$ac_cv_header_runetype_h" = xyes
then :
printf "%s\n" "#define HAVE_RUNETYPE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
"
if test "x$ac_cv_header_wchar_h" = xyes
then :
printf "%s\n" "#define HAVE_WCHAR_H 1" >>confdefs.h
fi
# Check whether --enable-nls was given.
if test ${enable_nls+y}
then :
enableval=$enable_nls;
fi
if test "x$enable_nls" != "xno" && \
test "X${ac_cv_header_libintl_h}" = Xyes
then :
printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h
fi
# --------------------------------------------
# Verify certain entries from AC_CHECK_HEADERS
# --------------------------------------------
${lo_have_arg_hdr} || \
as_fn_error $? "you must have stdarg.h or varargs.h on your system" "$LINENO" 5
${lo_have_str_hdr} || \
as_fn_error $? "you must have string.h or strings.h on your system" "$LINENO" 5
${lo_have_lim_hdr} || \
as_fn_error $? "you must have one of limits.h, sys/limits.h or values.h" "$LINENO" 5
${lo_have_typ_hdr} || \
as_fn_error $? "you must have inttypes.h or stdint.h on your system" "$LINENO" 5
for f in sys_types sys_param sys_stat string errno stdlib memory setjmp
do eval as_ac_var=\${ac_cv_header_${f}_h}
test "X${as_ac_var}" = Xyes || {
as_fn_error $? "you must have ${f}.h on your system" "$LINENO" 5
}
done
test "X${ac_cv_header_inttypes_h-no}" = Xyes || \
echo '#include <stdint.h>' > inttypes.h
# ----------------------------------------------------------------------
# Checks for typedefs
# ----------------------------------------------------------------------
ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "$ac_includes_default"
if test "x$ac_cv_type_wchar_t" = xyes
then :
printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "wint_t" "ac_cv_type_wint_t" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
"
if test "x$ac_cv_type_wint_t" = xyes
then :
printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
if test "x$ac_cv_type_int8_t" = xyes
then :
printf "%s\n" "#define HAVE_INT8_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
if test "x$ac_cv_type_uint8_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT8_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
if test "x$ac_cv_type_int16_t" = xyes
then :
printf "%s\n" "#define HAVE_INT16_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
if test "x$ac_cv_type_uint16_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT16_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
if test "x$ac_cv_type_int32_t" = xyes
then :
printf "%s\n" "#define HAVE_INT32_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
if test "x$ac_cv_type_uint32_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT32_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
if test "x$ac_cv_type_intptr_t" = xyes
then :
printf "%s\n" "#define HAVE_INTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint_t" "ac_cv_type_uint_t" "$ac_includes_default"
if test "x$ac_cv_type_uint_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
if test "x$ac_cv_type_pid_t" = xyes
then :
printf "%s\n" "#define HAVE_PID_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
printf "%s\n" "#define HAVE_SIZE_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
if test "x$ac_cv_type_ptrdiff_t" = xyes
then :
printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5
printf %s "checking size of char *... " >&6; }
if test ${ac_cv_sizeof_char_p+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_char_p" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (char *)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_char_p=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5
printf "%s\n" "$ac_cv_sizeof_char_p" >&6; }
printf "%s\n" "#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
printf %s "checking size of int... " >&6; }
if test ${ac_cv_sizeof_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_int" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
printf "%s\n" "$ac_cv_sizeof_int" >&6; }
printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
printf "%s\n" "$ac_cv_sizeof_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
printf %s "checking size of short... " >&6; }
if test ${ac_cv_sizeof_short+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_short" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (short)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
printf "%s\n" "$ac_cv_sizeof_short" >&6; }
printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
# ------------
# AC_CHECK_LIB
# ------------
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pathfind in -lgen" >&5
printf %s "checking for pathfind in -lgen... " >&6; }
if test ${ac_cv_lib_gen_pathfind+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgen $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char pathfind ();
int
main (void)
{
return pathfind ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_gen_pathfind=yes
else $as_nop
ac_cv_lib_gen_pathfind=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gen_pathfind" >&5
printf "%s\n" "$ac_cv_lib_gen_pathfind" >&6; }
if test "x$ac_cv_lib_gen_pathfind" = xyes
then :
printf "%s\n" "#define HAVE_LIBGEN 1" >>confdefs.h
LIBS="-lgen $LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5
printf %s "checking for gettext in -lintl... " >&6; }
if test ${ac_cv_lib_intl_gettext+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char gettext ();
int
main (void)
{
return gettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_intl_gettext=yes
else $as_nop
ac_cv_lib_intl_gettext=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_gettext" >&5
printf "%s\n" "$ac_cv_lib_intl_gettext" >&6; }
if test "x$ac_cv_lib_intl_gettext" = xyes
then :
printf "%s\n" "#define HAVE_LIBINTL 1" >>confdefs.h
LIBS="-lintl $LIBS"
fi
if test "x$ac_cv_func_vprintf" = xno
then :
ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
if test "x$ac_cv_func__doprnt" = xyes
then :
printf "%s\n" "#define HAVE_DOPRNT 1" >>confdefs.h
fi
fi
if test "x$ac_cv_func_fork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
printf %s "checking for working fork... " >&6; }
if test ${ac_cv_func_fork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_fork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* By Ruediger Kuhlmann. */
return fork () < 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_fork_works=yes
else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
fi
if test "x$ac_cv_func_fork_works" = xcross; then
case $host in
*-*-amigaos* | *-*-msdosdjgpp*)
# Override, as these systems have only a dummy fork() stub
ac_cv_func_fork_works=no
;;
*)
ac_cv_func_fork_works=yes
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
printf %s "checking for working vfork... " >&6; }
if test ${ac_cv_func_vfork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_vfork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
static void
do_nothing (int sig)
{
(void) sig;
}
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
(e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
sparc_address_test (int arg)
{
static pid_t child;
if (!child) {
child = vfork ();
if (child < 0) {
perror ("vfork");
_exit(2);
}
if (!child) {
arg = getpid();
write(-1, "", 0);
_exit (arg);
}
}
}
int
main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
/* On Solaris 2.4, changes by the child to the signal handler
also munge signal handlers in the parent. To detect this,
start by putting the parent's handler in a known state. */
signal (SIGTERM, SIG_DFL);
child = vfork ();
if (child == 0) {
/* Here is another test for sparc vfork register problems. This
test uses lots of local variables, at least as many local
variables as main has allocated so far including compiler
temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
reuse the register of parent for one of the local variables,
since it will think that parent can't possibly be used any more
in this routine. Assigning to the local variable will thus
munge parent in the parent process. */
pid_t
p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
/* Convince the compiler that p..p7 are live; otherwise, it might
use the same hardware register for all 8 local variables. */
if (p != p1 || p != p2 || p != p3 || p != p4
|| p != p5 || p != p6 || p != p7)
_exit(1);
/* Alter the child's signal handler. */
if (signal (SIGTERM, do_nothing) != SIG_DFL)
_exit(1);
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
as well. Test for this by closing stdout in the child. */
_exit(close(fileno(stdout)) != 0);
} else {
int status;
struct stat st;
while (wait(&status) != child)
;
return (
/* Was there some problem with vforking? */
child < 0
/* Did the child munge the parent's signal handler? */
|| signal (SIGTERM, SIG_DFL) != SIG_DFL
/* Did the child fail? (This shouldn't happen.) */
|| status
/* Did the vfork/compiler bug occur? */
|| parent != getpid()
/* Did the file descriptor bug occur? */
|| fstat(fileno(stdout), &st) != 0
);
}
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_vfork_works=yes
else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
if test "x$ac_cv_func_mmap" = xyes
then :
printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "canonicalize_file_name" "ac_cv_func_canonicalize_file_name"
if test "x$ac_cv_func_canonicalize_file_name" = xyes
then :
printf "%s\n" "#define HAVE_CANONICALIZE_FILE_NAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
if test "x$ac_cv_func_snprintf" = xyes
then :
printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
if test "x$ac_cv_func_strdup" = xyes
then :
printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr"
if test "x$ac_cv_func_strchr" = xyes
then :
printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strrchr" "ac_cv_func_strrchr"
if test "x$ac_cv_func_strrchr" = xyes
then :
printf "%s\n" "#define HAVE_STRRCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal"
if test "x$ac_cv_func_strsignal" = xyes
then :
printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fchmod" "ac_cv_func_fchmod"
if test "x$ac_cv_func_fchmod" = xyes
then :
printf "%s\n" "#define HAVE_FCHMOD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fstat" "ac_cv_func_fstat"
if test "x$ac_cv_func_fstat" = xyes
then :
printf "%s\n" "#define HAVE_FSTAT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "chmod" "ac_cv_func_chmod"
if test "x$ac_cv_func_chmod" = xyes
then :
printf "%s\n" "#define HAVE_CHMOD 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
{ ac_script=; unset ac_script;}
if test -z "$SED"; then
ac_path_SED_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in sed gsed
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_SED_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_SED="$ac_path_SED"
ac_path_SED_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_SED_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
while :
do
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`which bash`
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`which dash`
test -x "$POSIX_SHELL" && break
POSIX_SHELL=/usr/xpg4/bin/sh
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`/bin/sh -c '
exec 2>/dev/null
if ! true ; then exit 1 ; fi
echo /bin/sh'`
test -x "$POSIX_SHELL" && break
as_fn_error $? "cannot locate a working POSIX shell" "$LINENO" 5
done
printf "%s\n" "#define POSIX_SHELL \"${POSIX_SHELL}\"" >>confdefs.h
LIBOPTS_BUILD_BLOCKED=true
NEED_LIBOPTS_DIR=''
# Check whether --enable-local-libopts was given.
if test ${enable_local_libopts+y}
then :
enableval=$enable_local_libopts;
if test x$enableval = xyes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using supplied libopts tearoff" >&5
printf "%s\n" "$as_me: Using supplied libopts tearoff" >&6;}
LIBOPTS_CFLAGS='-I$(top_srcdir)/sntp/libopts'
NEED_LIBOPTS_DIR=true
LIBOPTS_LDADD='$(top_builddir)/sntp/libopts/libopts.la'
fi
fi
# Check whether --enable-libopts-install was given.
if test ${enable_libopts_install+y}
then :
enableval=$enable_libopts_install;
fi
if test "X${enable_libopts_install}" = Xyes; then
INSTALL_LIBOPTS_TRUE=
INSTALL_LIBOPTS_FALSE='#'
else
INSTALL_LIBOPTS_TRUE='#'
INSTALL_LIBOPTS_FALSE=
fi
if test -z "${NEED_LIBOPTS_DIR}" ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether autoopts-config can be found" >&5
printf %s "checking whether autoopts-config can be found... " >&6; }
# Check whether --with-autoopts-config was given.
if test ${with_autoopts_config+y}
then :
withval=$with_autoopts_config; lo_cv_with_autoopts_config=${with_autoopts_config}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether autoopts-config is specified" >&5
printf %s "checking whether autoopts-config is specified... " >&6; }
if test ${lo_cv_with_autoopts_config+y}
then :
printf %s "(cached) " >&6
else $as_nop
if autoopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=autoopts-config
elif libopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=libopts-config
else lo_cv_with_autoopts_config=no ; fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lo_cv_with_autoopts_config" >&5
printf "%s\n" "$lo_cv_with_autoopts_config" >&6; }
fi
# end of AC_ARG_WITH
if test ${lo_cv_test_autoopts+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "${lo_cv_with_autoopts_config}" \
-o X"${lo_cv_with_autoopts_config}" = Xno
then
if autoopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=autoopts-config
elif libopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=libopts-config
else lo_cv_with_autoopts_config=false ; fi
fi
lo_cv_test_autoopts=`
${lo_cv_with_autoopts_config} --libs` 2> /dev/null
if test $? -ne 0 -o -z "${lo_cv_test_autoopts}"
then lo_cv_test_autoopts=no ; fi
fi
# end of CACHE_VAL
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lo_cv_test_autoopts}" >&5
printf "%s\n" "${lo_cv_test_autoopts}" >&6; }
if test "X${lo_cv_test_autoopts}" != Xno
then
LIBOPTS_LDADD="${lo_cv_test_autoopts}"
LIBOPTS_CFLAGS="`${lo_cv_with_autoopts_config} --cflags`"
else
LIBOPTS_LDADD='$(top_builddir)/sntp/libopts/libopts.la'
LIBOPTS_CFLAGS='-I$(top_srcdir)/sntp/libopts'
NEED_LIBOPTS_DIR=true
fi
fi # end of if test -z "${NEED_LIBOPTS_DIR}"
if test -n "${LIBOPTS_BUILD_BLOCKED}" ; then
NEED_LIBOPTS_DIR=''
fi
if test -n "${NEED_LIBOPTS_DIR}"; then
NEED_LIBOPTS_TRUE=
NEED_LIBOPTS_FALSE='#'
else
NEED_LIBOPTS_TRUE='#'
NEED_LIBOPTS_FALSE=
fi
LIBOPTS_DIR=sntp/libopts
# end of AC_DEFUN of LIBOPTS_CHECK_COMMON
# end of AC_DEFUN of LIBOPTS_CHECK_NOBUILD
ntp_pkgconfig_min_version='0.15.0'
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
printf "%s\n" "$PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
{ ac_cv_path_PKG_CONFIG=; unset ac_cv_path_PKG_CONFIG;}
{ ac_cv_path_ac_pt_PKG_CONFIG=; unset ac_cv_path_ac_pt_PKG_CONFIG;}
case "$PKG_CONFIG" in
/*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if pkg-config is at least version $ntp_pkgconfig_min_version" >&5
printf %s "checking if pkg-config is at least version $ntp_pkgconfig_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $ntp_pkgconfig_min_version; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
;;
esac
# Check whether --enable-local-libevent was given.
if test ${enable_local_libevent+y}
then :
enableval=$enable_local_libevent; ntp_use_local_libevent=$enableval
else $as_nop
ntp_use_local_libevent=${ntp_use_local_libevent-detect}
fi
ntp_libevent_min_version=2
ntp_libevent_tearoff=sntp/libevent
case "$ntp_use_local_libevent" in
yes)
;;
*) # If we have (a good enough) pkg-config, see if it can find libevent
case "$PKG_CONFIG" in
/*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libevent $ntp_libevent_min_version or later is installed" >&5
printf %s "checking if libevent $ntp_libevent_min_version or later is installed... " >&6; }
if $PKG_CONFIG --atleast-version=$ntp_libevent_min_version libevent
then
ntp_use_local_libevent=no
ntp_libevent_version="`$PKG_CONFIG --modversion libevent`"
case "$ntp_libevent_version" in
*.*) ;;
*) ntp_libevent_version='(unknown)' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, version $ntp_libevent_version" >&5
printf "%s\n" "yes, version $ntp_libevent_version" >&6; }
CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
CPPFLAGS_LIBEVENT=`$PKG_CONFIG --cflags-only-I libevent`
# HMS: I hope the following is accurate.
# We don't need -levent, we only need -levent_core.
# While we could grab only the -L stuff, there *might* be
# other flags there we want. Originally we just removed -levent
# but then somebody decided to install -levent-2.0
# LDADD_LIBEVENT=`$PKG_CONFIG --libs libevent | sed 's:-levent::'`
# So now we dance...
LDADD_LIBEVENT=
for i in `$PKG_CONFIG --libs libevent` `$PKG_CONFIG --cflags-only-other libevent_pthreads`
do
case "$i" in
-D*) ;;
-levent*) ;;
*) case "$LDADD_LIBEVENT" in
'') LDADD_LIBEVENT="$i" ;;
*) LDADD_LIBEVENT="$LDADD_LIBEVENT $i" ;;
esac
;;
esac
done
case "$LIBISC_PTHREADS_NOTHREADS" in
pthreads)
LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_pthreads"
esac
LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_core"
else
ntp_use_local_libevent=yes
# HMS: do we only need to do this if LIBISC_PTHREADS_NOTHREADS
# is "pthreads"?
CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
;;
*)
ntp_use_local_libevent=yes
;;
esac
;;
esac
case "$ntp_use_local_libevent" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using libevent tearoff" >&5
printf "%s\n" "$as_me: Using libevent tearoff" >&6;}
CPPFLAGS_LIBEVENT="-I\$(top_builddir)/$ntp_libevent_tearoff/include -I\$(top_srcdir)/$ntp_libevent_tearoff/include"
case "$LIBISC_PTHREADS_NOTHREADS" in
pthreads)
LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_pthreads.la \$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
;;
*)
LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
esac
esac
if test "x$ntp_use_local_libevent" = "xyes"; then
BUILD_LIBEVENT_TRUE=
BUILD_LIBEVENT_FALSE='#'
else
BUILD_LIBEVENT_TRUE='#'
BUILD_LIBEVENT_FALSE=
fi
# Expose a cross-compilation indicator to makefiles
if test $build != $host; then
NTP_CROSSCOMPILE_TRUE=
NTP_CROSSCOMPILE_FALSE='#'
else
NTP_CROSSCOMPILE_TRUE='#'
NTP_CROSSCOMPILE_FALSE=
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
else $as_nop
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_save_CFLAGS=$CFLAGS
ac_cv_c_undeclared_builtin_options='cannot detect'
for ac_arg in '' -fno-builtin; do
CFLAGS="$ac_save_CFLAGS $ac_arg"
# This test program should *not* compile successfully.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
(void) strchr;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
# This test program should compile successfully.
# No library function is consistently available on
# freestanding implementations, so test against a dummy
# declaration. Include always-available headers on the
# off chance that they somehow elicit warnings.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <float.h>
#include <limits.h>
#include <stdarg.h>
#include <stddef.h>
extern void ac_decl (int, char *);
int
main (void)
{
(void) ac_decl (0, (char *) 0);
(void) ac_decl;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
if test x"$ac_arg" = x
then :
ac_cv_c_undeclared_builtin_options='none needed'
else $as_nop
ac_cv_c_undeclared_builtin_options=$ac_arg
fi
break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
CFLAGS=$ac_save_CFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
case $ac_cv_c_undeclared_builtin_options in #(
'cannot detect') :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot make $CC report undeclared builtins
See \`config.log' for more details" "$LINENO" 5; } ;; #(
'none needed') :
ac_c_undeclared_builtin_options='' ;; #(
*) :
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac
ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strerror_r" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
# Check whether --enable-c99-snprintf was given.
if test ${enable_c99_snprintf+y}
then :
enableval=$enable_c99_snprintf; force_c99_snprintf=$enableval
else $as_nop
force_c99_snprintf=no
fi
case "$force_c99_snprintf" in
yes)
hw_force_rpl_snprintf=yes
hw_force_rpl_vsnprintf=yes
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
printf %s "checking for unsigned long long int... " >&6; }
if test ${ac_cv_type_unsigned_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_unsigned_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* For now, do not test the preprocessor; as of 2007 there are too many
implementations with broken preprocessors. Perhaps this can
be revisited in 2012. In the meantime, code should not expect
#if to work with literals wider than 32 bits. */
/* Test literals. */
long long int ll = 9223372036854775807ll;
long long int nll = -9223372036854775807LL;
unsigned long long int ull = 18446744073709551615ULL;
/* Test constant expressions. */
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
? 1 : -1)];
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
? 1 : -1)];
int i = 63;
int
main (void)
{
/* Test availability of runtime routines for shift and division. */
long long int llmax = 9223372036854775807ll;
unsigned long long int ullmax = 18446744073709551615ull;
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
| (llmax / ll) | (llmax % ll)
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
| (ullmax / ull) | (ullmax % ull));
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
else $as_nop
ac_cv_type_unsigned_long_long_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; }
if test $ac_cv_type_unsigned_long_long_int = yes; then
printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
if test "x$ac_cv_func_vsnprintf" = xyes
then :
hw_cv_func_vsnprintf=yes
else $as_nop
hw_cv_func_vsnprintf=no
fi
if test "$hw_cv_func_vsnprintf" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf is C99 compliant" >&5
printf %s "checking whether vsnprintf is C99 compliant... " >&6; }
if test ${hw_cv_func_vsnprintf_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
hw_cv_func_vsnprintf_c99=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if HAVE_STDARG_H
#include <stdarg.h>
#endif
#include <stdio.h>
static int testprintf(char *buf, size_t size, const char *format, ...)
{
int result;
va_list ap;
va_start(ap, format);
result = vsnprintf(buf, size, format, ap);
va_end(ap);
return result;
}
int
main (void)
{
char buf[43];
if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
buf[0] != 'T' || buf[3] != '\0')
return 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
hw_cv_func_vsnprintf_c99=yes
else $as_nop
hw_cv_func_vsnprintf_c99=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_vsnprintf_c99" >&5
printf "%s\n" "$hw_cv_func_vsnprintf_c99" >&6; }
else $as_nop
hw_cv_func_vsnprintf_c99=no
fi
printf "%s\n" "#define HAVE_VSNPRINTF 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C99-snprintf replacement vsnprintf will be used" >&5
printf %s "checking if C99-snprintf replacement vsnprintf will be used... " >&6; }
if test "${hw_force_rpl_vsnprintf=no}" = yes -o "$hw_cv_func_vsnprintf_c99" = no
then :
hw_use_rpl_vsnprintf=yes
else $as_nop
hw_use_rpl_vsnprintf=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_use_rpl_vsnprintf" >&5
printf "%s\n" "$hw_use_rpl_vsnprintf" >&6; }
if test "$hw_use_rpl_vsnprintf" = yes
then :
printf "%s\n" "#define HW_WANT_RPL_VSNPRINTF 1" >>confdefs.h
if test ${hw_nodef_vsnprintf=no} = no
then :
printf "%s\n" "#define vsnprintf rpl_vsnprintf" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
if test "x$ac_cv_header_inttypes_h" = xyes
then :
printf "%s\n" "#define HAVE_INTTYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
if test "x$ac_cv_header_locale_h" = xyes
then :
printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default"
if test "x$ac_cv_header_stddef_h" = xyes
then :
printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
if test "x$ac_cv_header_stdint_h" = xyes
then :
printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
fi
ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
"
if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes
then :
printf "%s\n" "#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1" >>confdefs.h
fi
ac_fn_c_check_member "$LINENO" "struct lconv" "thousands_sep" "ac_cv_member_struct_lconv_thousands_sep" "#include <locale.h>
"
if test "x$ac_cv_member_struct_lconv_thousands_sep" = xyes
then :
printf "%s\n" "#define HAVE_STRUCT_LCONV_THOUSANDS_SEP 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
printf %s "checking for long double... " >&6; }
if test ${ac_cv_type_long_double+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$GCC" = yes; then
ac_cv_type_long_double=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* The Stardent Vistra knows sizeof (long double), but does
not support it. */
long double foo = 0.0L;
int
main (void)
{
static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
sizeof (double) <= sizeof (long double))];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_long_double=yes
else $as_nop
ac_cv_type_long_double=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
printf "%s\n" "$ac_cv_type_long_double" >&6; }
if test $ac_cv_type_long_double = yes; then
printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
printf %s "checking for long long int... " >&6; }
if test ${ac_cv_type_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
if test $ac_cv_type_long_long_int = yes; then
if test "$cross_compiling" = yes
then :
:
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
#ifndef LLONG_MAX
# define HALF \
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
# define LLONG_MAX (HALF - 1 + HALF)
#endif
int
main (void)
{
long long int n = 1;
int i;
for (i = 0; ; i++)
{
long long int m = n << i;
if (m >> i != n)
return 1;
if (LLONG_MAX / 2 < m)
break;
}
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
else $as_nop
ac_cv_type_long_long_int=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
printf "%s\n" "$ac_cv_type_long_long_int" >&6; }
if test $ac_cv_type_long_long_int = yes; then
printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
printf %s "checking for unsigned long long int... " >&6; }
if test ${ac_cv_type_unsigned_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_unsigned_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* For now, do not test the preprocessor; as of 2007 there are too many
implementations with broken preprocessors. Perhaps this can
be revisited in 2012. In the meantime, code should not expect
#if to work with literals wider than 32 bits. */
/* Test literals. */
long long int ll = 9223372036854775807ll;
long long int nll = -9223372036854775807LL;
unsigned long long int ull = 18446744073709551615ULL;
/* Test constant expressions. */
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
? 1 : -1)];
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
? 1 : -1)];
int i = 63;
int
main (void)
{
/* Test availability of runtime routines for shift and division. */
long long int llmax = 9223372036854775807ll;
unsigned long long int ullmax = 18446744073709551615ull;
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
| (llmax / ll) | (llmax % ll)
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
| (ullmax / ull) | (ullmax % ull));
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
else $as_nop
ac_cv_type_unsigned_long_long_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; }
if test $ac_cv_type_unsigned_long_long_int = yes; then
printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
else $as_nop
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
if test "x$ac_cv_type_intmax_t" = xyes
then :
printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h
else $as_nop
test $ac_cv_type_long_long_int = yes \
&& ac_type='long long int' \
|| ac_type='long int'
printf "%s\n" "#define intmax_t $ac_type" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
if test "x$ac_cv_type_uintmax_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTMAX_T 1" >>confdefs.h
else $as_nop
test $ac_cv_type_unsigned_long_long_int = yes \
&& ac_type='unsigned long long int' \
|| ac_type='unsigned long int'
printf "%s\n" "#define uintmax_t $ac_type" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
else $as_nop
for ac_type in 'unsigned int' 'unsigned long int' \
'unsigned long long int'; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h
ac_type=
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test -z "$ac_type" && break
done
fi
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
if test "x$ac_cv_type_ptrdiff_t" = xyes
then :
printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "localeconv" "ac_cv_func_localeconv"
if test "x$ac_cv_func_localeconv" = xyes
then :
printf "%s\n" "#define HAVE_LOCALECONV 1" >>confdefs.h
fi
if test "x$_hw_cv_func_xprintf_replace_done" != xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __cplusplus
/* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this sort of thing. */
char tx;
char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
else $as_nop
ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
printf "%s\n" "#define const /**/" >>confdefs.h
fi
case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
;;
esac
_hw_cv_func_xprintf_replace_done=yes
fi
fi
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
if test "x$ac_cv_func_snprintf" = xyes
then :
hw_cv_func_snprintf=yes
else $as_nop
hw_cv_func_snprintf=no
fi
if test "$hw_cv_func_snprintf" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf is C99 compliant" >&5
printf %s "checking whether snprintf is C99 compliant... " >&6; }
if test ${hw_cv_func_snprintf_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
hw_cv_func_snprintf_c99=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main (void)
{
char buf[43];
if (snprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
snprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
buf[0] != 'T' || buf[3] != '\0')
return 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
hw_cv_func_snprintf_c99=yes
else $as_nop
hw_cv_func_snprintf_c99=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_snprintf_c99" >&5
printf "%s\n" "$hw_cv_func_snprintf_c99" >&6; }
else $as_nop
hw_cv_func_snprintf_c99=no
fi
printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C99-snprintf replacement snprintf will be used" >&5
printf %s "checking if C99-snprintf replacement snprintf will be used... " >&6; }
if test "${hw_force_rpl_snprintf=no}" = yes -o "$hw_cv_func_snprintf_c99" = no
then :
hw_use_rpl_snprintf=yes
else $as_nop
hw_use_rpl_snprintf=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_use_rpl_snprintf" >&5
printf "%s\n" "$hw_use_rpl_snprintf" >&6; }
if test "$hw_use_rpl_snprintf" = yes
then :
printf "%s\n" "#define HW_WANT_RPL_SNPRINTF 1" >>confdefs.h
if test ${hw_nodef_snprintf=no} = no
then :
printf "%s\n" "#define snprintf rpl_snprintf" >>confdefs.h
fi
if test "x$_hw_cv_func_xprintf_replace_done" != xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __cplusplus
/* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this sort of thing. */
char tx;
char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
else $as_nop
ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
printf "%s\n" "#define const /**/" >>confdefs.h
fi
case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
;;
esac
_hw_cv_func_xprintf_replace_done=yes
fi
fi
# HMS: Save $LIBS and empty it.
# any LIBS we add here should go in to LDADD_LIBNTP
__LIBS=$LIBS
LIBS=
# [Bug 2332] because we need to know if we are using GNU ld...
# Check whether --with-gnu-ld was given.
if test ${with_gnu_ld+y}
then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[\\/]* | ?:[\\/]*)
re_direlt='/[^/][^/]*/\.\./'
# Canonicalize the pathname of ld
ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
done
test -z "$LD" && LD=$ac_prog
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test yes = "$with_gnu_ld"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
printf %s "checking for GNU ld... " >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
printf %s "checking for non-GNU ld... " >&6; }
fi
if test ${lt_cv_path_LD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
lt_cv_path_LD=$ac_dir/$ac_prog
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some variants of GNU ld only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
test no != "$with_gnu_ld" && break
;;
*)
test yes != "$with_gnu_ld" && break
;;
esac
fi
done
IFS=$lt_save_ifs
else
lt_cv_path_LD=$LD # Let the user override the test with a path.
fi
fi
LD=$lt_cv_path_LD
if test -n "$LD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
printf "%s\n" "$LD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
printf %s "(cached) " >&6
else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes
;;
*)
lt_cv_prog_gnu_ld=no
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for directory path separator" >&5
printf %s "checking for directory path separator... " >&6; }
if test ${ntp_cv_dir_sep+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$ntp_cv_dir_sep" in
'')
case "$host_os" in
*djgpp | *mingw32* | *emx*)
ntp_cv_dir_sep="'\\'"
;;
*)
ntp_cv_dir_sep="'/'"
;;
esac
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_dir_sep" >&5
printf "%s\n" "$ntp_cv_dir_sep" >&6; }
printf "%s\n" "#define DIR_SEP $ntp_cv_dir_sep" >>confdefs.h
NTP_ORIG_LIBS="$LIBS"
# Check whether --with-lineeditlibs was given.
if test ${with_lineeditlibs+y}
then :
withval=$with_lineeditlibs; use_lineeditlibs="$withval"
else $as_nop
use_lineeditlibs="edit,editline"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking line editing libraries" >&5
printf %s "checking line editing libraries... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $use_lineeditlibs" >&5
printf "%s\n" "$use_lineeditlibs" >&6; }
case "$use_lineeditlibs" in
no)
ntp_lib_lineedit=no
;;
*)
for lineedit_lib in `echo $use_lineeditlibs | sed -e 's/,/ /'`; do
for term_lib in "" termcap curses ncurses; do
case "$term_lib" in
'')
TRY_LIB="-l$lineedit_lib"
;;
*)
TRY_LIB="-l$lineedit_lib -l$term_lib"
;;
esac
LIBS="$NTP_ORIG_LIBS $TRY_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline() with $TRY_LIB" >&5
printf %s "checking for readline() with $TRY_LIB... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char readline ();
int
main (void)
{
return readline ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit="$TRY_LIB"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
case "$ntp_lib_lineedit" in
'')
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*)
# Use readline()
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
break
esac
case "$term_lib" in
'')
# do not try el_gets without a terminal library
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for el_gets() with $TRY_LIB" >&5
printf %s "checking for el_gets() with $TRY_LIB... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char el_gets ();
int
main (void)
{
return el_gets ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit="$TRY_LIB"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
case "$ntp_lib_lineedit" in
'')
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*) # Use el_gets()
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
break
;;
esac # $ntp_lib_lineedit
esac # $term_lib
done
case "$ntp_lib_lineedit" in
'')
;;
*)
break
;;
esac
done
LIBS="$NTP_ORIG_LIBS"
;;
esac # $use_lineeditlibs
case "$ntp_lib_lineedit" in
'')
ntp_lib_lineedit="no"
;;
no)
;;
*)
EDITLINE_LIBS="$ntp_lib_lineedit"
;;
esac # $ntp_lib_lineedit
case "$ntp_lib_lineedit" in
no)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "readline.h" "ac_cv_header_readline_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_readline_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "histedit.h" "ac_cv_header_histedit_h" "$ac_includes_default"
if test "x$ac_cv_header_histedit_h" = xyes
then :
printf "%s\n" "#define HAVE_HISTEDIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "history.h" "ac_cv_header_history_h" "$ac_includes_default"
if test "x$ac_cv_header_history_h" = xyes
then :
printf "%s\n" "#define HAVE_HISTORY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_history_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_HISTORY_H 1" >>confdefs.h
fi
case "$ac_cv_header_histedit_h" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking number of arguments to el_init()" >&5
printf %s "checking number of arguments to el_init()... " >&6; }
if test ${ntp_cv_el_init_args+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#include <histedit.h>
int
main (void)
{
el_init("conftest", stdin, stdout, stderr);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_el_init_args=4
else $as_nop
ntp_cv_el_init_args=3
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_el_init_args" >&5
printf "%s\n" "$ntp_cv_el_init_args" >&6; }
printf "%s\n" "#define EL_INIT_ARGS $ntp_cv_el_init_args" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5
printf %s "checking whether readline supports history... " >&6; }
ntp_lib_lineedit_history="no"
ORIG_LIBS="$LIBS"
LIBS="$ORIG_LIBS $ntp_lib_lineedit"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char add_history ();
int
main (void)
{
return add_history ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit_history="yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$ORIG_LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_lib_lineedit_history" >&5
printf "%s\n" "$ntp_lib_lineedit_history" >&6; }
case "$ntp_lib_lineedit_history" in
yes)
printf "%s\n" "#define HAVE_READLINE_HISTORY 1" >>confdefs.h
esac
esac # $ntp_lib_lineedit
{ NTP_ORIG_LIBS=; unset NTP_ORIG_LIBS;}
{ ORIG_LIBS=; unset ORIG_LIBS;}
{ TRY_LIB=; unset TRY_LIB;}
{ use_lineeditlibs=; unset use_lineeditlibs;}
LIBM=
case "$host" in
*-*-darwin*)
;;
*)
_libs=$LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing cos" >&5
printf %s "checking for library containing cos... " >&6; }
if test ${ac_cv_search_cos+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char cos ();
int
main (void)
{
return cos ();
;
return 0;
}
_ACEOF
for ac_lib in '' m
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_cos=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_cos+y}
then :
break
fi
done
if test ${ac_cv_search_cos+y}
then :
else $as_nop
ac_cv_search_cos=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cos" >&5
printf "%s\n" "$ac_cv_search_cos" >&6; }
ac_res=$ac_cv_search_cos
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
LIBM="-lm"
fi
LIBS=$_libs
;;
esac
{ _libs=; unset _libs;}
if test "x$ac_cv_func_fork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
printf %s "checking for working fork... " >&6; }
if test ${ac_cv_func_fork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_fork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* By Ruediger Kuhlmann. */
return fork () < 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_fork_works=yes
else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
fi
if test "x$ac_cv_func_fork_works" = xcross; then
case $host in
*-*-amigaos* | *-*-msdosdjgpp*)
# Override, as these systems have only a dummy fork() stub
ac_cv_func_fork_works=no
;;
*)
ac_cv_func_fork_works=yes
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
printf %s "checking for working vfork... " >&6; }
if test ${ac_cv_func_vfork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_vfork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
static void
do_nothing (int sig)
{
(void) sig;
}
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
(e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
sparc_address_test (int arg)
{
static pid_t child;
if (!child) {
child = vfork ();
if (child < 0) {
perror ("vfork");
_exit(2);
}
if (!child) {
arg = getpid();
write(-1, "", 0);
_exit (arg);
}
}
}
int
main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
/* On Solaris 2.4, changes by the child to the signal handler
also munge signal handlers in the parent. To detect this,
start by putting the parent's handler in a known state. */
signal (SIGTERM, SIG_DFL);
child = vfork ();
if (child == 0) {
/* Here is another test for sparc vfork register problems. This
test uses lots of local variables, at least as many local
variables as main has allocated so far including compiler
temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
reuse the register of parent for one of the local variables,
since it will think that parent can't possibly be used any more
in this routine. Assigning to the local variable will thus
munge parent in the parent process. */
pid_t
p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
/* Convince the compiler that p..p7 are live; otherwise, it might
use the same hardware register for all 8 local variables. */
if (p != p1 || p != p2 || p != p3 || p != p4
|| p != p5 || p != p6 || p != p7)
_exit(1);
/* Alter the child's signal handler. */
if (signal (SIGTERM, do_nothing) != SIG_DFL)
_exit(1);
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
as well. Test for this by closing stdout in the child. */
_exit(close(fileno(stdout)) != 0);
} else {
int status;
struct stat st;
while (wait(&status) != child)
;
return (
/* Was there some problem with vforking? */
child < 0
/* Did the child munge the parent's signal handler? */
|| signal (SIGTERM, SIG_DFL) != SIG_DFL
/* Did the child fail? (This shouldn't happen.) */
|| status
/* Did the vfork/compiler bug occur? */
|| parent != getpid()
/* Did the file descriptor bug occur? */
|| fstat(fileno(stdout), &st) != 0
);
}
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_vfork_works=yes
else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
printf %s "checking for working alloca.h... " >&6; }
if test ${ac_cv_working_alloca_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <alloca.h>
int
main (void)
{
char *p = (char *) alloca (2 * sizeof (int));
if (p) return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_working_alloca_h=yes
else $as_nop
ac_cv_working_alloca_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
if test $ac_cv_working_alloca_h = yes; then
printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
printf %s "checking for alloca... " >&6; }
if test ${ac_cv_func_alloca_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test $ac_cv_working_alloca_h = yes; then
ac_cv_func_alloca_works=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stddef.h>
#ifndef alloca
# ifdef __GNUC__
# define alloca __builtin_alloca
# elif defined _MSC_VER
# include <malloc.h>
# define alloca _alloca
# else
# ifdef __cplusplus
extern "C"
# endif
void *alloca (size_t);
# endif
#endif
int
main (void)
{
char *p = (char *) alloca (1);
if (p) return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_func_alloca_works=yes
else $as_nop
ac_cv_func_alloca_works=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
fi
if test $ac_cv_func_alloca_works = yes; then
printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
printf %s "checking stack direction for C alloca... " >&6; }
if test ${ac_cv_c_stack_direction+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_c_stack_direction=0
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
find_stack_direction (int *addr, int depth)
{
int dir, dummy = 0;
if (! addr)
addr = &dummy;
*addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
dir = depth ? find_stack_direction (addr, depth - 1) : 0;
return dir + dummy;
}
int
main (int argc, char **argv)
{
return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_c_stack_direction=1
else $as_nop
ac_cv_c_stack_direction=-1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
fi
if test $ac_cv_have_decl_strerror_r = yes; then
# For backward compatibility's sake, define HAVE_STRERROR_R.
# (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well
# as AC_CHECK_DECLS_ONCE.)
printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
printf %s "checking whether strerror_r returns char *... " >&6; }
if test ${ac_cv_func_strerror_r_char_p+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_func_strerror_r_char_p=no
if test $ac_cv_have_decl_strerror_r = yes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
int
main (void)
{
char buf[100];
char x = *strerror_r (0, buf, sizeof buf);
char *p = strerror_r (0, buf, sizeof buf);
return !p || x;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_func_strerror_r_char_p=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; }
if test $ac_cv_func_strerror_r_char_p = yes; then
printf "%s\n" "#define STRERROR_R_CHAR_P 1" >>confdefs.h
fi
ac_busted_vpath_in_make=no
case "$build" in
*-*-irix6.1*) # 64 bit only
# busted vpath?
;;
*-*-irix6*) # 6.2 (and later?)
ac_busted_vpath_in_make=yes
;;
*-*-solaris2.5.1)
ac_busted_vpath_in_make=yes
;;
*-*-unicosmp*)
ac_busted_vpath_in_make=yes
;;
esac
case "$ac_busted_vpath_in_make$srcdir" in
yes.|no*)
;;
*) case "`${MAKE-make} -v -f /dev/null 2>/dev/null | grep 'GNU Make'`" in
'')
as_fn_error $? "building outside of the main directory requires GNU make" "$LINENO" 5
esac
;;
esac
case "$host" in
*-*-aix4*)
# Bug 2516:
# Was *-*-aix[[4-9]]*
# XXX only verified thru AIX6. But...
# Ken Link says this is fine for AIX 5.3 and 7.1, and sees no reason
# that this support would be in 5.3, removed in 6, and added back.
#
# (prr) aix 4.1 doesn't have clock_settime, but in aix 4.3 it's a stub
# (returning ENOSYS). I didn't check 4.2. If, in the future,
# IBM pulls its thumbs out long enough to implement clock_settime,
# this conditional will need to change. Maybe use AC_TRY_RUN
# instead to try to set the time to itself and check errno.
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char clock_gettime ();
int
main (void)
{
return clock_gettime ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_clock_gettime+y}
then :
break
fi
done
if test ${ac_cv_search_clock_gettime+y}
then :
else $as_nop
ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_clock_gettime" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_clock_gettime $LDADD_LIBNTP" ;;
esac
fi
ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres"
if test "x$ac_cv_func_clock_getres" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
if test "x$ac_cv_func_clock_gettime" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime"
if test "x$ac_cv_func_clock_settime" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_func "$LINENO" "getclock" "ac_cv_func_getclock"
if test "x$ac_cv_func_getclock" = xyes
then :
printf "%s\n" "#define HAVE_GETCLOCK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "stime" "ac_cv_func_stime"
if test "x$ac_cv_func_stime" = xyes
then :
printf "%s\n" "#define HAVE_STIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
if test "x$ac_cv_func_timegm" = xyes
then :
printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
if test "x$ac_cv_func_strlcpy" = xyes
then :
printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
if test "x$ac_cv_func_strlcat" = xyes
then :
printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
fi
# Bug 2713
LDADD_LIBUTIL=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing snprintb" >&5
printf %s "checking for library containing snprintb... " >&6; }
if test ${ac_cv_search_snprintb+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char snprintb ();
int
main (void)
{
return snprintb ();
;
return 0;
}
_ACEOF
for ac_lib in '' util
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_snprintb=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_snprintb+y}
then :
break
fi
done
if test ${ac_cv_search_snprintb+y}
then :
else $as_nop
ac_cv_search_snprintb=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_snprintb" >&5
printf "%s\n" "$ac_cv_search_snprintb" >&6; }
ac_res=$ac_cv_search_snprintb
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_snprintb" in
'none required') ;;
no) ;;
*) LDADD_LIBUTIL="$ac_cv_search_snprintb $LDADD_LIBUTIL" ;;
esac
printf "%s\n" "#define USE_SNPRINTB 1" >>confdefs.h
fi
#
ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
if test "x$ac_cv_header_errno_h" = xyes
then :
printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_types_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
if test "x$ac_cv_header_time_h" = xyes
then :
printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
"
if test "x$ac_cv_header_net_if_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
fi
case "$host" in
*-hp-hpux*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if net/if.h requires mpinfou predeclaration" >&5
printf %s "checking if net/if.h requires mpinfou predeclaration... " >&6; }
if test ${ntp_cv_predecl_mpinfou+y}
then :
printf %s "(cached) " >&6
else $as_nop
np_cv_predecl_mpinfou=no
case "$ac_cv_header_net_if_h" in
no)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
typedef union mpinfou {
struct pdk_mpinfo *pdkptr;
struct mpinfo *pikptr;
} mpinfou_t;
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#include <net/if.h>
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_predecl_mpinfou=yes
ac_cv_header_net_if_h=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_predecl_mpinfou" >&5
printf "%s\n" "$ntp_cv_predecl_mpinfou" >&6; }
case "$ntp_cv_predecl_mpinfou" in
yes)
cat >>confdefs.h <<_ACEOF
#ifndef MPINFOU_PREDECLARED
# define MPINFOU_PREDECLARED
typedef union mpinfou {
struct pdk_mpinfo *pdkptr;
struct mpinfo *pikptr;
} mpinfou_t;
#endif
_ACEOF
esac
esac
case "$host" in
*-linux*)
ac_fn_c_check_header_compile "$LINENO" "linux/if_addr.h" "ac_cv_header_linux_if_addr_h" "
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
"
if test "x$ac_cv_header_linux_if_addr_h" = xyes
then :
printf "%s\n" "#define HAVE_LINUX_IF_ADDR_H 1" >>confdefs.h
fi
printf "%s\n" "#define NEED_EARLY_FORK 1" >>confdefs.h
esac
ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "$ac_includes_default"
if test "x$ac_cv_header_arpa_nameser_h" = xyes
then :
printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_time_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/timers.h" "ac_cv_header_sys_timers_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_timers_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIMERS_H 1" >>confdefs.h
fi
# sys/sysctl.h depends on sys/param.h on OpenBSD - Bug 1576
ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "
#if defined HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
"
if test "x$ac_cv_header_sys_sysctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SYSCTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_system.h" "ac_cv_header_netinet_in_system_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_system_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_SYSTEM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_systm.h" "ac_cv_header_netinet_in_systm_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_systm_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_SYSTM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
"
if test "x$ac_cv_header_resolv_h" = xyes
then :
printf "%s\n" "#define HAVE_RESOLV_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "net/if_var.h" "ac_cv_header_net_if_var_h" "
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
"
if test "x$ac_cv_header_net_if_var_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_IF_VAR_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/ip.h" "ac_cv_header_netinet_ip_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_VAR_H
# include <net/if_var.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
"
if test "x$ac_cv_header_netinet_ip_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_var.h" "ac_cv_header_netinet_in_var_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_VAR_H
# include <net/if_var.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
"
if test "x$ac_cv_header_netinet_in_var_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_VAR_H 1" >>confdefs.h
fi
# HMS: Do we need to check for -lsocket before or after these tests?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
printf %s "checking for library containing inet_pton... " >&6; }
if test ${ac_cv_search_inet_pton+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char inet_pton ();
int
main (void)
{
return inet_pton ();
;
return 0;
}
_ACEOF
for ac_lib in '' nsl
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_inet_pton=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_inet_pton+y}
then :
break
fi
done
if test ${ac_cv_search_inet_pton+y}
then :
else $as_nop
ac_cv_search_inet_pton=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
ac_res=$ac_cv_search_inet_pton
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_inet_pton" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_inet_pton $LDADD_LIBNTP" ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5
printf %s "checking for library containing inet_ntop... " >&6; }
if test ${ac_cv_search_inet_ntop+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char inet_ntop ();
int
main (void)
{
return inet_ntop ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_inet_ntop=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_inet_ntop+y}
then :
break
fi
done
if test ${ac_cv_search_inet_ntop+y}
then :
else $as_nop
ac_cv_search_inet_ntop=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5
printf "%s\n" "$ac_cv_search_inet_ntop" >&6; }
ac_res=$ac_cv_search_inet_ntop
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_inet_ntop" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_inet_ntop $LDADD_LIBNTP" ;;
esac
fi
# [Bug 1628] On Solaris, we need -lxnet -lsocket. Generalize this to
# avoid keying on the OS name: If we find socket functions in
# libsocket, next try for them in libxnet without libsocket, if found,
# list both. If we simply tested libxnet first, we would find the
# functions there and never add libsocket. See also [Bug 660]
# http://bugs.ntp.org/show_bug.cgi?id=660#c9
saved_LIBS=$LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
printf %s "checking for library containing setsockopt... " >&6; }
if test ${ac_cv_search_setsockopt+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char setsockopt ();
int
main (void)
{
return setsockopt ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_setsockopt=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_setsockopt+y}
then :
break
fi
done
if test ${ac_cv_search_setsockopt+y}
then :
else $as_nop
ac_cv_search_setsockopt=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
printf "%s\n" "$ac_cv_search_setsockopt" >&6; }
ac_res=$ac_cv_search_setsockopt
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_setsockopt" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_setsockopt $LDADD_LIBNTP" ;;
esac
fi
case "$ac_cv_search_setsockopt" in
-lsocket)
LIBS="$saved_LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getsockopt" >&5
printf %s "checking for library containing getsockopt... " >&6; }
if test ${ac_cv_search_getsockopt+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char getsockopt ();
int
main (void)
{
return getsockopt ();
;
return 0;
}
_ACEOF
for ac_lib in '' xnet
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_getsockopt=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_getsockopt+y}
then :
break
fi
done
if test ${ac_cv_search_getsockopt+y}
then :
else $as_nop
ac_cv_search_getsockopt=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getsockopt" >&5
printf "%s\n" "$ac_cv_search_getsockopt" >&6; }
ac_res=$ac_cv_search_getsockopt
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_getsockopt" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_getsockopt $LDADD_LIBNTP" ;;
esac
fi
# XXX Possible trouble here - reading the comments above and looking at the
# code below I wonder if we'll add -lxnet when we don't need it.
# Also, do we need to add -lxnet to LDADD_LIBNTP, or perhaps see if it's
# there when it is not needed?
case "$ac_cv_search_getsockopt" in
-lxnet)
LIBS="-lxnet -lsocket $saved_LIBS"
;;
*) LIBS="-lsocket $saved_LIBS"
;;
esac
;;
esac
{ saved_LIBS=; unset saved_LIBS;}
# Bug 2427 - look for recvmsg here.
ac_fn_c_check_func "$LINENO" "recvmsg" "ac_cv_func_recvmsg"
if test "x$ac_cv_func_recvmsg" = xyes
then :
printf "%s\n" "#define HAVE_RECVMSG 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
printf %s "checking for inline... " >&6; }
if test ${ac_cv_c_inline+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
static $ac_kw foo_t static_foo (void) {return 0; }
$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_inline=$ac_kw
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
*)
case $ac_cv_c_inline in
no) ac_val=;;
*) ac_val=$ac_cv_c_inline;;
esac
cat >>confdefs.h <<_ACEOF
#ifndef __cplusplus
#define inline $ac_val
#endif
_ACEOF
;;
esac
case "$ac_cv_c_inline" in
'')
;;
*)
printf "%s\n" "#define HAVE_INLINE 1" >>confdefs.h
esac
# Obsolete code to be removed.
if test $ac_cv_header_sys_time_h = yes; then
printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
fi
# End of obsolete code.
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
printf %s "checking size of time_t... " >&6; }
if test ${ac_cv_sizeof_time_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_time_t" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (time_t)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_time_t=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
printf %s "checking whether char is unsigned... " >&6; }
if test ${ac_cv_c_char_unsigned+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
static int test_array [1 - 2 * !(((char) -1) < 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_char_unsigned=no
else $as_nop
ac_cv_c_char_unsigned=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
printf "%s\n" "$ac_cv_c_char_unsigned" >&6; }
if test $ac_cv_c_char_unsigned = yes; then
printf "%s\n" "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of signed char" >&5
printf %s "checking size of signed char... " >&6; }
if test ${ac_cv_sizeof_signed_char+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed char))" "ac_cv_sizeof_signed_char" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_signed_char" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (signed char)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_signed_char=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_char" >&5
printf "%s\n" "$ac_cv_sizeof_signed_char" >&6; }
printf "%s\n" "#define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char" >>confdefs.h
ac_fn_c_check_type "$LINENO" "s_char" "ac_cv_type_s_char" "$ac_includes_default"
if test "x$ac_cv_type_s_char" = xyes
then :
printf "%s\n" "#define HAVE_S_CHAR 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
if test "x$ac_cv_type_long_long" = xyes
then :
printf "%s\n" "#define HAVE_LONG_LONG 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
printf %s "checking size of short... " >&6; }
if test ${ac_cv_sizeof_short+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_short" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (short)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
printf "%s\n" "$ac_cv_sizeof_short" >&6; }
printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
printf %s "checking size of int... " >&6; }
if test ${ac_cv_sizeof_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_int" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
printf "%s\n" "$ac_cv_sizeof_int" >&6; }
printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
printf "%s\n" "$ac_cv_sizeof_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
case "$ac_cv_type_long_long" in
no)
;;
*)
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
printf %s "checking size of long long... " >&6; }
if test ${ac_cv_sizeof_long_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
printf "%s\n" "$ac_cv_sizeof_long_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h
;;
esac
case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in
*yes)
# We have a typedef for s_char. Might as well believe it...
;;
no0no)
# We have signed chars, can't say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
no1no)
# We have signed chars, can say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
yes0no)
# We have unsigned chars, can't say 'signed char', no s_char typedef.
as_fn_error $? "No way to specify a signed character!" "$LINENO" 5
;;
yes1no)
# We have unsigned chars, can say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
printf %s "checking for uid_t in sys/types.h... " >&6; }
if test ${ac_cv_type_uid_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "uid_t" >/dev/null 2>&1
then :
ac_cv_type_uid_t=yes
else $as_nop
ac_cv_type_uid_t=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
printf "%s\n" "$ac_cv_type_uid_t" >&6; }
if test $ac_cv_type_uid_t = no; then
printf "%s\n" "#define uid_t int" >>confdefs.h
printf "%s\n" "#define gid_t int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're including debugging code" >&5
printf %s "checking if we're including debugging code... " >&6; }
# Check whether --enable-debugging was given.
if test ${enable_debugging+y}
then :
enableval=$enable_debugging; ntp_ok=$enableval
else $as_nop
ntp_ok=yes
fi
case "$ntp_ok" in
yes)
printf "%s\n" "#define DEBUG 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# check if we can compile with pthreads
ac_fn_c_check_header_compile "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default"
if test "x$ac_cv_header_semaphore_h" = xyes
then :
printf "%s\n" "#define HAVE_SEMAPHORE_H 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair"
if test "x$ac_cv_func_socketpair" = xyes
then :
printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
fi
# Check whether --enable-thread-support was given.
if test ${enable_thread_support+y}
then :
enableval=$enable_thread_support;
else $as_nop
enable_thread_support=yes
fi
have_pthreads=no
case "$enable_thread_support" in
no) ;;
*)
ol_found_pthreads=no
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# OpenLDAP --with-threads
# Check whether --with-threads was given.
if test ${with_threads+y}
then :
withval=$with_threads;
ol_arg=invalid
for ol_val in auto nt posix mach pth lwp yes no manual ; do
if test "$withval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
as_fn_error $? "bad value $withval for --with-threads" "$LINENO" 5
fi
ol_with_threads="$ol_arg"
else $as_nop
ol_with_threads="auto"
fi
# end --with-threads
case "$ol_with_threads$host" in
auto*-*-solaris2.[0-6])
ol_with_threads=no
;;
esac
ol_aix_threads=no
case "$host" in
*-*-aix*) if test -z "$CC" ; then
case "$ol_with_threads" in
auto | yes | posix) ol_aix_threads=yes ;;
esac
fi
;;
esac
if test $ol_aix_threads = yes ; then
if test -z "${CC}" ; then
for ac_prog in cc_r xlc_r cc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
if test "$CC" = cc ; then
if test $ol_with_threads != auto ; then
as_fn_error $? "--with-threads requires cc_r (or other suitable compiler) on AIX" "$LINENO" 5
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: disabling threads, no cc_r on AIX" >&5
printf "%s\n" "$as_me: WARNING: disabling threads, no cc_r on AIX" >&2;}
fi
ol_with_threads=no
fi
fi
case ${CC} in cc_r | xlc_r)
ol_with_threads=posix
ol_cv_pthread_create=yes
;;
esac
fi
ol_link_threads=no
# OpenLDAP --with-yielding_select
# Check whether --with-yielding_select was given.
if test ${with_yielding_select+y}
then :
withval=$with_yielding_select;
ol_arg=invalid
for ol_val in auto yes no manual ; do
if test "$withval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
as_fn_error $? "bad value $withval for --with-yielding_select" "$LINENO" 5
fi
ol_with_yielding_select="$ol_arg"
else $as_nop
ol_with_yielding_select="auto"
fi
# end --with-yielding_select
case $ol_with_threads in auto | yes | nt)
ac_fn_c_check_func "$LINENO" "_beginthread" "ac_cv_func__beginthread"
if test "x$ac_cv_func__beginthread" = xyes
then :
fi
if test $ac_cv_func__beginthread = yes ; then
printf "%s\n" "#define HAVE_NT_THREADS 1" >>confdefs.h
ol_cv_nt_threads=yes
fi
if test "$ol_cv_nt_threads" = yes ; then
ol_link_threads=nt
ol_with_threads=found
ol_with_yielding_select=yes
printf "%s\n" "#define HAVE_NT_SERVICE_MANAGER 1" >>confdefs.h
printf "%s\n" "#define HAVE_NT_EVENT_LOG 1" >>confdefs.h
fi
if test $ol_with_threads = nt ; then
as_fn_error $? "could not locate NT Threads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | posix)
ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h
fi
if test $ac_cv_header_pthread_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking POSIX thread version" >&5
printf %s "checking POSIX thread version... " >&6; }
if test ${ol_cv_pthread_version+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
int
main (void)
{
int i = PTHREAD_CREATE_JOINABLE;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_detach" >/dev/null 2>&1
then :
ol_cv_pthread_version=10
else $as_nop
ol_cv_pthread_version=8
fi
rm -rf conftest*
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
# ifdef PTHREAD_CREATE_UNDETACHED
draft7
# endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "draft7" >/dev/null 2>&1
then :
ol_cv_pthread_version=7
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_attr_init" >/dev/null 2>&1
then :
ol_cv_pthread_version=6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
#ifdef PTHREAD_MUTEX_INITIALIZER
draft5
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "draft5" >/dev/null 2>&1
then :
ol_cv_pthread_version=5
else $as_nop
ol_cv_pthread_version=4
fi
rm -rf conftest*
fi
rm -rf conftest*
fi
rm -rf conftest*
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_version" >&5
printf "%s\n" "$ol_cv_pthread_version" >&6; }
if test $ol_cv_pthread_version != 0 ; then
printf "%s\n" "#define HAVE_PTHREADS $ol_cv_pthread_version" >>confdefs.h
else
as_fn_error $? "unknown pthread version" "$LINENO" 5
fi
# consider threads found
ol_with_threads=found
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads pthread.h" >&5
printf %s "checking for LinuxThreads pthread.h... " >&6; }
if test ${ol_cv_header_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_kill_other_threads_np" >/dev/null 2>&1
then :
ol_cv_header_linux_threads=yes
else $as_nop
ol_cv_header_linux_threads=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_linux_threads" >&5
printf "%s\n" "$ol_cv_header_linux_threads" >&6; }
if test $ol_cv_header_linux_threads = yes; then
printf "%s\n" "#define HAVE_LINUX_THREADS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU Pth pthread.h" >&5
printf %s "checking for GNU Pth pthread.h... " >&6; }
if test ${ol_cv_header_gnu_pth_pthread_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
#ifdef _POSIX_THREAD_IS_GNU_PTH
__gnu_pth__;
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "__gnu_pth__" >/dev/null 2>&1
then :
ol_cv_header_gnu_pth_pthread_h=yes
else $as_nop
ol_cv_header_gnu_pth_pthread_h=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_gnu_pth_pthread_h" >&5
printf "%s\n" "$ol_cv_header_gnu_pth_pthread_h" >&6; }
if test $ol_cv_header_gnu_pth_pthread_h = no ; then
ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in default libraries" >&5
printf %s "checking for pthread_create in default libraries... " >&6; }
if test ${ol_cv_pthread_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_create=yes
else $as_nop
ol_cv_pthread_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_create=yes
else $as_nop
ol_cv_pthread_create=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_create" >&5
printf "%s\n" "$ol_cv_pthread_create" >&6; }
if test $ol_cv_pthread_create != no ; then
ol_link_threads=posix
ol_link_pthreads=""
fi
# Pthread try link: -kthread (ol_cv_pthread_kthread)
if test "$ol_link_threads" = no ; then
# try -kthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -kthread" >&5
printf %s "checking for pthread link with -kthread... " >&6; }
if test ${ol_cv_pthread_kthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-kthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_kthread=yes
else $as_nop
ol_cv_pthread_kthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_kthread=yes
else $as_nop
ol_cv_pthread_kthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_kthread" >&5
printf "%s\n" "$ol_cv_pthread_kthread" >&6; }
if test $ol_cv_pthread_kthread = yes ; then
ol_link_pthreads="-kthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -pthread (ol_cv_pthread_pthread)
if test "$ol_link_threads" = no ; then
# try -pthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -pthread" >&5
printf %s "checking for pthread link with -pthread... " >&6; }
if test ${ol_cv_pthread_pthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-pthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_pthread=yes
else $as_nop
ol_cv_pthread_pthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_pthread=yes
else $as_nop
ol_cv_pthread_pthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_pthread" >&5
printf "%s\n" "$ol_cv_pthread_pthread" >&6; }
if test $ol_cv_pthread_pthread = yes ; then
ol_link_pthreads="-pthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -pthreads (ol_cv_pthread_pthreads)
if test "$ol_link_threads" = no ; then
# try -pthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -pthreads" >&5
printf %s "checking for pthread link with -pthreads... " >&6; }
if test ${ol_cv_pthread_pthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-pthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_pthreads=yes
else $as_nop
ol_cv_pthread_pthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_pthreads=yes
else $as_nop
ol_cv_pthread_pthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_pthreads" >&5
printf "%s\n" "$ol_cv_pthread_pthreads" >&6; }
if test $ol_cv_pthread_pthreads = yes ; then
ol_link_pthreads="-pthreads"
ol_link_threads=posix
fi
fi
# Pthread try link: -mthreads (ol_cv_pthread_mthreads)
if test "$ol_link_threads" = no ; then
# try -mthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -mthreads" >&5
printf %s "checking for pthread link with -mthreads... " >&6; }
if test ${ol_cv_pthread_mthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-mthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_mthreads=yes
else $as_nop
ol_cv_pthread_mthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_mthreads=yes
else $as_nop
ol_cv_pthread_mthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_mthreads" >&5
printf "%s\n" "$ol_cv_pthread_mthreads" >&6; }
if test $ol_cv_pthread_mthreads = yes ; then
ol_link_pthreads="-mthreads"
ol_link_threads=posix
fi
fi
# Pthread try link: -thread (ol_cv_pthread_thread)
if test "$ol_link_threads" = no ; then
# try -thread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -thread" >&5
printf %s "checking for pthread link with -thread... " >&6; }
if test ${ol_cv_pthread_thread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-thread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_thread=yes
else $as_nop
ol_cv_pthread_thread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_thread=yes
else $as_nop
ol_cv_pthread_thread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_thread" >&5
printf "%s\n" "$ol_cv_pthread_thread" >&6; }
if test $ol_cv_pthread_thread = yes ; then
ol_link_pthreads="-thread"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -lmach -lexc -lc_r (ol_cv_pthread_lpthread_lmach_lexc_lc_r)
if test "$ol_link_threads" = no ; then
# try -lpthread -lmach -lexc -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5
printf %s "checking for pthread link with -lpthread -lmach -lexc -lc_r... " >&6; }
if test ${ol_cv_pthread_lpthread_lmach_lexc_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -lmach -lexc -lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread_lmach_lexc_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lpthread_lmach_lexc_lc_r" >&6; }
if test $ol_cv_pthread_lpthread_lmach_lexc_lc_r = yes ; then
ol_link_pthreads="-lpthread -lmach -lexc -lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -lmach -lexc (ol_cv_pthread_lpthread_lmach_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthread -lmach -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -lmach -lexc" >&5
printf %s "checking for pthread link with -lpthread -lmach -lexc... " >&6; }
if test ${ol_cv_pthread_lpthread_lmach_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -lmach -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread_lmach_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthread_lmach_lexc" >&6; }
if test $ol_cv_pthread_lpthread_lmach_lexc = yes ; then
ol_link_pthreads="-lpthread -lmach -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -Wl,-woff,85 (ol_cv_pthread_lib_lpthread_woff)
if test "$ol_link_threads" = no ; then
# try -lpthread -Wl,-woff,85
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -Wl,-woff,85" >&5
printf %s "checking for pthread link with -lpthread -Wl,-woff,85... " >&6; }
if test ${ol_cv_pthread_lib_lpthread_woff+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -Wl,-woff,85 $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lib_lpthread_woff=yes
else $as_nop
ol_cv_pthread_lib_lpthread_woff=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lib_lpthread_woff=yes
else $as_nop
ol_cv_pthread_lib_lpthread_woff=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lib_lpthread_woff" >&5
printf "%s\n" "$ol_cv_pthread_lib_lpthread_woff" >&6; }
if test $ol_cv_pthread_lib_lpthread_woff = yes ; then
ol_link_pthreads="-lpthread -Wl,-woff,85"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread (ol_cv_pthread_lpthread)
if test "$ol_link_threads" = no ; then
# try -lpthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread" >&5
printf %s "checking for pthread link with -lpthread... " >&6; }
if test ${ol_cv_pthread_lpthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread=yes
else $as_nop
ol_cv_pthread_lpthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread=yes
else $as_nop
ol_cv_pthread_lpthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread" >&5
printf "%s\n" "$ol_cv_pthread_lpthread" >&6; }
if test $ol_cv_pthread_lpthread = yes ; then
ol_link_pthreads="-lpthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -lc_r (ol_cv_pthread_lc_r)
if test "$ol_link_threads" = no ; then
# try -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lc_r" >&5
printf %s "checking for pthread link with -lc_r... " >&6; }
if test ${ol_cv_pthread_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lc_r=yes
else $as_nop
ol_cv_pthread_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lc_r=yes
else $as_nop
ol_cv_pthread_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lc_r" >&6; }
if test $ol_cv_pthread_lc_r = yes ; then
ol_link_pthreads="-lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -threads (ol_cv_pthread_threads)
if test "$ol_link_threads" = no ; then
# try -threads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -threads" >&5
printf %s "checking for pthread link with -threads... " >&6; }
if test ${ol_cv_pthread_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-threads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_threads=yes
else $as_nop
ol_cv_pthread_threads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_threads=yes
else $as_nop
ol_cv_pthread_threads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_threads" >&5
printf "%s\n" "$ol_cv_pthread_threads" >&6; }
if test $ol_cv_pthread_threads = yes ; then
ol_link_pthreads="-threads"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lmach -lexc -lc_r (ol_cv_pthread_lpthreads_lmach_lexc_lc_r)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lmach -lexc -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5
printf %s "checking for pthread link with -lpthreads -lmach -lexc -lc_r... " >&6; }
if test ${ol_cv_pthread_lpthreads_lmach_lexc_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lmach -lexc -lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lmach_lexc_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lmach_lexc_lc_r" >&6; }
if test $ol_cv_pthread_lpthreads_lmach_lexc_lc_r = yes ; then
ol_link_pthreads="-lpthreads -lmach -lexc -lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lmach -lexc (ol_cv_pthread_lpthreads_lmach_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lmach -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lmach -lexc" >&5
printf %s "checking for pthread link with -lpthreads -lmach -lexc... " >&6; }
if test ${ol_cv_pthread_lpthreads_lmach_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lmach -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lmach_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lmach_lexc" >&6; }
if test $ol_cv_pthread_lpthreads_lmach_lexc = yes ; then
ol_link_pthreads="-lpthreads -lmach -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lexc (ol_cv_pthread_lpthreads_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lexc" >&5
printf %s "checking for pthread link with -lpthreads -lexc... " >&6; }
if test ${ol_cv_pthread_lpthreads_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lexc" >&6; }
if test $ol_cv_pthread_lpthreads_lexc = yes ; then
ol_link_pthreads="-lpthreads -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads (ol_cv_pthread_lib_lpthreads)
if test "$ol_link_threads" = no ; then
# try -lpthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads" >&5
printf %s "checking for pthread link with -lpthreads... " >&6; }
if test ${ol_cv_pthread_lib_lpthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lib_lpthreads=yes
else $as_nop
ol_cv_pthread_lib_lpthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lib_lpthreads=yes
else $as_nop
ol_cv_pthread_lib_lpthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lib_lpthreads" >&5
printf "%s\n" "$ol_cv_pthread_lib_lpthreads" >&6; }
if test $ol_cv_pthread_lib_lpthreads = yes ; then
ol_link_pthreads="-lpthreads"
ol_link_threads=posix
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ol_link_threads: <$ol_link_threads> ol_link_pthreads <$ol_link_pthreads>" >&5
printf "%s\n" "$as_me: ol_link_threads: <$ol_link_threads> ol_link_pthreads <$ol_link_pthreads>" >&6;}
if test $ol_link_threads != no ; then
LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
save_CPPFLAGS="$CPPFLAGS"
save_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
if test "x$ac_cv_func_sched_yield" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_yield" "ac_cv_func_pthread_yield"
if test "x$ac_cv_func_pthread_yield" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_yield" "ac_cv_func_thr_yield"
if test "x$ac_cv_func_thr_yield" = xyes
then :
printf "%s\n" "#define HAVE_THR_YIELD 1" >>confdefs.h
fi
if test $ac_cv_func_sched_yield = no &&
test $ac_cv_func_pthread_yield = no &&
test $ac_cv_func_thr_yield = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
printf %s "checking for sched_yield in -lrt... " >&6; }
if test ${ac_cv_lib_rt_sched_yield+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lrt $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sched_yield ();
int
main (void)
{
return sched_yield ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_rt_sched_yield=yes
else $as_nop
ac_cv_lib_rt_sched_yield=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
if test "x$ac_cv_lib_rt_sched_yield" = xyes
then :
LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
ac_cv_func_sched_yield=yes
else $as_nop
ac_cv_func_sched_yield=no
fi
fi
if test $ac_cv_func_sched_yield = no &&
test $ac_cv_func_pthread_yield = no &&
test "$ac_cv_func_thr_yield" = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not locate sched_yield() or pthread_yield()" >&5
printf "%s\n" "$as_me: WARNING: could not locate sched_yield() or pthread_yield()" >&2;}
fi
ac_fn_c_check_func "$LINENO" "pthread_kill" "ac_cv_func_pthread_kill"
if test "x$ac_cv_func_pthread_kill" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_KILL 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_rwlock_destroy with <pthread.h>" >&5
printf %s "checking for pthread_rwlock_destroy with <pthread.h>... " >&6; }
if test ${ol_cv_func_pthread_rwlock_destroy+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
pthread_rwlock_t rwlock;
int
main (void)
{
pthread_rwlock_destroy(&rwlock);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_func_pthread_rwlock_destroy=yes
else $as_nop
ol_cv_func_pthread_rwlock_destroy=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_func_pthread_rwlock_destroy" >&5
printf "%s\n" "$ol_cv_func_pthread_rwlock_destroy" >&6; }
if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_DESTROY 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_detach with <pthread.h>" >&5
printf %s "checking for pthread_detach with <pthread.h>... " >&6; }
if test ${ol_cv_func_pthread_detach+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
#ifndef NULL
#define NULL (void*)0
#endif
int
main (void)
{
pthread_detach(NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_func_pthread_detach=yes
else $as_nop
ol_cv_func_pthread_detach=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_func_pthread_detach" >&5
printf "%s\n" "$ol_cv_func_pthread_detach" >&6; }
if test $ol_cv_func_pthread_detach = no ; then
as_fn_error $? "could not locate pthread_detach()" "$LINENO" 5
fi
printf "%s\n" "#define HAVE_PTHREAD_DETACH 1" >>confdefs.h
ac_fn_c_check_func "$LINENO" "pthread_setconcurrency" "ac_cv_func_pthread_setconcurrency"
if test "x$ac_cv_func_pthread_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_getconcurrency" "ac_cv_func_pthread_getconcurrency"
if test "x$ac_cv_func_pthread_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_GETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_setconcurrency" "ac_cv_func_thr_setconcurrency"
if test "x$ac_cv_func_thr_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_getconcurrency" "ac_cv_func_thr_getconcurrency"
if test "x$ac_cv_func_thr_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_GETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_kill_other_threads_np" "ac_cv_func_pthread_kill_other_threads_np"
if test "x$ac_cv_func_pthread_kill_other_threads_np" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_KILL_OTHER_THREADS_NP 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads implementation" >&5
printf %s "checking for LinuxThreads implementation... " >&6; }
if test ${ol_cv_sys_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_sys_linux_threads" >&5
printf "%s\n" "$ol_cv_sys_linux_threads" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads consistency" >&5
printf %s "checking for LinuxThreads consistency... " >&6; }
if test ${ol_cv_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test $ol_cv_header_linux_threads = yes &&
test $ol_cv_sys_linux_threads = yes; then
ol_cv_linux_threads=yes
elif test $ol_cv_header_linux_threads = no &&
test $ol_cv_sys_linux_threads = no; then
ol_cv_linux_threads=no
else
ol_cv_linux_threads=error
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_linux_threads" >&5
printf "%s\n" "$ol_cv_linux_threads" >&6; }
if test $ol_cv_linux_threads = error; then
as_fn_error $? "LinuxThreads header/library mismatch" "$LINENO" 5;
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if pthread_create() works" >&5
printf %s "checking if pthread_create() works... " >&6; }
if test ${ol_cv_pthread_create_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ol_cv_pthread_create_works=yes
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_create_works=yes
else $as_nop
ol_cv_pthread_create_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_create_works" >&5
printf "%s\n" "$ol_cv_pthread_create_works" >&6; }
if test $ol_cv_pthread_create_works = no ; then
as_fn_error $? "pthread_create is not usable, check environment settings" "$LINENO" 5
fi
ol_replace_broken_yield=no
if test $ol_replace_broken_yield = yes ; then
printf "%s\n" "#define REPLACE_BROKEN_YIELD 1" >>confdefs.h
fi
if test x$ol_with_yielding_select = xauto ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if select yields when using pthreads" >&5
printf %s "checking if select yields when using pthreads... " >&6; }
if test ${ol_cv_pthread_select_yields+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ol_cv_pthread_select_yields=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <pthread.h>
#ifndef NULL
#define NULL (void*) 0
#endif
static int fildes[2];
static void *task(p)
void *p;
{
int i;
struct timeval tv;
fd_set rfds;
tv.tv_sec=10;
tv.tv_usec=0;
FD_ZERO(&rfds);
FD_SET(fildes[0], &rfds);
/* we're not interested in any fds */
i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
if(i < 0) {
perror("select");
exit(10);
}
exit(0); /* if we exit here, the select blocked the whole process */
}
int main(argc, argv)
int argc;
char **argv;
{
pthread_t t;
/* create a pipe to select */
if(pipe(&fildes[0])) {
perror("select");
exit(1);
}
#ifdef HAVE_PTHREAD_SETCONCURRENCY
(void) pthread_setconcurrency(2);
#else
#ifdef HAVE_THR_SETCONCURRENCY
/* Set Solaris LWP concurrency to 2 */
thr_setconcurrency(2);
#endif
#endif
#if HAVE_PTHREADS < 6
pthread_create(&t, pthread_attr_default, task, NULL);
#else
pthread_create(&t, NULL, task, NULL);
#endif
/* make sure task runs first */
#ifdef HAVE_THR_YIELD
thr_yield();
#elif defined( HAVE_SCHED_YIELD )
sched_yield();
#elif defined( HAVE_PTHREAD_YIELD )
pthread_yield();
#endif
exit(2);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_select_yields=no
else $as_nop
ol_cv_pthread_select_yields=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_select_yields" >&5
printf "%s\n" "$ol_cv_pthread_select_yields" >&6; }
if test $ol_cv_pthread_select_yields = cross ; then
as_fn_error $? "crossing compiling: use --with-yielding-select=yes|no|manual" "$LINENO" 5
fi
if test $ol_cv_pthread_select_yields = yes ; then
ol_with_yielding_select=yes
fi
fi
CPPFLAGS="$save_CPPFLAGS"
LIBS="$save_LIBS"
else
as_fn_error $? "could not locate usable POSIX Threads" "$LINENO" 5
fi
fi
if test $ol_with_threads = posix ; then
as_fn_error $? "could not locate POSIX Threads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | mach)
ac_fn_c_check_header_compile "$LINENO" "mach/cthreads.h" "ac_cv_header_mach_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_mach_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_MACH_CTHREADS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "cthreads.h" "ac_cv_header_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_CTHREADS_H 1" >>confdefs.h
fi
if test $ac_cv_header_mach_cthreads_h = yes ; then
ol_with_threads=found
ac_fn_c_check_func "$LINENO" "cthread_fork" "ac_cv_func_cthread_fork"
if test "x$ac_cv_func_cthread_fork" = xyes
then :
ol_link_threads=yes
fi
if test $ol_link_threads = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cthread_fork with -all_load" >&5
printf %s "checking for cthread_fork with -all_load... " >&6; }
if test ${ol_cv_cthread_all_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
save_LIBS="$LIBS"
LIBS="-all_load $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <mach/cthreads.h>
int
main (void)
{
cthread_fork((void *)0, (void *)0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_cthread_all_load=yes
else $as_nop
ol_cv_cthread_all_load=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$save_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_cthread_all_load" >&5
printf "%s\n" "$ol_cv_cthread_all_load" >&6; }
if test $ol_cv_cthread_all_load = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
ol_link_threads=mach
ol_with_threads=found
fi
fi
elif test $ac_cv_header_cthreads_h = yes ; then
ol_with_threads=found
save_LIBS="$LIBS"
LIBS="$LIBS -lthreads"
ac_fn_c_check_func "$LINENO" "cthread_fork" "ac_cv_func_cthread_fork"
if test "x$ac_cv_func_cthread_fork" = xyes
then :
ol_link_threads=yes
fi
LIBS="$save_LIBS"
if test $ol_link_threads = yes ; then
LTHREAD_LIBS="-lthreads"
ol_link_threads=mach
ol_with_threads=found
else
as_fn_error $? "could not link with Mach CThreads" "$LINENO" 5
fi
elif test $ol_with_threads = mach ; then
as_fn_error $? "could not locate Mach CThreads" "$LINENO" 5
fi
if test $ol_link_threads = mach ; then
printf "%s\n" "#define HAVE_MACH_CTHREADS 1" >>confdefs.h
elif test $ol_with_threads = found ; then
as_fn_error $? "could not link with Mach CThreads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | pth)
ac_fn_c_check_header_compile "$LINENO" "pth.h" "ac_cv_header_pth_h" "$ac_includes_default"
if test "x$ac_cv_header_pth_h" = xyes
then :
printf "%s\n" "#define HAVE_PTH_H 1" >>confdefs.h
fi
if test $ac_cv_header_pth_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pth_version in -lpth" >&5
printf %s "checking for pth_version in -lpth... " >&6; }
if test ${ac_cv_lib_pth_pth_version+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpth $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char pth_version ();
int
main (void)
{
return pth_version ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pth_pth_version=yes
else $as_nop
ac_cv_lib_pth_pth_version=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pth_pth_version" >&5
printf "%s\n" "$ac_cv_lib_pth_pth_version" >&6; }
if test "x$ac_cv_lib_pth_pth_version" = xyes
then :
have_pth=yes
else $as_nop
have_pth=no
fi
if test $have_pth = yes ; then
printf "%s\n" "#define HAVE_GNU_PTH 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
ol_link_threads=pth
ol_with_threads=found
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=yes
fi
fi
fi
;;
esac
case $ol_with_threads in auto | yes | lwp)
ac_fn_c_check_header_compile "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default"
if test "x$ac_cv_header_thread_h" = xyes
then :
printf "%s\n" "#define HAVE_THREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "synch.h" "ac_cv_header_synch_h" "$ac_includes_default"
if test "x$ac_cv_header_synch_h" = xyes
then :
printf "%s\n" "#define HAVE_SYNCH_H 1" >>confdefs.h
fi
if test $ac_cv_header_thread_h = yes &&
test $ac_cv_header_synch_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thr_create in -lthread" >&5
printf %s "checking for thr_create in -lthread... " >&6; }
if test ${ac_cv_lib_thread_thr_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char thr_create ();
int
main (void)
{
return thr_create ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_thread_thr_create=yes
else $as_nop
ac_cv_lib_thread_thr_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_thread_thr_create" >&5
printf "%s\n" "$ac_cv_lib_thread_thr_create" >&6; }
if test "x$ac_cv_lib_thread_thr_create" = xyes
then :
have_thr=yes
else $as_nop
have_thr=no
fi
if test $have_thr = yes ; then
printf "%s\n" "#define HAVE_THR 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
ol_link_threads=thr
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=yes
fi
ac_fn_c_check_func "$LINENO" "thr_setconcurrency" "ac_cv_func_thr_setconcurrency"
if test "x$ac_cv_func_thr_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_getconcurrency" "ac_cv_func_thr_getconcurrency"
if test "x$ac_cv_func_thr_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_GETCONCURRENCY 1" >>confdefs.h
fi
fi
fi
ac_fn_c_check_header_compile "$LINENO" "lwp/lwp.h" "ac_cv_header_lwp_lwp_h" "$ac_includes_default"
if test "x$ac_cv_header_lwp_lwp_h" = xyes
then :
printf "%s\n" "#define HAVE_LWP_LWP_H 1" >>confdefs.h
fi
if test $ac_cv_header_lwp_lwp_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lwp_create in -llwp" >&5
printf %s "checking for lwp_create in -llwp... " >&6; }
if test ${ac_cv_lib_lwp_lwp_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-llwp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char lwp_create ();
int
main (void)
{
return lwp_create ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_lwp_lwp_create=yes
else $as_nop
ac_cv_lib_lwp_lwp_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lwp_lwp_create" >&5
printf "%s\n" "$ac_cv_lib_lwp_lwp_create" >&6; }
if test "x$ac_cv_lib_lwp_lwp_create" = xyes
then :
have_lwp=yes
else $as_nop
have_lwp=no
fi
if test $have_lwp = yes ; then
printf "%s\n" "#define HAVE_LWP 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
ol_link_threads=lwp
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=no
fi
fi
fi
;;
esac
if test $ol_with_yielding_select = yes ; then
printf "%s\n" "#define HAVE_YIELDING_SELECT 1" >>confdefs.h
fi
if test $ol_with_threads = manual ; then
ol_link_threads=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: thread defines and link options must be set manually" >&5
printf "%s\n" "$as_me: WARNING: thread defines and link options must be set manually" >&2;}
ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
if test "x$ac_cv_func_sched_yield" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_yield" "ac_cv_func_pthread_yield"
if test "x$ac_cv_func_pthread_yield" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_YIELD 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads pthread.h" >&5
printf %s "checking for LinuxThreads pthread.h... " >&6; }
if test ${ol_cv_header_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_kill_other_threads_np" >/dev/null 2>&1
then :
ol_cv_header_linux_threads=yes
else $as_nop
ol_cv_header_linux_threads=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_linux_threads" >&5
printf "%s\n" "$ol_cv_header_linux_threads" >&6; }
if test $ol_cv_header_linux_threads = yes; then
printf "%s\n" "#define HAVE_LINUX_THREADS 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "mach/cthreads.h" "ac_cv_header_mach_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_mach_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_MACH_CTHREADS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "lwp/lwp.h" "ac_cv_header_lwp_lwp_h" "$ac_includes_default"
if test "x$ac_cv_header_lwp_lwp_h" = xyes
then :
printf "%s\n" "#define HAVE_LWP_LWP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default"
if test "x$ac_cv_header_thread_h" = xyes
then :
printf "%s\n" "#define HAVE_THREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "synch.h" "ac_cv_header_synch_h" "$ac_includes_default"
if test "x$ac_cv_header_synch_h" = xyes
then :
printf "%s\n" "#define HAVE_SYNCH_H 1" >>confdefs.h
fi
fi
if test $ol_link_threads != no && test $ol_link_threads != nt ; then
printf "%s\n" "#define REENTRANT 1" >>confdefs.h
printf "%s\n" "#define _REENTRANT 1" >>confdefs.h
printf "%s\n" "#define THREAD_SAFE 1" >>confdefs.h
printf "%s\n" "#define _THREAD_SAFE 1" >>confdefs.h
printf "%s\n" "#define THREADSAFE 1" >>confdefs.h
printf "%s\n" "#define _THREADSAFE 1" >>confdefs.h
printf "%s\n" "#define _SGI_MP_SOURCE 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thread specific errno" >&5
printf %s "checking for thread specific errno... " >&6; }
if test ${ol_cv_errno_thread_specific+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <errno.h>
int
main (void)
{
errno = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_errno_thread_specific=yes
else $as_nop
ol_cv_errno_thread_specific=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_errno_thread_specific" >&5
printf "%s\n" "$ol_cv_errno_thread_specific" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thread specific h_errno" >&5
printf %s "checking for thread specific h_errno... " >&6; }
if test ${ol_cv_h_errno_thread_specific+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <netdb.h>
int
main (void)
{
h_errno = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_h_errno_thread_specific=yes
else $as_nop
ol_cv_h_errno_thread_specific=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_h_errno_thread_specific" >&5
printf "%s\n" "$ol_cv_h_errno_thread_specific" >&6; }
if test $ol_cv_errno_thread_specific != yes ||
test $ol_cv_h_errno_thread_specific != yes ; then
LIBS="$LTHREAD_LIBS $LIBS"
LTHREAD_LIBS=""
fi
fi
if test $ol_link_threads = no ; then
if test $ol_with_threads = yes ; then
as_fn_error $? "no suitable thread support" "$LINENO" 5
fi
if test $ol_with_threads = auto ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no suitable thread support, disabling threads" >&5
printf "%s\n" "$as_me: WARNING: no suitable thread support, disabling threads" >&2;}
ol_with_threads=no
fi
printf "%s\n" "#define NO_THREADS 1" >>confdefs.h
LTHREAD_LIBS=""
BUILD_THREAD=no
else
BUILD_THREAD=yes
fi
if test $ol_link_threads != no ; then
printf "%s\n" "#define LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE 1" >>confdefs.h
fi
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
case "$ol_with_threads" in
no)
ol_pthread_ok=no
;;
*)
ol_found_pthreads=yes
;;
esac
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
case "$ol_found_pthreads" in
yes)
saved_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
saved_CFLAGS="$CFLAGS"
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
ac_fn_c_check_func "$LINENO" "sem_timedwait" "ac_cv_func_sem_timedwait"
if test "x$ac_cv_func_sem_timedwait" = xyes
then :
printf "%s\n" "#define HAVE_SEM_TIMEDWAIT 1" >>confdefs.h
fi
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
CFLAGS="$saved_CFLAGS"
{ saved_CFLAGS=; unset saved_CFLAGS;}
case "$ac_cv_func_sem_timedwait" in
yes)
PTHREAD_LIBS="$LTHREAD_LIBS"
have_pthreads=yes
esac
esac
esac
case "$have_pthreads" in
yes)
CFLAGS_NTP="$CFLAGS_NTP $PTHREAD_CFLAGS"
saved_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
saved_CFLAGS="$CFLAGS"
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5
printf %s "checking size of pthread_t... " >&6; }
if test ${ac_cv_sizeof_pthread_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" "
$ac_includes_default
#include <pthread.h>
"
then :
else $as_nop
if test "$ac_cv_type_pthread_t" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (pthread_t)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_pthread_t=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5
printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; }
printf "%s\n" "#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t" >>confdefs.h
LIBISC_PTHREADS_NOTHREADS=pthreads
printf "%s\n" "#define ISC_PLATFORM_USETHREADS 1" >>confdefs.h
#
# We'd like to use sigwait() too
#
ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait"
if test "x$ac_cv_func_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lc" >&5
printf %s "checking for sigwait in -lc... " >&6; }
if test ${ac_cv_lib_c_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_c_sigwait=yes
else $as_nop
ac_cv_lib_c_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sigwait" >&5
printf "%s\n" "$ac_cv_lib_c_sigwait" >&6; }
if test "x$ac_cv_lib_c_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lpthread" >&5
printf %s "checking for sigwait in -lpthread... " >&6; }
if test ${ac_cv_lib_pthread_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pthread_sigwait=yes
else $as_nop
ac_cv_lib_pthread_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_sigwait" >&5
printf "%s\n" "$ac_cv_lib_pthread_sigwait" >&6; }
if test "x$ac_cv_lib_pthread_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _Psigwait in -lpthread" >&5
printf %s "checking for _Psigwait in -lpthread... " >&6; }
if test ${ac_cv_lib_pthread__Psigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char _Psigwait ();
int
main (void)
{
return _Psigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pthread__Psigwait=yes
else $as_nop
ac_cv_lib_pthread__Psigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread__Psigwait" >&5
printf "%s\n" "$ac_cv_lib_pthread__Psigwait" >&6; }
if test "x$ac_cv_lib_pthread__Psigwait" = xyes
then :
have_sigwait=yes
else $as_nop
have_sigwait=no
fi
fi
fi
fi
case "$host:$have_sigwait" in
*-freebsd*:no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lc_r" >&5
printf %s "checking for sigwait in -lc_r... " >&6; }
if test ${ac_cv_lib_c_r_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc_r $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_c_r_sigwait=yes
else $as_nop
ac_cv_lib_c_r_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_sigwait" >&5
printf "%s\n" "$ac_cv_lib_c_r_sigwait" >&6; }
if test "x$ac_cv_lib_c_r_sigwait" = xyes
then :
have_sigwait=yes
fi
esac
case "$have_sigwait" in
yes)
ac_cv_func_sigwait=yes
printf "%s\n" "#define HAVE_SIGWAIT 1" >>confdefs.h
esac
ac_fn_c_check_func "$LINENO" "pthread_attr_getstacksize" "ac_cv_func_pthread_attr_getstacksize"
if test "x$ac_cv_func_pthread_attr_getstacksize" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_attr_setstacksize" "ac_cv_func_pthread_attr_setstacksize"
if test "x$ac_cv_func_pthread_attr_setstacksize" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf"
if test "x$ac_cv_func_sysconf" = xyes
then :
printf "%s\n" "#define HAVE_SYSCONF 1" >>confdefs.h
fi
case "$host" in
*-freebsd5.[012]|*-freebsd5.[012].*)
;;
*-freebsd5.[3456789]|*-freebsd5.[3456789].*|*-freebsd6.*)
printf "%s\n" "#define NEED_PTHREAD_SCOPE_SYSTEM 1" >>confdefs.h
;;
*-bsdi3.*|*-bsdi4.0*)
printf "%s\n" "#define NEED_PTHREAD_INIT 1" >>confdefs.h
;;
*-linux*)
printf "%s\n" "#define HAVE_LINUXTHREADS 1" >>confdefs.h
;;
*-solaris*)
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
ac_fn_c_check_func "$LINENO" "pthread_setconcurrency" "ac_cv_func_pthread_setconcurrency"
if test "x$ac_cv_func_pthread_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
fi
case "$ac_cv_func_pthread_setconcurrency" in
yes)
printf "%s\n" "#define CALL_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
esac
;;
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
printf "%s\n" "#define HAVE_UNIXWARE_SIGWAIT 1" >>confdefs.h
;;
esac
hack_shutup_pthreadonceinit=no
case "$host" in
*-aix5.[123].*)
hack_shutup_pthreadonceinit=yes
;;
*-solaris2.[89])
hack_shutup_pthreadonceinit=yes
;;
*-solaris2.1[0-9])
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if extra braces are needed for PTHREAD_ONCE_INIT" >&5
printf %s "checking if extra braces are needed for PTHREAD_ONCE_INIT... " >&6; }
if test ${ntp_cv_braces_around_pthread_once_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
main (void)
{
static pthread_once_t once_test =
PTHREAD_ONCE_INIT;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_braces_around_pthread_once_init=no
else $as_nop
ntp_cv_braces_around_pthread_once_init=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_braces_around_pthread_once_init" >&5
printf "%s\n" "$ntp_cv_braces_around_pthread_once_init" >&6; }
case "$ntp_cv_braces_around_pthread_once_init" in
yes)
hack_shutup_pthreadonceinit=yes
esac
;;
esac
case "$hack_shutup_pthreadonceinit" in
yes)
printf "%s\n" "#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1" >>confdefs.h
esac
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
CFLAGS="$saved_CFLAGS"
{ saved_CFLAGS=; unset saved_CFLAGS;}
;;
*)
LIBISC_PTHREADS_NOTHREADS=nothreads
;;
esac
if test "$have_pthreads" != "no"; then
PTHREADS_TRUE=
PTHREADS_FALSE='#'
else
PTHREADS_TRUE='#'
PTHREADS_FALSE=
fi
case "$hw_use_rpl_vsnprintf:$hw_cv_func_vsnprintf" in
no:yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if vsnprintf expands \"%m\" to strerror(errno)" >&5
printf %s "checking if vsnprintf expands \"%m\" to strerror(errno)... " >&6; }
if test ${ntp_cv_vsnprintf_percent_m+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ntp_cv_vsnprintf_percent_m=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
int call_vsnprintf(
char * dst,
size_t sz,
const char *fmt,
...
);
int call_vsnprintf(
char * dst,
size_t sz,
const char *fmt,
...
)
{
va_list ap;
int rc;
va_start(ap, fmt);
rc = vsnprintf(dst, sz, fmt, ap);
va_end(ap);
return rc;
}
int
main (void)
{
char sbuf[512];
char pbuf[512];
int slen;
strcpy(sbuf, strerror(ENOENT));
errno = ENOENT;
slen = call_vsnprintf(pbuf, sizeof(pbuf), "%m",
"wrong");
return strcmp(sbuf, pbuf);
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ntp_cv_vsnprintf_percent_m=yes
else $as_nop
ntp_cv_vsnprintf_percent_m=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_vsnprintf_percent_m" >&5
printf "%s\n" "$ntp_cv_vsnprintf_percent_m" >&6; }
case "$ntp_cv_vsnprintf_percent_m" in
yes)
printf "%s\n" "#define VSNPRINTF_PERCENT_M 1" >>confdefs.h
esac
esac
ac_fn_c_check_header_compile "$LINENO" "sys/clockctl.h" "ac_cv_header_sys_clockctl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_clockctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_CLOCKCTL_H 1" >>confdefs.h
fi
# Check whether --enable-clockctl was given.
if test ${enable_clockctl+y}
then :
enableval=$enable_clockctl; ntp_use_dev_clockctl=$enableval
else $as_nop
ntp_use_dev_clockctl=$ac_cv_header_sys_clockctl_h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should use /dev/clockctl" >&5
printf %s "checking if we should use /dev/clockctl... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_use_dev_clockctl" >&5
printf "%s\n" "$ntp_use_dev_clockctl" >&6; }
ac_fn_c_check_header_compile "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_capability_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_CAPABILITY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_prctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PRCTL_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have linux capabilities (libcap)" >&5
printf %s "checking if we have linux capabilities (libcap)... " >&6; }
case "$ac_cv_header_sys_capability_h$ac_cv_header_sys_prctl_h" in
yesyes)
case "$host" in
mips-sgi-irix*)
ntp_have_linuxcaps=no
;;
*) ntp_have_linuxcaps=yes
;;
esac
;;
*)
ntp_have_linuxcaps=no
;;
esac
# Check whether --enable-linuxcaps was given.
if test ${enable_linuxcaps+y}
then :
enableval=$enable_linuxcaps; ntp_have_linuxcaps=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_have_linuxcaps" >&5
printf "%s\n" "$ntp_have_linuxcaps" >&6; }
case "$ntp_have_linuxcaps" in
yes)
printf "%s\n" "#define HAVE_LINUX_CAPABILITIES 1" >>confdefs.h
LIBS="$LIBS -lcap"
;;
esac
ac_fn_c_check_header_compile "$LINENO" "priv.h" "ac_cv_header_priv_h" "$ac_includes_default"
if test "x$ac_cv_header_priv_h" = xyes
then :
printf "%s\n" "#define HAVE_PRIV_H 1" >>confdefs.h
fi
case "$ac_cv_header_priv_h" in
yes)
case "$host" in
*-solaris*)
ac_fn_c_check_func "$LINENO" "setppriv" "ac_cv_func_setppriv"
if test "x$ac_cv_func_setppriv" = xyes
then :
ntp_have_solarisprivs=yes
else $as_nop
ntp_have_solarisprivs=no
fi
;;
esac
esac
# Check whether --enable-solarisprivs was given.
if test ${enable_solarisprivs+y}
then :
enableval=$enable_solarisprivs; ntp_have_solarisprivs=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have solaris privileges" >&5
printf %s "checking if we have solaris privileges... " >&6; }
case "$ntp_have_solarisprivs" in
yes)
printf "%s\n" "#define HAVE_SOLARIS_PRIVS 1" >>confdefs.h
;;
'') ntp_have_solarisprivs="no"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_have_solarisprivs" >&5
printf "%s\n" "$ntp_have_solarisprivs" >&6; }
ac_fn_c_check_header_compile "$LINENO" "sys/mac.h" "ac_cv_header_sys_mac_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mac_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MAC_H 1" >>confdefs.h
fi
# Check whether --enable-trustedbsd_mac was given.
if test ${enable_trustedbsd_mac+y}
then :
enableval=$enable_trustedbsd_mac; ntp_use_trustedbsd_mac=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should use TrustedBSD MAC privileges" >&5
printf %s "checking if we should use TrustedBSD MAC privileges... " >&6; }
case "$ntp_use_trustedbsd_mac$ac_cv_header_sys_mac_h" in
yesyes)
printf "%s\n" "#define HAVE_TRUSTEDBSD_MAC 1" >>confdefs.h
;;
*) ntp_use_trustedbsd_mac="no";
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_use_trustedbsd_mac" >&5
printf "%s\n" "$ntp_use_trustedbsd_mac" >&6; }
case "$ntp_use_dev_clockctl$ntp_have_linuxcaps$ntp_have_solarisprivs$ntp_use_trustedbsd_mac" in
*yes*)
printf "%s\n" "#define HAVE_DROPROOT 1" >>confdefs.h
esac
case "$host" in
*-*-darwin*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_init" >&5
printf %s "checking for library containing res_9_init... " >&6; }
if test ${ac_cv_search_res_9_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char res_9_init ();
int
main (void)
{
return res_9_init ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_res_9_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_res_9_init+y}
then :
break
fi
done
if test ${ac_cv_search_res_9_init+y}
then :
else $as_nop
ac_cv_search_res_9_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_9_init" >&5
printf "%s\n" "$ac_cv_search_res_9_init" >&6; }
ac_res=$ac_cv_search_res_9_init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_init" >&5
printf %s "checking for library containing res_init... " >&6; }
if test ${ac_cv_search_res_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char res_init ();
int
main (void)
{
return res_init ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_res_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_res_init+y}
then :
break
fi
done
if test ${ac_cv_search_res_init+y}
then :
else $as_nop
ac_cv_search_res_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_init" >&5
printf "%s\n" "$ac_cv_search_res_init" >&6; }
ac_res=$ac_cv_search_res_init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_sys_types_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_arpa_nameser_h" = xyes
then :
printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_netdb_h" = xyes
then :
printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_resolv_h" = xyes
then :
printf "%s\n" "#define HAVE_RESOLV_H 1" >>confdefs.h
fi
#HMS: Why do we do this check so "early"?
for ac_func in res_init
do :
ac_fn_c_check_func "$LINENO" "res_init" "ac_cv_func_res_init"
if test "x$ac_cv_func_res_init" = xyes
then :
printf "%s\n" "#define HAVE_RES_INIT 1" >>confdefs.h
else $as_nop
ac_fn_c_check_func "$LINENO" "__res_init" "ac_cv_func___res_init"
if test "x$ac_cv_func___res_init" = xyes
then :
printf "%s\n" "#define HAVE___RES_INIT 1" >>confdefs.h
fi
fi
done
# We also need -lsocket, but we have tested for that already.
ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
if test "x$ac_cv_func_inet_ntop" = xyes
then :
else $as_nop
printf "%s\n" "#define ISC_PLATFORM_NEEDNTOP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
if test "x$ac_cv_func_inet_pton" = xyes
then :
else $as_nop
printf "%s\n" "#define ISC_PLATFORM_NEEDPTON 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int32" "ac_cv_type_int32" "$ac_includes_default"
if test "x$ac_cv_type_int32" = xyes
then :
printf "%s\n" "#define HAVE_INT32 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "u_int32" "ac_cv_type_u_int32" "$ac_includes_default"
if test "x$ac_cv_type_u_int32" = xyes
then :
printf "%s\n" "#define HAVE_U_INT32 1" >>confdefs.h
fi
case "$ac_cv_type_int32::$ac_cv_header_resolv_h" in
no::yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int32 with DNS headers included" >&5
printf %s "checking for int32 with DNS headers included... " >&6; }
if test ${ntp_cv_type_int32_with_dns+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
#include <resolv.h>
int
main (void)
{
size_t cb = sizeof(int32);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_type_int32_with_dns=yes
else $as_nop
ntp_cv_type_int32_with_dns=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_type_int32_with_dns" >&5
printf "%s\n" "$ntp_cv_type_int32_with_dns" >&6; }
case "$ntp_cv_type_int32_with_dns" in
yes)
printf "%s\n" "#define HAVE_INT32_ONLY_WITH_DNS 1" >>confdefs.h
esac
esac
case "$ac_cv_type_u_int32::$ac_cv_header_resolv_h" in
no::yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for u_int32 with DNS headers included" >&5
printf %s "checking for u_int32 with DNS headers included... " >&6; }
if test ${ntp_cv_type_u_int32_with_dns+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
#include <resolv.h>
int
main (void)
{
size_t cb = sizeof(u_int32);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_type_u_int32_with_dns=yes
else $as_nop
ntp_cv_type_u_int32_with_dns=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_type_u_int32_with_dns" >&5
printf "%s\n" "$ntp_cv_type_u_int32_with_dns" >&6; }
case "$ntp_cv_type_u_int32_with_dns" in
yes)
printf "%s\n" "#define HAVE_U_INT32_ONLY_WITH_DNS 1" >>confdefs.h
esac
esac
ac_fn_c_check_header_compile "$LINENO" "sys/timepps.h" "ac_cv_header_sys_timepps_h" "
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
"
if test "x$ac_cv_header_sys_timepps_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIMEPPS_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec" >&5
printf %s "checking for struct timespec... " >&6; }
if test ${ntp_cv_struct_timespec+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
/* Under SunOS, timespec is in sys/timepps.h,
which needs errno.h and FRAC */
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
#ifdef HAVE_SYS_TIMEPPS_H
# define FRAC 4294967296
# include <sys/timepps.h>
#endif
int
main (void)
{
struct timespec n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_timespec=yes
else $as_nop
ntp_cv_struct_timespec=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_timespec" >&5
printf "%s\n" "$ntp_cv_struct_timespec" >&6; }
case "$ntp_cv_struct_timespec" in
yes)
printf "%s\n" "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct ntptimeval" >&5
printf %s "checking for struct ntptimeval... " >&6; }
if test ${ntp_cv_struct_ntptimeval+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
#include <sys/timex.h>
int
main (void)
{
struct ntptimeval n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_ntptimeval=yes
else $as_nop
ntp_cv_struct_ntptimeval=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_ntptimeval" >&5
printf "%s\n" "$ntp_cv_struct_ntptimeval" >&6; }
case "$ntp_cv_struct_ntptimeval" in
yes)
printf "%s\n" "#define HAVE_STRUCT_NTPTIMEVAL 1" >>confdefs.h
esac
ac_fn_c_check_header_compile "$LINENO" "md5.h" "ac_cv_header_md5_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
"
if test "x$ac_cv_header_md5_h" = xyes
then :
printf "%s\n" "#define HAVE_MD5_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing MD5Init" >&5
printf %s "checking for library containing MD5Init... " >&6; }
if test ${ac_cv_search_MD5Init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char MD5Init ();
int
main (void)
{
return MD5Init ();
;
return 0;
}
_ACEOF
for ac_lib in '' md5 md
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_MD5Init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_MD5Init+y}
then :
break
fi
done
if test ${ac_cv_search_MD5Init+y}
then :
else $as_nop
ac_cv_search_MD5Init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MD5Init" >&5
printf "%s\n" "$ac_cv_search_MD5Init" >&6; }
ac_res=$ac_cv_search_MD5Init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
ac_fn_c_check_func "$LINENO" "MD5Init" "ac_cv_func_MD5Init"
if test "x$ac_cv_func_MD5Init" = xyes
then :
printf "%s\n" "#define HAVE_MD5INIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf"
if test "x$ac_cv_func_sysconf" = xyes
then :
printf "%s\n" "#define HAVE_SYSCONF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize"
if test "x$ac_cv_func_getdtablesize" = xyes
then :
printf "%s\n" "#define HAVE_GETDTABLESIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction"
if test "x$ac_cv_func_sigaction" = xyes
then :
printf "%s\n" "#define HAVE_SIGACTION 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigset" "ac_cv_func_sigset"
if test "x$ac_cv_func_sigset" = xyes
then :
printf "%s\n" "#define HAVE_SIGSET 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigvec" "ac_cv_func_sigvec"
if test "x$ac_cv_func_sigvec" = xyes
then :
printf "%s\n" "#define HAVE_SIGVEC 1" >>confdefs.h
fi
# HMS: does this need to be a cached variable?
# Check whether --enable-signalled-io was given.
if test ${enable_signalled_io+y}
then :
enableval=$enable_signalled_io; use_signalled_io=$enableval
else $as_nop
use_signalled_io=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIGIO" >&5
printf %s "checking for SIGIO... " >&6; }
if test ${ntp_cv_hdr_def_sigio+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
#ifndef SIGIO
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_hdr_def_sigio=yes
else $as_nop
ntp_cv_hdr_def_sigio=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_hdr_def_sigio" >&5
printf "%s\n" "$ntp_cv_hdr_def_sigio" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to use SIGIO" >&5
printf %s "checking if we want to use SIGIO... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigio" in
yes)
ans=yes
case "$host" in
alpha*-dec-osf4*|alpha*-dec-osf5*)
ans=no
;;
*-convex-*)
ans=no
;;
*-dec-*)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-univel-sysv*)
ans=no
;;
*-*-irix6*)
ans=no
;;
*-*-freebsd*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
m68k-*-mint*)
ans=no
;;
esac
case "$ans" in
no)
ans="Possible for $host but disabled because of reported problems"
;;
esac
;;
esac
case "$ans" in
yes)
case "$use_signalled_io" in
yes)
printf "%s\n" "#define HAVE_SIGNALED_IO 1" >>confdefs.h
;;
*) ans="Allowed for $host but --disable-signalled-io was given"
;;
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIGPOLL" >&5
printf %s "checking for SIGPOLL... " >&6; }
if test ${ntp_cv_hdr_def_sigpoll+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
#ifndef SIGPOLL
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_hdr_def_sigpoll=yes
else $as_nop
ntp_cv_hdr_def_sigpoll=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_hdr_def_sigpoll" >&5
printf "%s\n" "$ntp_cv_hdr_def_sigpoll" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can use SIGPOLL for UDP I/O" >&5
printf %s "checking if we can use SIGPOLL for UDP I/O... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigpoll" in
yes)
case "$host" in
mips-sgi-irix*)
ans=no
;;
vax-dec-bsd)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-*-aix[4-9]*)
# XXX Only verified thru AIX6
ans=no
;;
*-*-hpux*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-osf*)
ans=no
;;
*-*-qnx*)
ans=no
;;
*-*-sunos*)
ans=no
;;
*-*-solaris*)
ans=no
;;
*-*-ultrix*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
*) ans=yes
;;
esac
;;
esac
case "$ans" in
yes)
printf "%s\n" "#define USE_UDP_SIGPOLL 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can use SIGPOLL for TTY I/O" >&5
printf %s "checking if we can use SIGPOLL for TTY I/O... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigpoll" in
yes)
case "$host" in
mips-sgi-irix*)
ans=no
;;
vax-dec-bsd)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-*-aix[4-9]*)
# XXX Only verified thru AIX6
ans=no
;;
*-*-hpux*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-osf*)
ans=no
;;
*-*-sunos*)
ans=no
;;
*-*-ultrix*)
ans=no
;;
*-*-qnx*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
*) ans=yes
;;
esac
;;
esac
case "$ans" in
yes)
printf "%s\n" "#define USE_TTY_SIGPOLL 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking number of arguments to gettimeofday()" >&5
printf %s "checking number of arguments to gettimeofday()... " >&6; }
if test ${ntp_cv_func_Xettimeofday_nargs+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
int
main (void)
{
gettimeofday(0, 0);
settimeofday(0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_func_Xettimeofday_nargs=2
else $as_nop
ntp_cv_func_Xettimeofday_nargs=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_func_Xettimeofday_nargs" >&5
printf "%s\n" "$ntp_cv_func_Xettimeofday_nargs" >&6; }
case "$ntp_cv_func_Xettimeofday_nargs" in
1)
printf "%s\n" "#define SYSV_TIMEOFDAY 1" >>confdefs.h
esac
for ac_func in settimeofday
do :
ac_fn_c_check_func "$LINENO" "settimeofday" "ac_cv_func_settimeofday"
if test "x$ac_cv_func_settimeofday" = xyes
then :
printf "%s\n" "#define HAVE_SETTIMEOFDAY 1" >>confdefs.h
else $as_nop
case "$host" in
*-*-mpeix*) ac_cv_func_settimeofday=yes
esac
fi
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we'll use clock_settime or settimeofday or stime" >&5
printf %s "checking if we'll use clock_settime or settimeofday or stime... " >&6; }
ntp_warning='GRONK'
ans=none
case "$ac_cv_func_clock_settime$ac_cv_func_settimeofday$ac_cv_func_stime" in
yes*)
ntp_warning=''
ans='clock_settime()'
;;
noyes*)
ntp_warning='But clock_settime() would be better (if we had it)'
ans='settimeofday()'
;;
nonoyes)
ntp_warning='Which is the worst of the three'
ans='stime()'
;;
*)
case "$build" in
$host)
ntp_warning='Which leaves us with nothing to use!'
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ntp_warning" in
'')
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** $ntp_warning ***" >&5
printf "%s\n" "$as_me: WARNING: *** $ntp_warning ***" >&2;}
;;
esac
LDADD_LIBNTP="$LDADD_LIBNTP $LIBS"
LIBS=$__LIBS
{ __LIBS=; unset __LIBS;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for deprecated --with-arlib" >&5
printf %s "checking for deprecated --with-arlib... " >&6; }
# Check whether --with-arlib was given.
if test ${with_arlib+y}
then :
withval=$with_arlib; ans=$withval
else $as_nop
ans=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Please do not use --with-arlib, arlib is no longer included. In the future, --with-arlib will not be recognized." >&5
printf "%s\n" "$as_me: WARNING: Please do not use --with-arlib, arlib is no longer included. In the future, --with-arlib will not be recognized." >&2;}
;;
esac
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
{ ac_cv_prog_AWK=; unset ac_cv_prog_AWK;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval test \${ac_cv_prog_make_${ac_make}_set+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
SET_MAKE=
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
printf "%s\n" "no, using $LN_S" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
printf %s "checking for library containing strerror... " >&6; }
if test ${ac_cv_search_strerror+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char strerror ();
int
main (void)
{
return strerror ();
;
return 0;
}
_ACEOF
for ac_lib in '' cposix
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_strerror=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_strerror+y}
then :
break
fi
done
if test ${ac_cv_search_strerror+y}
then :
else $as_nop
ac_cv_search_strerror=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
printf "%s\n" "$ac_cv_search_strerror" >&6; }
ac_res=$ac_cv_search_strerror
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# Extract the first word of "perl", so it can be a program name with args.
set dummy perl; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PATH_PERL+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PATH_PERL in
[\\/]* | ?:[\\/]*)
ac_cv_path_PATH_PERL="$PATH_PERL" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PATH_PERL="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PATH_PERL=$ac_cv_path_PATH_PERL
if test -n "$PATH_PERL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_PERL" >&5
printf "%s\n" "$PATH_PERL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
{ ac_cv_path_PATH_PERL=; unset ac_cv_path_PATH_PERL;}
# Extract the first word of "test", so it can be a program name with args.
set dummy test; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PATH_TEST+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PATH_TEST in
[\\/]* | ?:[\\/]*)
ac_cv_path_PATH_TEST="$PATH_TEST" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PATH_TEST="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PATH_TEST=$ac_cv_path_PATH_TEST
if test -n "$PATH_TEST"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_TEST" >&5
printf "%s\n" "$PATH_TEST" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
{ ac_cv_path_PATH_TEST=; unset ac_cv_path_PATH_TEST;}
test -z "$CONFIG_SHELL" && CONFIG_SHELL=/bin/sh
# Check whether --with-net-snmp-config was given.
if test ${with_net_snmp_config+y}
then :
withval=$with_net_snmp_config; ans=$withval
else $as_nop
ans=yes
fi
case "$ans" in
no)
;;
yes)
ans=net-snmp-config
;;
/*)
;;
*/*)
as_fn_error $? "--with-net-snmp-config takes either a name or an absolute path" "$LINENO" 5
;;
*)
;;
esac
PROG_NET_SNMP_CONFIG=$ans
case "$PROG_NET_SNMP_CONFIG" in
no) ;;
/*)
PATH_NET_SNMP_CONFIG=$PROG_NET_SNMP_CONFIG
;;
*)
# Extract the first word of "$PROG_NET_SNMP_CONFIG", so it can be a program name with args.
set dummy $PROG_NET_SNMP_CONFIG; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PATH_NET_SNMP_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PATH_NET_SNMP_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PATH_NET_SNMP_CONFIG="$PATH_NET_SNMP_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PATH_NET_SNMP_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PATH_NET_SNMP_CONFIG=$ac_cv_path_PATH_NET_SNMP_CONFIG
if test -n "$PATH_NET_SNMP_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_NET_SNMP_CONFIG" >&5
printf "%s\n" "$PATH_NET_SNMP_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
{ ac_cv_path_PATH_NET_SNMP_CONFIG=; unset ac_cv_path_PATH_NET_SNMP_CONFIG;}
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for net-snmp-config path" >&5
printf %s "checking for net-snmp-config path... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_NET_SNMP_CONFIG" >&5
printf "%s\n" "$PATH_NET_SNMP_CONFIG" >&6; }
case "$PATH_NET_SNMP_CONFIG" in
/*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for net-snmp version" >&5
printf %s "checking for net-snmp version... " >&6; }
if test ${ntp_cv_net_snmp_version+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_net_snmp_version=`$PATH_NET_SNMP_CONFIG --version`
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_net_snmp_version" >&5
printf "%s\n" "$ntp_cv_net_snmp_version" >&6; }
;;
esac
case "$host" in
*-*-vxworks*)
ac_link="$ac_link $VX_KERNEL"
;;
esac
# HMS: a check for -lnsl used to be here - now being done in NTP_LIBNTP
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing openlog" >&5
printf %s "checking for library containing openlog... " >&6; }
if test ${ac_cv_search_openlog+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char openlog ();
int
main (void)
{
return openlog ();
;
return 0;
}
_ACEOF
for ac_lib in '' gen syslog
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_openlog=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_openlog+y}
then :
break
fi
done
if test ${ac_cv_search_openlog+y}
then :
else $as_nop
ac_cv_search_openlog=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openlog" >&5
printf "%s\n" "$ac_cv_search_openlog" >&6; }
ac_res=$ac_cv_search_openlog
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# XXX library list will be in ac_cv_search_openlog
# LIBSECCOMP is off by default -- needs testing with all the features
# Please send bug reports to loganaden@gmail.com
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to use libseccomp sandboxing (EXPERIMENTAL)" >&5
printf %s "checking if we want to use libseccomp sandboxing (EXPERIMENTAL)... " >&6; }
# Check whether --enable-libseccomp was given.
if test ${enable_libseccomp+y}
then :
enableval=$enable_libseccomp; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing seccomp_init" >&5
printf %s "checking for library containing seccomp_init... " >&6; }
if test ${ac_cv_search_seccomp_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char seccomp_init ();
int
main (void)
{
return seccomp_init ();
;
return 0;
}
_ACEOF
for ac_lib in '' seccomp
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_seccomp_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_seccomp_init+y}
then :
break
fi
done
if test ${ac_cv_search_seccomp_init+y}
then :
else $as_nop
ac_cv_search_seccomp_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_seccomp_init" >&5
printf "%s\n" "$ac_cv_search_seccomp_init" >&6; }
ac_res=$ac_cv_search_seccomp_init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
printf "%s\n" "#define LIBSECCOMP 1" >>confdefs.h
fi
if test "$cross_compiling" = yes
then :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run test program while cross compiling
See \`config.log' for more details" "$LINENO" 5; }
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/prctl.h>
#include <linux/seccomp.h>
int main(void)
{
int ret;
ret = prctl(PR_GET_SECCOMP, 0, 0, 0, 0);
if (ret < 0) {
switch (errno) {
case ENOSYS:
return 1;
case EINVAL:
return 1;
default:
return 1;
}
}
ret =
prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, NULL, 0, 0);
if (ret < 0) {
switch (errno) {
case EINVAL:
return 1;
case EFAULT:
return 0;
default:
return 1;
}
}
return 1;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
printf "%s\n" "#define KERN_SECCOMP 1" >>confdefs.h
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for facilitynames in syslog.h" >&5
printf %s "checking for facilitynames in syslog.h... " >&6; }
if test ${ac_cv_HAVE_SYSLOG_FACILITYNAMES+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define SYSLOG_NAMES
#include <stdlib.h>
#include <syslog.h>
int
main (void)
{
void *fnames; fnames = facilitynames;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_HAVE_SYSLOG_FACILITYNAMES=yes
else $as_nop
ac_cv_HAVE_SYSLOG_FACILITYNAMES=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_HAVE_SYSLOG_FACILITYNAMES" >&5
printf "%s\n" "$ac_cv_HAVE_SYSLOG_FACILITYNAMES" >&6; }
case "$ac_cv_HAVE_SYSLOG_FACILITYNAMES" in
yes)
printf "%s\n" "#define HAVE_SYSLOG_FACILITYNAMES 1" >>confdefs.h
;;
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: No facilitynames in <syslog.h>" >&5
printf "%s\n" "$as_me: WARNING: No facilitynames in <syslog.h>" >&2;}
;;
cross)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: facilitynames in <syslog.h> - cross-compiling" >&5
printf "%s\n" "$as_me: WARNING: facilitynames in <syslog.h> - cross-compiling" >&2;}
;;
esac
case "$host" in
*-*-*linux*) ;;
*-*-osf4*) ;;
*-*-osf5*) ;;
*)
# HMS: Make sure we check for -lrt for clock_* before this...
case "$ac_cv_search_clock_gettime" in
'') as_fn_error $? "Internal Error: Haven't looked for clock_gettime() yet!" "$LINENO" 5 ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sched_setscheduler" >&5
printf %s "checking for library containing sched_setscheduler... " >&6; }
if test ${ac_cv_search_sched_setscheduler+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sched_setscheduler ();
int
main (void)
{
return sched_setscheduler ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt posix4
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_sched_setscheduler=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_sched_setscheduler+y}
then :
break
fi
done
if test ${ac_cv_search_sched_setscheduler+y}
then :
else $as_nop
ac_cv_search_sched_setscheduler=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sched_setscheduler" >&5
printf "%s\n" "$ac_cv_search_sched_setscheduler" >&6; }
ac_res=$ac_cv_search_sched_setscheduler
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "bstring.h" "ac_cv_header_bstring_h" "$ac_includes_default"
if test "x$ac_cv_header_bstring_h" = xyes
then :
printf "%s\n" "#define HAVE_BSTRING_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "dns_sd.h" "ac_cv_header_dns_sd_h" "$ac_includes_default"
if test "x$ac_cv_header_dns_sd_h" = xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing DNSServiceRegister" >&5
printf %s "checking for library containing DNSServiceRegister... " >&6; }
if test ${ac_cv_search_DNSServiceRegister+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char DNSServiceRegister ();
int
main (void)
{
return DNSServiceRegister ();
;
return 0;
}
_ACEOF
for ac_lib in '' dns_sd
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_DNSServiceRegister=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_DNSServiceRegister+y}
then :
break
fi
done
if test ${ac_cv_search_DNSServiceRegister+y}
then :
else $as_nop
ac_cv_search_DNSServiceRegister=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_DNSServiceRegister" >&5
printf "%s\n" "$ac_cv_search_DNSServiceRegister" >&6; }
ac_res=$ac_cv_search_DNSServiceRegister
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
printf "%s\n" "#define HAVE_DNSREGISTRATION 1" >>confdefs.h
fi
fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
if test "x$ac_cv_header_fcntl_h" = xyes
then :
printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "fnmatch.h" "ac_cv_header_fnmatch_h" "$ac_includes_default"
if test "x$ac_cv_header_fnmatch_h" = xyes
then :
printf "%s\n" "#define HAVE_FNMATCH_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "ieeefp.h" "ac_cv_header_ieeefp_h" "$ac_includes_default"
if test "x$ac_cv_header_ieeefp_h" = xyes
then :
printf "%s\n" "#define HAVE_IEEEFP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
if test "x$ac_cv_header_inttypes_h" = xyes
then :
printf "%s\n" "#define HAVE_INTTYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "kvm.h" "ac_cv_header_kvm_h" "$ac_includes_default"
if test "x$ac_cv_header_kvm_h" = xyes
then :
printf "%s\n" "#define HAVE_KVM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "math.h" "ac_cv_header_math_h" "$ac_includes_default"
if test "x$ac_cv_header_math_h" = xyes
then :
printf "%s\n" "#define HAVE_MATH_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "memory.h" "ac_cv_header_memory_h" "$ac_includes_default"
if test "x$ac_cv_header_memory_h" = xyes
then :
printf "%s\n" "#define HAVE_MEMORY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
if test "x$ac_cv_header_netdb_h" = xyes
then :
printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
if test "x$ac_cv_header_poll_h" = xyes
then :
printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sgtty.h" "ac_cv_header_sgtty_h" "$ac_includes_default"
if test "x$ac_cv_header_sgtty_h" = xyes
then :
printf "%s\n" "#define HAVE_SGTTY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdatomic.h" "ac_cv_header_stdatomic_h" "$ac_includes_default"
if test "x$ac_cv_header_stdatomic_h" = xyes
then :
printf "%s\n" "#define HAVE_STDATOMIC_H 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
if test "x$ac_cv_type__Bool" = xyes
then :
printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
printf %s "checking for stdbool.h that conforms to C99... " >&6; }
if test ${ac_cv_header_stdbool_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdbool.h>
#ifndef __bool_true_false_are_defined
#error "__bool_true_false_are_defined is not defined"
#endif
char a[__bool_true_false_are_defined == 1 ? 1 : -1];
/* Regardless of whether this is C++ or "_Bool" is a
valid type name, "true" and "false" should be usable
in #if expressions and integer constant expressions,
and "bool" should be a valid type name. */
#if !true
#error "'true' is not true"
#endif
#if true != 1
#error "'true' is not equal to 1"
#endif
char b[true == 1 ? 1 : -1];
char c[true];
#if false
#error "'false' is not false"
#endif
#if false != 0
#error "'false' is not equal to 0"
#endif
char d[false == 0 ? 1 : -1];
enum { e = false, f = true, g = false * true, h = true * 256 };
char i[(bool) 0.5 == true ? 1 : -1];
char j[(bool) 0.0 == false ? 1 : -1];
char k[sizeof (bool) > 0 ? 1 : -1];
struct sb { bool s: 1; bool t; } s;
char l[sizeof s.t > 0 ? 1 : -1];
/* The following fails for
HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
bool m[h];
char n[sizeof m == h * sizeof m[0] ? 1 : -1];
char o[-1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
*/
bool p = true;
bool *pp = &p;
/* C 1999 specifies that bool, true, and false are to be
macros, but C++ 2011 and later overrule this. */
#if __cplusplus < 201103
#ifndef bool
#error "bool is not defined"
#endif
#ifndef false
#error "false is not defined"
#endif
#ifndef true
#error "true is not defined"
#endif
#endif
/* If _Bool is available, repeat with it all the tests
above that used bool. */
#ifdef HAVE__BOOL
struct sB { _Bool s: 1; _Bool t; } t;
char q[(_Bool) 0.5 == true ? 1 : -1];
char r[(_Bool) 0.0 == false ? 1 : -1];
char u[sizeof (_Bool) > 0 ? 1 : -1];
char v[sizeof t.t > 0 ? 1 : -1];
_Bool w[h];
char x[sizeof m == h * sizeof m[0] ? 1 : -1];
char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
_Bool z = true;
_Bool *pz = &p;
#endif
int
main (void)
{
bool ps = &s;
*pp |= p;
*pp |= ! p;
#ifdef HAVE__BOOL
_Bool pt = &t;
*pz |= z;
*pz |= ! z;
#endif
/* Refer to every declared value, so they cannot be
discarded as unused. */
return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+ !l + !m + !n + !o + !p + !pp + !ps
#ifdef HAVE__BOOL
+ !q + !r + !u + !v + !w + !x + !y + !z + !pt
#endif
);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_header_stdbool_h=yes
else $as_nop
ac_cv_header_stdbool_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
if test $ac_cv_header_stdbool_h = yes; then
printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
if test "x$ac_cv_header_stdlib_h" = xyes
then :
printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default"
if test "x$ac_cv_header_string_h" = xyes
then :
printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "termio.h" "ac_cv_header_termio_h" "$ac_includes_default"
if test "x$ac_cv_header_termio_h" = xyes
then :
printf "%s\n" "#define HAVE_TERMIO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default"
if test "x$ac_cv_header_termios_h" = xyes
then :
printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "timepps.h" "ac_cv_header_timepps_h" "$ac_includes_default"
if test "x$ac_cv_header_timepps_h" = xyes
then :
printf "%s\n" "#define HAVE_TIMEPPS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "timex.h" "ac_cv_header_timex_h" "$ac_includes_default"
if test "x$ac_cv_header_timex_h" = xyes
then :
printf "%s\n" "#define HAVE_TIMEX_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
if test "x$ac_cv_header_unistd_h" = xyes
then :
printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
case "$host" in
*-*-aix*)
ac_fn_c_check_header_compile "$LINENO" "utmpx.h" "ac_cv_header_utmpx_h" "$ac_includes_default"
if test "x$ac_cv_header_utmpx_h" = xyes
then :
printf "%s\n" "#define HAVE_UTMPX_H 1" >>confdefs.h
fi
case "$ac_cv_header_utmpx_h" in
yes)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "utmp.h" "ac_cv_header_utmp_h" "$ac_includes_default"
if test "x$ac_cv_header_utmp_h" = xyes
then :
printf "%s\n" "#define HAVE_UTMP_H 1" >>confdefs.h
fi
;;
esac
;;
*)
ac_fn_c_check_header_compile "$LINENO" "utmp.h" "ac_cv_header_utmp_h" "$ac_includes_default"
if test "x$ac_cv_header_utmp_h" = xyes
then :
printf "%s\n" "#define HAVE_UTMP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "utmpx.h" "ac_cv_header_utmpx_h" "$ac_includes_default"
if test "x$ac_cv_header_utmpx_h" = xyes
then :
printf "%s\n" "#define HAVE_UTMPX_H 1" >>confdefs.h
fi
;;
esac
#
# On Suns only (so far) getpass() truncates the typed password to 8
# characters, but getpassphrase() allows up to 257. Most systems'
# getpass() does not truncate, at least not so as to affect ntpq and
# ntpdc password prompts.
#
# So check for getpassphrase(), but only on Sun operating systems.
#
case "$host" in
*-*-sunos*|*-*-solaris*)
ac_fn_c_check_func "$LINENO" "getpassphrase" "ac_cv_func_getpassphrase"
if test "x$ac_cv_func_getpassphrase" = xyes
then :
printf "%s\n" "#define HAVE_GETPASSPHRASE 1" >>confdefs.h
fi
esac
ac_fn_c_check_header_compile "$LINENO" "net/if6.h" "ac_cv_header_net_if6_h" "$ac_includes_default"
if test "x$ac_cv_header_net_if6_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_IF6_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "net/route.h" "ac_cv_header_net_route_h" "
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
"
if test "x$ac_cv_header_net_route_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_ROUTE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinfo/ni.h" "ac_cv_header_netinfo_ni_h" "$ac_includes_default"
if test "x$ac_cv_header_netinfo_ni_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINFO_NI_H 1" >>confdefs.h
fi
case "$ac_cv_header_netinfo_ni_h" in
yes)
printf "%s\n" "#define HAVE_NETINFO 1" >>confdefs.h
esac
ac_fn_c_check_header_compile "$LINENO" "sun/audioio.h" "ac_cv_header_sun_audioio_h" "$ac_includes_default"
if test "x$ac_cv_header_sun_audioio_h" = xyes
then :
printf "%s\n" "#define HAVE_SUN_AUDIOIO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/audioio.h" "ac_cv_header_sys_audioio_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_audioio_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_AUDIOIO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_file_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_FILE_H 1" >>confdefs.h
fi
case "$host" in
*-*-sunos4*)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_ioctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_ipc_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_IPC_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/lock.h" "ac_cv_header_sys_lock_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_lock_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_LOCK_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mman_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
fi
# HMS: Check sys/proc.h and sys/resource.h after some others
ac_fn_c_check_header_compile "$LINENO" "sys/modem.h" "ac_cv_header_sys_modem_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_modem_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MODEM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/ppsclock.h" "ac_cv_header_sys_ppsclock_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_ppsclock_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PPSCLOCK_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/ppstime.h" "ac_cv_header_sys_ppstime_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_ppstime_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PPSTIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
fi
case "$ac_cv_header_sched_h" in
yes)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "sys/sched.h" "ac_cv_header_sys_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SCHED_H 1" >>confdefs.h
fi
;;
esac
# HMS: Check sys/shm.h after some others
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_select_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/signal.h" "ac_cv_header_sys_signal_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_signal_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SIGNAL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_sockio_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
fi
# HMS: Checked sys/socket.h earlier
case "$host" in
*-*-netbsd*)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "machine/soundcard.h" "ac_cv_header_machine_soundcard_h" "$ac_includes_default"
if test "x$ac_cv_header_machine_soundcard_h" = xyes
then :
printf "%s\n" "#define HAVE_MACHINE_SOUNDCARD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/soundcard.h" "ac_cv_header_sys_soundcard_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_soundcard_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOUNDCARD_H 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_stat_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/stream.h" "ac_cv_header_sys_stream_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_stream_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_STREAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$ac_includes_default"
if test "x$ac_cv_header_stropts_h" = xyes
then :
printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/stropts.h" "ac_cv_header_sys_stropts_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_stropts_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_STROPTS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/syssgi.h" "ac_cv_header_sys_syssgi_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_syssgi_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SYSSGI_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/systune.h" "ac_cv_header_sys_systune_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_systune_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SYSTUNE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/termios.h" "ac_cv_header_sys_termios_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_termios_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TERMIOS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/tpro.h" "ac_cv_header_sys_tpro_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_tpro_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TPRO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_wait_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid"
if test "x$ac_cv_func_waitpid" = xyes
then :
printf "%s\n" "#define HAVE_WAITPID 1" >>confdefs.h
fi
case "$host" in
*-convex-*)
ac_fn_c_check_header_compile "$LINENO" "/sys/sync/queue.h" "ac_cv_header__sys_sync_queue_h" "$ac_includes_default"
if test "x$ac_cv_header__sys_sync_queue_h" = xyes
then :
printf "%s\n" "#define HAVE__SYS_SYNC_QUEUE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "/sys/sync/sema.h" "ac_cv_header__sys_sync_sema_h" "$ac_includes_default"
if test "x$ac_cv_header__sys_sync_sema_h" = xyes
then :
printf "%s\n" "#define HAVE__SYS_SYNC_SEMA_H 1" >>confdefs.h
fi
;;
*-*-bsdi*)
ac_fn_c_check_header_compile "$LINENO" "machine/inline.h" "ac_cv_header_machine_inline_h" "$ac_includes_default"
if test "x$ac_cv_header_machine_inline_h" = xyes
then :
printf "%s\n" "#define HAVE_MACHINE_INLINE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/pcl720.h" "ac_cv_header_sys_pcl720_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_pcl720_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PCL720_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/i8253.h" "ac_cv_header_sys_i8253_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_i8253_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_I8253_H 1" >>confdefs.h
fi
;;
esac
case "$ac_cv_header_stdatomic_h" in
yes)
ac_fn_c_check_func "$LINENO" "atomic_thread_fence" "ac_cv_func_atomic_thread_fence"
if test "x$ac_cv_func_atomic_thread_fence" = xyes
then :
printf "%s\n" "#define HAVE_ATOMIC_THREAD_FENCE 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for atomic_thread_fence()" >&5
printf %s "checking for atomic_thread_fence()... " >&6; }
if test ${ntp_cv_func_atomic_thread_fence+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdatomic.h>
int
main (void)
{
atomic_thread_fence(memory_order_seq_cst);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_func_atomic_thread_fence=yes
else $as_nop
ntp_cv_func_atomic_thread_fence=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_func_atomic_thread_fence" >&5
printf "%s\n" "$ntp_cv_func_atomic_thread_fence" >&6; }
;;
esac
case "$host" in
*-*-solaris2.6)
# Broken...
;;
*)
ac_fn_c_check_func "$LINENO" "ntp_adjtime" "ac_cv_func_ntp_adjtime"
if test "x$ac_cv_func_ntp_adjtime" = xyes
then :
printf "%s\n" "#define HAVE_NTP_ADJTIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ntp_gettime" "ac_cv_func_ntp_gettime"
if test "x$ac_cv_func_ntp_gettime" = xyes
then :
printf "%s\n" "#define HAVE_NTP_GETTIME 1" >>confdefs.h
fi
;;
esac
case "$host" in
*-*-*linux*)
case "$ac_cv_func_ntp_gettime" in
yes)
;;
*)
ac_fn_c_check_func "$LINENO" "__ntp_gettime" "ac_cv_func___ntp_gettime"
if test "x$ac_cv_func___ntp_gettime" = xyes
then :
printf "%s\n" "#define HAVE___NTP_GETTIME 1" >>confdefs.h
fi
case "$ac_cv_func___ntp_gettime" in
yes)
printf "%s\n" "#define ntp_gettime __ntp_gettime" >>confdefs.h
printf "%s\n" "#define HAVE_NTP_GETTIME 1" >>confdefs.h
esac
;;
esac
ac_fn_c_check_func "$LINENO" "adjtimex" "ac_cv_func_adjtimex"
if test "x$ac_cv_func_adjtimex" = xyes
then :
printf "%s\n" "#define HAVE_ADJTIMEX 1" >>confdefs.h
fi
case "$ac_cv_func_adjtimex" in
yes)
printf "%s\n" "#define ntp_adjtime adjtimex" >>confdefs.h
printf "%s\n" "#define HAVE_NTP_ADJTIME 1" >>confdefs.h
have_adjtimex=1
;;
*)
ac_fn_c_check_func "$LINENO" "__adjtimex" "ac_cv_func___adjtimex"
if test "x$ac_cv_func___adjtimex" = xyes
then :
printf "%s\n" "#define HAVE___ADJTIMEX 1" >>confdefs.h
fi
case "$ac_cv_func___adjtimex" in
yes)
printf "%s\n" "#define ntp_adjtime __adjtimex" >>confdefs.h
printf "%s\n" "#define HAVE_NTP_ADJTIME 1" >>confdefs.h
printf "%s\n" "#define adjtimex __adjtimex" >>confdefs.h
printf "%s\n" "#define HAVE_ADJTIMEX 1" >>confdefs.h
have_adjtimex=1
esac
;;
esac
esac
case "$have_adjtimex" in
'')
# nlist stuff is only needed for tickadj.
saved_LIBS="$LIBS"
LIBS=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing nlist" >&5
printf %s "checking for library containing nlist... " >&6; }
if test ${ac_cv_search_nlist+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char nlist ();
int
main (void)
{
return nlist ();
;
return 0;
}
_ACEOF
for ac_lib in '' elf ld mld
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_nlist=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_nlist+y}
then :
break
fi
done
if test ${ac_cv_search_nlist+y}
then :
else $as_nop
ac_cv_search_nlist=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nlist" >&5
printf "%s\n" "$ac_cv_search_nlist" >&6; }
ac_res=$ac_cv_search_nlist
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# XXX ac_cv_search_nlist will be 'none required', 'no', or '-l...'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing kvm_open" >&5
printf %s "checking for library containing kvm_open... " >&6; }
if test ${ac_cv_search_kvm_open+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char kvm_open ();
int
main (void)
{
return kvm_open ();
;
return 0;
}
_ACEOF
for ac_lib in '' kvm
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_kvm_open=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_kvm_open+y}
then :
break
fi
done
if test ${ac_cv_search_kvm_open+y}
then :
else $as_nop
ac_cv_search_kvm_open=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_kvm_open" >&5
printf "%s\n" "$ac_cv_search_kvm_open" >&6; }
ac_res=$ac_cv_search_kvm_open
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
# XXX ac_cv_search_kvm_open will be 'none required', 'no', or '-l...'
ac_fn_c_check_header_compile "$LINENO" "nlist.h" "ac_cv_header_nlist_h" "$ac_includes_default"
if test "x$ac_cv_header_nlist_h" = xyes
then :
printf "%s\n" "#define HAVE_NLIST_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/var.h" "ac_cv_header_sys_var_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_var_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_VAR_H 1" >>confdefs.h
fi
case "$ac_cv_header_nlist_h" in
yes)
printf "%s\n" "#define NLIST_STRUCT 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for n_un in struct nlist" >&5
printf %s "checking for n_un in struct nlist... " >&6; }
if test ${ntp_cv_struct_nlist_n_un+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <nlist.h>
int
main (void)
{
struct nlist n;
n.n_un.n_name = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_nlist_n_un=yes
else $as_nop
ntp_cv_struct_nlist_n_un=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_nlist_n_un" >&5
printf "%s\n" "$ntp_cv_struct_nlist_n_un" >&6; }
case "$ntp_cv_struct_nlist_n_un" in
yes)
printf "%s\n" "#define NLIST_NAME_UNION 1" >>confdefs.h
esac
esac
LDADD_NLIST="$LIBS"
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
esac
ac_fn_c_check_header_compile "$LINENO" "sys/proc.h" "ac_cv_header_sys_proc_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
"
if test "x$ac_cv_header_sys_proc_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PROC_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
"
if test "x$ac_cv_header_sys_resource_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/shm.h" "ac_cv_header_sys_shm_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_IPC_H
# include <sys/ipc.h>
#endif
"
if test "x$ac_cv_header_sys_shm_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SHM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/timex.h" "ac_cv_header_sys_timex_h" "
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
"
if test "x$ac_cv_header_sys_timex_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIMEX_H 1" >>confdefs.h
fi
# We could do a cv check here, but is it worth it?
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/socket.h>
#ifndef AF_UNSPEC
#include "Bletch: AF_UNSPEC is undefined!"
#endif
#if AF_UNSPEC != 0
#include "Bletch: AF_UNSPEC != 0"
#endif
int
main (void)
{
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: AF_UNSPEC is zero, as expected." >&5
printf "%s\n" "$as_me: AF_UNSPEC is zero, as expected." >&6;}
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
printf %s "checking return type of signal handlers... " >&6; }
if test ${ac_cv_type_signal+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <signal.h>
int
main (void)
{
return *(signal (0, 0)) (0) == 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_signal=int
else $as_nop
ac_cv_type_signal=void
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
printf "%s\n" "$ac_cv_type_signal" >&6; }
printf "%s\n" "#define RETSIGTYPE $ac_cv_type_signal" >>confdefs.h
ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
if test "x$ac_cv_type_off_t" = xyes
then :
else $as_nop
printf "%s\n" "#define off_t long int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; }
if test ${ac_cv_struct_tm+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <time.h>
int
main (void)
{
struct tm tm;
int *p = &tm.tm_sec;
return !p;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_struct_tm=time.h
else $as_nop
ac_cv_struct_tm=sys/time.h
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
printf "%s\n" "$ac_cv_struct_tm" >&6; }
if test $ac_cv_struct_tm = sys/time.h; then
printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a fallback value for HZ" >&5
printf %s "checking for a fallback value for HZ... " >&6; }
if test ${ntp_cv_default_hz+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_default_hz=100
case "$host" in
alpha*-dec-osf4*|alpha*-dec-osf5*)
ntp_cv_default_hz=1024
;;
mips-dec-ultrix4*)
ntp_cv_default_hz=256
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_default_hz" >&5
printf "%s\n" "$ntp_cv_default_hz" >&6; }
printf "%s\n" "#define DEFAULT_HZ $ntp_cv_default_hz" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to override the system's value for HZ" >&5
printf %s "checking if we need to override the system's value for HZ... " >&6; }
if test ${ntp_cv_override_hz+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_override_hz=no
case "$host" in
alpha*-dec-osf4*|alpha*-dec-osf5*)
ntp_cv_override_hz=yes
;;
mips-dec-ultrix4*)
ntp_cv_override_hz=yes
;;
*-*-freebsd*)
ntp_cv_override_hz=yes
;;
*-*-sunos4*)
ntp_cv_override_hz=yes
;;
*-*-kfreebsd*)
ntp_cv_override_hz=yes
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_override_hz" >&5
printf "%s\n" "$ntp_cv_override_hz" >&6; }
case "$ntp_cv_override_hz" in
yes)
printf "%s\n" "#define OVERRIDE_HZ 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct rt_msghdr" >&5
printf %s "checking for struct rt_msghdr... " >&6; }
if test ${ntp_cv_struct_rt_msghdr+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/route.h>
int
main (void)
{
struct rt_msghdr p;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_rt_msghdr=yes
else $as_nop
ntp_cv_struct_rt_msghdr=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_rt_msghdr" >&5
printf "%s\n" "$ntp_cv_struct_rt_msghdr" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct rtattr" >&5
printf %s "checking for struct rtattr... " >&6; }
if test ${ntp_cv_rtattr+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stddef.h>
#include <sys/socket.h>
#include <linux/rtnetlink.h>
int
main (void)
{
struct rtattr p;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_rtattr=yes
else $as_nop
ntp_cv_rtattr=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_rtattr" >&5
printf "%s\n" "$ntp_cv_rtattr" >&6; }
case "$ntp_cv_struct_rt_msghdr$ntp_cv_rtattr" in
*yes*)
printf "%s\n" "#define HAS_ROUTING_SOCKET 1" >>confdefs.h
case "$ntp_cv_rtattr" in
yes)
printf "%s\n" "#define HAVE_RTNETLINK 1" >>confdefs.h
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking struct sigaction for sa_sigaction" >&5
printf %s "checking struct sigaction for sa_sigaction... " >&6; }
if test ${ntp_cv_struct_sigaction_has_sa_sigaction+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
int
main (void)
{
struct sigaction act;
act.sa_sigaction = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_sigaction_has_sa_sigaction=yes
else $as_nop
ntp_cv_struct_sigaction_has_sa_sigaction=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_sigaction_has_sa_sigaction" >&5
printf "%s\n" "$ntp_cv_struct_sigaction_has_sa_sigaction" >&6; }
case "$ntp_cv_struct_sigaction_has_sa_sigaction" in
yes)
printf "%s\n" "#define HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct ppsclockev" >&5
printf %s "checking for struct ppsclockev... " >&6; }
if test ${ntp_cv_struct_ppsclockev+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_TERMIOS_H
# include <sys/termios.h>
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
#ifdef HAVE_SYS_PPSCLOCK_H
# include <sys/ppsclock.h>
#endif
int
main (void)
{
extern struct ppsclockev *pce;
return pce->serial;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_ppsclockev=yes
else $as_nop
ntp_cv_struct_ppsclockev=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_ppsclockev" >&5
printf "%s\n" "$ntp_cv_struct_ppsclockev" >&6; }
case "$ntp_cv_struct_ppsclockev" in
yes)
printf "%s\n" "#define HAVE_STRUCT_PPSCLOCKEV 1" >>confdefs.h
esac
case "$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in
*yes*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct snd_size" >&5
printf %s "checking for struct snd_size... " >&6; }
if test ${ntp_cv_struct_snd_size+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_MACHINE_SOUNDCARD_H
# include <machine/soundcard.h>
#endif
#ifdef HAVE_SYS_SOUNDCARD_H
# include <sys/soundcard.h>
#endif
int
main (void)
{
extern struct snd_size *ss;
return ss->rec_size;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_snd_size=yes
else $as_nop
ntp_cv_struct_snd_size=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_snd_size" >&5
printf "%s\n" "$ntp_cv_struct_snd_size" >&6; }
case "$ntp_cv_struct_snd_size" in
yes)
printf "%s\n" "#define HAVE_STRUCT_SND_SIZE 1" >>confdefs.h
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking struct clockinfo for hz" >&5
printf %s "checking struct clockinfo for hz... " >&6; }
if test ${ntp_cv_struct_clockinfo_has_hz+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
int
main (void)
{
extern struct clockinfo *pc;
return pc->hz;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_clockinfo_has_hz=yes
else $as_nop
ntp_cv_struct_clockinfo_has_hz=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_clockinfo_has_hz" >&5
printf "%s\n" "$ntp_cv_struct_clockinfo_has_hz" >&6; }
case "$ntp_cv_struct_clockinfo_has_hz" in
yes)
printf "%s\n" "#define HAVE_HZ_IN_STRUCT_CLOCKINFO 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking struct clockinfo for tickadj" >&5
printf %s "checking struct clockinfo for tickadj... " >&6; }
if test ${ntp_cv_struct_clockinfo_has_hz+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
int
main (void)
{
extern struct clockinfo *pc;
return pc->tickadj;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_clockinfo_has_hz=yes
else $as_nop
ntp_cv_struct_clockinfo_has_hz=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_clockinfo_has_hz" >&5
printf "%s\n" "$ntp_cv_struct_clockinfo_has_hz" >&6; }
case "$ntp_cv_struct_clockinfo_has_hz" in
yes)
printf "%s\n" "#define HAVE_TICKADJ_IN_STRUCT_CLOCKINFO 1" >>confdefs.h
esac
case "$ntp_cv_struct_ntptimeval" in
yes)
ac_fn_c_check_member "$LINENO" "struct ntptimeval" "time.tv_nsec" "ac_cv_member_struct_ntptimeval_time_tv_nsec" "
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#else
# ifdef HAVE_TIME_H
# include <time.h>
# endif
#endif
#ifdef HAVE_SYS_TIMEX_H
# include <sys/timex.h>
#else
# ifdef HAVE_TIMEX_H
# include <timex.h>
# endif
#endif
"
if test "x$ac_cv_member_struct_ntptimeval_time_tv_nsec" = xyes
then :
printf "%s\n" "#define HAVE_STRUCT_NTPTIMEVAL_TIME_TV_NSEC 1" >>confdefs.h
fi
esac
####
ac_fn_c_check_func "$LINENO" "arc4random_buf" "ac_cv_func_arc4random_buf"
if test "x$ac_cv_func_arc4random_buf" = xyes
then :
printf "%s\n" "#define HAVE_ARC4RANDOM_BUF 1" >>confdefs.h
fi
####
saved_LIBS="$LIBS"
LIBS="$LIBS $LDADD_LIBNTP"
ac_fn_c_check_func "$LINENO" "daemon" "ac_cv_func_daemon"
if test "x$ac_cv_func_daemon" = xyes
then :
printf "%s\n" "#define HAVE_DAEMON 1" >>confdefs.h
fi
# XXX if we keep everything in LIBS and also keep separate lists, this simplifies.
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
for ac_func in finite
do :
ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite"
if test "x$ac_cv_func_finite" = xyes
then :
printf "%s\n" "#define HAVE_FINITE 1" >>confdefs.h
else $as_nop
for ac_func in isfinite
do :
ac_fn_c_check_func "$LINENO" "isfinite" "ac_cv_func_isfinite"
if test "x$ac_cv_func_isfinite" = xyes
then :
printf "%s\n" "#define HAVE_ISFINITE 1" >>confdefs.h
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isfinite with <math.h>" >&5
printf %s "checking for isfinite with <math.h>... " >&6; }
_libs=$LIBS
# XXX
LIBS="$LIBS -lm"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <math.h>
int
main (void)
{
float f = 0.0;
isfinite(f);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ans=yes
else $as_nop
ans=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$_libs
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define HAVE_ISFINITE 1" >>confdefs.h
esac
fi
done
fi
done
ac_fn_c_check_func "$LINENO" "fnmatch" "ac_cv_func_fnmatch"
if test "x$ac_cv_func_fnmatch" = xyes
then :
printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getbootfile" "ac_cv_func_getbootfile"
if test "x$ac_cv_func_getbootfile" = xyes
then :
printf "%s\n" "#define HAVE_GETBOOTFILE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getuid" "ac_cv_func_getuid"
if test "x$ac_cv_func_getuid" = xyes
then :
printf "%s\n" "#define HAVE_GETUID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage"
if test "x$ac_cv_func_getrusage" = xyes
then :
printf "%s\n" "#define HAVE_GETRUSAGE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep"
if test "x$ac_cv_func_nanosleep" = xyes
then :
printf "%s\n" "#define HAVE_NANOSLEEP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal"
if test "x$ac_cv_func_strsignal" = xyes
then :
printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal"
if test "x$ac_cv_func_strsignal" = xyes
then :
printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "closefrom" "ac_cv_func_closefrom"
if test "x$ac_cv_func_closefrom" = xyes
then :
printf "%s\n" "#define HAVE_CLOSEFROM 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize"
if test "x$ac_cv_func_getdtablesize" = xyes
then :
printf "%s\n" "#define HAVE_GETDTABLESIZE 1" >>confdefs.h
fi
# kvm_open() is only used by tickadj. Also see above.
case "$ac_cv_header_kvm_h" in
yes)
ac_fn_c_check_func "$LINENO" "kvm_open" "ac_cv_func_kvm_open"
if test "x$ac_cv_func_kvm_open" = xyes
then :
printf "%s\n" "#define HAVE_KVM_OPEN 1" >>confdefs.h
fi
;;
esac
case "$host" in
*-*-sco3.2v5.0.*)
# Just stubs. Sigh.
;;
*) ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp"
if test "x$ac_cv_func_mkstemp" = xyes
then :
printf "%s\n" "#define HAVE_MKSTEMP 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_func "$LINENO" "mktime" "ac_cv_func_mktime"
if test "x$ac_cv_func_mktime" = xyes
then :
printf "%s\n" "#define HAVE_MKTIME 1" >>confdefs.h
fi
case "$host" in
*-*-aix[4-9]*)
# XXX only verified thru AIX6.
# Just a stub. Sigh.
;;
*-*-irix[45]*)
# Just a stub in "old" Irix. Sigh.
;;
# In the belief that the fix for bug 1223 fixes mlockall() under linux...
# *-*-*linux*)
# # there, but more trouble than it is worth for now (resolver problems)
# ;;
*-*-qnx*)
# Apparently there but not working in QNX. Sigh?
;;
*-*-sco3.2v5.0.*)
# Just a stub. Sigh.
;;
alpha*-dec-osf4*|alpha*-dec-osf5*)
# mlockall is there, as a #define calling memlk via <sys/mman.h>
# Not easy to test for - cheat.
for ac_func in memlk
do :
ac_fn_c_check_func "$LINENO" "memlk" "ac_cv_func_memlk"
if test "x$ac_cv_func_memlk" = xyes
then :
printf "%s\n" "#define HAVE_MEMLK 1" >>confdefs.h
ac_cv_func_mlockall=yes
fi
done
ac_fn_c_check_func "$LINENO" "mlockall" "ac_cv_func_mlockall"
if test "x$ac_cv_func_mlockall" = xyes
then :
printf "%s\n" "#define HAVE_MLOCKALL 1" >>confdefs.h
fi
;;
*) ac_fn_c_check_func "$LINENO" "mlockall" "ac_cv_func_mlockall"
if test "x$ac_cv_func_mlockall" = xyes
then :
printf "%s\n" "#define HAVE_MLOCKALL 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_func "$LINENO" "nice" "ac_cv_func_nice"
if test "x$ac_cv_func_nice" = xyes
then :
printf "%s\n" "#define HAVE_NICE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock"
if test "x$ac_cv_func_plock" = xyes
then :
printf "%s\n" "#define HAVE_PLOCK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pututline" "ac_cv_func_pututline"
if test "x$ac_cv_func_pututline" = xyes
then :
printf "%s\n" "#define HAVE_PUTUTLINE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pututxline" "ac_cv_func_pututxline"
if test "x$ac_cv_func_pututxline" = xyes
then :
printf "%s\n" "#define HAVE_PUTUTXLINE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "readlink" "ac_cv_func_readlink"
if test "x$ac_cv_func_readlink" = xyes
then :
printf "%s\n" "#define HAVE_READLINK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "rtprio" "ac_cv_func_rtprio"
if test "x$ac_cv_func_rtprio" = xyes
then :
printf "%s\n" "#define HAVE_RTPRIO 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a POSIX-2008 compliant realpath()" >&5
printf %s "checking for a POSIX-2008 compliant realpath()... " >&6; }
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "$cross_compiling" = yes
then :
ans="CROSS COMPILE!"
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/param.h>
#include <stdlib.h>
int main() { return (NULL == realpath(".", NULL)); }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ans="yes"
else $as_nop
ans="no"
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define HAVE_FUNC_POSIX_REALPATH 1" >>confdefs.h
;;
esac
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
case "$host" in
*-*-aix[4-9]*)
# XXX only verified thru AIX6.
# Just a stub in AIX 4. Sigh.
;;
*-*-solaris2.5*)
# Just stubs in solaris2.5. Sigh.
;;
*) ac_fn_c_check_func "$LINENO" "sched_setscheduler" "ac_cv_func_sched_setscheduler"
if test "x$ac_cv_func_sched_setscheduler" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_SETSCHEDULER 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_func "$LINENO" "setlinebuf" "ac_cv_func_setlinebuf"
if test "x$ac_cv_func_setlinebuf" = xyes
then :
printf "%s\n" "#define HAVE_SETLINEBUF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setpgid" "ac_cv_func_setpgid"
if test "x$ac_cv_func_setpgid" = xyes
then :
printf "%s\n" "#define HAVE_SETPGID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setpriority" "ac_cv_func_setpriority"
if test "x$ac_cv_func_setpriority" = xyes
then :
printf "%s\n" "#define HAVE_SETPRIORITY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid"
if test "x$ac_cv_func_setsid" = xyes
then :
printf "%s\n" "#define HAVE_SETSID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setvbuf" "ac_cv_func_setvbuf"
if test "x$ac_cv_func_setvbuf" = xyes
then :
printf "%s\n" "#define HAVE_SETVBUF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
if test "x$ac_cv_func_strdup" = xyes
then :
printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
if test "x$ac_cv_func_strnlen" = xyes
then :
printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "memchr" "ac_cv_func_memchr"
if test "x$ac_cv_func_memchr" = xyes
then :
printf "%s\n" "#define HAVE_MEMCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror"
if test "x$ac_cv_func_strerror" = xyes
then :
printf "%s\n" "#define HAVE_STRERROR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
if test "x$ac_cv_func_setrlimit" = xyes
then :
printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr"
if test "x$ac_cv_func_strchr" = xyes
then :
printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h
fi
case "$host" in
*-*-aix[4-9]*)
# XXX only verified thru AIX6.
# Just stubs. Sigh.
;;
*-*-netbsd1*)
# Just stubs. Sigh.
;;
*-*-netbsdelf1*)
# Just stubs. Sigh.
;;
*-*-openbsd*)
# Just stubs. Sigh.
;;
*)
ac_fn_c_check_func "$LINENO" "timer_create" "ac_cv_func_timer_create"
if test "x$ac_cv_func_timer_create" = xyes
then :
printf "%s\n" "#define HAVE_TIMER_CREATE 1" >>confdefs.h
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for RLIMIT_MEMLOCK" >&5
printf %s "checking for RLIMIT_MEMLOCK... " >&6; }
if test ${ntp_cv_rlimit_memlock+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
int
main (void)
{
getrlimit(RLIMIT_MEMLOCK, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_rlimit_memlock=yes
else $as_nop
ntp_cv_rlimit_memlock=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_rlimit_memlock" >&5
printf "%s\n" "$ntp_cv_rlimit_memlock" >&6; }
case "$host" in
*-*-*linux*)
ntp_dflt_rlimit_memlock="-1" ;;
*) ntp_dflt_rlimit_memlock="32" ;;
esac
case "$ntp_cv_rlimit_memlock" in
yes)
HAVE_RLIMIT_MEMLOCK=" memlock $ntp_dflt_rlimit_memlock" ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for RLIMIT_STACK" >&5
printf %s "checking for RLIMIT_STACK... " >&6; }
if test ${ntp_cv_rlimit_stack+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
#endif
int
main (void)
{
getrlimit(RLIMIT_STACK, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_rlimit_stack=yes
else $as_nop
ntp_cv_rlimit_stack=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_rlimit_stack" >&5
printf "%s\n" "$ntp_cv_rlimit_stack" >&6; }
case "$ntp_cv_rlimit_stack" in
yes)
HAVE_RLIMIT_STACK=" stacksize 50"
esac
# HMS: Only if we are doing the MLOCKALL stuff...
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the default number of 4k stack pages" >&5
printf %s "checking for the default number of 4k stack pages... " >&6; }
# Check whether --with-stack-limit was given.
if test ${with_stack_limit+y}
then :
withval=$with_stack_limit; ans=$withval
else $as_nop
ans=yes
fi
case "$ans" in
yes | no)
case "$host" in
*-*-openbsd*)
ans=200
;;
*) ans=50
;;
esac
;;
[1-9][0-9]*)
;;
*) as_fn_error $? "\"--with-stack-limit requires an integer argument.\"" "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
printf "%s\n" "#define DFLT_RLIMIT_STACK $ans" >>confdefs.h
# HMS: only if we have RLIMIT_MEMLOCK
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the default number of megabytes to MEMLOCK" >&5
printf %s "checking for the default number of megabytes to MEMLOCK... " >&6; }
# Check whether --with-memlock was given.
if test ${with_memlock+y}
then :
withval=$with_memlock; ans=$withval
else $as_nop
ans=yes
fi
case "$ans" in
yes | no)
ans=$ntp_dflt_rlimit_memlock
;;
[1-9][0-9]*) ;;
*) as_fn_error $? "\"--with-memlock requires an integer argument.\"" "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
printf "%s\n" "#define DFLT_RLIMIT_MEMLOCK $ans" >>confdefs.h
# some OSes prefer _exit() in forked children to exit()
ac_fn_c_check_func "$LINENO" "_exit" "ac_cv_func__exit"
if test "x$ac_cv_func__exit" = xyes
then :
printf "%s\n" "#define HAVE__EXIT 1" >>confdefs.h
fi
ntp_worker_child_exit=exit
case "$ac_cv_func__exit::$host_os" in
yes::netbsd*)
ntp_worker_child_exit=_exit
;;
yes::openbsd*)
ntp_worker_child_exit=_exit
;;
esac
printf "%s\n" "#define WORKER_CHILD_EXIT $ntp_worker_child_exit" >>confdefs.h
ac_fn_c_check_func "$LINENO" "umask" "ac_cv_func_umask"
if test "x$ac_cv_func_umask" = xyes
then :
printf "%s\n" "#define HAVE_UMASK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "uname" "ac_cv_func_uname"
if test "x$ac_cv_func_uname" = xyes
then :
printf "%s\n" "#define HAVE_UNAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "updwtmp" "ac_cv_func_updwtmp"
if test "x$ac_cv_func_updwtmp" = xyes
then :
printf "%s\n" "#define HAVE_UPDWTMP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "updwtmpx" "ac_cv_func_updwtmpx"
if test "x$ac_cv_func_updwtmpx" = xyes
then :
printf "%s\n" "#define HAVE_UPDWTMPX 1" >>confdefs.h
fi
###
# http://bugs.ntp.org/737
case "$ac_cv_func_recvmsg" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need extra help to define struct iovec" >&5
printf %s "checking if we need extra help to define struct iovec... " >&6; }
if test ${ntp_cv_struct_iovec_help+y}
then :
printf %s "(cached) " >&6
else $as_nop
compiled=no
for ntp_cv_struct_iovec_help in '0' '1'; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#if $ntp_cv_struct_iovec_help
# include <sys/uio.h>
#endif
int
main (void)
{
void foo(void) {
ssize_t x;
int s = 0;
struct iovec iov;
struct msghdr mh;
int flags = 0;
mh.msg_iov = &iov;
x = recvmsg(s, &mh, flags);
}
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
compiled=yes ; break 1
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
case "$compiled" in
no)
ntp_cv_struct_iovec_help=0
esac
{ compiled=; unset compiled;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_iovec_help" >&5
printf "%s\n" "$ntp_cv_struct_iovec_help" >&6; }
case "$ntp_cv_struct_iovec_help" in
1)
printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking number of arguments taken by setpgrp()" >&5
printf %s "checking number of arguments taken by setpgrp()... " >&6; }
if test ${ntp_cv_func_setpgrp_nargs+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
int
main (void)
{
setpgrp(0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_func_setpgrp_nargs=2
else $as_nop
ntp_cv_func_setpgrp_nargs=0
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_func_setpgrp_nargs" >&5
printf "%s\n" "$ntp_cv_func_setpgrp_nargs" >&6; }
case "$ntp_cv_func_setpgrp_nargs" in
0)
printf "%s\n" "#define HAVE_SETPGRP_0 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to declare 'errno'" >&5
printf %s "checking if we need to declare 'errno'... " >&6; }
if test ${ntp_cv_decl_errno+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
int
main (void)
{
errno = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_decl_errno=no
else $as_nop
ntp_cv_decl_errno=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_decl_errno" >&5
printf "%s\n" "$ntp_cv_decl_errno" >&6; }
case "$ntp_cv_decl_errno" in
yes)
printf "%s\n" "#define DECL_ERRNO 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we may declare 'h_errno'" >&5
printf %s "checking if we may declare 'h_errno'... " >&6; }
if test ${ntp_cv_decl_h_errno+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
#ifdef HAVE_RESOLV_H
# include <resolv.h>
#endif
int
main (void)
{
extern int h_errno;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_decl_h_errno=yes
else $as_nop
ntp_cv_decl_h_errno=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_decl_h_errno" >&5
printf "%s\n" "$ntp_cv_decl_h_errno" >&6; }
case "$ntp_cv_decl_h_errno" in
yes)
printf "%s\n" "#define DECL_H_ERRNO 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if declaring 'syscall()' is ok" >&5
printf %s "checking if declaring 'syscall()' is ok... " >&6; }
if test ${ntp_cv_decl_syscall+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
int
main (void)
{
extern int syscall (int, ...);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_decl_syscall=yes
else $as_nop
ntp_cv_decl_syscall=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_decl_syscall" >&5
printf "%s\n" "$ntp_cv_decl_syscall" >&6; }
case "$ntp_cv_decl_syscall" in
yes)
printf "%s\n" "#define DECL_SYSCALL 1" >>confdefs.h
esac
case "$host" in
*-*-aix4.3.*)
printf "%s\n" "#define DECL_HSTRERROR_0 1" >>confdefs.h
# Needed for XLC under AIX 4.3.2
;;
*-*-mpeix*)
printf "%s\n" "#define DECL_ADJTIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_INET_NTOA_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MKTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SELECT_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETITIMER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SYSLOG_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIMEOFDAY_0 1" >>confdefs.h
;;
*-*-osf[45]*)
printf "%s\n" "#define DECL_PLOCK_0 1" >>confdefs.h
printf "%s\n" "#define DECL_STIME_1 1" >>confdefs.h
;;
*-*-qnx*)
printf "%s\n" "#define DECL_ADJTIME_0 1" >>confdefs.h
;;
*-*-riscos4*)
printf "%s\n" "#define DECL_ADJTIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_BZERO_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IOCTL_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IPC_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MEMMOVE_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MKTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_RENAME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SELECT_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETITIMER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETPRIORITY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_STDIO_0 1" >>confdefs.h
printf "%s\n" "#define DECL_STRTOL_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SYSLOG_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIMEOFDAY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TOLOWER_0 1" >>confdefs.h
;;
*-*-solaris2*)
printf "%s\n" "#define DECL_MKSTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETPRIORITY_1 1" >>confdefs.h
case "$host" in
*-*-solaris2.4)
printf "%s\n" "#define DECL_TIMEOFDAY_0 1" >>confdefs.h
;;
esac
;;
*-*-sunos4*)
printf "%s\n" "#define DECL_ADJTIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_BCOPY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_BZERO_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IOCTL_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IPC_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MEMMOVE_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MKTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MKSTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_RENAME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SELECT_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETITIMER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETPRIORITY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SIGVEC_0 1" >>confdefs.h
case "`basename $ac_cv_prog_CC`" in
acc*) ;;
*)
printf "%s\n" "#define DECL_STDIO_0 1" >>confdefs.h
;;
esac
printf "%s\n" "#define DECL_STRTOL_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SYSLOG_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIMEOFDAY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TOLOWER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TOUPPER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_STRERROR_0 1" >>confdefs.h
;;
*-*-ultrix4*)
printf "%s\n" "#define DECL_ADJTIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_BZERO_0 1" >>confdefs.h
printf "%s\n" "#define DECL_CFSETISPEED_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IOCTL_0 1" >>confdefs.h
printf "%s\n" "#define DECL_IPC_0 1" >>confdefs.h
printf "%s\n" "#define DECL_MKTEMP_0 1" >>confdefs.h
printf "%s\n" "#define DECL_NLIST_0 1" >>confdefs.h
printf "%s\n" "#define DECL_PLOCK_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SELECT_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETITIMER_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SETPRIORITY_0 1" >>confdefs.h
printf "%s\n" "#define DECL_STIME_0 1" >>confdefs.h
printf "%s\n" "#define DECL_SYSLOG_0 1" >>confdefs.h
printf "%s\n" "#define DECL_TIMEOFDAY_0 1" >>confdefs.h
;;
esac
case "$host" in
*-*-sco3.2*)
printf "%s\n" "#define TERMIOS_NEEDS__SVID3 1" >>confdefs.h
;;
esac
case "$host" in
*-*-hpux[567]*)
printf "%s\n" "#define NEED_RCVBUF_SLOP 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we will open the broadcast socket" >&5
printf %s "checking if we will open the broadcast socket... " >&6; }
if test ${ntp_cv_var_open_bcast_socket+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=yes
case "$host" in
*-*-domainos)
ans=no
esac
ntp_cv_var_open_bcast_socket=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_var_open_bcast_socket" >&5
printf "%s\n" "$ntp_cv_var_open_bcast_socket" >&6; }
case "$ntp_cv_var_open_bcast_socket" in
yes)
printf "%s\n" "#define OPEN_BCAST_SOCKET 1" >>confdefs.h
esac
case "$host" in
*-*-hpux*)
printf "%s\n" "#define NEED_HPUX_FINDCONFIG 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if process groups are set with -pid" >&5
printf %s "checking if process groups are set with -pid... " >&6; }
if test ${ntp_cv_arg_setpgrp_negpid+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-hpux[567]*)
ans=no
;;
*-*-hpux*)
ans=yes
;;
*-*-*linux*)
ans=yes
;;
*-*-sunos3*)
ans=yes
;;
*-*-ultrix2*)
ans=yes
;;
*)
ans=no
;;
esac
ntp_cv_arg_setpgrp_negpid=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_arg_setpgrp_negpid" >&5
printf "%s\n" "$ntp_cv_arg_setpgrp_negpid" >&6; }
case "$ntp_cv_arg_setpgrp_negpid" in
yes)
printf "%s\n" "#define UDP_BACKWARDS_SETOWN 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need a ctty for F_SETOWN" >&5
printf %s "checking if we need a ctty for F_SETOWN... " >&6; }
if test ${ntp_cv_func_ctty_for_f_setown+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-bsdi[23]*)
ans=yes
;;
*-*-freebsd*)
ans=yes
;;
# NetBSD versions prior to 3.99.8 require a CTTY for F_SETOWN,
# while later versions will fail a ioctl(TIOCSCTTY, 0) call in
# some cases and so should not have USE_FSETOWNCTTY. "netbsd"
# in $host may be followed by "aout", "ecoff", or "elf".
*-*-netbsd*[a-z]3.[0-8]*|*-*-netbsd*[a-z][0-2].*|*-*-netbsd*[a-z]3.99.[0-7])
ans=yes
;;
*-*-netbsd3.[0-8]*|*-*-netbsd[0-2].*|*-*-netbsd3.99.[0-7])
ans=yes
;;
*-*-openbsd*)
ans=yes
;;
*-*-osf*)
ans=yes
;;
*-*-darwin*)
ans=yes
;;
*)
ans=no
;;
esac
ntp_cv_func_ctty_for_f_setown=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_func_ctty_for_f_setown" >&5
printf "%s\n" "$ntp_cv_func_ctty_for_f_setown" >&6; }
case "$ntp_cv_func_ctty_for_f_setown" in
yes)
printf "%s\n" "#define USE_FSETOWNCTTY 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the OS clears cached routes when more specifics become available" >&5
printf %s "checking if the OS clears cached routes when more specifics become available... " >&6; }
if test ${ntp_cv_os_routeupdates+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-netbsd*)
ans=yes
;;
*)
ans=no
;;
esac
ntp_cv_os_routeupdates=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_os_routeupdates" >&5
printf "%s\n" "$ntp_cv_os_routeupdates" >&6; }
case "$ntp_cv_os_routeupdates" in
yes)
printf "%s\n" "#define OS_MISSES_SPECIFIC_ROUTE_UPDATES 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the wildcard socket needs REUSEADDR to bind other addresses" >&5
printf %s "checking if the wildcard socket needs REUSEADDR to bind other addresses... " >&6; }
if test ${ntp_cv_os_wildcardreuse+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-*linux*)
ans=yes
;;
*) ans=no
;;
esac
ntp_cv_os_wildcardreuse=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_os_wildcardreuse" >&5
printf "%s\n" "$ntp_cv_os_wildcardreuse" >&6; }
case "$ntp_cv_os_wildcardreuse" in
yes)
printf "%s\n" "#define OS_NEEDS_REUSEADDR_FOR_IFADDRBIND 1" >>confdefs.h
esac
case "$host" in
*-*-aix*)
printf "%s\n" "#define NLIST_EXTRA_INDIRECTION 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a minimum recommended value of tickadj" >&5
printf %s "checking for a minimum recommended value of tickadj... " >&6; }
if test ${ntp_cv_var_min_rec_tickadj+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=no
case "$host" in
*-*-aix*)
ans=40
;;
esac
ntp_cv_var_min_rec_tickadj=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_var_min_rec_tickadj" >&5
printf "%s\n" "$ntp_cv_var_min_rec_tickadj" >&6; }
case "$ntp_cv_var_min_rec_tickadj" in
''|no)
;;
*)
printf "%s\n" "#define MIN_REC_TICKADJ $ntp_cv_var_min_rec_tickadj" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the TTY code permits PARENB and IGNPAR" >&5
printf %s "checking if the TTY code permits PARENB and IGNPAR... " >&6; }
if test ${ntp_cv_no_parenb_ignpar+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=no
case "$host" in
i?86-*-*linux*)
ans=yes
;;
mips-sgi-irix*)
ans=yes
;;
i?86-*-freebsd[123].*)
;;
i?86-*-freebsd*)
ans=yes
;;
*-*-unicosmp*)
ans=yes
;;
esac
ntp_cv_no_parenb_ignpar=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_no_parenb_ignpar" >&5
printf "%s\n" "$ntp_cv_no_parenb_ignpar" >&6; }
case "$ntp_cv_no_parenb_ignpar" in
yes)
printf "%s\n" "#define NO_PARENB_IGNPAR 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're including processing time debugging code" >&5
printf %s "checking if we're including processing time debugging code... " >&6; }
# Check whether --enable-debug-timing was given.
if test ${enable_debug_timing+y}
then :
enableval=$enable_debug_timing; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
case "$ntp_ok" in
yes)
printf "%s\n" "#define DEBUG_TIMING 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a the number of minutes in a DST adjustment" >&5
printf %s "checking for a the number of minutes in a DST adjustment... " >&6; }
# Check whether --enable-dst-minutes was given.
if test ${enable_dst_minutes+y}
then :
enableval=$enable_dst_minutes; ans=$enableval
else $as_nop
ans=60
fi
printf "%s\n" "#define DSTMINUTES $ans" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ntpd will retry permanent DNS failures" >&5
printf %s "checking if ntpd will retry permanent DNS failures... " >&6; }
# Check whether --enable-ignore-dns-errors was given.
if test ${enable_ignore_dns_errors+y}
then :
enableval=$enable_ignore_dns_errors; ans=$enableval
else $as_nop
ans=no
fi
case "$ans" in
yes)
printf "%s\n" "#define IGNORE_DNS_ERRORS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking availability of ntp_{adj,get}time()" >&5
printf %s "checking availability of ntp_{adj,get}time()... " >&6; }
if test ${ntp_cv_var_ntp_syscalls+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_var_ntp_syscalls=no
case "$ac_cv_func_ntp_adjtime$ac_cv_func_ntp_gettime$ac_cv_func___adjtimex" in
yesyes*)
ntp_cv_var_ntp_syscalls=libc
;;
*yes)
ntp_cv_var_ntp_syscalls=inline
;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/syscall.h>
#if !defined(SYS_ntp_gettime) || !defined(SYS_ntp_adjtime)
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_var_ntp_syscalls=kernel
fi
rm -f conftest.err conftest.i conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_var_ntp_syscalls" >&5
printf "%s\n" "$ntp_cv_var_ntp_syscalls" >&6; }
case "$ntp_cv_var_ntp_syscalls" in
libc)
printf "%s\n" "#define NTP_SYSCALLS_LIBC 1" >>confdefs.h
;;
kernel)
printf "%s\n" "#define NTP_SYSCALLS_STD 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sys/timex.h has STA_FLL" >&5
printf %s "checking if sys/timex.h has STA_FLL... " >&6; }
if test ${ntp_cv_var_sta_fll+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/timex.h>
#ifndef STA_FLL
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_var_sta_fll=yes
else $as_nop
ntp_cv_var_sta_fll=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_var_sta_fll" >&5
printf "%s\n" "$ntp_cv_var_sta_fll" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have kernel PLL support" >&5
printf %s "checking if we have kernel PLL support... " >&6; }
if test ${ntp_cv_var_kernel_pll+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$ac_cv_header_sys_timex_h$ntp_cv_struct_ntptimeval$ntp_cv_var_sta_fll$ntp_cv_var_ntp_syscalls" in
*no*)
ntp_cv_var_kernel_pll=no
;;
*) ntp_cv_var_kernel_pll=yes
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_var_kernel_pll" >&5
printf "%s\n" "$ntp_cv_var_kernel_pll" >&6; }
case "$ntp_cv_var_kernel_pll" in
yes)
printf "%s\n" "#define KERNEL_PLL 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if SIOCGIFCONF returns buffer size in the buffer" >&5
printf %s "checking if SIOCGIFCONF returns buffer size in the buffer... " >&6; }
if test ${ntp_cv_size_returned_in_buffer+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=no
case "$host" in
*-fujitsu-uxp*)
ans=yes
;;
*-ncr-sysv4*)
ans=yes
;;
*-univel-sysv*)
ans=yes
;;
esac
ntp_cv_size_returned_in_buffer=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_size_returned_in_buffer" >&5
printf "%s\n" "$ntp_cv_size_returned_in_buffer" >&6; }
case "$ntp_cv_size_returned_in_buffer" in
yes)
printf "%s\n" "#define SIZE_RETURNED_IN_BUFFER 1" >>confdefs.h
esac
# Check for ioctls TIOCGPPSEV
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TTY PPS ioctl TIOCGPPSEV" >&5
printf %s "checking for TTY PPS ioctl TIOCGPPSEV... " >&6; }
case "$ac_cv_header_termios_h" in
yes)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termios.h>
#ifndef TIOCGPPSEV
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_ok=yes
else $as_nop
ntp_ok=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
;;
*)
ntp_ok=no
;;
esac
case "$ntp_ok" in
yes)
printf "%s\n" "#define HAVE_TIOCGPPSEV 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Check for ioctls TIOCSPPS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TTY PPS ioctl TIOCSPPS" >&5
printf %s "checking for TTY PPS ioctl TIOCSPPS... " >&6; }
case "$ac_cv_header_termios_h" in
yes)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termios.h>
#ifndef TIOCSPPS
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_ok=yes
else $as_nop
ntp_ok=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
;;
*)
ntp_ok=no
;;
esac
case "$ntp_ok" in
yes)
printf "%s\n" "#define HAVE_TIOCSPPS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Check for ioctls CIOGETEV
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TTY PPS ioctl CIOGETEV" >&5
printf %s "checking for TTY PPS ioctl CIOGETEV... " >&6; }
case "$ac_cv_header_sys_ppsclock_h" in
yes)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/ppsclock.h>
#ifndef CIOGETEV
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_ok=yes
else $as_nop
ntp_ok=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
;;
*)
ntp_ok=no
;;
esac
case "$ntp_ok" in
yes)
printf "%s\n" "#define HAVE_CIOGETEV 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# ATOM/PPSAPI stuff.
ntp_atom_ok=yes
# Check for header timepps.h, if found then we have PPS API (Draft RFC) stuff.
# The PPSAPI headers need "inline" ($ac_cv_c_inline='inline')
# The PPSAPI needs struct timespec.
# The PPSAPI also needs a timepps header.
case "$ac_cv_c_inline$ntp_cv_struct_timespec" in
inlineyes)
case "$ac_cv_header_timepps_h$ac_cv_header_sys_timepps_h$host_os" in
*yes* | *sunos* | *solaris* | *sco* | *netbsd* )
printf "%s\n" "#define HAVE_PPSAPI 1" >>confdefs.h
ntp_jupiter_ok=yes
ntp_oncore_ok=yes
ntp_parse_ok=yes
ntp_ripe_ncc_ok=yes
;;
esac
;;
esac
# Check for ioctls TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG
ac_fn_c_check_header_compile "$LINENO" "linux/serial.h" "ac_cv_header_linux_serial_h" "$ac_includes_default"
if test "x$ac_cv_header_linux_serial_h" = xyes
then :
fi
case "$ac_cv_header_sys_ppsclock_h$ac_cv_header_linux_serial_h" in
yesyes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG" >&5
printf %s "checking ioctl TIOCGSERIAL, TIOCSSERIAL, ASYNC_PPS_CD_POS, ASYNC_PPS_CD_NEG... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
typedef int u_int;
#include <sys/ppsclock.h>
#include <linux/serial.h>
#ifndef TIOCGSERIAL
# error
#endif
#ifndef TIOCSSERIAL
# error
#endif
#ifndef ASYNC_PPS_CD_POS
# error
#endif
#ifndef ASYNC_PPS_CD_NEG
# error
#endif
#ifndef CIOGETEV
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_ok=yes
else $as_nop
ntp_ok=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
;;
*)
ntp_ok=no
;;
esac
case "$ntp_ok" in
yes)
printf "%s\n" "#define HAVE_TIO_SERIAL_STUFF 1" >>confdefs.h
esac
# Check for SHMEM_STATUS support
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SHMEM_STATUS support" >&5
printf %s "checking SHMEM_STATUS support... " >&6; }
case "$ac_cv_header_sys_mman_h" in
yes)
ntp_ok=yes
;;
*)
ntp_ok=no
;;
esac
case "$ntp_ok" in
yes)
printf "%s\n" "#define ONCORE_SHMEM_STATUS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
ntp_refclock=no
# HPUX only, and by explicit request
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Datum/Bancomm bc635/VME interface" >&5
printf %s "checking Datum/Bancomm bc635/VME interface... " >&6; }
# Check whether --enable-BANCOMM was given.
if test ${enable_BANCOMM+y}
then :
enableval=$enable_BANCOMM; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_BANC 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing bcStartPci" >&5
printf %s "checking for library containing bcStartPci... " >&6; }
if test ${ac_cv_search_bcStartPci+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char bcStartPci ();
int
main (void)
{
return bcStartPci ();
;
return 0;
}
_ACEOF
for ac_lib in '' bcsdk
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_bcStartPci=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_bcStartPci+y}
then :
break
fi
done
if test ${ac_cv_search_bcStartPci+y}
then :
else $as_nop
ac_cv_search_bcStartPci=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_bcStartPci" >&5
printf "%s\n" "$ac_cv_search_bcStartPci" >&6; }
ac_res=$ac_cv_search_bcStartPci
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$host" in
yes*-*-hpux*) ;;
yes*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;} ;;
esac
#HPUX only, and only by explicit request
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking TrueTime GPS receiver/VME interface" >&5
printf %s "checking TrueTime GPS receiver/VME interface... " >&6; }
# Check whether --enable-GPSVME was given.
if test ${enable_GPSVME+y}
then :
enableval=$enable_GPSVME; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_GPSVME 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$host" in
yes*-*-hpux*) ;;
yes*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;} ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PCL720 clock support" >&5
printf %s "checking for PCL720 clock support... " >&6; }
case "$ac_cv_header_machine_inline_h$ac_cv_header_sys_pcl720_h$ac_cv_header_sys_i8253_h" in
yesyesyes)
printf "%s\n" "#define CLOCK_PPS720 1" >>confdefs.h
ans=yes
;;
*)
ans=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for default inclusion of all suitable non-PARSE clocks" >&5
printf %s "checking for default inclusion of all suitable non-PARSE clocks... " >&6; }
# Check whether --enable-all-clocks was given.
if test ${enable_all_clocks+y}
then :
enableval=$enable_all_clocks; ntp_eac=$enableval
else $as_nop
ntp_eac=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_eac" >&5
printf "%s\n" "$ntp_eac" >&6; }
# HMS: Should we also require ntp_parse_ok?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have support for PARSE clocks" >&5
printf %s "checking if we have support for PARSE clocks... " >&6; }
case "$ntp_atom_ok$ac_cv_header_termio_h$ac_cv_header_termios_h" in
yes*yes*)
ntp_canparse=yes
;;
*) ntp_canparse=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_canparse" >&5
printf "%s\n" "$ntp_canparse" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have support for audio clocks" >&5
printf %s "checking if we have support for audio clocks... " >&6; }
case "$ac_cv_header_sun_audioio_h$ac_cv_header_sys_audioio_h$ac_cv_header_machine_soundcard_h$ac_cv_header_sys_soundcard_h" in
*yes*)
ntp_canaudio=yes
printf "%s\n" "#define HAVE_AUDIO /**/" >>confdefs.h
;;
*) ntp_canaudio=no ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_canaudio" >&5
printf "%s\n" "$ntp_canaudio" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have support for the SHM refclock interface" >&5
printf %s "checking if we have support for the SHM refclock interface... " >&6; }
case "$ac_cv_header_sys_ipc_h$ac_cv_header_sys_shm_h" in
yesyes)
ntp_canshm=yes
;;
*) ntp_canshm=no ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_canshm" >&5
printf "%s\n" "$ntp_canshm" >&6; }
# Test for termios TIOCMBIS modem control (ACTS, Heath, Palisade)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for termios modem control" >&5
printf %s "checking for termios modem control... " >&6; }
if test ${ntp_cv_modem_control+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_TERMIOS_H
# include <termios.h>
#endif
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
int
main (void)
{
int dtr = TIOCM_DTR;
ioctl(1, TIOCMBIS, (char *)&dtr);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_modem_control=yes
else $as_nop
ntp_cv_modem_control=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_modem_control" >&5
printf "%s\n" "$ntp_cv_modem_control" >&6; }
case "$ntp_eac::$ntp_cv_modem_control" in
yes::yes)
ntp_enable_all_modem_control_clocks=yes
;;
*)
ntp_enable_all_modem_control_clocks=no
;;
esac
# Requires modem control
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ACTS modem service" >&5
printf %s "checking ACTS modem service... " >&6; }
# Check whether --enable-ACTS was given.
if test ${enable_ACTS+y}
then :
enableval=$enable_ACTS; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_enable_all_modem_control_clocks
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ACTS 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Arbiter 1088A/B GPS receiver" >&5
printf %s "checking Arbiter 1088A/B GPS receiver... " >&6; }
# Check whether --enable-ARBITER was given.
if test ${enable_ARBITER+y}
then :
enableval=$enable_ARBITER; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ARBITER 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Arcron MSF receiver" >&5
printf %s "checking Arcron MSF receiver... " >&6; }
# Check whether --enable-ARCRON_MSF was given.
if test ${enable_ARCRON_MSF+y}
then :
enableval=$enable_ARCRON_MSF; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ARCRON_MSF 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Austron 2200A/2201A GPS receiver" >&5
printf %s "checking Austron 2200A/2201A GPS receiver... " >&6; }
# Check whether --enable-AS2201 was given.
if test ${enable_AS2201+y}
then :
enableval=$enable_AS2201; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_AS2201 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ATOM PPS interface" >&5
printf %s "checking ATOM PPS interface... " >&6; }
# Check whether --enable-ATOM was given.
if test ${enable_ATOM+y}
then :
enableval=$enable_ATOM; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_atom_ok" in
no) ntp_ok=no ;;
esac
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ATOM 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Chrono-log K-series WWVB receiver" >&5
printf %s "checking Chrono-log K-series WWVB receiver... " >&6; }
# Check whether --enable-CHRONOLOG was given.
if test ${enable_CHRONOLOG+y}
then :
enableval=$enable_CHRONOLOG; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_CHRONOLOG 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CHU modem/decoder" >&5
printf %s "checking CHU modem/decoder... " >&6; }
# Check whether --enable-CHU was given.
if test ${enable_CHU+y}
then :
enableval=$enable_CHU; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_CHU 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
ntp_refclock_chu=$ntp_ok
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CHU audio/decoder" >&5
printf %s "checking CHU audio/decoder... " >&6; }
# Check whether --enable-AUDIO-CHU was given.
if test ${enable_AUDIO_CHU+y}
then :
enableval=$enable_AUDIO_CHU; ntp_ok=$enableval
else $as_nop
case "$ntp_eac$ntp_refclock_chu$ntp_canaudio" in
*no*) ntp_ok=no ;;
*) ntp_ok=yes ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# We used to check for sunos/solaris target...
case "$ntp_ok$ntp_refclock_chu$ntp_canaudio" in
yes*no*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is...no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is...no ***" >&2;}
esac
# Not under HP-UX
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Datum Programmable Time System" >&5
printf %s "checking Datum Programmable Time System... " >&6; }
# Check whether --enable-DATUM was given.
if test ${enable_DATUM+y}
then :
enableval=$enable_DATUM; ntp_ok=$enableval
else $as_nop
case "$ac_cv_header_termios_h" in
yes)
ntp_ok=$ntp_eac
;;
*) ntp_ok=no
;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_DATUM 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Dumb generic hh:mm:ss local clock" >&5
printf %s "checking Dumb generic hh:mm:ss local clock... " >&6; }
# Check whether --enable-DUMBCLOCK was given.
if test ${enable_DUMBCLOCK+y}
then :
enableval=$enable_DUMBCLOCK; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_DUMBCLOCK 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Forum Graphic GPS" >&5
printf %s "checking Forum Graphic GPS... " >&6; }
# Check whether --enable-FG was given.
if test ${enable_FG+y}
then :
enableval=$enable_FG; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_FG 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Requires modem control
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Heath GC-1000 WWV/WWVH receiver" >&5
printf %s "checking Heath GC-1000 WWV/WWVH receiver... " >&6; }
# Check whether --enable-HEATH was given.
if test ${enable_HEATH+y}
then :
enableval=$enable_HEATH; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_enable_all_modem_control_clocks
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_HEATH 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hopf serial clock device" >&5
printf %s "checking for hopf serial clock device... " >&6; }
# Check whether --enable-HOPFSERIAL was given.
if test ${enable_HOPFSERIAL+y}
then :
enableval=$enable_HOPFSERIAL; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_HOPF_SERIAL 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for hopf PCI clock 6039" >&5
printf %s "checking for hopf PCI clock 6039... " >&6; }
# Check whether --enable-HOPFPCI was given.
if test ${enable_HOPFPCI+y}
then :
enableval=$enable_HOPFPCI; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_HOPF_PCI 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking HP 58503A GPS receiver" >&5
printf %s "checking HP 58503A GPS receiver... " >&6; }
# Check whether --enable-HPGPS was given.
if test ${enable_HPGPS+y}
then :
enableval=$enable_HPGPS; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_HPGPS 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking IRIG audio decoder" >&5
printf %s "checking IRIG audio decoder... " >&6; }
# Check whether --enable-IRIG was given.
if test ${enable_IRIG+y}
then :
enableval=$enable_IRIG; ntp_ok=$enableval
else $as_nop
case "$ntp_eac$ntp_canaudio" in
*no*) ntp_ok=no ;;
*) ntp_ok=yes ;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_IRIG 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canaudio" in
yesno) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for JJY receiver" >&5
printf %s "checking for JJY receiver... " >&6; }
# Check whether --enable-JJY was given.
if test ${enable_JJY+y}
then :
enableval=$enable_JJY; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_JJY 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Rockwell Jupiter GPS receiver" >&5
printf %s "checking Rockwell Jupiter GPS receiver... " >&6; }
# Check whether --enable-JUPITER was given.
if test ${enable_JUPITER+y}
then :
enableval=$enable_JUPITER; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_jupiter_ok" in
no) ntp_ok=no ;;
esac
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_JUPITER 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Leitch CSD 5300 Master Clock System Driver" >&5
printf %s "checking Leitch CSD 5300 Master Clock System Driver... " >&6; }
# Check whether --enable-LEITCH was given.
if test ${enable_LEITCH+y}
then :
enableval=$enable_LEITCH; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_LEITCH 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking local clock reference" >&5
printf %s "checking local clock reference... " >&6; }
# Check whether --enable-LOCAL-CLOCK was given.
if test ${enable_LOCAL_CLOCK+y}
then :
enableval=$enable_LOCAL_CLOCK; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_LOCAL 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Not Ultrix
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Magnavox MX4200 GPS receiver" >&5
printf %s "checking Magnavox MX4200 GPS receiver... " >&6; }
# Check whether --enable-MX4200 was given.
if test ${enable_MX4200+y}
then :
enableval=$enable_MX4200; ntp_ok=$enableval
else $as_nop
case "$ac_cv_var_ppsclock" in
yes)
ntp_ok=$ntp_eac
;;
*)
ntp_ok=no
;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_MX4200 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$host" in
yes*-*-ultrix*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for NeoClock4X receiver" >&5
printf %s "checking for NeoClock4X receiver... " >&6; }
# Check whether --enable-NEOCLOCK4X was given.
if test ${enable_NEOCLOCK4X+y}
then :
enableval=$enable_NEOCLOCK4X; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_NEOCLOCK4X 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking NMEA GPS receiver" >&5
printf %s "checking NMEA GPS receiver... " >&6; }
# Check whether --enable-NMEA was given.
if test ${enable_NMEA+y}
then :
enableval=$enable_NMEA; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_NMEA 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll"
if test "x$ac_cv_func_strtoll" = xyes
then :
printf "%s\n" "#define HAVE_STRTOLL 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GPSD JSON receiver" >&5
printf %s "checking for GPSD JSON receiver... " >&6; }
# Check whether --enable-GPSD was given.
if test ${enable_GPSD+y}
then :
enableval=$enable_GPSD; ntp_ok=$enableval
else $as_nop
case "$ac_cv_func_strtoll" in
yes) ntp_ok=$ntp_eac ;;
*) ntp_ok="no" ;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_GPSDJSON 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ONCORE Motorola VP/UT Oncore GPS" >&5
printf %s "checking for ONCORE Motorola VP/UT Oncore GPS... " >&6; }
# Check whether --enable-ONCORE was given.
if test ${enable_ONCORE+y}
then :
enableval=$enable_ONCORE; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_oncore_ok" in
no) ntp_ok=no ;;
esac
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ONCORE 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Requires modem control
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Palisade clock" >&5
printf %s "checking for Palisade clock... " >&6; }
# Check whether --enable-PALISADE was given.
if test ${enable_PALISADE+y}
then :
enableval=$enable_PALISADE; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_enable_all_modem_control_clocks
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_PALISADE 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Conrad parallel port radio clock" >&5
printf %s "checking Conrad parallel port radio clock... " >&6; }
# Check whether --enable-PCF was given.
if test ${enable_PCF+y}
then :
enableval=$enable_PCF; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_PCF 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking PST/Traconex 1020 WWV/WWVH receiver" >&5
printf %s "checking PST/Traconex 1020 WWV/WWVH receiver... " >&6; }
# Check whether --enable-PST was given.
if test ${enable_PST+y}
then :
enableval=$enable_PST; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_PST 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RIPENCC specific Trimble driver" >&5
printf %s "checking RIPENCC specific Trimble driver... " >&6; }
# Check whether --enable-RIPENCC was given.
if test ${enable_RIPENCC+y}
then :
enableval=$enable_RIPENCC; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
# 020629: HMS: s/$ntp_eac -> -/no because of ptr += sprintf(ptr, ...) usage
case "$ntp_ripe_ncc_ok" in
no) ntp_ok=no ;;
esac
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_RIPENCC /**/" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# Danny Meyer says SHM compiles (with a few warnings) under Win32.
# For *IX, we need sys/ipc.h and sys/shm.h.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHM clock attached thru shared memory" >&5
printf %s "checking for SHM clock attached thru shared memory... " >&6; }
# Check whether --enable-SHM was given.
if test ${enable_SHM+y}
then :
enableval=$enable_SHM; ntp_ok=$enableval
else $as_nop
case "$ntp_eac$ntp_canshm" in
*no*) ntp_ok=no ;;
*) ntp_ok=yes ;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_SHM 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Spectracom 8170/Netclock/2 WWVB receiver" >&5
printf %s "checking Spectracom 8170/Netclock/2 WWVB receiver... " >&6; }
# Check whether --enable-SPECTRACOM was given.
if test ${enable_SPECTRACOM+y}
then :
enableval=$enable_SPECTRACOM; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_SPECTRACOM 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking KSI/Odetics TPRO/S GPS receiver/IRIG interface" >&5
printf %s "checking KSI/Odetics TPRO/S GPS receiver/IRIG interface... " >&6; }
# Check whether --enable-TPRO was given.
if test ${enable_TPRO+y}
then :
enableval=$enable_TPRO; ntp_ok=$enableval
else $as_nop
case "$ac_cv_header_sys_tpro_h" in
yes)
ntp_ok=$ntp_eac
;;
*)
ntp_ok=no
;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TPRO 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ac_cv_header_sys_tpro" in
yesno) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;}
esac
# Not on a vax-dec-bsd
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Kinemetrics/TrueTime receivers" >&5
printf %s "checking Kinemetrics/TrueTime receivers... " >&6; }
# Check whether --enable-TRUETIME was given.
if test ${enable_TRUETIME+y}
then :
enableval=$enable_TRUETIME; ntp_ok=$enableval
else $as_nop
case "$host" in
vax-dec-bsd)
ntp_ok=no
;;
*)
ntp_ok=$ntp_eac
;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TRUETIME 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$host" in
yesvax-dec-bsd) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking TrueTime 560 IRIG-B decoder" >&5
printf %s "checking TrueTime 560 IRIG-B decoder... " >&6; }
# Check whether --enable-TT560 was given.
if test ${enable_TT560+y}
then :
enableval=$enable_TT560; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TT560 /**/" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Ultralink M320 WWVB receiver" >&5
printf %s "checking Ultralink M320 WWVB receiver... " >&6; }
# Check whether --enable-ULINK was given.
if test ${enable_ULINK+y}
then :
enableval=$enable_ULINK; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ULINK 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Spectracom TSYNC PCI timing board" >&5
printf %s "checking Spectracom TSYNC PCI timing board... " >&6; }
# Check whether --enable-TSYNCPCI was given.
if test ${enable_TSYNCPCI+y}
then :
enableval=$enable_TSYNCPCI; ntp_ok=$enableval
else $as_nop
case "$host" in
*-*-*linux*)
ntp_ok=$ntp_eac
;;
*)
ntp_ok=no
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TSYNCPCI 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking WWV receiver" >&5
printf %s "checking WWV receiver... " >&6; }
# Check whether --enable-WWV was given.
if test ${enable_WWV+y}
then :
enableval=$enable_WWV; ntp_ok=$enableval
else $as_nop
case "$ntp_eac$ntp_canaudio" in
*no*) ntp_ok=no ;;
*) ntp_ok=yes ;;
esac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_WWV 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canaudio" in
yesno) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** But the expected answer is... no ***" >&5
printf "%s\n" "$as_me: WARNING: *** But the expected answer is... no ***" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Zyfer receiver" >&5
printf %s "checking for Zyfer receiver... " >&6; }
# Check whether --enable-ZYFER was given.
if test ${enable_ZYFER+y}
then :
enableval=$enable_ZYFER; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eac
fi
case "$ntp_ok" in
yes)
ntp_refclock=yes
printf "%s\n" "#define CLOCK_ZYFER 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for default inclusion of all suitable PARSE clocks" >&5
printf %s "checking for default inclusion of all suitable PARSE clocks... " >&6; }
# Check whether --enable-parse-clocks was given.
if test ${enable_parse_clocks+y}
then :
enableval=$enable_parse_clocks; ntp_eapc=$enableval
else $as_nop
case "$ntp_eac" in
yes) ntp_eapc=$ntp_canparse ;;
*) ntp_eapc=no ;;
esac
# Delete the next line one of these days
ntp_eapc=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_eapc" >&5
printf "%s\n" "$ntp_eapc" >&6; }
case "$ntp_eac$ntp_eapc$ntp_canparse" in
noyes*)
as_fn_error $? "\"--enable-parse-clocks\" requires \"--enable-all-clocks\"." "$LINENO" 5
;;
yesyesno)
as_fn_error $? "You said \"--enable-parse-clocks\" but PARSE isn't supported on this platform!" "$LINENO" 5
;;
esac
ntp_libparse=no
ntp_parseutil=no
ntp_rawdcf=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Diem Computime Radio Clock" >&5
printf %s "checking Diem Computime Radio Clock... " >&6; }
# Check whether --enable-COMPUTIME was given.
if test ${enable_COMPUTIME+y}
then :
enableval=$enable_COMPUTIME; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_COMPUTIME 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking ELV/DCF7000 clock" >&5
printf %s "checking ELV/DCF7000 clock... " >&6; }
# Check whether --enable-DCF7000 was given.
if test ${enable_DCF7000+y}
then :
enableval=$enable_DCF7000; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_DCF7000 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking HOPF 6021 clock" >&5
printf %s "checking HOPF 6021 clock... " >&6; }
# Check whether --enable-HOPF6021 was given.
if test ${enable_HOPF6021+y}
then :
enableval=$enable_HOPF6021; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_HOPF6021 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Meinberg clocks" >&5
printf %s "checking Meinberg clocks... " >&6; }
# Check whether --enable-MEINBERG was given.
if test ${enable_MEINBERG+y}
then :
enableval=$enable_MEINBERG; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_MEINBERG 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking DCF77 raw time code" >&5
printf %s "checking DCF77 raw time code... " >&6; }
# Check whether --enable-RAWDCF was given.
if test ${enable_RAWDCF+y}
then :
enableval=$enable_RAWDCF; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_parseutil=yes
ntp_refclock=yes
ntp_rawdcf=yes
printf "%s\n" "#define CLOCK_RAWDCF 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
case "$ntp_rawdcf" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we must enable parity for RAWDCF" >&5
printf %s "checking if we must enable parity for RAWDCF... " >&6; }
if test ${ntp_cv_rawdcf_parity+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=no
case "$host" in
*-*-*linux*)
ans=yes
;;
esac
ntp_cv_rawdcf_parity=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_rawdcf_parity" >&5
printf "%s\n" "$ntp_cv_rawdcf_parity" >&6; }
case "$ntp_cv_rawdcf_parity" in
yes)
printf "%s\n" "#define RAWDCF_NO_IGNPAR 1" >>confdefs.h
;;
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking RCC 8000 clock" >&5
printf %s "checking RCC 8000 clock... " >&6; }
# Check whether --enable-RCC8000 was given.
if test ${enable_RCC8000+y}
then :
enableval=$enable_RCC8000; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_RCC8000 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Schmid DCF77 clock" >&5
printf %s "checking Schmid DCF77 clock... " >&6; }
# Check whether --enable-SCHMID was given.
if test ${enable_SCHMID+y}
then :
enableval=$enable_SCHMID; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_SCHMID 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Trimble GPS receiver/TAIP protocol" >&5
printf %s "checking Trimble GPS receiver/TAIP protocol... " >&6; }
# Check whether --enable-TRIMTAIP was given.
if test ${enable_TRIMTAIP+y}
then :
enableval=$enable_TRIMTAIP; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TRIMTAIP 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Trimble GPS receiver/TSIP protocol" >&5
printf %s "checking Trimble GPS receiver/TSIP protocol... " >&6; }
# Check whether --enable-TRIMTSIP was given.
if test ${enable_TRIMTSIP+y}
then :
enableval=$enable_TRIMTSIP; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_TRIMTSIP 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking WHARTON 400A Series clock" >&5
printf %s "checking WHARTON 400A Series clock... " >&6; }
# Check whether --enable-WHARTON was given.
if test ${enable_WHARTON+y}
then :
enableval=$enable_WHARTON; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_WHARTON_400A 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking VARITEXT clock" >&5
printf %s "checking VARITEXT clock... " >&6; }
# Check whether --enable-VARITEXT was given.
if test ${enable_VARITEXT+y}
then :
enableval=$enable_VARITEXT; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
case "$ntp_ok" in
yes)
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_VARITEXT 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking SEL240X clock" >&5
printf %s "checking SEL240X clock... " >&6; }
# Check whether --enable-SEL240X was given.
if test ${enable_SEL240X+y}
then :
enableval=$enable_SEL240X; ntp_ok=$enableval
else $as_nop
ntp_ok=$ntp_eapc
fi
if test "$ntp_ok" = "yes"; then
ntp_libparse=yes
ntp_refclock=yes
printf "%s\n" "#define CLOCK_SEL240X 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
case "$ntp_ok$ntp_canparse" in
yesno)
as_fn_error $? "That's a parse clock and this system doesn't support it!" "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to make and use the parse libraries" >&5
printf %s "checking if we need to make and use the parse libraries... " >&6; }
ans=no
case "$ntp_libparse" in
yes)
ans=yes
printf "%s\n" "#define CLOCK_PARSE 1" >>confdefs.h
LIBPARSE=../libparse/libparse.a
MAKE_LIBPARSE=libparse.a
# HMS: check_y2k trips the 34 year problem now...
false && MAKE_CHECK_Y2K=check_y2k
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
VER_SUFFIX=
# Check whether --with-crypto was given.
if test ${with_crypto+y}
then :
withval=$with_crypto;
fi
# Check whether --with-openssl-libdir was given.
if test ${with_openssl_libdir+y}
then :
withval=$with_openssl_libdir;
fi
# Check whether --with-openssl-incdir was given.
if test ${with_openssl_incdir+y}
then :
withval=$with_openssl_incdir;
fi
# Check whether --with-rpath was given.
if test ${with_rpath+y}
then :
withval=$with_rpath;
fi
ntp_openssl=no
ntp_openssl_from_pkg_config=no
with_crypto=${with_crypto:-openssl,libcrypto}
case "$with_crypto" in
yes)
with_crypto=openssl,libcrypto
esac
case "$with_crypto:${PKG_CONFIG:+notempty}:${with_openssl_libdir-notgiven}:${with_openssl_incdir-notgiven}" in
no:*) ;;
*:notempty:notgiven:notgiven)
for pkg in `echo $with_crypto | sed -e 's/,/ /'`; do
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config for $pkg" >&5
printf %s "checking pkg-config for $pkg... " >&6; }
if $PKG_CONFIG --exists $pkg ; then
CPPFLAGS_NTP="$CPPFLAGS_NTP `$PKG_CONFIG --cflags-only-I $pkg`"
CFLAGS_NTP="$CFLAGS_NTP `$PKG_CONFIG --cflags-only-other $pkg`"
LDADD_NTP="$LDADD_NTP `$PKG_CONFIG --libs-only-L $pkg`"
LDADD_NTP="$LDADD_NTP `$PKG_CONFIG --libs-only-l --static $pkg`"
LDFLAGS_NTP="$LDFLAGS_NTP `$PKG_CONFIG --libs-only-other $pkg`"
VER_SUFFIX=o
ntp_openssl=yes
ntp_openssl_from_pkg_config=yes
ntp_openssl_version="`$PKG_CONFIG --modversion $pkg`"
case "$ntp_openssl_version" in
*.*) ;;
*) ntp_openssl_version='(unknown)' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, version $ntp_openssl_version" >&5
printf "%s\n" "yes, version $ntp_openssl_version" >&6; }
break
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
done
esac
case "$with_crypto:$ntp_openssl" in
no:*) ;;
*:no)
need_dash_r=
need_dash_Wlrpath=
case "${with_rpath-notgiven}" in
yes)
# Lame - what to do if we need -Wl... but not -R?
need_dash_r=1
;;
notgiven)
case "$host" in
*-*-linux*)
# This may really only be true for gcc
need_dash_Wlrpath=1
;;
*-*-netbsd*)
need_dash_r=1
;;
*-*-solaris*)
need_dash_r=1
;;
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl library directory" >&5
printf %s "checking for openssl library directory... " >&6; }
with_openssl_libdir=${with_openssl_libdir-notgiven}
case "$with_openssl_libdir" in
notgiven)
case "$build" in
$host)
with_openssl_libdir=default
;;
*)
with_openssl_libdir=no
;;
esac
esac
case "$with_openssl_libdir" in
default)
# Look in:
with_openssl_libdir="/usr/lib /usr/lib/openssl /usr/sfw/lib"
with_openssl_libdir="$with_openssl_libdir /usr/local/lib"
with_openssl_libdir="$with_openssl_libdir /usr/local/ssl/lib /lib"
esac
case "$with_openssl_libdir" in
no)
;;
*) # Look for libcrypto.a and libssl.a:
for i in $with_openssl_libdir no
do
case "$host" in
*-*-darwin*)
test -f $i/libcrypto.dylib -a -f $i/libssl.dylib && break
;;
*)
test -f $i/libcrypto.so -a -f $i/libssl.so && break
test -f $i/libcrypto.a -a -f $i/libssl.a && break
;;
esac
done
openssl_libdir=$i
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $openssl_libdir" >&5
printf "%s\n" "$openssl_libdir" >&6; }
case "$openssl_libdir" in
no)
openssl_libdir=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcrypto and libssl not found in any of $with_openssl_libdir" >&5
printf "%s\n" "$as_me: WARNING: libcrypto and libssl not found in any of $with_openssl_libdir" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl include directory" >&5
printf %s "checking for openssl include directory... " >&6; }
with_openssl_incdir=${with_openssl_incdir-notgiven}
case "$with_openssl_incdir" in
notgiven)
# Look in:
with_openssl_incdir="/usr/include /usr/sfw/include"
with_openssl_incdir="$with_openssl_incdir /usr/local/include"
with_openssl_incdir="$with_openssl_incdir /usr/local/ssl/include"
esac
case "$with_openssl_incdir" in
no)
;;
*) # look for openssl/evp.h:
for i in $with_openssl_incdir no
do
test -f $i/openssl/evp.h && break
done
openssl_incdir=$i
;;
esac
{ i=; unset i;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $openssl_incdir" >&5
printf "%s\n" "$openssl_incdir" >&6; }
case "$openssl_incdir" in
no)
openssl_incdir=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: did not find openssl/evp.h in any of $with_openssl_incdir" >&5
printf "%s\n" "$as_me: WARNING: did not find openssl/evp.h in any of $with_openssl_incdir" >&2;}
esac
if test -z "$openssl_libdir" -o -z "$openssl_incdir"
then
ntp_openssl=no
else
ntp_openssl=yes
VER_SUFFIX=o
fi
case "$ntp_openssl" in
yes)
# We have OpenSSL inc/lib dirs - use them.
case "$openssl_incdir" in
/usr/include)
;;
*)
CPPFLAGS_NTP="$CPPFLAGS_NTP -I$openssl_incdir"
;;
esac
case "$openssl_libdir" in
/usr/lib)
;;
*)
LDADD_NTP="$LDADD_NTP -L$openssl_libdir"
case "$need_dash_r" in
1)
LDFLAGS_NTP="$LDFLAGS_NTP -R$openssl_libdir"
esac
case "$need_dash_Wlrpath" in
1)
LDFLAGS_NTP="$LDFLAGS_NTP -Wl,-rpath,$openssl_libdir"
esac
;;
esac
LDADD_NTP="$LDADD_NTP -lcrypto"
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we will use crypto" >&5
printf %s "checking if we will use crypto... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_openssl" >&5
printf "%s\n" "$ntp_openssl" >&6; }
case "$ntp_openssl" in
yes)
ac_fn_c_check_header_compile "$LINENO" "openssl/cmac.h" "ac_cv_header_openssl_cmac_h" "$ac_includes_default"
if test "x$ac_cv_header_openssl_cmac_h" = xyes
then :
printf "%s\n" "#define HAVE_OPENSSL_CMAC_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "openssl/hmac.h" "ac_cv_header_openssl_hmac_h" "$ac_includes_default"
if test "x$ac_cv_header_openssl_hmac_h" = xyes
then :
printf "%s\n" "#define HAVE_OPENSSL_HMAC_H 1" >>confdefs.h
fi
printf "%s\n" "#define OPENSSL /**/" >>confdefs.h
case "$VER_SUFFIX" in
*o*) ;;
*) as_fn_error $? "OPENSSL set but no 'o' in VER_SUFFIX!" "$LINENO" 5 ;;
esac
;;
esac
NTPO_SAVED_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $CPPFLAGS_NTP"
NTPO_SAVED_LIBS="$LIBS"
#
# check for linking with -lcrypto failure, and try -lcrypto -lz.
# Helps m68k-atari-mint
#
case "$ntp_openssl:$ntp_openssl_from_pkg_config" in
yes:no)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linking with -lcrypto alone works" >&5
printf %s "checking if linking with -lcrypto alone works... " >&6; }
if test ${ntp_cv_bare_lcrypto+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/err.h"
#include "openssl/evp.h"
int
main (void)
{
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_cv_bare_lcrypto=yes
else $as_nop
ntp_cv_bare_lcrypto=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_bare_lcrypto" >&5
printf "%s\n" "$ntp_cv_bare_lcrypto" >&6; }
case "$ntp_cv_bare_lcrypto" in
no)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP -lz"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linking with -lcrypto -lz works" >&5
printf %s "checking if linking with -lcrypto -lz works... " >&6; }
if test ${ntp_cv_lcrypto_lz+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/err.h"
#include "openssl/evp.h"
int
main (void)
{
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_cv_lcrypto_lz=yes
else $as_nop
ntp_cv_lcrypto_lz=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_lcrypto_lz" >&5
printf "%s\n" "$ntp_cv_lcrypto_lz" >&6; }
case "$ntp_cv_lcrypto_lz" in
yes)
LDADD_NTP="$LDADD_NTP -lz"
esac
esac
esac
#
# Older OpenSSL headers have a number of callback prototypes inside
# other function prototypes which trigger copious warnings with gcc's
# -Wstrict-prototypes, which is included in -Wall.
#
# An example:
#
# int i2d_RSA_NET(const RSA *a, unsigned char **pp,
# int (*cb)(), int sgckey);
# ^^^^^^^^^^^
#
#
#
openssl_triggers_warnings=unknown
NTPO_SAVED_CFLAGS="$CFLAGS"
case "$ntp_openssl:$GCC" in
yes:yes)
CFLAGS="$CFLAGS -Werror"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
/* see if -Werror breaks gcc */
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
gcc_handles_Werror=yes
else $as_nop
gcc_handles_Werror=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
case "$gcc_handles_Werror" in
no)
# if this gcc doesn't do -Werror go ahead and use
# -Wstrict-prototypes.
openssl_triggers_warnings=yes
;;
yes)
CFLAGS="$CFLAGS -Wstrict-prototypes"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/asn1_mac.h"
#include "openssl/bn.h"
#include "openssl/err.h"
#include "openssl/evp.h"
#include "openssl/pem.h"
#include "openssl/rand.h"
#include "openssl/x509v3.h"
int
main (void)
{
/* empty body */
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
openssl_triggers_warnings=no
else $as_nop
openssl_triggers_warnings=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
esac
case "$openssl_triggers_warnings" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Wno-strict-prototypes"
;;
*)
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-prototypes"
esac
;;
no:yes)
# gcc without OpenSSL
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-prototypes"
esac
# Because we don't want -Werror for the EVP_MD_do_all_sorted check
CFLAGS="$NTPO_SAVED_CFLAGS"
case "$ntp_openssl" in
yes)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP"
ac_fn_c_check_func "$LINENO" "EVP_MD_do_all_sorted" "ac_cv_func_EVP_MD_do_all_sorted"
if test "x$ac_cv_func_EVP_MD_do_all_sorted" = xyes
then :
printf "%s\n" "#define HAVE_EVP_MD_DO_ALL_SORTED 1" >>confdefs.h
fi
;;
esac
CPPFLAGS="$NTPO_SAVED_CPPFLAGS"
LIBS="$NTPO_SAVED_LIBS"
{ NTPO_SAVED_CFLAGS=; unset NTPO_SAVED_CFLAGS;}
{ NTPO_SAVED_CPPFLAGS=; unset NTPO_SAVED_CPPFLAGS;}
{ NTPO_SAVED_LIBS=; unset NTPO_SAVED_LIBS;}
{ openssl_triggers_warnings=; unset openssl_triggers_warnings;}
{ ntp_openssl_from_pkg_config=; unset ntp_openssl_from_pkg_config;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to enable CMAC support" >&5
printf %s "checking if we want to enable CMAC support... " >&6; }
case "$ac_cv_header_openssl_cmac_h" in
yes)
printf "%s\n" "#define ENABLE_CMAC 1" >>confdefs.h
ans="yes"
;;
*) ans="no"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to use OpenSSL's crypto random (if available)" >&5
printf %s "checking if we want to use OpenSSL's crypto random (if available)... " >&6; }
# Check whether --enable-openssl-random was given.
if test ${enable_openssl_random+y}
then :
enableval=$enable_openssl_random; ntp_use_openssl_random=$enableval
else $as_nop
ntp_use_openssl_random=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_use_openssl_random" >&5
printf "%s\n" "$ntp_use_openssl_random" >&6; }
# The following might need extra libraries
NTPO_SAVED_LIBS="$LIBS"
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP"
ac_fn_c_check_func "$LINENO" "RAND_bytes" "ac_cv_func_RAND_bytes"
if test "x$ac_cv_func_RAND_bytes" = xyes
then :
printf "%s\n" "#define HAVE_RAND_BYTES 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "RAND_poll" "ac_cv_func_RAND_poll"
if test "x$ac_cv_func_RAND_poll" = xyes
then :
printf "%s\n" "#define HAVE_RAND_POLL 1" >>confdefs.h
fi
LIBS="$NTPO_SAVED_LIBS"
case "$ntp_openssl$ntp_use_openssl_random$ac_cv_func_RAND_bytes$ac_cv_func_RAND_poll" in
yesyesyesyes)
printf "%s\n" "#define USE_OPENSSL_CRYPTO_RAND 1" >>confdefs.h
;;
*) ntp_use_openssl_random=no ;;
esac
# if we are using OpenSSL (--with-crypto), by default Autokey is enabled
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to include NTP Autokey protocol support" >&5
printf %s "checking if we want to include NTP Autokey protocol support... " >&6; }
# Check whether --enable-autokey was given.
if test ${enable_autokey+y}
then :
enableval=$enable_autokey; ntp_autokey=$enableval
else $as_nop
ntp_autokey=$ntp_openssl
fi
case "$ntp_autokey" in
no)
;;
*)
case "$ntp_openssl" in
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Disabling Autokey, --enable-autokey requires --with-crypto." >&5
printf "%s\n" "$as_me: WARNING: Disabling Autokey, --enable-autokey requires --with-crypto." >&2;}
ntp_autokey=no
;;
*)
printf "%s\n" "#define AUTOKEY 1" >>confdefs.h
ntp_autokey=yes
;;
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_autokey" >&5
printf "%s\n" "$ntp_autokey" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to run check-layout" >&5
printf %s "checking if we want to run check-layout... " >&6; }
case "$cross_compiling$PATH_PERL" in
no/*)
MAKE_CHECK_LAYOUT=check-layout
ans=yes
;;
*)
ans=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can make dcf parse utilities" >&5
printf %s "checking if we can make dcf parse utilities... " >&6; }
ans=no
case "$ntp_parseutil" in
yes)
case "$host" in
*-*-sunos4*|*-*-solaris2*|*-*-*linux*|*-*-netbsd*)
ans="dcfd testdcf"
DCFD=dcfd
TESTDCF=testdcf
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can build kernel streams modules for parse" >&5
printf %s "checking if we can build kernel streams modules for parse... " >&6; }
ans=no
case "$ntp_parseutil$ac_cv_header_sys_stropts_h" in
yesyes)
case "$host" in
sparc-*-sunos4*)
case "$ntp_cv_var_kernel_pll" in
yes)
printf "%s\n" "#define PPS_SYNC 1" >>confdefs.h
;;
esac
ans=parsestreams
MAKE_PARSEKMODULE=parsestreams.loadable_module.o
;;
sparc-*-solaris2*)
ans=parsesolaris
MAKE_PARSEKMODULE=parse
ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default"
if test "x$ac_cv_header_strings_h" = xyes
then :
printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h
fi
;;
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need basic refclock support" >&5
printf %s "checking if we need basic refclock support... " >&6; }
case "$ntp_refclock" in
yes)
printf "%s\n" "#define REFCLOCK 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_refclock" >&5
printf "%s\n" "$ntp_refclock" >&6; }
PROPDELAY=propdelay
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want HP-UX adjtimed support" >&5
printf %s "checking if we want HP-UX adjtimed support... " >&6; }
case "$host" in
*-*-hpux[56789]*)
ans=yes
;;
*) ans=no
;;
esac
case "$ans" in
yes)
MAKE_ADJTIMED=adjtimed
printf "%s\n" "#define NEED_HPUX_ADJTIME 1" >>confdefs.h
;;
*) ADJTIMED_DB=
ADJTIMED_DL=
ADJTIMED_DS=
ADJTIMED_MS=
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want QNX adjtime support" >&5
printf %s "checking if we want QNX adjtime support... " >&6; }
case "$host" in
*-*-qnx*)
ans=yes
;;
*) ans=no
;;
esac
case "$ans" in
yes)
printf "%s\n" "#define NEED_QNX_ADJTIME 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can read kmem" >&5
printf %s "checking if we can read kmem... " >&6; }
# the default is to enable it if the system has the capability
case "$ac_cv_func_nlist$ac_cv_func_K_open$ac_cv_func_kvm_open" in
*yes*)
ans=yes
;;
*) ans=no
;;
esac
case "$host" in
*-*-domainos) # Won't be found...
ans=no
;;
*-*-hpux*)
#ans=no
;;
*-*-irix[456]*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-winnt3.5)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
esac
# --enable-kmem / --disable-kmem controls if present
# Check whether --enable-kmem was given.
if test ${enable_kmem+y}
then :
enableval=$enable_kmem; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
can_kmem=yes
;;
*)
can_kmem=no
printf "%s\n" "#define NOKMEM 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if adjtime is accurate" >&5
printf %s "checking if adjtime is accurate... " >&6; }
# target-dependent defaults
case "$host" in
i386-sequent-ptx*)
ans=no
;;
i386-unknown-osf1*)
ans=yes
;;
mips-sgi-irix[456]*)
ans=yes
;;
*-fujitsu-uxp*)
ans=yes
;;
*-ibm-aix[4-9]*)
# XXX only verified thru AIX6.
ans=yes
;;
*-*-*linux*)
ans=yes
;;
*-*-solaris2.[01])
ans=no
;;
*-*-solaris2*)
ans=yes
;;
*-*-unicosmp*)
ans=yes
;;
*) ans=no
;;
esac
# --enable-accurate-adjtime / --disable-accurate-adjtime
# override the default
# Check whether --enable-accurate-adjtime was given.
if test ${enable_accurate_adjtime+y}
then :
enableval=$enable_accurate_adjtime; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define ADJTIME_IS_ACCURATE 1" >>confdefs.h
adjtime_is_accurate=yes
;;
*)
adjtime_is_accurate=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name of 'tick' in the kernel" >&5
printf %s "checking the name of 'tick' in the kernel... " >&6; }
if test ${ntp_cv_nlist_tick+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=_tick
case "$host" in
m68*-hp-hpux*) # HP9000/300?
ans=_old_tick
;;
*-apple-aux[23]*)
ans=tick
;;
*-hp-hpux*)
ans=old_tick
;;
*-ibm-aix[3-9]*)
# XXX only verified thru AIX6.
ans=no
;;
*-*-mpeix*)
ans=no
;;
*-*-ptx*)
ans=tick
;;
*-*-sco3.2v[45]*)
ans=no
;;
*-*-solaris2*)
ans=nsec_per_tick
;;
*-*-sysv4*)
ans=tick
;;
esac
ntp_cv_nlist_tick=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_nlist_tick" >&5
printf "%s\n" "$ntp_cv_nlist_tick" >&6; }
case "$ntp_cv_nlist_tick" in
''|no)
;; # HMS: I think we can only get 'no' here...
*)
printf "%s\n" "#define K_TICK_NAME \"$ntp_cv_nlist_tick\"" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the units of 'tick'" >&5
printf %s "checking for the units of 'tick'... " >&6; }
if test ${ntp_cv_tick_nano+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=usec
case "$host" in
*-*-solaris2*)
ans=nsec
;;
esac
ntp_cv_tick_nano=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_tick_nano" >&5
printf "%s\n" "$ntp_cv_tick_nano" >&6; }
case "$ntp_cv_tick_nano" in
nsec)
printf "%s\n" "#define TICK_NANO 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name of 'tickadj' in the kernel" >&5
printf %s "checking the name of 'tickadj' in the kernel... " >&6; }
if test ${ntp_cv_nlist_tickadj+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=_tickadj
case "$host" in
m68*-hp-hpux*) # HP9000/300?
ans=_tickadj
;;
*-apple-aux[23]*)
ans=tickadj
;;
*-hp-hpux10*)
ans=no
;;
*-hp-hpux9*)
ans=no
;;
*-hp-hpux*)
ans=tickadj
;;
*-*-aix*)
ans=tickadj
;;
*-*-mpeix*)
ans=no
;;
*-*-ptx*)
ans=tickadj
;;
*-*-sco3.2v4*)
ans=no
;;
*-*-sco3.2v5.0*)
ans=clock_drift
;;
*-*-solaris2*)
ans=no # hrestime_adj
;;
*-*-sysv4*)
ans=tickadj
;;
esac
ntp_cv_nlist_tickadj=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_nlist_tickadj" >&5
printf "%s\n" "$ntp_cv_nlist_tickadj" >&6; }
case "$ntp_cv_nlist_tickadj" in
''|no)
;; # HMS: I think we can only get 'no' here...
*)
printf "%s\n" "#define K_TICKADJ_NAME \"$ntp_cv_nlist_tickadj\"" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the units of 'tickadj'" >&5
printf %s "checking for the units of 'tickadj'... " >&6; }
if test ${ntp_cv_tickadj_nano+y}
then :
printf %s "(cached) " >&6
else $as_nop
ans=usec
case "$host" in
*-*-solaris2*)
ans=nsec
;;
esac
ntp_cv_tickadj_nano=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_tickadj_nano" >&5
printf "%s\n" "$ntp_cv_tickadj_nano" >&6; }
case "$ntp_cv_tickadj_nano" in
nsec)
printf "%s\n" "#define TICKADJ_NANO 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking half-heartedly for 'dosynctodr' in the kernel" >&5
printf %s "checking half-heartedly for 'dosynctodr' in the kernel... " >&6; }
if test ${ntp_cv_nlist_dosynctodr+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-apple-aux[23]*)
ans=no
;;
*-sni-sysv*)
ans=dosynctodr
;;
*-stratus-vos)
ans=no
;;
*-*-aix*)
ans=dosynctodr
;;
*-*-hpux*)
ans=no
;;
*-*-mpeix*)
ans=no
;;
*-*-nextstep*)
ans=_dosynctodr
;;
*-*-ptx*)
ans=doresettodr
;;
*-*-sco3.2v4*)
ans=no
;;
*-*-sco3.2v5*)
ans=track_rtc
;;
*-*-solaris2*)
ans=dosynctodr
;;
*-*-sysv4*)
ans=doresettodr
;;
*)
ans=_dosynctodr
;;
esac
ntp_cv_nlist_dosynctodr=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_nlist_dosynctodr" >&5
printf "%s\n" "$ntp_cv_nlist_dosynctodr" >&6; }
case "$ntp_cv_nlist_dosynctodr" in
no)
;;
*)
printf "%s\n" "#define K_DOSYNCTODR_NAME \"$ntp_cv_nlist_dosynctodr\"" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking half-heartedly for 'noprintf' in the kernel" >&5
printf %s "checking half-heartedly for 'noprintf' in the kernel... " >&6; }
if test ${ntp_cv_nlist_noprintf+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-apple-aux[23]*)
ans=no
;;
*-sni-sysv*)
ans=noprintf
;;
*-stratus-vos)
ans=no
;;
*-*-aix*)
ans=noprintf
;;
*-*-hpux*)
ans=no
;;
*-*-mpeix*)
ans=no
;;
*-*-ptx*)
ans=noprintf
;;
*-*-nextstep*)
ans=_noprintf
;;
*-*-solaris2*)
ans=noprintf
;;
*-*-sysv4*)
ans=noprintf
;;
*)
ans=_noprintf
;;
esac
ntp_cv_nlist_noprintf=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_nlist_noprintf" >&5
printf "%s\n" "$ntp_cv_nlist_noprintf" >&6; }
case "$ntp_cv_nlist_noprintf" in
no)
;;
*)
printf "%s\n" "#define K_NOPRINTF_NAME \"$ntp_cv_nlist_noprintf\"" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a default value for 'tick'" >&5
printf %s "checking for a default value for 'tick'... " >&6; }
# target-dependent default for tick
case "$host" in
*-*-pc-cygwin*)
as_fn_error $? "tick needs work for cygwin" "$LINENO" 5
;;
*-univel-sysv*)
ans=10000
;;
*-*-irix*)
ans=10000
;;
*-*-*linux*)
ans=txc.tick
;;
*-*-mpeix*)
ans=no
;;
*-*-winnt3.5)
ans='(every / 10)'
;;
*-*-unicosmp*)
ans=10000
;;
*)
ans='1000000L/hz'
;;
esac
# Check whether --enable-tick was given.
if test ${enable_tick+y}
then :
enableval=$enable_tick; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
''|no)
;; # HMS: I think we can only get 'no' here...
*)
printf "%s\n" "#define PRESET_TICK $ans" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a default value for 'tickadj'" >&5
printf %s "checking for a default value for 'tickadj'... " >&6; }
# target-specific default
ans='500/hz'
case "$host" in
*-fujitsu-uxp*)
case "$adjtime_is_accurate" in
yes)
ans='tick/16'
esac
;;
*-univel-sysv*)
ans=80
;;
*-*-aix*)
case "$can_kmem" in
no)
ans=1000
;;
esac
;;
*-*-domainos) # Skippy: won't be found...
case "$can_kmem" in
no)
ans=668
;;
esac
;;
*-*-hpux*)
case "$adjtime_is_accurate" in
yes)
ans='tick/16'
;;
esac
;;
*-*-irix*)
ans=150
;;
*-*-mpeix*)
ans=no
;;
*-*-sco3.2v5.0*)
ans=10000L/hz
;;
*-*-winnt3.5)
ans=50
;;
*-*-unicosmp*)
ans=150
;;
esac
# Check whether --enable-tickadj was given.
if test ${enable_tickadj+y}
then :
enableval=$enable_tickadj; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
default_tickadj=$ans
case "$default_tickadj" in
''|no)
;; # HMS: I think we can only get 'no' here...
*)
printf "%s\n" "#define PRESET_TICKADJ $default_tickadj" >>confdefs.h
;;
esac
# Newer versions of ReliantUNIX round adjtime() values down to
# 1/100s (system tick). Sigh ...
# Unfortunately, there is no easy way to know if particular release
# has this "feature" or any obvious way to test for it.
case "$host" in
mips-sni-sysv4*)
printf "%s\n" "#define RELIANTUNIX_CLOCK 1" >>confdefs.h
esac
case "$host" in
*-*-sco3.2v5*)
printf "%s\n" "#define SCO5_CLOCK 1" >>confdefs.h
esac
ntp_cv_make_tickadj=yes
case "$can_kmem$ac_cv_var_tick$default_tickadj" in
nonono) # Don't read KMEM, no presets. Bogus.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Can't read kmem, no PRESET_TICK or PRESET_TICKADJ. No tickadj." >&5
printf "%s\n" "$as_me: WARNING: Can't read kmem, no PRESET_TICK or PRESET_TICKADJ. No tickadj." >&2;}
ntp_cv_make_tickadj=no
;;
nono*) # Don't read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Can't read kmem but no PRESET_TICK. No tickadj." >&5
printf "%s\n" "$as_me: WARNING: Can't read kmem but no PRESET_TICK. No tickadj." >&2;}
ntp_cv_make_tickadj=no
;;
no*no) # Don't read KMEM, PRESET_TICK but no PRESET_TICKADJ. Bogus.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Can't read kmem but no PRESET_TICKADJ. No tickadj." >&5
printf "%s\n" "$as_me: WARNING: Can't read kmem but no PRESET_TICKADJ. No tickadj." >&2;}
ntp_cv_make_tickadj=no
;;
no*) # Don't read KMEM, PRESET_TICK and PRESET_TICKADJ. Cool.
;;
yesnono) # Read KMEM, no presets. Cool.
;;
yesno*) # Read KMEM, no PRESET_TICK but PRESET_TICKADJ. Bogus.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: PRESET_TICKADJ is defined but not PRESET_TICK. Please report this." >&5
printf "%s\n" "$as_me: WARNING: PRESET_TICKADJ is defined but not PRESET_TICK. Please report this." >&2;}
;;
yes*no) # Read KMEM, PRESET_TICK but no PRESET_TICKADJ. Cool.
;;
yes*) # READ KMEM, PRESET_TICK and PRESET_TICKADJ.
;;
*) # Generally bogus.
as_fn_error $? "This shouldn't happen." "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want and can make the ntptime utility" >&5
printf %s "checking if we want and can make the ntptime utility... " >&6; }
if test ${ac_cv_make_ntptime+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*) case "$ntp_cv_struct_ntptimeval$ntp_cv_var_kernel_pll" in
yesyes)
ans=yes
;;
*)
ans=no
;;
esac
;;
esac
ac_cv_make_ntptime=$ans
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_make_ntptime" >&5
printf "%s\n" "$ac_cv_make_ntptime" >&6; }
case "$ac_cv_make_ntptime" in
yes)
MAKE_NTPTIME=ntptime
;;
*)
NTPTIME_DB=
NTPTIME_DL=
NTPTIME_DS=
NTPTIME_MS=
;;
esac
case "$host" in
mips-sni-sysv4*)
# tickadj is pretty useless on newer versions of ReliantUNIX
# Do not bother
ntp_cv_make_tickadj=no
;;
*-*-irix*)
ntp_cv_make_tickadj=no
;;
*-*-solaris2*)
# DLM says tickadj is a no-no starting with solaris2.5
case "$host" in
*-*-solaris2.1[0-9]*)
ntp_cv_make_tickadj=no
;;
*-*-solaris2.[0-4]*) ;;
*) ntp_cv_make_tickadj=no ;;
esac
;;
*-*-unicosmp*)
ntp_cv_make_tickadj=no
;;
esac
#
# Despite all the above, we always make tickadj. Setting
# ntp_cv_make_tickadj before AC_CACHE_CHECK will cause a false
# report that the configuration variable was cached. It may
# be better to simply remove the hunk above, I did not want
# to remove it if there is hope it will be used again.
#
{ ntp_cv_make_tickadj=; unset ntp_cv_make_tickadj;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want and can make the tickadj utility" >&5
printf %s "checking if we want and can make the tickadj utility... " >&6; }
if test ${ntp_cv_make_tickadj+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_make_tickadj=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_make_tickadj" >&5
printf "%s\n" "$ntp_cv_make_tickadj" >&6; }
case "$ntp_cv_make_tickadj" in
yes)
MAKE_TICKADJ=tickadj
;;
*)
CALC_TICKADJ_DB=
CALC_TICKADJ_DL=
CALC_TICKADJ_DS=
CALC_TICKADJ_MS=
TICKADJ_DB=
TICKADJ_DL=
TICKADJ_DS=
TICKADJ_MS=
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want and can make the timetrim utility" >&5
printf %s "checking if we want and can make the timetrim utility... " >&6; }
if test ${ntp_cv_make_timetrim+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-irix*)
ntp_cv_make_timetrim=yes
;;
*-*-unicosmp*)
ntp_cv_make_timetrim=yes
;;
*)
ntp_cv_make_timetrim=no
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_make_timetrim" >&5
printf "%s\n" "$ntp_cv_make_timetrim" >&6; }
case "$ntp_cv_make_timetrim" in
yes)
MAKE_TIMETRIM=timetrim
;;
*) TIMETRIM_DB=
TIMETRIM_DL=
TIMETRIM_DS=
TIMETRIM_MS=
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to build the NTPD simulator" >&5
printf %s "checking if we want to build the NTPD simulator... " >&6; }
# Check whether --enable-simulator was given.
if test ${enable_simulator+y}
then :
enableval=$enable_simulator; ans=$enableval
else $as_nop
ans=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
MAKE_NTPDSIM=ntpdsim
MAKE_LIBNTPSIM=libntpsim.a
;;
*)
NTPDSIM_DB=
NTPDSIM_DL=
NTPDSIM_DS=
NTPDSIM_MS=
;;
esac
case "$build" in
$host)
;;
*) case "$host" in
*-*-vxworks*)
LDFLAGS="$LDFLAGS -r"
;;
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sntp will be built" >&5
printf %s "checking if sntp will be built... " >&6; }
# Check whether --with-sntp was given.
if test ${with_sntp+y}
then :
withval=$with_sntp;
else $as_nop
with_sntp="${withsntp=yes}"
fi
case "$with_sntp" in
no)
SNTP=
;;
*)
SNTP=sntp
;;
esac
if test -n "$SNTP"; then
BUILD_SNTP_TRUE=
BUILD_SNTP_FALSE='#'
else
BUILD_SNTP_TRUE='#'
BUILD_SNTP_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sntp" >&5
printf "%s\n" "$with_sntp" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to build ntpsnmpd" >&5
printf %s "checking if we want to build ntpsnmpd... " >&6; }
# Check whether --with-ntpsnmpd was given.
if test ${with_ntpsnmpd+y}
then :
withval=$with_ntpsnmpd; ans=$withval
else $as_nop
case "$PATH_NET_SNMP_CONFIG" in
/*) ans=yes ;;
*) ans=no ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
case "$PATH_NET_SNMP_CONFIG" in
/*)
SNMP_LIBS=`$PATH_NET_SNMP_CONFIG --agent-libs`
# Bug 2815. This is a bit of a hack, but it works...
case "$ntp_cv_net_snmp_version" in
5.3*) SNMP_LIBS=`echo $SNMP_LIBS | $SED -e 's/-lnetsnmpagent/-lnetsnmpagent -lnetsnmpmibs/'`
;;
esac
# HMS: we really want to separate CPPFLAGS and CFLAGS
foo=`$PATH_NET_SNMP_CONFIG --cflags`
SNMP_CPPFLAGS=
SNMP_CFLAGS=
for i in $foo; do
case "$i" in
-D*|-U*|-I*)
SNMP_CPPFLAGS="$SNMP_CPPFLAGS $i"
;;
*) SNMP_CFLAGS="$SNMP_CFLAGS $i"
;;
esac
done
save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LIBS=$LIBS
CFLAGS=$SNMP_CFLAGS
CPPFLAGS=$SNMP_CPPFLAGS
ac_fn_c_check_header_compile "$LINENO" "net-snmp/net-snmp-config.h" "ac_cv_header_net_snmp_net_snmp_config_h" "$ac_includes_default"
if test "x$ac_cv_header_net_snmp_net_snmp_config_h" = xyes
then :
MAKE_NTPSNMPD=ntpsnmpd
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: net-snmp-config present but net-snmp headers are not available!" >&5
printf "%s\n" "$as_me: WARNING: net-snmp-config present but net-snmp headers are not available!" >&2;}
fi
# Do this last, as we're messing up LIBS.
# check -lnetsnmp for netsnmp_daemonize
LIBS=`$PATH_NET_SNMP_CONFIG --libs`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for netsnmp_daemonize in -lnetsnmp" >&5
printf %s "checking for netsnmp_daemonize in -lnetsnmp... " >&6; }
if test ${ac_cv_lib_netsnmp_netsnmp_daemonize+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lnetsnmp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char netsnmp_daemonize ();
int
main (void)
{
return netsnmp_daemonize ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_netsnmp_netsnmp_daemonize=yes
else $as_nop
ac_cv_lib_netsnmp_netsnmp_daemonize=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_netsnmp_netsnmp_daemonize" >&5
printf "%s\n" "$ac_cv_lib_netsnmp_netsnmp_daemonize" >&6; }
if test "x$ac_cv_lib_netsnmp_netsnmp_daemonize" = xyes
then :
ans=yes
else $as_nop
ans=no
fi
case "$ans" in
no)
printf "%s\n" "#define NEED_NETSNMP_DAEMONIZE 1" >>confdefs.h
esac
CFLAGS=$save_CFLAGS
{ save_CFLAGS=; unset save_CFLAGS;}
CPPFLAGS=$save_CPPFLAGS
{ save_CPPFLAGS=; unset save_CPPFLAGS;}
LIBS=$save_LIBS
{ save_LIBS=; unset save_LIBS;}
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot build ntpsnmpd - net-snmp-config cannot be found" >&5
printf "%s\n" "$as_me: WARNING: Cannot build ntpsnmpd - net-snmp-config cannot be found" >&2;}
;;
esac
;;
esac
case "$MAKE_NTPSNMPD" in
'')
NTPSNMPD_DB=
NTPSNMPD_DL=
NTPSNMPD_DS=
NTPSNMPD_MS=
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should always slew the time" >&5
printf %s "checking if we should always slew the time... " >&6; }
# target-specific defaults
case "$host" in
*-apple-aux[23]*)
ans=yes
;;
*-*-bsdi[012]*)
ans=no
;;
*-*-bsdi*)
ans=yes
;;
*-*-openvms*) # HMS: won't be found
ans=yes
;;
*) ans=no
;;
esac
# --enable-slew-always / --disable-slew-always overrides default
# Check whether --enable-slew-always was given.
if test ${enable_slew_always+y}
then :
enableval=$enable_slew_always; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define SLEWALWAYS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should step and slew the time" >&5
printf %s "checking if we should step and slew the time... " >&6; }
case "$host" in
*-sni-sysv*)
ans=yes
;;
*-stratus-vos)
ans=no
;;
*-univel-sysv*)
ans=no
;;
*-*-ptx*)
ans=yes
;;
*-*-solaris2.1[0-9]*)
ans=no
;;
*-*-solaris2.[012]*)
ans=yes
;;
*-*-sysv4*) # HMS: Does this catch Fujitsu UXP?
ans=yes
;;
*) ans=no
;;
esac
# Check whether --enable-step-slew was given.
if test ${enable_step_slew+y}
then :
enableval=$enable_step_slew; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define STEP_SLEW 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ntpdate should step the time" >&5
printf %s "checking if ntpdate should step the time... " >&6; }
case "$host" in
*-apple-aux[23]*)
ans=yes
;;
*) ans=no
;;
esac
# Check whether --enable-ntpdate-step was given.
if test ${enable_ntpdate_step+y}
then :
enableval=$enable_ntpdate_step; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define FORCE_NTPDATE_STEP 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should sync TODR clock every hour" >&5
printf %s "checking if we should sync TODR clock every hour... " >&6; }
case "$host" in
*-*-nextstep*)
ans=yes
;;
*-*-openvms*) # HMS: won't be found
ans=yes
;;
*)
ans=no
;;
esac
# Check whether --enable-hourly-todr-sync was given.
if test ${enable_hourly_todr_sync+y}
then :
enableval=$enable_hourly_todr_sync; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ac_cv_var_sync_todr" in
yes)
printf "%s\n" "#define DOSYNCTODR 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should avoid kernel FLL bug" >&5
printf %s "checking if we should avoid kernel FLL bug... " >&6; }
case "$host" in
*-*-solaris2.6)
unamev=`uname -v`
case "$unamev" in
Generic_105181-*)
old_IFS="$IFS"
IFS="-"
set $unamev
IFS="$old_IFS"
if test "$2" -ge 17
then
# Generic_105181-17 and higher
ans=no
else
ans=yes
fi
;;
*)
ans=yes
;;
esac
;;
*-*-solaris2.7)
unamev=`uname -v`
case "$unamev" in
Generic_106541-*)
old_IFS="$IFS"
IFS="-"
set $unamev
IFS="$old_IFS"
if test "$2" -ge 07
then
# Generic_106541-07 and higher
ans=no
else
ans=yes
fi
;;
*)
ans=yes
;;
esac
;;
*)
ans=no
;;
esac
# Check whether --enable-kernel-fll-bug was given.
if test ${enable_kernel_fll_bug+y}
then :
enableval=$enable_kernel_fll_bug; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define KERNEL_FLL_BUG 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want new session key behavior" >&5
printf %s "checking if we want new session key behavior... " >&6; }
# Check whether --enable-bug1243-fix was given.
if test ${enable_bug1243_fix+y}
then :
enableval=$enable_bug1243_fix; ans=$enableval
else $as_nop
ans=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
no)
printf "%s\n" "#define DISABLE_BUG1243_FIX 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want the explicit 127.0.0.0/8 martian filter" >&5
printf %s "checking if we want the explicit 127.0.0.0/8 martian filter... " >&6; }
# Check whether --enable-bug3020-fix was given.
if test ${enable_bug3020_fix+y}
then :
enableval=$enable_bug3020_fix; ans=$enableval
else $as_nop
ans=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define ENABLE_BUG3020_FIX 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want correct mode7 fudgetime2 behavior" >&5
printf %s "checking if we want correct mode7 fudgetime2 behavior... " >&6; }
# Check whether --enable-bug3527-fix was given.
if test ${enable_bug3527_fix+y}
then :
enableval=$enable_bug3527_fix; ans=$enableval
else $as_nop
ans=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
no)
printf "%s\n" "#define DISABLE_BUG3527_FIX 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want a debug assert on an OOB KoD RATE value" >&5
printf %s "checking if we want a debug assert on an OOB KoD RATE value... " >&6; }
# Check whether --enable-bug3767-fix was given.
if test ${enable_bug3767_fix+y}
then :
enableval=$enable_bug3767_fix; ans=$enableval
else $as_nop
ans=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
no)
printf "%s\n" "#define DISABLE_BUG3767_FIX 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should use the IRIG sawtooth filter" >&5
printf %s "checking if we should use the IRIG sawtooth filter... " >&6; }
case "$host" in
*-*-solaris2.[89])
ans=yes
;;
*-*-solaris2.1[0-9]*)
ans=yes
;;
*) ans=no
;;
esac
# Check whether --enable-irig-sawtooth was given.
if test ${enable_irig_sawtooth+y}
then :
enableval=$enable_irig_sawtooth; ans=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define IRIG_SUCKS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should enable NIST lockclock scheme" >&5
printf %s "checking if we should enable NIST lockclock scheme... " >&6; }
# Check whether --enable-nist was given.
if test ${enable_nist+y}
then :
enableval=$enable_nist; ans=$enableval
else $as_nop
ans=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define LOCKCLOCK 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want support for Samba's signing daemon" >&5
printf %s "checking if we want support for Samba's signing daemon... " >&6; }
# Check whether --enable-ntp-signd was given.
if test ${enable_ntp_signd+y}
then :
enableval=$enable_ntp_signd; ans=$enableval
else $as_nop
ans=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
no)
ntp_signd_path=
;;
yes)
ntp_signd_path=/var/run/ntp_signd
;;
*)
ntp_signd_path="$ans"
esac
case "$ntp_signd_path" in
'')
;;
*)
printf "%s\n" "#define HAVE_NTP_SIGND 1" >>confdefs.h
printf "%s\n" "#define NTP_SIGND_PATH \"$ntp_signd_path\"" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want 'magic' PPS support" >&5
printf %s "checking if we want 'magic' PPS support... " >&6; }
# Check whether --enable-magicpps was given.
if test ${enable_magicpps+y}
then :
enableval=$enable_magicpps; ans=$enableval
else $as_nop
ans=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ans" in
yes)
printf "%s\n" "#define ENABLE_MAGICPPS 1" >>confdefs.h
ac_fn_c_check_func "$LINENO" "openat" "ac_cv_func_openat"
if test "x$ac_cv_func_openat" = xyes
then :
printf "%s\n" "#define HAVE_OPENAT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fdopendir" "ac_cv_func_fdopendir"
if test "x$ac_cv_func_fdopendir" = xyes
then :
printf "%s\n" "#define HAVE_FDOPENDIR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fstatat" "ac_cv_func_fstatat"
if test "x$ac_cv_func_fstatat" = xyes
then :
printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "libscf.h" "ac_cv_header_libscf_h" "$ac_includes_default"
if test "x$ac_cv_header_libscf_h" = xyes
then :
printf "%s\n" "#define HAVE_LIBSCF_H 1" >>confdefs.h
fi
LSCF=
case "$ac_cv_header_libscf_h" in
yes)
LSCF='-lscf'
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_storage" >&5
printf %s "checking for struct sockaddr_storage... " >&6; }
if test ${ntp_cv_sockaddr_storage+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct sockaddr_storage n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_sockaddr_storage=yes
else $as_nop
ntp_cv_sockaddr_storage=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_sockaddr_storage" >&5
printf "%s\n" "$ntp_cv_sockaddr_storage" >&6; }
case "$ntp_cv_sockaddr_storage" in
yes)
printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage.__ss_family" >&5
printf %s "checking for sockaddr_storage.__ss_family... " >&6; }
if test ${ntp_cv_have___ss_family+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct sockaddr_storage s;
s.__ss_family = 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_have___ss_family=yes
else $as_nop
ntp_cv_have___ss_family=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_have___ss_family" >&5
printf "%s\n" "$ntp_cv_have___ss_family" >&6; }
case "$ntp_cv_have___ss_family" in
yes)
printf "%s\n" "#define HAVE___SS_FAMILY_IN_SS 1" >>confdefs.h
esac
esac
#
# Look for in_port_t.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in_port_t" >&5
printf %s "checking for in_port_t... " >&6; }
if test ${isc_cv_have_in_port_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <netinet/in.h>
int
main (void)
{
in_port_t port = 25;
return (0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_in_port_t=yes
else $as_nop
isc_cv_have_in_port_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_in_port_t" >&5
printf "%s\n" "$isc_cv_have_in_port_t" >&6; }
case "$isc_cv_have_in_port_t" in
no)
printf "%s\n" "#define ISC_PLATFORM_NEEDPORTT 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking type of socklen arg for getsockname()" >&5
printf %s "checking type of socklen arg for getsockname()... " >&6; }
if test ${ntp_cv_getsockname_socklen_type+y}
then :
printf %s "(cached) " >&6
else $as_nop
getsockname_socklen_type_found=no
for getsockname_arg2 in 'struct sockaddr *' 'void *'; do
for ntp_cv_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
int
main (void)
{
extern
getsockname(int, $getsockname_arg2,
$ntp_cv_getsockname_socklen_type *);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
getsockname_socklen_type_found=yes ; break 2
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
done
case "$getsockname_socklen_type_found" in
no)
ntp_cv_getsockname_socklen_type='socklen_t'
esac
{ getsockname_arg2=; unset getsockname_arg2;}
{ getsockname_socklen_type_found=; unset getsockname_socklen_type_found;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_getsockname_socklen_type" >&5
printf "%s\n" "$ntp_cv_getsockname_socklen_type" >&6; }
printf "%s\n" "#define GETSOCKNAME_SOCKLEN_TYPE $ntp_cv_getsockname_socklen_type" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking struct sockaddr for sa_len" >&5
printf %s "checking struct sockaddr for sa_len... " >&6; }
if test ${isc_cv_platform_havesalen+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
int
main (void)
{
extern struct sockaddr *ps;
return ps->sa_len;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_platform_havesalen=yes
else $as_nop
isc_cv_platform_havesalen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_platform_havesalen" >&5
printf "%s\n" "$isc_cv_platform_havesalen" >&6; }
case "$isc_cv_platform_havesalen" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVESALEN 1" >>confdefs.h
esac
# Check whether --enable-ipv6 was given.
if test ${enable_ipv6+y}
then :
enableval=$enable_ipv6;
fi
case "$enable_ipv6" in
yes|''|autodetect)
case "$host" in
powerpc-ibm-aix4*)
;;
*)
printf "%s\n" "#define WANT_IPV6 1" >>confdefs.h
;;
esac
;;
no)
;;
esac
case "$host" in
*-*-darwin*)
printf "%s\n" "#define __APPLE_USE_RFC_3542 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 structures" >&5
printf %s "checking for IPv6 structures... " >&6; }
if test ${isc_cv_found_ipv6+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
main (void)
{
struct sockaddr_in6 sin6;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_found_ipv6=yes
else $as_nop
isc_cv_found_ipv6=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_found_ipv6" >&5
printf "%s\n" "$isc_cv_found_ipv6" >&6; }
#
# See whether IPv6 support is provided via a Kame add-on.
# This is done before other IPv6 linking tests so LIBS is properly set.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Kame IPv6 support" >&5
printf %s "checking for Kame IPv6 support... " >&6; }
# Check whether --with-kame was given.
if test ${with_kame+y}
then :
withval=$with_kame; use_kame="$withval"
else $as_nop
use_kame="no"
fi
case "$use_kame" in
no)
;;
yes)
kame_path=/usr/local/v6
;;
*)
kame_path="$use_kame"
;;
esac
case "$use_kame" in
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*)
if test -f $kame_path/lib/libinet6.a; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $kame_path/lib/libinet6.a" >&5
printf "%s\n" "$kame_path/lib/libinet6.a" >&6; }
LIBS="-L$kame_path/lib -linet6 $LIBS"
else
as_fn_error $? "$kame_path/lib/libinet6.a not found.
Please choose the proper path with the following command:
configure --with-kame=PATH
" "$LINENO" 5
fi
;;
esac
#
# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
# Including it on Kame-using platforms is very bad, though, because
# Kame uses #error against direct inclusion. So include it on only
# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
# This is done before the in6_pktinfo check because that's what
# netinet6/in6.h is needed for.
#
case "$host" in
*-bsdi4.[01]*)
printf "%s\n" "#define ISC_PLATFORM_NEEDNETINET6IN6H 1" >>confdefs.h
isc_netinet6in6_hack="#include <netinet6/in6.h>"
;;
*)
isc_netinet6in6_hack=""
;;
esac
#
# This is similar to the netinet6/in6.h issue.
#
case "$host" in
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
printf "%s\n" "#define ISC_PLATFORM_FIXIN6ISADDR 1" >>confdefs.h
isc_netinetin6_hack="#include <netinet/in6.h>"
;;
*)
isc_netinetin6_hack=""
;;
esac
case "$isc_cv_found_ipv6" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIPV6 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in6_pktinfo" >&5
printf %s "checking for in6_pktinfo... " >&6; }
if test ${isc_cv_have_in6_pktinfo+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
struct in6_pktinfo xyzzy;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_in6_pktinfo=yes
else $as_nop
isc_cv_have_in6_pktinfo=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_in6_pktinfo" >&5
printf "%s\n" "$isc_cv_have_in6_pktinfo" >&6; }
case "$isc_cv_have_in6_pktinfo" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIN6PKTINFO 1" >>confdefs.h
esac
# HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_in6.sin6_scope_id" >&5
printf %s "checking for sockaddr_in6.sin6_scope_id... " >&6; }
if test ${isc_cv_have_sin6_scope_id+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
struct sockaddr_in6 xyzzy;
xyzzy.sin6_scope_id = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_sin6_scope_id=yes
else $as_nop
isc_cv_have_sin6_scope_id=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_sin6_scope_id" >&5
printf "%s\n" "$isc_cv_have_sin6_scope_id" >&6; }
case "$isc_cv_have_sin6_scope_id" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVESCOPEID 1" >>confdefs.h
esac
esac
# We need this check run even without isc_cv_found_ipv6=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in6addr_any" >&5
printf %s "checking for in6addr_any... " >&6; }
if test ${isc_cv_in6addr_any_links+y}
then :
printf %s "(cached) " >&6
else $as_nop
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
printf("%x", in6addr_any.s6_addr[15]);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
isc_cv_in6addr_any_links=yes
else $as_nop
isc_cv_in6addr_any_links=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_in6addr_any_links" >&5
printf "%s\n" "$isc_cv_in6addr_any_links" >&6; }
case "$isc_cv_in6addr_any_links" in
no)
printf "%s\n" "#define ISC_PLATFORM_NEEDIN6ADDRANY 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct if_laddrconf" >&5
printf %s "checking for struct if_laddrconf... " >&6; }
if test ${isc_cv_struct_if_laddrconf+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <net/if6.h>
int
main (void)
{
struct if_laddrconf a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_struct_if_laddrconf=yes
else $as_nop
isc_cv_struct_if_laddrconf=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_struct_if_laddrconf" >&5
printf "%s\n" "$isc_cv_struct_if_laddrconf" >&6; }
case "$isc_cv_struct_if_laddrconf" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIF_LADDRCONF 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct if_laddrreq" >&5
printf %s "checking for struct if_laddrreq... " >&6; }
if test ${isc_cv_struct_if_laddrreq+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <net/if6.h>
int
main (void)
{
struct if_laddrreq a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_struct_if_laddrreq=yes
else $as_nop
isc_cv_struct_if_laddrreq=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_struct_if_laddrreq" >&5
printf "%s\n" "$isc_cv_struct_if_laddrreq" >&6; }
case "$isc_cv_struct_if_laddrreq" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIF_LADDRREQ 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for multicast IP support" >&5
printf %s "checking for multicast IP support... " >&6; }
if test ${ntp_cv_multicast+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_multicast=no
case "$host" in
i386-sequent-sysv4)
;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct ip_mreq ipmr;
ipmr.imr_interface.s_addr = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_multicast=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_multicast" >&5
printf "%s\n" "$ntp_cv_multicast" >&6; }
case "$ntp_cv_multicast" in
yes)
printf "%s\n" "#define MCAST 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking arg type needed for setsockopt() IP*_MULTICAST_LOOP" >&5
printf %s "checking arg type needed for setsockopt() IP*_MULTICAST_LOOP... " >&6; }
if test ${ntp_cv_typeof_ip_multicast_loop+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-netbsd*|*-*-*linux*)
ntp_cv_typeof_ip_multicast_loop=u_int
;;
*)
ntp_cv_typeof_ip_multicast_loop=u_char
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_typeof_ip_multicast_loop" >&5
printf "%s\n" "$ntp_cv_typeof_ip_multicast_loop" >&6; }
printf "%s\n" "#define TYPEOF_IP_MULTICAST_LOOP $ntp_cv_typeof_ip_multicast_loop" >>confdefs.h
esac
# Check whether --enable-getifaddrs was given.
if test ${enable_getifaddrs+y}
then :
enableval=$enable_getifaddrs; want_getifaddrs="$enableval"
else $as_nop
want_getifaddrs="yes"
fi
case $want_getifaddrs in
glibc)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-getifaddrs=glibc is no longer required" >&5
printf "%s\n" "$as_me: WARNING: --enable-getifaddrs=glibc is no longer required" >&2;}
esac
case $want_getifaddrs in
no)
;;
*)
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
ac_fn_c_check_func "$LINENO" "getifaddrs" "ac_cv_func_getifaddrs"
if test "x$ac_cv_func_getifaddrs" = xyes
then :
printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
fi
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
;;
esac
#
# Check for if_nametoindex() for IPv6 scoped addresses support
#
case "$host" in
*-hp-hpux*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing if_nametoindex" >&5
printf %s "checking for library containing if_nametoindex... " >&6; }
if test ${ac_cv_search_if_nametoindex+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char if_nametoindex ();
int
main (void)
{
return if_nametoindex ();
;
return 0;
}
_ACEOF
for ac_lib in '' ipv6
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_if_nametoindex=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_if_nametoindex+y}
then :
break
fi
done
if test ${ac_cv_search_if_nametoindex+y}
then :
else $as_nop
ac_cv_search_if_nametoindex=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_if_nametoindex" >&5
printf "%s\n" "$ac_cv_search_if_nametoindex" >&6; }
ac_res=$ac_cv_search_if_nametoindex
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
esac
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
if test "x$ac_cv_func_if_nametoindex" = xyes
then :
printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
fi
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
case "$ac_cv_func_if_nametoindex" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1" >>confdefs.h
esac
#
# Look for a sysctl call to get the list of network interfaces.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for interface list sysctl" >&5
printf %s "checking for interface list sysctl... " >&6; }
if test ${ntp_cv_iflist_sysctl+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/param.h>
#include <sys/sysctl.h>
#include <sys/socket.h>
#ifndef NET_RT_IFLIST
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_iflist_sysctl=yes
else $as_nop
ntp_cv_iflist_sysctl=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_iflist_sysctl" >&5
printf "%s\n" "$ntp_cv_iflist_sysctl" >&6; }
case "$ntp_cv_iflist_sysctl" in
yes)
printf "%s\n" "#define HAVE_IFLIST_SYSCTL 1" >>confdefs.h
esac
###
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want the saveconfig mechanism" >&5
printf %s "checking if we want the saveconfig mechanism... " >&6; }
# Check whether --enable-saveconfig was given.
if test ${enable_saveconfig+y}
then :
enableval=$enable_saveconfig; ntp_ok=$enableval
else $as_nop
ntp_ok=yes
fi
ntp_saveconfig_enabled=0
case "$ntp_ok" in
yes)
ntp_saveconfig_enabled=1
printf "%s\n" "#define SAVECONFIG 1" >>confdefs.h
;;
esac
if test x$ntp_saveconfig_enabled = x1; then
SAVECONFIG_ENABLED_TRUE=
SAVECONFIG_ENABLED_FALSE='#'
else
SAVECONFIG_ENABLED_TRUE='#'
SAVECONFIG_ENABLED_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
###
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want the experimental leap smear code" >&5
printf %s "checking if we want the experimental leap smear code... " >&6; }
# Check whether --enable-leap-smear was given.
if test ${enable_leap_smear+y}
then :
enableval=$enable_leap_smear; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
ntp_leap_smear_enabled=0
case "$ntp_ok" in
yes)
ntp_leap_smear_enabled=1
printf "%s\n" "#define LEAP_SMEAR 1" >>confdefs.h
HAVE_LEAPSMEARINTERVAL="leapsmearinterval 0"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
###
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want dynamic interleave support" >&5
printf %s "checking if we want dynamic interleave support... " >&6; }
# Check whether --enable-dynamic-interleave was given.
if test ${enable_dynamic_interleave+y}
then :
enableval=$enable_dynamic_interleave; ntp_ok=$enableval
else $as_nop
ntp_ok=no
fi
ntp_dynamic_interleave=0
case "$ntp_ok" in
yes)
ntp_dynamic_interleave=1
;;
esac
printf "%s\n" "#define DYNAMIC_INTERLEAVE $ntp_dynamic_interleave" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# We may not need have_unity
have_unity=false
# Extract the first word of "ruby", so it can be a program name with args.
set dummy ruby; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PATH_RUBY+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PATH_RUBY in
[\\/]* | ?:[\\/]*)
ac_cv_path_PATH_RUBY="$PATH_RUBY" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PATH_RUBY="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PATH_RUBY=$ac_cv_path_PATH_RUBY
if test -n "$PATH_RUBY"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_RUBY" >&5
printf "%s\n" "$PATH_RUBY" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
case "$PATH_RUBY" in
/*)
have_unity=true
;;
*) PATH_RUBY="false"
;;
esac
# We may not need UNITYBUILD_AVAILABLE
if $have_unity; then
UNITYBUILD_AVAILABLE_TRUE=
UNITYBUILD_AVAILABLE_FALSE='#'
else
UNITYBUILD_AVAILABLE_TRUE='#'
UNITYBUILD_AVAILABLE_FALSE=
fi
case "$build" in
$host) cross=0 ;;
*) cross=1 ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to enable tests with undiagnosed problems" >&5
printf %s "checking if we want to enable tests with undiagnosed problems... " >&6; }
# Check whether --enable-problem-tests was given.
if test ${enable_problem_tests+y}
then :
enableval=$enable_problem_tests; ntp_ept=$enableval
else $as_nop
ntp_ept=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ept" >&5
printf "%s\n" "$ntp_ept" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can run test-ntp_restrict" >&5
printf %s "checking if we can run test-ntp_restrict... " >&6; }
ntp_test_ntp_restrict="no"
case "$ntp_ept:$cross:$host" in
no:0:*-*-freebsd6.4) ;;
no:0:*-*-hpux11.23*) ;;
no:0:*-*-solaris*) ;;
*) ntp_test_ntp_restrict="yes" ;;
esac
case "$ntp_cv_gc_sections_runs" in
no) ntp_test_ntp_restrict="no" ;;
* ) ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_test_ntp_restrict" >&5
printf "%s\n" "$ntp_test_ntp_restrict" >&6; }
if test x$ntp_test_ntp_restrict = xyes; then
BUILD_TEST_NTP_RESTRICT_TRUE=
BUILD_TEST_NTP_RESTRICT_FALSE='#'
else
BUILD_TEST_NTP_RESTRICT_TRUE='#'
BUILD_TEST_NTP_RESTRICT_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can run test-ntp_scanner" >&5
printf %s "checking if we can run test-ntp_scanner... " >&6; }
ntp_test_ntp_scanner="no"
case "$ntp_ept:$cross:$host" in
no:0:*-*-freebsd6.4) ;;
no:0:*-*-solaris*) ;;
*) ntp_test_ntp_scanner="yes" ;;
esac
case "$ntp_cv_gc_sections_runs" in
no) ntp_test_ntp_scanner="no" ;;
* ) ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_test_ntp_scanner" >&5
printf "%s\n" "$ntp_test_ntp_scanner" >&6; }
if test x$ntp_test_ntp_scanner = xyes; then
BUILD_TEST_NTP_SCANNER_TRUE=
BUILD_TEST_NTP_SCANNER_FALSE='#'
else
BUILD_TEST_NTP_SCANNER_TRUE='#'
BUILD_TEST_NTP_SCANNER_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can run test-ntp_signd" >&5
printf %s "checking if we can run test-ntp_signd... " >&6; }
ntp_test_ntp_signd="no"
case "$ntp_ept:$cross:$host" in
no:0:*-*-freebsd6.4) ;;
no:0:*-*-solaris*) ;;
*) ntp_test_ntp_signd="yes" ;;
esac
case "$ntp_cv_gc_sections_runs" in
no) ntp_test_ntp_signd="no" ;;
* ) ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_test_ntp_signd" >&5
printf "%s\n" "$ntp_test_ntp_signd" >&6; }
if test x$ntp_test_ntp_signd = xyes; then
BUILD_TEST_NTP_SIGND_TRUE=
BUILD_TEST_NTP_SIGND_FALSE='#'
else
BUILD_TEST_NTP_SIGND_TRUE='#'
BUILD_TEST_NTP_SIGND_FALSE=
fi
###
ac_fn_check_decl "$LINENO" "sigsetjmp" "ac_cv_have_decl_sigsetjmp" "#include <setjmp.h>
" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_sigsetjmp" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SIGSETJMP $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "siglongjmp" "ac_cv_have_decl_siglongjmp" "#include <setjmp.h>
" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_siglongjmp" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_SIGLONGJMP $ac_have_decl" >>confdefs.h
###
prefix_NONE=
exec_prefix_NONE=
test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
eval ac_define_dir="\"$sysconfdir\""
eval ac_define_dir="\"$ac_define_dir\""
NTP_KEYSDIR="$ac_define_dir"
printf "%s\n" "#define NTP_KEYSDIR \"$ac_define_dir\"" >>confdefs.h
test "$prefix_NONE" && prefix=NONE
test "$exec_prefix_NONE" && exec_prefix=NONE
ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files adjtimed/Makefile"
ac_config_files="$ac_config_files clockstuff/Makefile"
ac_config_files="$ac_config_files include/Makefile"
ac_config_files="$ac_config_files include/isc/Makefile"
ac_config_files="$ac_config_files kernel/Makefile"
ac_config_files="$ac_config_files kernel/sys/Makefile"
ac_config_files="$ac_config_files libntp/Makefile"
ac_config_files="$ac_config_files libparse/Makefile"
ac_config_files="$ac_config_files ntpd/Makefile"
ac_config_files="$ac_config_files ntpd/complete.conf"
ac_config_files="$ac_config_files ntpdate/Makefile"
ac_config_files="$ac_config_files ntpdc/Makefile"
ac_config_files="$ac_config_files ntpdc/nl.pl"
ac_config_files="$ac_config_files ntpq/Makefile"
ac_config_files="$ac_config_files ntpsnmpd/Makefile"
ac_config_files="$ac_config_files parseutil/Makefile"
ac_config_files="$ac_config_files scripts/Makefile"
ac_config_files="$ac_config_files scripts/build/Makefile"
ac_config_files="$ac_config_files scripts/build/genAuthors"
ac_config_files="$ac_config_files scripts/build/mkver"
ac_config_files="$ac_config_files scripts/calc_tickadj/Makefile"
ac_config_files="$ac_config_files scripts/calc_tickadj/calc_tickadj"
ac_config_files="$ac_config_files scripts/lib/Makefile"
ac_config_files="$ac_config_files scripts/ntp-wait/Makefile"
ac_config_files="$ac_config_files scripts/ntp-wait/ntp-wait"
ac_config_files="$ac_config_files scripts/ntpsweep/Makefile"
ac_config_files="$ac_config_files scripts/ntpsweep/ntpsweep"
ac_config_files="$ac_config_files scripts/ntptrace/Makefile"
ac_config_files="$ac_config_files scripts/ntptrace/ntptrace"
ac_config_files="$ac_config_files scripts/ntpver"
ac_config_files="$ac_config_files scripts/plot_summary"
ac_config_files="$ac_config_files scripts/summary"
ac_config_files="$ac_config_files scripts/update-leap/Makefile"
ac_config_files="$ac_config_files scripts/update-leap/update-leap"
ac_config_files="$ac_config_files tests/Makefile"
ac_config_files="$ac_config_files tests/bug-2803/Makefile"
ac_config_files="$ac_config_files tests/libntp/Makefile"
ac_config_files="$ac_config_files tests/ntpd/Makefile"
ac_config_files="$ac_config_files tests/ntpq/Makefile"
ac_config_files="$ac_config_files tests/sandbox/Makefile"
ac_config_files="$ac_config_files tests/sec-2853/Makefile"
ac_config_files="$ac_config_files util/Makefile"
perllibdir="${datadir}/ntp/lib"
prefix_NONE=
exec_prefix_NONE=
test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix
test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix
eval ac_define_dir="\"$perllibdir\""
eval ac_define_dir="\"$ac_define_dir\""
PERLLIBDIR="$ac_define_dir"
printf "%s\n" "#define PERLLIBDIR \"$ac_define_dir\"" >>confdefs.h
test "$prefix_NONE" && prefix=NONE
test "$exec_prefix_NONE" && exec_prefix=NONE
calc_tickadj_opts="$srcdir/scripts/calc_tickadj/calc_tickadj-opts"
ntp_wait_opts="$srcdir/scripts/ntp-wait/ntp-wait-opts"
ntpsweep_opts="$srcdir/scripts/ntpsweep/ntpsweep-opts"
ntptrace_opts="$srcdir/scripts/ntptrace/ntptrace-opts"
summary_opts="$srcdir/scripts/summary-opts"
plot_summary_opts="$srcdir/scripts/plot_summary-opts"
subdirs="$subdirs sntp"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
printf %s "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
printf "%s\n" "done" >&6; }
if test -n "$EXEEXT"; then
am__EXEEXT_TRUE=
am__EXEEXT_FALSE='#'
else
am__EXEEXT_TRUE='#'
am__EXEEXT_FALSE=
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${VPATH_HACK_TRUE}" && test -z "${VPATH_HACK_FALSE}"; then
as_fn_error $? "conditional \"VPATH_HACK\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WANT_CALC_TICKADJ_MS_TRUE}" && test -z "${WANT_CALC_TICKADJ_MS_FALSE}"; then
as_fn_error $? "conditional \"WANT_CALC_TICKADJ_MS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_NTPSWEEP_TRUE}" && test -z "${INSTALL_NTPSWEEP_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_NTPSWEEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_UPDATE_LEAP_TRUE}" && test -z "${INSTALL_UPDATE_LEAP_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_UPDATE_LEAP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${GL_GENERATE_STDNORETURN_H_TRUE}" && test -z "${GL_GENERATE_STDNORETURN_H_FALSE}"; then
as_fn_error $? "conditional \"GL_GENERATE_STDNORETURN_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_LIBOPTS_TRUE}" && test -z "${INSTALL_LIBOPTS_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_LIBOPTS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${NEED_LIBOPTS_TRUE}" && test -z "${NEED_LIBOPTS_FALSE}"; then
as_fn_error $? "conditional \"NEED_LIBOPTS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_LIBEVENT_TRUE}" && test -z "${BUILD_LIBEVENT_FALSE}"; then
as_fn_error $? "conditional \"BUILD_LIBEVENT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${NTP_CROSSCOMPILE_TRUE}" && test -z "${NTP_CROSSCOMPILE_FALSE}"; then
as_fn_error $? "conditional \"NTP_CROSSCOMPILE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${PTHREADS_TRUE}" && test -z "${PTHREADS_FALSE}"; then
as_fn_error $? "conditional \"PTHREADS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_SNTP_TRUE}" && test -z "${BUILD_SNTP_FALSE}"; then
as_fn_error $? "conditional \"BUILD_SNTP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${SAVECONFIG_ENABLED_TRUE}" && test -z "${SAVECONFIG_ENABLED_FALSE}"; then
as_fn_error $? "conditional \"SAVECONFIG_ENABLED\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${UNITYBUILD_AVAILABLE_TRUE}" && test -z "${UNITYBUILD_AVAILABLE_FALSE}"; then
as_fn_error $? "conditional \"UNITYBUILD_AVAILABLE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_TEST_NTP_RESTRICT_TRUE}" && test -z "${BUILD_TEST_NTP_RESTRICT_FALSE}"; then
as_fn_error $? "conditional \"BUILD_TEST_NTP_RESTRICT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_TEST_NTP_SCANNER_TRUE}" && test -z "${BUILD_TEST_NTP_SCANNER_FALSE}"; then
as_fn_error $? "conditional \"BUILD_TEST_NTP_SCANNER\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_TEST_NTP_SIGND_TRUE}" && test -z "${BUILD_TEST_NTP_SIGND_FALSE}"; then
as_fn_error $? "conditional \"BUILD_TEST_NTP_SIGND\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ntp $as_me 4.2.8p16, which was
+This file was extended by ntp $as_me 4.2.8p17, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_commands="$ac_config_commands"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
Configuration files:
$config_files
Configuration headers:
$config_headers
Configuration commands:
$config_commands
Report bugs to <https://bugs.ntp.org/>.
ntp home page: <https://www.ntp.org/>."
_ACEOF
ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-ntp config.status 4.2.8p16
+ntp config.status 4.2.8p17
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
printf "%s\n" "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
sed_quote_subst='$sed_quote_subst'
double_quote_subst='$double_quote_subst'
delay_variable_subst='$delay_variable_subst'
enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
LTCC='$LTCC'
LTCFLAGS='$LTCFLAGS'
compiler='$compiler_DEFAULT'
# A function that is used when there is no print builtin or printf.
func_fallback_echo ()
{
eval 'cat <<_LTECHO_EOF
\$1
_LTECHO_EOF'
}
# Quote evaled strings.
for var in SHELL \
ECHO \
PATH_SEPARATOR \
SED \
GREP \
EGREP \
FGREP \
LD \
NM \
LN_S \
lt_SP2NL \
lt_NL2SP \
reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
file_magic_glob \
want_nocaseglob \
DLLTOOL \
sharedlib_from_linklib_cmd \
AR \
AR_FLAGS \
archiver_list_spec \
STRIP \
RANLIB \
CC \
CFLAGS \
compiler \
lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_import \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
lt_cv_nm_interface \
nm_file_list_spec \
lt_cv_truncate_bin \
lt_prog_compiler_no_builtin_flag \
lt_prog_compiler_pic \
lt_prog_compiler_wl \
lt_prog_compiler_static \
lt_cv_prog_compiler_c_o \
need_locks \
MANIFEST_TOOL \
DSYMUTIL \
NMEDIT \
LIPO \
OTOOL \
OTOOL64 \
shrext_cmds \
export_dynamic_flag_spec \
whole_archive_flag_spec \
compiler_needs_object \
with_gnu_ld \
allow_undefined_flag \
no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_separator \
exclude_expsyms \
include_expsyms \
file_list_spec \
variables_saved_for_relink \
libname_spec \
library_names_spec \
soname_spec \
install_override_mode \
finish_eval \
old_striplib \
striplib; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
;;
*)
eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
;;
esac
done
# Double-quote double-evaled strings.
for var in reload_cmds \
old_postinstall_cmds \
old_postuninstall_cmds \
old_archive_cmds \
extract_expsyms_cmds \
old_archive_from_new_cmds \
old_archive_from_expsyms_cmds \
archive_cmds \
archive_expsym_cmds \
module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
postlink_cmds \
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
sys_lib_search_path_spec \
configure_time_dlsearch_path \
configure_time_lt_sys_library_path; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
;;
*)
eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
;;
esac
done
ac_aux_dir='$ac_aux_dir'
# See if we are running on zsh, and set the options that allow our
# commands through without removal of \ escapes INIT.
if test -n "\${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
PACKAGE='$PACKAGE'
VERSION='$VERSION'
RM='$RM'
ofile='$ofile'
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"adjtimed/Makefile") CONFIG_FILES="$CONFIG_FILES adjtimed/Makefile" ;;
"clockstuff/Makefile") CONFIG_FILES="$CONFIG_FILES clockstuff/Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
"include/isc/Makefile") CONFIG_FILES="$CONFIG_FILES include/isc/Makefile" ;;
"kernel/Makefile") CONFIG_FILES="$CONFIG_FILES kernel/Makefile" ;;
"kernel/sys/Makefile") CONFIG_FILES="$CONFIG_FILES kernel/sys/Makefile" ;;
"libntp/Makefile") CONFIG_FILES="$CONFIG_FILES libntp/Makefile" ;;
"libparse/Makefile") CONFIG_FILES="$CONFIG_FILES libparse/Makefile" ;;
"ntpd/Makefile") CONFIG_FILES="$CONFIG_FILES ntpd/Makefile" ;;
"ntpd/complete.conf") CONFIG_FILES="$CONFIG_FILES ntpd/complete.conf" ;;
"ntpdate/Makefile") CONFIG_FILES="$CONFIG_FILES ntpdate/Makefile" ;;
"ntpdc/Makefile") CONFIG_FILES="$CONFIG_FILES ntpdc/Makefile" ;;
"ntpdc/nl.pl") CONFIG_FILES="$CONFIG_FILES ntpdc/nl.pl" ;;
"ntpq/Makefile") CONFIG_FILES="$CONFIG_FILES ntpq/Makefile" ;;
"ntpsnmpd/Makefile") CONFIG_FILES="$CONFIG_FILES ntpsnmpd/Makefile" ;;
"parseutil/Makefile") CONFIG_FILES="$CONFIG_FILES parseutil/Makefile" ;;
"scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
"scripts/build/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/build/Makefile" ;;
"scripts/build/genAuthors") CONFIG_FILES="$CONFIG_FILES scripts/build/genAuthors" ;;
"scripts/build/mkver") CONFIG_FILES="$CONFIG_FILES scripts/build/mkver" ;;
"scripts/calc_tickadj/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/Makefile" ;;
"scripts/calc_tickadj/calc_tickadj") CONFIG_FILES="$CONFIG_FILES scripts/calc_tickadj/calc_tickadj" ;;
"scripts/lib/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/lib/Makefile" ;;
"scripts/ntp-wait/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntp-wait/Makefile" ;;
"scripts/ntp-wait/ntp-wait") CONFIG_FILES="$CONFIG_FILES scripts/ntp-wait/ntp-wait" ;;
"scripts/ntpsweep/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntpsweep/Makefile" ;;
"scripts/ntpsweep/ntpsweep") CONFIG_FILES="$CONFIG_FILES scripts/ntpsweep/ntpsweep" ;;
"scripts/ntptrace/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/ntptrace/Makefile" ;;
"scripts/ntptrace/ntptrace") CONFIG_FILES="$CONFIG_FILES scripts/ntptrace/ntptrace" ;;
"scripts/ntpver") CONFIG_FILES="$CONFIG_FILES scripts/ntpver" ;;
"scripts/plot_summary") CONFIG_FILES="$CONFIG_FILES scripts/plot_summary" ;;
"scripts/summary") CONFIG_FILES="$CONFIG_FILES scripts/summary" ;;
"scripts/update-leap/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/update-leap/Makefile" ;;
"scripts/update-leap/update-leap") CONFIG_FILES="$CONFIG_FILES scripts/update-leap/update-leap" ;;
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tests/bug-2803/Makefile") CONFIG_FILES="$CONFIG_FILES tests/bug-2803/Makefile" ;;
"tests/libntp/Makefile") CONFIG_FILES="$CONFIG_FILES tests/libntp/Makefile" ;;
"tests/ntpd/Makefile") CONFIG_FILES="$CONFIG_FILES tests/ntpd/Makefile" ;;
"tests/ntpq/Makefile") CONFIG_FILES="$CONFIG_FILES tests/ntpq/Makefile" ;;
"tests/sandbox/Makefile") CONFIG_FILES="$CONFIG_FILES tests/sandbox/Makefile" ;;
"tests/sec-2853/Makefile") CONFIG_FILES="$CONFIG_FILES tests/sec-2853/Makefile" ;;
"util/Makefile") CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
if $AWK 'BEGIN { getline <"/dev/null" }' </dev/null 2>/dev/null; then
ac_cs_awk_getline=:
ac_cs_awk_pipe_init=
ac_cs_awk_read_file='
while ((getline aline < (F[key])) > 0)
print(aline)
close(F[key])'
ac_cs_awk_pipe_fini=
else
ac_cs_awk_getline=false
ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
ac_cs_awk_read_file='
print "|#_!!_#|"
print "cat " F[key] " &&"
'$ac_cs_awk_pipe_init
# The final `:' finishes the AND list.
ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
fi
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
# Create commands to substitute file output variables.
{
echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
echo 'cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&' &&
echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
echo "_ACAWK" &&
echo "_ACEOF"
} >conf$$files.sh &&
. ./conf$$files.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
rm -f conf$$files.sh
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' <conf$$subs.awk | sed '
/^[^""]/{
N
s/\n//
}
' >>$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
\$ac_cs_awk_pipe_init
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
if (nfields == 3 && !substed) {
key = field[2]
if (F[key] != "" && line ~ /^[ ]*@.*@[ ]*$/) {
\$ac_cs_awk_read_file
next
}
}
print line
}
\$ac_cs_awk_pipe_fini
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_tt"; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' <confdefs.h | sed '
s/'"$ac_delim"'/"\\\
"/g' >>$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
ac_MKDIR_P=$MKDIR_P
case $MKDIR_P in
[\\/$]* | ?:[\\/]* ) ;;
*/*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
if $ac_cs_awk_getline; then
$AWK -f "$ac_tmp/subs.awk"
else
$AWK -f "$ac_tmp/subs.awk" | $SHELL
fi \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
# CONFIG_HEADER
#
if test x"$ac_file" != x-; then
{
printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$_am_arg" : 'X\(//\)[^/]' \| \
X"$_am_arg" : 'X\(//\)$' \| \
X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`/stamp-h$_am_stamp_count
;;
:C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
case $ac_file$ac_mode in
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
# TODO: see whether this extra hack can be removed once we start
# requiring Autoconf 2.70 or later.
case $CONFIG_FILES in #(
*\'*) :
eval set x "$CONFIG_FILES" ;; #(
*) :
set x $CONFIG_FILES ;; #(
*) :
;;
esac
shift
# Used to flag and report bootstrapping failures.
am_rc=0
for am_mf
do
# Strip MF so we end up with the name of the file.
am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile which includes
# dependency-tracking related rules and includes.
# Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|| continue
am_dirpart=`$as_dirname -- "$am_mf" ||
$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$am_mf" : 'X\(//\)[^/]' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
am_filepart=`$as_basename -- "$am_mf" ||
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$am_mf" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
{ echo "$as_me:$LINENO: cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles" >&5
(cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } || am_rc=$?
done
if test $am_rc -ne 0; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE=\"gmake\" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
fi
{ am_dirpart=; unset am_dirpart;}
{ am_filepart=; unset am_filepart;}
{ am_mf=; unset am_mf;}
{ am_rc=; unset am_rc;}
rm -f conftest-deps.mk
}
;;
"libtool":C)
# See if we are running on zsh, and set the options that allow our
# commands through without removal of \ escapes.
if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
cfgfile=${ofile}T
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
$RM "$cfgfile"
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit, 1996
# Copyright (C) 2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# GNU Libtool is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of of the License, or
# (at your option) any later version.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program or library that is built
# using GNU Libtool, you may include this file under the same
# distribution terms that you use for the rest of that program.
#
# GNU Libtool is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# The names of the tagged configurations supported by this script.
available_tags=''
# Configured defaults for sys_lib_dlsearch_path munging.
: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
# ### BEGIN LIBTOOL CONFIG
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
# Which release of libtool.m4 was used?
macro_version=$macro_version
macro_revision=$macro_revision
# Whether or not to build static libraries.
build_old_libs=$enable_static
# What type of objects to build.
pic_mode=$pic_mode
# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install
# Shared archive member basename,for filename based shared library versioning on AIX.
shared_archive_member_spec=$shared_archive_member_spec
# Shell to use when invoking shell scripts.
SHELL=$lt_SHELL
# An echo program that protects backslashes.
ECHO=$lt_ECHO
# The PATH separator for the build system.
PATH_SEPARATOR=$lt_PATH_SEPARATOR
# The host system.
host_alias=$host_alias
host=$host
host_os=$host_os
# The build system.
build_alias=$build_alias
build=$build
build_os=$build_os
# A sed program that does not truncate output.
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="\$SED -e 1s/^X//"
# A grep program that handles long lines.
GREP=$lt_GREP
# An ERE matcher.
EGREP=$lt_EGREP
# A literal string matcher.
FGREP=$lt_FGREP
# A BSD- or MS-compatible name lister.
NM=$lt_NM
# Whether we need soft or hard links.
LN_S=$lt_LN_S
# What is the maximum length of a command?
max_cmd_len=$max_cmd_len
# Object file suffix (normally "o").
objext=$ac_objext
# Executable file suffix (normally "").
exeext=$exeext
# whether the shell understands "unset".
lt_unset=$lt_unset
# turn spaces into newlines.
SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
# convert \$build file names to \$host format.
to_host_file_cmd=$lt_cv_to_host_file_cmd
# convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
# An object symbol dumper.
OBJDUMP=$lt_OBJDUMP
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
# Command to use when deplibs_check_method = "file_magic".
file_magic_cmd=$lt_file_magic_cmd
# How to find potential files when deplibs_check_method = "file_magic".
file_magic_glob=$lt_file_magic_glob
# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
want_nocaseglob=$lt_want_nocaseglob
# DLL creation program.
DLLTOOL=$lt_DLLTOOL
# Command to associate shared and link libraries.
sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
# The archiver.
AR=$lt_AR
# Flags to create an archive.
AR_FLAGS=$lt_AR_FLAGS
# How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec
# A symbol stripping program.
STRIP=$lt_STRIP
# Commands used to install an old-style archive.
RANLIB=$lt_RANLIB
old_postinstall_cmds=$lt_old_postinstall_cmds
old_postuninstall_cmds=$lt_old_postuninstall_cmds
# Whether to use a lock for old archive extraction.
lock_old_archive_extraction=$lock_old_archive_extraction
# A C compiler.
LTCC=$lt_CC
# LTCC compiler flags.
LTCFLAGS=$lt_CFLAGS
# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
# Transform the output of nm in a proper C declaration.
global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
# Transform the output of nm into a list of symbols to manually relocate.
global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
# Transform the output of nm in a C name address pair.
global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
# The name lister interface.
nm_interface=$lt_lt_cv_nm_interface
# Specify filename containing input files for \$NM.
nm_file_list_spec=$lt_nm_file_list_spec
# The root where to search for dependent libraries,and where our libraries should be installed.
lt_sysroot=$lt_sysroot
# Command to truncate a binary pipe.
lt_truncate_bin=$lt_lt_cv_truncate_bin
# The name of the directory that contains temporary libtool files.
objdir=$objdir
# Used to examine libraries when file_magic_cmd begins with "file".
MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Manifest tool.
MANIFEST_TOOL=$lt_MANIFEST_TOOL
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
# Tool to change global to local symbols on Mac OS X.
NMEDIT=$lt_NMEDIT
# Tool to manipulate fat objects and archives on Mac OS X.
LIPO=$lt_LIPO
# ldd/readelf like tool for Mach-O binaries on Mac OS X.
OTOOL=$lt_OTOOL
# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
OTOOL64=$lt_OTOOL64
# Old archive suffix (normally "a").
libext=$libext
# Shared library suffix (normally ".so").
shrext_cmds=$lt_shrext_cmds
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=$lt_extract_expsyms_cmds
# Variables whose values should be saved in libtool wrapper scripts and
# restored at link time.
variables_saved_for_relink=$lt_variables_saved_for_relink
# Do we need the "lib" prefix for modules?
need_lib_prefix=$need_lib_prefix
# Do we need a version for libraries?
need_version=$need_version
# Library versioning type.
version_type=$version_type
# Shared library runtime path variable.
runpath_var=$runpath_var
# Shared library path variable.
shlibpath_var=$shlibpath_var
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath
# Format of library name prefix.
libname_spec=$lt_libname_spec
# List of archive names. First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME
library_names_spec=$lt_library_names_spec
# The coded name of the library, if different from the real name.
soname_spec=$lt_soname_spec
# Permission mode override for installation of shared libraries.
install_override_mode=$lt_install_override_mode
# Command to use after installation of a shared archive.
postinstall_cmds=$lt_postinstall_cmds
# Command to use after uninstallation of a shared archive.
postuninstall_cmds=$lt_postuninstall_cmds
# Commands used to finish a libtool library installation in a directory.
finish_cmds=$lt_finish_cmds
# As "finish_cmds", except a single script fragment to be evaled but
# not shown.
finish_eval=$lt_finish_eval
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=$hardcode_into_libs
# Compile-time system search path for libraries.
sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Detected run-time system search path for libraries.
sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
# Whether dlopen is supported.
dlopen_support=$enable_dlopen
# Whether dlopen of programs is supported.
dlopen_self=$enable_dlopen_self
# Whether dlopen of statically linked programs is supported.
dlopen_self_static=$enable_dlopen_self_static
# Commands to strip libraries.
old_striplib=$lt_old_striplib
striplib=$lt_striplib
# The linker used to build libraries.
LD=$lt_LD
# How to create reloadable object files.
reload_flag=$lt_reload_flag
reload_cmds=$lt_reload_cmds
# Commands used to build an old-style archive.
old_archive_cmds=$lt_old_archive_cmds
# A language specific compiler.
CC=$lt_compiler
# Is the compiler the GNU compiler?
with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
# Additional compiler flags for building library objects.
pic_flag=$lt_lt_prog_compiler_pic
# How to pass a linker flag through the compiler.
wl=$lt_lt_prog_compiler_wl
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o
# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=$archive_cmds_need_lc
# Whether or not to disallow shared libs when runtime libs are static.
allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
# Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=$lt_whole_archive_flag_spec
# Whether the compiler copes with passing no objects directly.
compiler_needs_object=$lt_compiler_needs_object
# Create an old-style archive from a shared archive.
old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
# Create a temporary old-style archive to link instead of a shared archive.
old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
# Commands used to build a shared archive.
archive_cmds=$lt_archive_cmds
archive_expsym_cmds=$lt_archive_expsym_cmds
# Commands used to build a loadable module if different from building
# a shared archive.
module_cmds=$lt_module_cmds
module_expsym_cmds=$lt_module_expsym_cmds
# Whether we are building with GNU ld or not.
with_gnu_ld=$lt_with_gnu_ld
# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=$lt_allow_undefined_flag
# Flag that enforces no undefined symbols.
no_undefined_flag=$lt_no_undefined_flag
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist
hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
# Whether we need a single "-rpath" flag with a separated argument.
hardcode_libdir_separator=$lt_hardcode_libdir_separator
# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
# DIR into the resulting binary.
hardcode_direct=$hardcode_direct
# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
# DIR into the resulting binary and the resulting library dependency is
# "absolute",i.e impossible to change by setting \$shlibpath_var if the
# library is relocated.
hardcode_direct_absolute=$hardcode_direct_absolute
# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
# into the resulting binary.
hardcode_minus_L=$hardcode_minus_L
# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
# into the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
# Set to "yes" if building a shared library automatically hardcodes DIR
# into the library and all subsequent libraries and executables linked
# against it.
hardcode_automatic=$hardcode_automatic
# Set to yes if linker adds runtime paths of dependent libraries
# to runtime path list.
inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
# The commands to list exported symbols.
export_symbols_cmds=$lt_export_symbols_cmds
# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms=$lt_exclude_expsyms
# Symbols that must always be exported.
include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
# Commands necessary for finishing linking programs.
postlink_cmds=$lt_postlink_cmds
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action
# ### END LIBTOOL CONFIG
_LT_EOF
cat <<'_LT_EOF' >> "$cfgfile"
# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
# func_munge_path_list VARIABLE PATH
# -----------------------------------
# VARIABLE is name of variable containing _space_ separated list of
# directories to be munged by the contents of PATH, which is string
# having a format:
# "DIR[:DIR]:"
# string "DIR[ DIR]" will be prepended to VARIABLE
# ":DIR[:DIR]"
# string "DIR[ DIR]" will be appended to VARIABLE
# "DIRP[:DIRP]::[DIRA:]DIRA"
# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
# "DIRA[ DIRA]" will be appended to VARIABLE
# "DIR[:DIR]"
# VARIABLE will be replaced by "DIR[ DIR]"
func_munge_path_list ()
{
case x$2 in
x)
;;
*:)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
;;
x:*)
eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
;;
*::*)
eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
;;
*)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
;;
esac
}
# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
func_cc_basename ()
{
for cc_temp in $*""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
}
# ### END FUNCTIONS SHARED WITH CONFIGURE
_LT_EOF
case $host_os in
aix3*)
cat <<\_LT_EOF >> "$cfgfile"
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test set != "${COLLECT_NAMES+set}"; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
_LT_EOF
;;
esac
ltmain=$ac_aux_dir/ltmain.sh
# We use sed instead of cat because bash on DJGPP gets confused if
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" ||
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
;;
"ntpd/complete.conf":F) sed -e '/^rlimit$/d' -e '/^$/d' < ntpd/complete.conf > ntpd/complete.conf.new && mv ntpd/complete.conf.new ntpd/complete.conf ;;
"ntpdc/nl.pl":F) chmod +x ntpdc/nl.pl ;;
"scripts/build/genAuthors":F) chmod +x scripts/build/genAuthors ;;
"scripts/build/mkver":F) chmod +x scripts/build/mkver ;;
"scripts/calc_tickadj/calc_tickadj":F) chmod +x scripts/calc_tickadj/calc_tickadj ;;
"scripts/ntp-wait/ntp-wait":F) chmod +x scripts/ntp-wait/ntp-wait ;;
"scripts/ntpsweep/ntpsweep":F) chmod +x scripts/ntpsweep/ntpsweep ;;
"scripts/ntptrace/ntptrace":F) chmod +x scripts/ntptrace/ntptrace ;;
"scripts/ntpver":F) chmod +x scripts/ntpver ;;
"scripts/plot_summary":F) chmod +x scripts/plot_summary ;;
"scripts/summary":F) chmod +x scripts/summary ;;
"scripts/update-leap/update-leap":F) chmod +x scripts/update-leap/update-leap ;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
#
# CONFIG_SUBDIRS section.
#
if test "$no_recursion" != yes; then
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
# so they do not pile up.
ac_sub_configure_args=
ac_prev=
eval "set x $ac_configure_args"
shift
for ac_arg
do
if test -n "$ac_prev"; then
ac_prev=
continue
fi
case $ac_arg in
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
| --c=*)
;;
--config-cache | -C)
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
;;
--disable-option-checking)
;;
*)
case $ac_arg in
*\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
esac
done
# Always prepend --prefix to ensure using the same prefix
# in subdir configurations.
ac_arg="--prefix=$prefix"
case $ac_arg in
*\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
# Pass --silent
if test "$silent" = yes; then
ac_sub_configure_args="--silent $ac_sub_configure_args"
fi
# Always prepend --disable-option-checking to silence warnings, since
# different subdirs can have different --enable and --with options.
ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
ac_popdir=`pwd`
for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
test -d "$srcdir/$ac_dir" || continue
ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
printf "%s\n" "$ac_msg" >&6
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir"
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
ac_sub_configure=$ac_srcdir/configure.gnu
elif test -f "$ac_srcdir/configure"; then
ac_sub_configure=$ac_srcdir/configure
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
ac_sub_configure=
fi
# The recursion is here.
if test -n "$ac_sub_configure"; then
# Make the cache file name correct relative to the subdirectory.
case $cache_file in
[\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
*) # Relative name.
ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
# The eval makes quoting arguments work.
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
fi
cd "$ac_popdir"
done
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
diff --git a/contrib/ntp/include/ntp.h b/contrib/ntp/include/ntp.h
index c037f5986016..258ddd6138f7 100644
--- a/contrib/ntp/include/ntp.h
+++ b/contrib/ntp/include/ntp.h
@@ -1,951 +1,951 @@
/*
* ntp.h - NTP definitions for the masses
*/
#ifndef NTP_H
#define NTP_H
#include <stddef.h>
#include <math.h>
#include <ntp_fp.h>
#include <ntp_types.h>
#include <ntp_lists.h>
#include <ntp_stdlib.h>
#include <ntp_crypto.h>
#include <ntp_random.h>
#include <ntp_net.h>
#include <isc/boolean.h>
/*
* Calendar arithmetic - contributed by G. Healton
*/
#define YEAR_BREAK 500 /* years < this are tm_year values:
* Break < AnyFourDigitYear && Break >
* Anytm_yearYear */
#define YEAR_PIVOT 98 /* 97/98: years < this are year 2000+
* FYI: official UNIX pivot year is
* 68/69 */
/*
* Number of Days since 1 BC Gregorian to 1 January of given year
*/
#define julian0(year) (((year) * 365 ) + ((year) > 0 ? (((year) + 3) \
/ 4 - ((year - 1) / 100) + ((year - 1) / \
400)) : 0))
/*
* Number of days since start of NTP time to 1 January of given year
*/
#define ntp0(year) (julian0(year) - julian0(1900))
/*
* Number of days since start of UNIX time to 1 January of given year
*/
#define unix0(year) (julian0(year) - julian0(1970))
/*
* LEAP YEAR test for full 4-digit years (e.g, 1999, 2010)
*/
#define isleap_4(y) ((y) % 4 == 0 && !((y) % 100 == 0 && !(y % \
400 == 0)))
/*
* LEAP YEAR test for tm_year (struct tm) years (e.g, 99, 110)
*/
#define isleap_tm(y) ((y) % 4 == 0 && !((y) % 100 == 0 && !(((y) \
+ 1900) % 400 == 0)))
/*
* to convert simple two-digit years to tm_year style years:
*
* if (year < YEAR_PIVOT)
* year += 100;
*
* to convert either two-digit OR tm_year years to four-digit years:
*
* if (year < YEAR_PIVOT)
* year += 100;
*
* if (year < YEAR_BREAK)
* year += 1900;
*/
/*
* How to get signed characters. On machines where signed char works,
* use it. On machines where signed char doesn't work, char had better
* be signed.
*/
#ifdef NEED_S_CHAR_TYPEDEF
# if SIZEOF_SIGNED_CHAR
typedef signed char s_char;
# else
typedef char s_char;
# endif
/* XXX: Why is this sequent bit INSIDE this test? */
# ifdef sequent
# undef SO_RCVBUF
# undef SO_SNDBUF
# endif
#endif
/*
* NTP protocol parameters. See section 3.2.6 of the specification.
*/
#define NTP_VERSION ((u_char)4) /* current version number */
#define NTP_OLDVERSION ((u_char)1) /* oldest credible version */
#define NTP_PORT 123 /* included for non-unix machines */
/*
* Poll interval parameters
*/
#define NTP_UNREACH 10 /* poll unreach threshold */
#define NTP_MINPOLL 3 /* log2 min poll interval (8 s) */
#define NTP_MINDPOLL 6 /* log2 default min poll (64 s) */
#define NTP_MAXDPOLL 10 /* log2 default max poll (~17 m) */
#define NTP_MAXPOLL 17 /* log2 max poll interval (~36 h) */
#define NTP_RETRY 3 /* max packet retries */
#define NTP_MINPKT 2 /* guard time (s) */
/*
* Clock filter algorithm tuning parameters
*/
#define MAXDISPERSE 16. /* max dispersion */
#define NTP_SHIFT 8 /* clock filter stages */
#define NTP_FWEIGHT .5 /* clock filter weight */
/*
* Selection algorithm tuning parameters
*/
#define NTP_MINCLOCK 3 /* min survivors */
#define NTP_MAXCLOCK 10 /* max candidates */
#define MINDISPERSE .001 /* min distance */
#define MAXDISTANCE 1.5 /* max root distance (select threshold) */
#define CLOCK_SGATE 3. /* popcorn spike gate */
#define HUFFPUFF 900 /* huff-n'-puff sample interval (s) */
#define MAXHOP 2 /* anti-clockhop threshold */
#define MAX_TTL 8 /* max ttl mapping vector size */
#define BEACON 7200 /* manycast beacon interval */
#define NTP_MAXEXTEN 2048 /* max extension field size */
#define NTP_ORPHWAIT 300 /* orphan wait (s) */
/*
* Miscellaneous stuff
*/
#define NTP_MAXKEY 65535 /* max authentication key number */
-#define KEY_TYPE_MD5 NID_md5 /* MD5 digest NID */
+
/*
* Limits of things
*/
#define MAXFILENAME 256 /* max length of file name */
#define MAXHOSTNAME 512 /* max length of host/node name */
#define NTP_MAXSTRLEN 256 /* max string length */
/*
* Operations for jitter calculations (these use doubles).
*
* Note that we carefully separate the jitter component from the
* dispersion component (frequency error plus precision). The frequency
* error component is computed as CLOCK_PHI times the difference between
* the epoch of the time measurement and the reference time. The
* precision component is computed as the square root of the mean of the
* squares of a zero-mean, uniform distribution of unit maximum
* amplitude. Whether this makes statistical sense may be arguable.
*/
#define SQUARE(x) ((x) * (x))
#define SQRT(x) (sqrt(x))
#define DIFF(x, y) (SQUARE((x) - (y)))
#define LOGTOD(a) ldexp(1., (int)(a)) /* log2 to double */
#define UNIVAR(x) (SQUARE(.28867513 * LOGTOD(x))) /* std uniform distr */
#define ULOGTOD(a) ldexp(1., (int)(a)) /* ulog2 to double */
#define EVENT_TIMEOUT 0 /* one second, that is */
/*
* The interface structure is used to hold the addresses and socket
* numbers of each of the local network addresses we are using.
* Because "interface" is a reserved word in C++ and has so many
* varied meanings, a change to "endpt" (via typedef) is under way.
* Eventually the struct tag will change from interface to endpt_tag.
* endpt is unrelated to the select algorithm's struct endpoint.
*/
typedef struct interface endpt;
struct interface {
endpt * elink; /* endpt list link */
endpt * mclink; /* per-AF_* multicast list */
void * ioreg_ctx; /* IO registration context */
SOCKET fd; /* socket descriptor */
SOCKET bfd; /* for receiving broadcasts */
u_int32 ifnum; /* endpt instance count */
sockaddr_u sin; /* unicast address */
sockaddr_u mask; /* subnet mask */
sockaddr_u bcast; /* broadcast address */
char name[32]; /* name of interface */
u_short family; /* AF_INET/AF_INET6 */
u_short phase; /* phase in update cycle */
u_int32 flags; /* interface flags */
int last_ttl; /* last TTL specified */
u_int32 addr_refid; /* IPv4 addr or IPv6 hash */
int num_mcast; /* mcast addrs enabled */
u_long starttime; /* current_time at creation */
volatile long received; /* number of incoming packets */
long sent; /* number of outgoing packets */
long notsent; /* number of send failures */
u_int ifindex; /* for IPV6_MULTICAST_IF */
isc_boolean_t ignore_packets; /* listen-read-drop this? */
struct peer * peers; /* list of peers using endpt */
u_int peercnt; /* count of same */
};
/*
* Flags for interfaces
*/
#define INT_UP 0x001 /* Interface is up */
#define INT_PPP 0x002 /* Point-to-point interface */
#define INT_LOOPBACK 0x004 /* the loopback interface */
#define INT_BROADCAST 0x008 /* can broadcast out this interface */
#define INT_MULTICAST 0x010 /* can multicast out this interface */
#define INT_BCASTOPEN 0x020 /* broadcast receive socket is open */
#define INT_MCASTOPEN 0x040 /* multicasting enabled */
#define INT_WILDCARD 0x080 /* wildcard interface - usually skipped */
#define INT_MCASTIF 0x100 /* bound directly to MCAST address */
#define INT_PRIVACY 0x200 /* RFC 4941 IPv6 privacy address */
#define INT_BCASTXMIT 0x400 /* socket setup to allow broadcasts */
/*
* Define flasher bits (tests 1 through 11 in packet procedure)
* These reveal the state at the last grumble from the peer and are
* most handy for diagnosing problems, even if not strictly a state
* variable in the spec. These are recorded in the peer structure.
*
* Packet errors
*/
#define TEST1 0X0001 /* duplicate packet */
#define TEST2 0x0002 /* bogus packet */
#define TEST3 0x0004 /* protocol unsynchronized */
#define TEST4 0x0008 /* access denied */
#define TEST5 0x0010 /* bad authentication */
#define TEST6 0x0020 /* bad synch or stratum */
#define TEST7 0x0040 /* bad header */
#define TEST8 0x0080 /* bad autokey */
#define TEST9 0x0100 /* bad crypto */
#define PKT_TEST_MASK (TEST1 | TEST2 | TEST3 | TEST4 | TEST5 |\
TEST6 | TEST7 | TEST8 | TEST9)
/*
* Peer errors
*/
#define TEST10 0x0200 /* peer bad synch or stratum */
#define TEST11 0x0400 /* peer distance exceeded */
#define TEST12 0x0800 /* peer synchronization loop */
#define TEST13 0x1000 /* peer unreacable */
#define PEER_TEST_MASK (TEST10 | TEST11 | TEST12 | TEST13)
/*
* Unused flags
*/
#define TEST14 0x2000
#define TEST15 0x4000
#define TEST16 0x8000
/*
* The peer structure. Holds state information relating to the guys
* we are peering with. Most of this stuff is from section 3.2 of the
* spec.
*/
struct peer {
struct peer *p_link; /* link pointer in free & peer lists */
struct peer *adr_link; /* link pointer in address hash */
struct peer *aid_link; /* link pointer in associd hash */
struct peer *ilink; /* list of peers for interface */
sockaddr_u srcadr; /* address of remote host */
char * hostname; /* if non-NULL, remote name */
struct addrinfo *addrs; /* hostname query result */
struct addrinfo *ai; /* position within addrs */
endpt * dstadr; /* local address */
associd_t associd; /* association ID */
u_char version; /* version number */
u_char hmode; /* local association mode */
u_char hpoll; /* local poll interval */
u_char minpoll; /* min poll interval */
u_char maxpoll; /* max poll interval */
u_int flags; /* association flags */
u_char cast_flags; /* additional flags */
u_char last_event; /* last peer error code */
u_char num_events; /* number of error events */
u_int32 ttl; /* ttl/refclock mode */
char *ident; /* group identifier name */
/*
* Variables used by reference clock support
*/
#ifdef REFCLOCK
struct refclockproc *procptr; /* refclock structure pointer */
u_char refclktype; /* reference clock type */
u_char refclkunit; /* reference clock unit number */
u_char sstclktype; /* clock type for system status word */
#endif /* REFCLOCK */
/*
* Variables set by received packet
*/
u_char leap; /* local leap indicator */
u_char pmode; /* remote association mode */
u_char stratum; /* remote stratum */
u_char ppoll; /* remote poll interval */
s_char precision; /* remote clock precision */
double rootdelay; /* roundtrip delay to primary source */
double rootdisp; /* dispersion to primary source */
u_int32 refid; /* remote reference ID */
l_fp reftime; /* update epoch */
/*
* Variables used by authenticated client
*/
keyid_t keyid; /* current key ID */
#ifdef AUTOKEY
#define clear_to_zero opcode
u_int32 opcode; /* last request opcode */
associd_t assoc; /* peer association ID */
u_int32 crypto; /* peer status word */
EVP_PKEY *pkey; /* public key */
const EVP_MD *digest; /* message digest algorithm */
char *subject; /* certificate subject name */
char *issuer; /* certificate issuer name */
struct cert_info *xinfo; /* issuer certificate */
keyid_t pkeyid; /* previous key ID */
keyid_t hcookie; /* host cookie */
keyid_t pcookie; /* peer cookie */
const struct pkey_info *ident_pkey; /* identity key */
BIGNUM *iffval; /* identity challenge (IFF, GQ, MV) */
const BIGNUM *grpkey; /* identity challenge key (GQ) */
struct value cookval; /* receive cookie values */
struct value recval; /* receive autokey values */
struct exten *cmmd; /* extension pointer */
u_long refresh; /* next refresh epoch */
/*
* Variables used by authenticated server
*/
keyid_t *keylist; /* session key ID list */
int keynumber; /* current key number */
struct value encrypt; /* send encrypt values */
struct value sndval; /* send autokey values */
#else /* !AUTOKEY follows */
#define clear_to_zero status
#endif /* !AUTOKEY */
/*
* Ephemeral state variables
*/
u_char status; /* peer status */
u_char new_status; /* under-construction status */
u_char reach; /* reachability register */
int flash; /* protocol error test tally bits */
u_long epoch; /* reference epoch */
int burst; /* packets remaining in burst */
int retry; /* retry counter */
int flip; /* interleave mode control */
int filter_nextpt; /* index into filter shift register */
double filter_delay[NTP_SHIFT]; /* delay shift register */
double filter_offset[NTP_SHIFT]; /* offset shift register */
double filter_disp[NTP_SHIFT]; /* dispersion shift register */
u_long filter_epoch[NTP_SHIFT]; /* epoch shift register */
u_char filter_order[NTP_SHIFT]; /* filter sort index */
l_fp rec; /* receive time stamp */
l_fp xmt; /* transmit time stamp */
l_fp dst; /* destination timestamp */
l_fp aorg; /* origin timestamp */
l_fp borg; /* alternate origin timestamp */
l_fp bxmt; /* most recent broadcast transmit timestamp */
l_fp nonce; /* Value of nonce we sent as the xmt stamp */
double offset; /* peer clock offset */
double delay; /* peer roundtrip delay */
double jitter; /* peer jitter (squares) */
double disp; /* peer dispersion */
double xleave; /* interleave delay */
double bias; /* programmed offset bias */
/*
* Variables used to correct for packet length and asymmetry.
*/
double t21; /* outbound packet delay */
int t21_bytes; /* outbound packet length */
int t21_last; /* last outbound packet length */
double r21; /* outbound data rate */
double t34; /* inbound packet delay */
int t34_bytes; /* inbound packet length */
double r34; /* inbound data rate */
/*
* End of clear-to-zero area
*/
u_long update; /* receive epoch */
#define end_clear_to_zero update
int unreach; /* watchdog counter */
int throttle; /* rate control */
u_long outdate; /* send time last packet */
u_long nextdate; /* send time next packet */
/*
* Statistic counters
*/
u_long timereset; /* time stat counters were reset */
u_long timelastrec; /* last packet received time, incl. trash */
u_long timereceived; /* last (clean) packet received time */
u_long timereachable; /* last reachable/unreachable time */
u_long sent; /* packets sent */
u_long received; /* packets received */
u_long processed; /* packets processed */
u_long badauth; /* bad authentication (TEST5) */
u_long badNAK; /* invalid crypto-NAK */
u_long bogusorg; /* bogus origin (TEST2, TEST3) */
u_long oldpkt; /* old duplicate (TEST1) */
u_long seldisptoolarge; /* bad header (TEST6, TEST7) */
u_long selbroken; /* KoD received */
};
/*
* Values for peer.leap, sys_leap
*/
#define LEAP_NOWARNING 0x0 /* normal, no leap second warning */
#define LEAP_ADDSECOND 0x1 /* last minute of day has 61 seconds */
#define LEAP_DELSECOND 0x2 /* last minute of day has 59 seconds */
#define LEAP_NOTINSYNC 0x3 /* overload, clock is free running */
/*
* Values for peer mode and packet mode. Only the modes through
* MODE_BROADCAST and MODE_BCLIENT appear in the transition
* function. MODE_CONTROL and MODE_PRIVATE can appear in packets,
* but those never survive to the transition function.
*/
#define MODE_UNSPEC 0 /* unspecified (old version) */
#define MODE_ACTIVE 1 /* symmetric active mode */
#define MODE_PASSIVE 2 /* symmetric passive mode */
#define MODE_CLIENT 3 /* client mode */
#define MODE_SERVER 4 /* server mode */
#define MODE_BROADCAST 5 /* broadcast mode */
/*
* These can appear in packets
*/
#define MODE_CONTROL 6 /* control mode */
#define MODE_PRIVATE 7 /* private mode */
/*
* This is a made-up mode for broadcast client.
*/
#define MODE_BCLIENT 6 /* broadcast client mode */
/*
* Values for peer.stratum, sys_stratum
*/
#define STRATUM_REFCLOCK ((u_char)0) /* default stratum */
/* A stratum of 0 in the packet is mapped to 16 internally */
#define STRATUM_PKT_UNSPEC ((u_char)0) /* unspecified in packet */
#define STRATUM_UNSPEC ((u_char)16) /* unspecified */
/*
* Values for peer.flags (u_int)
*/
#define FLAG_CONFIG 0x0001 /* association was configured */
#define FLAG_PREEMPT 0x0002 /* preemptable association */
#define FLAG_AUTHENTIC 0x0004 /* last message was authentic */
#define FLAG_REFCLOCK 0x0008 /* this is actually a reference clock */
#define FLAG_BC_VOL 0x0010 /* broadcast client volleying */
#define FLAG_PREFER 0x0020 /* prefer peer */
#define FLAG_BURST 0x0040 /* burst mode */
#define FLAG_PPS 0x0080 /* steered by PPS */
#define FLAG_IBURST 0x0100 /* initial burst mode */
#define FLAG_NOSELECT 0x0200 /* never select */
#define FLAG_TRUE 0x0400 /* force truechimer */
#define FLAG_SKEY 0x0800 /* autokey authentication */
#define FLAG_XLEAVE 0x1000 /* interleaved protocol */
#define FLAG_XB 0x2000 /* interleaved broadcast */
#define FLAG_XBOGUS 0x4000 /* interleaved bogus packet */
#ifdef OPENSSL
# define FLAG_ASSOC 0x8000 /* autokey request */
#endif /* OPENSSL */
#define FLAG_TSTAMP_PPS 0x10000 /* PPS source provides absolute timestamp */
#define FLAG_LOOPNONCE 0x20000 /* Use a nonce for the loopback test */
/*
* Definitions for the clear() routine. We use memset() to clear
* the parts of the peer structure which go to zero. These are
* used to calculate the start address and length of the area.
*/
#define CLEAR_TO_ZERO(p) ((char *)&((p)->clear_to_zero))
#define END_CLEAR_TO_ZERO(p) ((char *)&((p)->end_clear_to_zero))
#define LEN_CLEAR_TO_ZERO(p) (END_CLEAR_TO_ZERO(p) - CLEAR_TO_ZERO(p))
#define CRYPTO_TO_ZERO(p) ((char *)&((p)->clear_to_zero))
#define END_CRYPTO_TO_ZERO(p) ((char *)&((p)->end_clear_to_zero))
#define LEN_CRYPTO_TO_ZERO (END_CRYPTO_TO_ZERO((struct peer *)0) \
- CRYPTO_TO_ZERO((struct peer *)0))
/*
* Reference clock types. Added as necessary.
*/
#define REFCLK_NONE 0 /* unknown or missing */
#define REFCLK_LOCALCLOCK 1 /* external (e.g., lockclock) */
#define REFCLK_GPS_TRAK 2 /* TRAK 8810 GPS Receiver */
#define REFCLK_WWV_PST 3 /* PST/Traconex 1020 WWV/H */
#define REFCLK_SPECTRACOM 4 /* Spectracom (generic) Receivers */
#define REFCLK_TRUETIME 5 /* TrueTime (generic) Receivers */
#define REFCLK_IRIG_AUDIO 6 /* IRIG-B/W audio decoder */
#define REFCLK_CHU_AUDIO 7 /* CHU audio demodulator/decoder */
#define REFCLK_PARSE 8 /* generic driver (usually DCF77,GPS,MSF) */
#define REFCLK_GPS_MX4200 9 /* Magnavox MX4200 GPS */
#define REFCLK_GPS_AS2201 10 /* Austron 2201A GPS */
#define REFCLK_GPS_ARBITER 11 /* Arbiter 1088A/B/ GPS */
#define REFCLK_IRIG_TPRO 12 /* KSI/Odetics TPRO-S IRIG */
#define REFCLK_ATOM_LEITCH 13 /* Leitch CSD 5300 Master Clock */
#define REFCLK_MSF_EES 14 /* EES M201 MSF Receiver */
#define REFCLK_GPSTM_TRUE 15 /* OLD TrueTime GPS/TM-TMD Receiver */
#define REFCLK_IRIG_BANCOMM 16 /* Bancomm GPS/IRIG Interface */
#define REFCLK_GPS_DATUM 17 /* Datum Programmable Time System */
#define REFCLK_ACTS 18 /* Generic Auto Computer Time Service */
#define REFCLK_WWV_HEATH 19 /* Heath GC1000 WWV/WWVH Receiver */
#define REFCLK_GPS_NMEA 20 /* NMEA based GPS clock */
#define REFCLK_GPS_VME 21 /* TrueTime GPS-VME Interface */
#define REFCLK_ATOM_PPS 22 /* 1-PPS Clock Discipline */
#define REFCLK_PTB_ACTS 23 /* replaced by REFCLK_ACTS */
#define REFCLK_USNO 24 /* replaced by REFCLK_ACTS */
#define REFCLK_GPS_HP 26 /* HP 58503A Time/Frequency Receiver */
#define REFCLK_ARCRON_MSF 27 /* ARCRON MSF radio clock. */
#define REFCLK_SHM 28 /* clock attached thru shared memory */
#define REFCLK_PALISADE 29 /* Trimble Navigation Palisade GPS */
#define REFCLK_ONCORE 30 /* Motorola UT Oncore GPS */
#define REFCLK_GPS_JUPITER 31 /* Rockwell Jupiter GPS receiver */
#define REFCLK_CHRONOLOG 32 /* Chrono-log K WWVB receiver */
#define REFCLK_DUMBCLOCK 33 /* Dumb localtime clock */
#define REFCLK_ULINK 34 /* Ultralink M320 WWVB receiver */
#define REFCLK_PCF 35 /* Conrad parallel port radio clock */
#define REFCLK_WWV_AUDIO 36 /* WWV/H audio demodulator/decoder */
#define REFCLK_FG 37 /* Forum Graphic GPS */
#define REFCLK_HOPF_SERIAL 38 /* hopf DCF77/GPS serial receiver */
#define REFCLK_HOPF_PCI 39 /* hopf DCF77/GPS PCI receiver */
#define REFCLK_JJY 40 /* JJY receiver */
#define REFCLK_TT560 41 /* TrueTime 560 IRIG-B decoder */
#define REFCLK_ZYFER 42 /* Zyfer GPStarplus receiver */
#define REFCLK_RIPENCC 43 /* RIPE NCC Trimble driver */
#define REFCLK_NEOCLOCK4X 44 /* NeoClock4X DCF77 or TDF receiver */
#define REFCLK_TSYNCPCI 45 /* Spectracom TSYNC PCI timing board */
#define REFCLK_GPSDJSON 46
#define REFCLK_MAX 46
/*
* NTP packet format. The mac field is optional. It isn't really
* an l_fp either, but for now declaring it that way is convenient.
* See Appendix A in the specification.
*
* Note that all u_fp and l_fp values arrive in network byte order
* and must be converted (except the mac, which isn't, really).
*/
struct pkt {
u_char li_vn_mode; /* peer leap indicator */
u_char stratum; /* peer stratum */
u_char ppoll; /* peer poll interval */
s_char precision; /* peer clock precision */
u_fp rootdelay; /* roundtrip delay to primary source */
u_fp rootdisp; /* dispersion to primary source*/
u_int32 refid; /* reference id */
l_fp reftime; /* last update time */
l_fp org; /* originate time stamp */
l_fp rec; /* receive time stamp */
l_fp xmt; /* transmit time stamp */
#define MIN_V4_PKT_LEN (12 * sizeof(u_int32)) /* min header length */
#define LEN_PKT_NOMAC (12 * sizeof(u_int32)) /* min header length */
#define MIN_MAC_LEN (1 * sizeof(u_int32)) /* crypto_NAK */
#define MAX_MD5_LEN (5 * sizeof(u_int32)) /* MD5 */
#define MAX_MAC_LEN (6 * sizeof(u_int32)) /* SHA */
#define KEY_MAC_LEN sizeof(u_int32) /* key ID in MAC */
#define MAX_MDG_LEN (MAX_MAC_LEN-KEY_MAC_LEN) /* max. digest len */
/*
* The length of the packet less MAC must be a multiple of 64
* with an RSA modulus and Diffie-Hellman prime of 256 octets
* and maximum host name of 128 octets, the maximum autokey
* command is 152 octets and maximum autokey response is 460
* octets. A packet can contain no more than one command and one
* response, so the maximum total extension field length is 864
* octets. But, to handle humungus certificates, the bank must
* be broke.
*
* The different definitions of the 'exten' field are here for
* the benefit of applications that want to send a packet from
* an auto variable in the stack - not using the AUTOKEY version
* saves 2KB of stack space. The receive buffer should ALWAYS be
* big enough to hold a full extended packet if the extension
* fields have to be parsed or skipped.
*/
#ifdef AUTOKEY
u_int32 exten[(NTP_MAXEXTEN + MAX_MAC_LEN) / sizeof(u_int32)];
#else /* !AUTOKEY follows */
u_int32 exten[(MAX_MAC_LEN) / sizeof(u_int32)];
#endif /* !AUTOKEY */
};
/*
* Stuff for extracting things from li_vn_mode
*/
#define PKT_MODE(li_vn_mode) ((u_char)((li_vn_mode) & 0x7))
#define PKT_VERSION(li_vn_mode) ((u_char)(((li_vn_mode) >> 3) & 0x7))
#define PKT_LEAP(li_vn_mode) ((u_char)(((li_vn_mode) >> 6) & 0x3))
/*
* Stuff for putting things back into li_vn_mode in packets and vn_mode
* in ntp_monitor.c's mon_entry.
*/
#define VN_MODE(v, m) ((((v) & 7) << 3) | ((m) & 0x7))
#define PKT_LI_VN_MODE(l, v, m) ((((l) & 3) << 6) | VN_MODE((v), (m)))
/*
* Dealing with stratum. 0 gets mapped to 16 incoming, and back to 0
* on output.
*/
#define PKT_TO_STRATUM(s) ((u_char)(((s) == (STRATUM_PKT_UNSPEC)) ?\
(STRATUM_UNSPEC) : (s)))
#define STRATUM_TO_PKT(s) ((u_char)(((s) == (STRATUM_UNSPEC)) ?\
(STRATUM_PKT_UNSPEC) : (s)))
/*
* A test to determine if the refid should be interpreted as text string.
* This is usually the case for a refclock, which has stratum 0 internally,
* which results in sys_stratum 1 if the refclock becomes system peer, or
* in case of a kiss-of-death (KoD) packet that has STRATUM_PKT_UNSPEC (==0)
* in the packet which is converted to STRATUM_UNSPEC when the packet
* is evaluated.
*/
#define REFID_ISTEXT(s) (((s) <= 1) || ((s) >= STRATUM_UNSPEC))
/*
* Event codes. Used for reporting errors/events to the control module
*/
#define PEER_EVENT 0x080 /* this is a peer event */
#define CRPT_EVENT 0x100 /* this is a crypto event */
/*
* System event codes
*/
#define EVNT_UNSPEC 0 /* unspecified */
#define EVNT_NSET 1 /* freq not set */
#define EVNT_FSET 2 /* freq set */
#define EVNT_SPIK 3 /* spike detect */
#define EVNT_FREQ 4 /* freq mode */
#define EVNT_SYNC 5 /* clock sync */
#define EVNT_SYSRESTART 6 /* restart */
#define EVNT_SYSFAULT 7 /* panic stop */
#define EVNT_NOPEER 8 /* no sys peer */
#define EVNT_ARMED 9 /* leap armed */
#define EVNT_DISARMED 10 /* leap disarmed */
#define EVNT_LEAP 11 /* leap event */
#define EVNT_CLOCKRESET 12 /* clock step */
#define EVNT_KERN 13 /* kernel event */
#define EVNT_TAI 14 /* TAI */
#define EVNT_LEAPVAL 15 /* stale leapsecond values */
/*
* Peer event codes
*/
#define PEVNT_MOBIL (1 | PEER_EVENT) /* mobilize */
#define PEVNT_DEMOBIL (2 | PEER_EVENT) /* demobilize */
#define PEVNT_UNREACH (3 | PEER_EVENT) /* unreachable */
#define PEVNT_REACH (4 | PEER_EVENT) /* reachable */
#define PEVNT_RESTART (5 | PEER_EVENT) /* restart */
#define PEVNT_REPLY (6 | PEER_EVENT) /* no reply */
#define PEVNT_RATE (7 | PEER_EVENT) /* rate exceeded */
#define PEVNT_DENY (8 | PEER_EVENT) /* access denied */
#define PEVNT_ARMED (9 | PEER_EVENT) /* leap armed */
#define PEVNT_NEWPEER (10 | PEER_EVENT) /* sys peer */
#define PEVNT_CLOCK (11 | PEER_EVENT) /* clock event */
#define PEVNT_AUTH (12 | PEER_EVENT) /* bad auth */
#define PEVNT_POPCORN (13 | PEER_EVENT) /* popcorn */
#define PEVNT_XLEAVE (14 | PEER_EVENT) /* interleave mode */
#define PEVNT_XERR (15 | PEER_EVENT) /* interleave error */
/*
* Clock event codes
*/
#define CEVNT_NOMINAL 0 /* unspecified */
#define CEVNT_TIMEOUT 1 /* no reply */
#define CEVNT_BADREPLY 2 /* bad format */
#define CEVNT_FAULT 3 /* fault */
#define CEVNT_PROP 4 /* bad signal */
#define CEVNT_BADDATE 5 /* bad date */
#define CEVNT_BADTIME 6 /* bad time */
#define CEVNT_MAX CEVNT_BADTIME
/*
* Very misplaced value. Default port through which we send traps.
*/
#define TRAPPORT 18447
/*
* To speed lookups, peers are hashed by the low order bits of the
* remote IP address. These definitions relate to that.
*/
#define NTP_HASH_SIZE 128
#define NTP_HASH_MASK (NTP_HASH_SIZE-1)
#define NTP_HASH_ADDR(src) (sock_hash(src) & NTP_HASH_MASK)
/*
* min, min3 and max. Makes it easier to transliterate the spec without
* thinking about it.
*/
#define min(a,b) (((a) < (b)) ? (a) : (b))
#define max(a,b) (((a) > (b)) ? (a) : (b))
#define min3(a,b,c) min(min((a),(b)), (c))
/*
* Configuration items. These are for the protocol module (proto_config())
*/
#define PROTO_BROADCLIENT 1
#define PROTO_PRECISION 2 /* (not used) */
#define PROTO_AUTHENTICATE 3
#define PROTO_BROADDELAY 4
#define PROTO_AUTHDELAY 5 /* (not used) */
#define PROTO_MULTICAST_ADD 6
#define PROTO_MULTICAST_DEL 7
#define PROTO_NTP 8
#define PROTO_KERNEL 9
#define PROTO_MONITOR 10
#define PROTO_FILEGEN 11
#define PROTO_PPS 12
#define PROTO_CAL 13
#define PROTO_MINCLOCK 14
#define PROTO_MAXCLOCK 15
#define PROTO_MINSANE 16
#define PROTO_FLOOR 17
#define PROTO_CEILING 18
#define PROTO_COHORT 19
#define PROTO_CALLDELAY 20
#define PROTO_MINDISP 21
#define PROTO_MAXDIST 22
/* available 23 */
#define PROTO_MAXHOP 24
#define PROTO_BEACON 25
#define PROTO_ORPHAN 26
#define PROTO_ORPHWAIT 27
#define PROTO_MODE7 28
#define PROTO_UECRYPTO 29
#define PROTO_UECRYPTONAK 30
#define PROTO_UEDIGEST 31
#define PROTO_PCEDIGEST 32
#define PROTO_BCPOLLBSTEP 33
/*
* Configuration items for the loop filter
*/
#define LOOP_DRIFTINIT 1 /* iniitialize frequency */
#define LOOP_KERN_CLEAR 2 /* set initial frequency offset */
#define LOOP_MAX 3 /* set both step offsets */
#define LOOP_MAX_BACK 4 /* set backward-step offset */
#define LOOP_MAX_FWD 5 /* set forward-step offset */
#define LOOP_PANIC 6 /* set panic offseet */
#define LOOP_PHI 7 /* set dispersion rate */
#define LOOP_MINSTEP 8 /* set step timeout */
#define LOOP_MINPOLL 9 /* set min poll interval (log2 s) */
#define LOOP_ALLAN 10 /* set minimum Allan intercept */
#define LOOP_HUFFPUFF 11 /* set huff-n'-puff filter length */
#define LOOP_FREQ 12 /* set initial frequency */
#define LOOP_CODEC 13 /* set audio codec frequency */
#define LOOP_LEAP 14 /* insert leap after second 23:59 */
#define LOOP_TICK 15 /* sim. low precision clock */
#define LOOP_NOFREQ 16 /* undo a previos LOOP_FREQ */
/*
* Configuration items for the stats printer
*/
#define STATS_FREQ_FILE 1 /* configure drift file */
#define STATS_STATSDIR 2 /* directory prefix for stats files */
#define STATS_PID_FILE 3 /* configure ntpd PID file */
#define STATS_LEAP_FILE 4 /* configure ntpd leapseconds file */
#define MJD_1900 15020 /* MJD for 1 Jan 1900 */
/*
* Default parameters. We use these in the absence of something better.
*/
#define INADDR_NTP 0xe0000101 /* NTP multicast address 224.0.1.1 */
/*
* Structure used optionally for monitoring when this is turned on.
*/
typedef struct mon_data mon_entry;
struct mon_data {
mon_entry * hash_next; /* next structure in hash list */
DECL_DLIST_LINK(mon_entry, mru);/* MRU list link pointers */
struct interface * lcladr; /* address on which this arrived */
l_fp first; /* first time seen */
l_fp last; /* last time seen */
int leak; /* leaky bucket accumulator */
int count; /* total packet count */
u_short flags; /* restrict flags */
u_char vn_mode; /* packet mode & version */
u_char cast_flags; /* flags MDF_?CAST */
sockaddr_u rmtadr; /* address of remote host */
};
/*
* Values for cast_flags in mon_entry and struct peer. mon_entry uses
* only the first three, MDF_UCAST, MDF_MCAST, and MDF_BCAST.
*/
#define MDF_UCAST 0x01 /* unicast client */
#define MDF_MCAST 0x02 /* multicast server */
#define MDF_BCAST 0x04 /* broadcast server */
#define MDF_POOL 0x08 /* pool client solicitor */
#define MDF_ACAST 0x10 /* manycast client solicitor */
#define MDF_BCLNT 0x20 /* eph. broadcast/multicast client */
#define MDF_UCLNT 0x40 /* preemptible manycast or pool client */
/*
* In the context of struct peer in ntpd, three of the cast_flags bits
* represent configured associations which never receive packets, and
* whose reach is always 0: MDF_BCAST, MDF_MCAST, and MDF_ACAST. The
* last can be argued as responses are received, but those responses do
* not affect the MDF_ACAST association's reach register, rather they
* (may) result in mobilizing ephemeral MDF_ACLNT associations.
*/
#define MDF_TXONLY_MASK (MDF_BCAST | MDF_MCAST | MDF_ACAST | MDF_POOL)
/*
* manycastclient-like solicitor association cast_flags bits
*/
#define MDF_SOLICIT_MASK (MDF_ACAST | MDF_POOL)
/*
* Values used with mon_enabled to indicate reason for enabling monitoring
*/
#define MON_OFF 0x00 /* no monitoring */
#define MON_ON 0x01 /* monitoring explicitly enabled */
#define MON_RES 0x02 /* implicit monitoring for RES_LIMITED */
/*
* Structure used for restrictlist entries
*/
typedef struct res_addr4_tag {
u_int32 addr; /* IPv4 addr (host order) */
u_int32 mask; /* IPv4 mask (host order) */
} res_addr4;
typedef struct res_addr6_tag {
struct in6_addr addr; /* IPv6 addr (net order) */
struct in6_addr mask; /* IPv6 mask (net order) */
} res_addr6;
typedef struct restrict_u_tag restrict_u;
struct restrict_u_tag {
restrict_u * link; /* link to next entry */
u_int32 count; /* number of packets matched */
u_short rflags; /* restrict (accesslist) flags */
u_short mflags; /* match flags */
short ippeerlimit; /* IP peer limit */
int srvfuzrftpoll; /* server response: fuzz reftime */
u_long expire; /* valid until time */
union { /* variant starting here */
res_addr4 v4;
res_addr6 v6;
} u;
};
#define V4_SIZEOF_RESTRICT_U (offsetof(restrict_u, u) \
+ sizeof(res_addr4))
#define V6_SIZEOF_RESTRICT_U (offsetof(restrict_u, u) \
+ sizeof(res_addr6))
typedef struct r4addr_tag r4addr;
struct r4addr_tag {
u_short rflags; /* match flags */
short ippeerlimit; /* IP peer limit */
};
char *build_iflags(u_int32 flags);
char *build_mflags(u_short mflags);
char *build_rflags(u_short rflags);
/*
* Restrict (Access) flags (rflags)
*/
#define RES_IGNORE 0x0001 /* ignore packet */
#define RES_DONTSERVE 0x0002 /* access denied */
#define RES_DONTTRUST 0x0004 /* authentication required */
#define RES_VERSION 0x0008 /* version mismatch */
#define RES_NOPEER 0x0010 /* new association denied */
#define RES_NOEPEER 0x0020 /* new ephemeral association denied */
#define RES_LIMITED 0x0040 /* packet rate exceeded */
#define RES_FLAGS (RES_IGNORE | RES_DONTSERVE |\
RES_DONTTRUST | RES_VERSION |\
RES_NOPEER | RES_NOEPEER | RES_LIMITED)
#define RES_NOQUERY 0x0080 /* mode 6/7 packet denied */
#define RES_NOMODIFY 0x0100 /* mode 6/7 modify denied */
#define RES_NOTRAP 0x0200 /* mode 6/7 set trap denied */
#define RES_LPTRAP 0x0400 /* mode 6/7 low priority trap */
#define RES_KOD 0x0800 /* send kiss of death packet */
#define RES_MSSNTP 0x1000 /* enable MS-SNTP authentication */
#define RES_FLAKE 0x2000 /* flakeway - drop 10% */
#define RES_NOMRULIST 0x4000 /* mode 6 mrulist denied */
#define RES_SRVRSPFUZ 0x8000 /* Server response: fuzz */
#define RES_UNUSED 0x0000 /* Unused flag bits (none left) */
#define RES_ALLFLAGS (RES_FLAGS | RES_NOQUERY | \
RES_NOMODIFY | RES_NOTRAP | \
RES_LPTRAP | RES_KOD | \
RES_MSSNTP | RES_FLAKE | \
RES_NOMRULIST | RES_SRVRSPFUZ )
/*
* Match flags (mflags)
*/
#define RESM_INTERFACE 0x1000 /* this is an interface */
#define RESM_NTPONLY 0x2000 /* match source port 123 */
#define RESM_SOURCE 0x4000 /* from "restrict source" */
/*
* Restriction configuration ops
*/
typedef enum
restrict_ops {
RESTRICT_FLAGS = 1, /* add rflags to restrict entry */
RESTRICT_UNFLAG, /* remove rflags from restrict entry */
RESTRICT_REMOVE, /* remove a restrict entry */
RESTRICT_REMOVEIF, /* remove an interface restrict entry */
} restrict_op;
/*
* Endpoint structure for the select algorithm
*/
struct endpoint {
double val; /* offset of endpoint */
int type; /* interval entry/exit */
};
/*
* Association matching AM[] return codes
*/
#define AM_ERR -1 /* error */
#define AM_NOMATCH 0 /* no match */
#define AM_PROCPKT 1 /* server/symmetric packet */
#define AM_BCST 2 /* broadcast packet */
#define AM_FXMIT 3 /* client packet */
#define AM_MANYCAST 4 /* manycast or pool */
#define AM_NEWPASS 5 /* new passive */
#define AM_NEWBCL 6 /* new broadcast */
#define AM_POSSBCL 7 /* discard broadcast */
/* NetInfo configuration locations */
#ifdef HAVE_NETINFO
#define NETINFO_CONFIG_DIR "/config/ntp"
#endif
/* ntpq -c mrulist rows per request limit in ntpd */
#define MRU_ROW_LIMIT 256
/* similar datagrams per response limit for ntpd */
#define MRU_FRAGS_LIMIT 128
#endif /* NTP_H */
diff --git a/contrib/ntp/include/ntp_md5.h b/contrib/ntp/include/ntp_md5.h
index 06c90b2d2faf..8b5a7d0cbb49 100644
--- a/contrib/ntp/include/ntp_md5.h
+++ b/contrib/ntp/include/ntp_md5.h
@@ -1,49 +1,53 @@
/*
* ntp_md5.h: deal with md5.h headers
*
* Use the system MD5 if available, otherwise libisc's.
*/
#ifndef NTP_MD5_H
#define NTP_MD5_H
+# define KEY_TYPE_MD5 NID_md5
+
#ifdef OPENSSL
# include <openssl/evp.h>
# include "libssl_compat.h"
# ifdef HAVE_OPENSSL_CMAC_H
# include <openssl/cmac.h>
# define CMAC "AES128CMAC"
# define AES_128_KEY_SIZE 16
# endif /*HAVE_OPENSSL_CMAC_H*/
#else /* !OPENSSL follows */
/*
* Provide OpenSSL-alike MD5 API if we're not using OpenSSL
*/
# if defined HAVE_MD5_H && defined HAVE_MD5INIT
# include <md5.h>
# else
# include "isc/md5.h"
typedef isc_md5_t MD5_CTX;
# define MD5Init(c) isc_md5_init(c)
# define MD5Update(c, p, s) isc_md5_update(c, p, s)
# define MD5Final(d, c) isc_md5_final((c), (d)) /* swapped */
# endif
typedef MD5_CTX EVP_MD_CTX;
+# define NID_md5 4 /* from openssl/objects.h */
+# define EVP_MAX_MD_SIZE 64 /* from openssl/evp.h */
# define EVP_MD_CTX_free(c) free(c)
# define EVP_MD_CTX_new() calloc(1, sizeof(MD5_CTX))
# define EVP_get_digestbynid(t) NULL
# define EVP_md5() NULL
# define EVP_MD_CTX_init(c)
# define EVP_MD_CTX_set_flags(c, f)
# define EVP_DigestInit(c, dt) (MD5Init(c), 1)
# define EVP_DigestInit_ex(c, dt, i) (MD5Init(c), 1)
# define EVP_DigestUpdate(c, p, s) MD5Update(c, (const void *)(p), \
s)
# define EVP_DigestFinal(c, d, pdl) \
do { \
MD5Final((d), (c)); \
*(pdl) = 16; \
} while (0)
# endif /* !OPENSSL */
#endif /* NTP_MD5_H */
diff --git a/contrib/ntp/include/ntp_stdlib.h b/contrib/ntp/include/ntp_stdlib.h
index 2d7c640565d5..446837e3adcb 100644
--- a/contrib/ntp/include/ntp_stdlib.h
+++ b/contrib/ntp/include/ntp_stdlib.h
@@ -1,300 +1,303 @@
/*
* ntp_stdlib.h - Prototypes for NTP lib.
*/
#ifndef NTP_STDLIB_H
#define NTP_STDLIB_H
#include <sys/types.h>
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include "declcond.h" /* ntpd uses ntpd/declcond.h, others include/ */
#include "l_stdlib.h"
+#include "ntp_md5.h"
#include "ntp_net.h"
#include "ntp_debug.h"
#include "ntp_malloc.h"
#include "ntp_string.h"
#include "ntp_syslog.h"
#include "ntp_keyacc.h"
+#ifndef PATH_MAX
+# define PATH_MAX MAX_PATH
+#endif
+
#ifdef __GNUC__
#define NTP_PRINTF(fmt, args) __attribute__((__format__(__printf__, fmt, args)))
#else
#define NTP_PRINTF(fmt, args)
#endif
extern int mprintf(const char *, ...) NTP_PRINTF(1, 2);
extern int mfprintf(FILE *, const char *, ...) NTP_PRINTF(2, 3);
extern int mvfprintf(FILE *, const char *, va_list) NTP_PRINTF(2, 0);
extern int mvsnprintf(char *, size_t, const char *, va_list)
NTP_PRINTF(3, 0);
extern int msnprintf(char *, size_t, const char *, ...)
NTP_PRINTF(3, 4);
extern void msyslog(int, const char *, ...) NTP_PRINTF(2, 3);
extern void mvsyslog(int, const char *, va_list) NTP_PRINTF(2, 0);
extern void init_logging (const char *, u_int32, int);
extern int change_logfile (const char *, int);
extern void setup_logfile (const char *);
-#ifndef errno_to_str
+#ifndef errno_to_str /* Windows port defines this */
extern void errno_to_str(int, char *, size_t);
#endif
-extern char * ntp_realpath(const char * fsname);
+extern char * ntp_realpath(const char *fsname);
-extern int xvsbprintf(char**, char* const, char const*, va_list) NTP_PRINTF(3, 0);
-extern int xsbprintf(char**, char* const, char const*, ...) NTP_PRINTF(3, 4);
-
-/*
- * When building without OpenSSL, use a few macros of theirs to
- * minimize source differences in NTP.
- */
-#ifndef OPENSSL
-#define NID_md5 4 /* from openssl/objects.h */
-/* from openssl/evp.h */
-#define EVP_MAX_MD_SIZE 64 /* longest known is SHA512 */
-#endif
+extern int xvsbprintf(char **, char * const, char const *, va_list)
+ NTP_PRINTF(3, 0);
+extern int xsbprintf(char **, char * const, char const *, ...)
+ NTP_PRINTF(3, 4);
#define SAVE_ERRNO(stmt) \
{ \
int preserved_errno; \
\
preserved_errno = socket_errno(); \
{ \
stmt \
} \
errno = preserved_errno; \
}
typedef void (*ctrl_c_fn)(void);
/* authkeys.c */
#define AUTHPWD_MAXSECLEN 64 /* max. length of secret blob */
enum AuthPwdEnc {
AUTHPWD_UNSPEC, /* format unspecified, length used for discrimination */
AUTHPWD_PLAIN, /* plain text, used as is */
AUTHPWD_HEX /* hex-encoded string */
};
extern void auth_delkeys (void);
extern int auth_havekey (keyid_t);
extern size_t authdecodepw (u_char *dst, size_t dstlen, const char *src, enum AuthPwdEnc);
extern int authdecrypt (keyid_t, u_int32 *, size_t, size_t);
extern size_t authencrypt (keyid_t, u_int32 *, size_t);
extern int authhavekey (keyid_t);
extern int authistrusted (keyid_t);
extern int authistrustedip (keyid_t, sockaddr_u *);
extern int authreadkeys (const char *);
extern void authtrust (keyid_t, u_long);
extern int authusekey (keyid_t, int, const u_char *);
/*
* Based on the NTP timestamp, calculate the NTP timestamp of
* the corresponding calendar unit. Use the pivot time to unfold
* the NTP timestamp properly, or the current system time if the
* pivot pointer is NULL.
*/
extern u_int32 calyearstart (u_int32 ntptime, const time_t *pivot);
extern u_int32 calmonthstart (u_int32 ntptime, const time_t *pivot);
extern u_int32 calweekstart (u_int32 ntptime, const time_t *pivot);
extern u_int32 caldaystart (u_int32 ntptime, const time_t *pivot);
extern const char *clockname (int);
extern int clocktime (int, int, int, int, int, u_int32, u_long *, u_int32 *);
extern int ntp_getopt (int, char **, const char *);
extern void init_auth (void);
extern void init_lib (void);
extern struct savekey *auth_findkey (keyid_t);
extern void auth_moremem (int);
extern void auth_prealloc_symkeys(int);
extern int ymd2yd (int, int, int);
/* a_md5encrypt.c */
-extern int MD5authdecrypt (int, const u_char *, size_t, u_int32 *, size_t, size_t, keyid_t);
-extern size_t MD5authencrypt (int, const u_char *, size_t, u_int32 *, size_t);
-extern void MD5auth_setkey (keyid_t, int, const u_char *, size_t, KeyAccT *c);
-extern u_int32 addr2refid (sockaddr_u *);
+extern size_t MD5authencrypt (int type, const u_char *key, size_t klen,
+ u_int32 *pkt, size_t length);
+extern int MD5authdecrypt (int type, const u_char *key, size_t klen,
+ u_int32 *pkt, size_t length, size_t size,
+ keyid_t keyno);
+extern u_int32 addr2refid(sockaddr_u *);
+
+/* authkeys.c */
+extern void MD5auth_setkey (keyid_t, int, const u_char *, size_t,
+ KeyAccT *c);
/* emalloc.c */
#ifndef EREALLOC_CALLSITE /* ntp_malloc.h defines */
extern void * ereallocz (void *, size_t, size_t, int);
extern void * oreallocarrayxz (void *optr, size_t nmemb, size_t size, size_t extra);
#define erealloczsite(p, n, o, z, f, l) ereallocz((p), (n), (o), (z))
#define emalloc(n) ereallocz(NULL, (n), 0, FALSE)
#define emalloc_zero(c) ereallocz(NULL, (c), 0, TRUE)
#define erealloc(p, c) ereallocz((p), (c), 0, FALSE)
#define erealloc_zero(p, n, o) ereallocz((p), (n), (o), TRUE)
#define ereallocarray(p, n, s) oreallocarrayxz((p), (n), (s), 0)
#define eallocarray(n, s) oreallocarrayxz(NULL, (n), (s), 0)
#define ereallocarrayxz(p, n, s, x) oreallocarrayxz((p), (n), (s), (x))
#define eallocarrayxz(n, s, x) oreallocarrayxz(NULL, (n), (s), (x))
extern char * estrdup_impl(const char *);
#define estrdup(s) estrdup_impl(s)
#else
extern void * ereallocz (void *, size_t, size_t, int,
const char *, int);
extern void * oreallocarrayxz (void *optr, size_t nmemb, size_t size,
size_t extra, const char *, int);
#define erealloczsite ereallocz
#define emalloc(c) ereallocz(NULL, (c), 0, FALSE, \
__FILE__, __LINE__)
#define emalloc_zero(c) ereallocz(NULL, (c), 0, TRUE, \
__FILE__, __LINE__)
#define erealloc(p, c) ereallocz((p), (c), 0, FALSE, \
__FILE__, __LINE__)
#define erealloc_zero(p, n, o) ereallocz((p), (n), (o), TRUE, \
__FILE__, __LINE__)
#define ereallocarray(p, n, s) oreallocarrayxz((p), (n), (s), 0, \
__FILE__, __LINE__)
#define eallocarray(n, s) oreallocarrayxz(NULL, (n), (s), 0, \
__FILE__, __LINE__)
#define ereallocarrayxz(p, n, s, x) oreallocarrayxz((p), (n), (s), (x), \
__FILE__, __LINE__)
#define eallocarrayxz(n, s, x) oreallocarrayxz(NULL, (n), (s), (x), \
__FILE__, __LINE__)
extern char * estrdup_impl(const char *, const char *, int);
#define estrdup(s) estrdup_impl((s), __FILE__, __LINE__)
#endif
extern int atoint (const char *, long *);
extern int atouint (const char *, u_long *);
extern int hextoint (const char *, u_long *);
extern const char * humanlogtime (void);
extern const char * humantime (time_t);
extern int is_ip_address (const char *, u_short, sockaddr_u *);
extern char * mfptoa (u_int32, u_int32, short);
extern char * mfptoms (u_int32, u_int32, short);
extern const char * modetoa (size_t);
extern const char * eventstr (int);
extern const char * ceventstr (int);
extern const char * res_match_flags(u_short);
extern const char * res_access_flags(u_int32);
#ifdef KERNEL_PLL
extern const char * k_st_flags (u_int32);
#endif
extern char * statustoa (int, int);
extern sockaddr_u * netof (sockaddr_u *);
extern char * numtoa (u_int32);
extern char * numtohost (u_int32);
extern const char * socktoa (const sockaddr_u *);
extern const char * sockporttoa(const sockaddr_u *);
extern u_short sock_hash (const sockaddr_u *);
extern int sockaddr_masktoprefixlen(const sockaddr_u *);
extern const char * socktohost (const sockaddr_u *);
extern int octtoint (const char *, u_long *);
extern u_long ranp2 (int);
extern const char *refnumtoa (const sockaddr_u *);
extern const char *refid_str (u_int32, int);
extern int decodenetnum (const char *, sockaddr_u *);
extern const char * FindConfig (const char *);
extern void signal_no_reset (int, RETSIGTYPE (*func)(int));
extern void set_ctrl_c_hook (ctrl_c_fn);
extern void getauthkeys (const char *);
extern void auth_agekeys (void);
extern void rereadkeys (void);
/*
* Variable declarations for libntp.
*/
/* authkeys.c */
extern u_long authkeynotfound; /* keys not found */
extern u_long authkeylookups; /* calls to lookup keys */
extern u_long authnumkeys; /* number of active keys */
extern u_long authkeyexpired; /* key lifetime expirations */
extern u_long authkeyuncached; /* cache misses */
extern u_long authencryptions; /* calls to encrypt */
extern u_long authdecryptions; /* calls to decrypt */
extern int authnumfreekeys;
/*
* The key cache. We cache the last key we looked at here.
*/
extern keyid_t cache_keyid; /* key identifier */
extern int cache_type; /* key type */
extern u_char * cache_secret; /* secret */
extern size_t cache_secretsize; /* secret octets */
extern u_short cache_flags; /* KEY_ bit flags */
/* getopt.c */
extern char * ntp_optarg; /* global argument pointer */
extern int ntp_optind; /* global argv index */
/* lib_strbuf.c */
extern int ipv4_works;
extern int ipv6_works;
/* machines.c */
typedef void (*pset_tod_using)(const char *);
extern pset_tod_using set_tod_using;
/* ssl_init.c */
#ifdef OPENSSL
extern void ssl_init (void);
extern void ssl_check_version (void);
extern int ssl_init_done;
#define INIT_SSL() \
do { \
if (!ssl_init_done) \
ssl_init(); \
} while (0)
#else /* !OPENSSL follows */
#define INIT_SSL() do {} while (0)
#endif
extern int keytype_from_text (const char *, size_t *);
extern const char *keytype_name (int);
extern char * getpass_keytype (int);
/* strl-obsd.c */
#ifndef HAVE_STRLCPY /* + */
/*
* Copy src to string dst of size siz. At most siz-1 characters
* will be copied. Always NUL terminates (unless siz == 0).
* Returns strlen(src); if retval >= siz, truncation occurred.
*/
extern size_t strlcpy(char *dst, const char *src, size_t siz);
#endif
#ifndef HAVE_STRLCAT /* + */
/*
* Appends src to string dst of size siz (unlike strncat, siz is the
* full size of dst, not space left). At most siz-1 characters
* will be copied. Always NUL terminates (unless siz <= strlen(dst)).
* Returns strlen(src) + MIN(siz, strlen(initial dst)).
* If retval >= siz, truncation occurred.
*/
extern size_t strlcat(char *dst, const char *src, size_t siz);
#endif
/* lib/isc/win32/strerror.c
*
* To minimize Windows-specific changes to the rest of the NTP code,
* particularly reference clocks, we hijack calls to strerror() to deal
* with our mixture of error codes from the C runtime (open, write)
* and Windows (sockets, serial ports). This is an ugly hack because
* both use the lowest values differently, but particularly for ntpd,
* it's not a problem.
*/
#ifdef NTP_REDEFINE_STRERROR
#define strerror(e) ntp_strerror(e)
extern char * ntp_strerror (int e);
#endif
/* systime.c */
extern double sys_tick; /* tick size or time to read */
extern double measured_tick; /* non-overridable sys_tick */
extern double sys_fuzz; /* min clock read latency */
extern int trunc_os_clock; /* sys_tick > measured_tick */
/* version.c */
extern const char *Version; /* version declaration */
#endif /* NTP_STDLIB_H */
diff --git a/contrib/ntp/libntp/a_md5encrypt.c b/contrib/ntp/libntp/a_md5encrypt.c
index 6011af52af6d..7a372969123f 100644
--- a/contrib/ntp/libntp/a_md5encrypt.c
+++ b/contrib/ntp/libntp/a_md5encrypt.c
@@ -1,289 +1,292 @@
/*
* digest support for NTP, MD5 and with OpenSSL more
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "ntp_fp.h"
#include "ntp_string.h"
#include "ntp_stdlib.h"
#include "ntp.h"
-#include "ntp_md5.h" /* provides OpenSSL digest API */
#include "isc/string.h"
typedef struct {
const void * buf;
size_t len;
} robuffT;
typedef struct {
void * buf;
size_t len;
} rwbuffT;
+
#if defined(OPENSSL) && defined(ENABLE_CMAC)
static size_t
cmac_ctx_size(
- CMAC_CTX * ctx)
+ CMAC_CTX * ctx
+ )
{
size_t mlen = 0;
if (ctx) {
EVP_CIPHER_CTX * cctx;
if (NULL != (cctx = CMAC_CTX_get0_cipher_ctx (ctx)))
mlen = EVP_CIPHER_CTX_block_size(cctx);
}
return mlen;
}
-#endif /*OPENSSL && ENABLE_CMAC*/
+#endif /* OPENSSL && ENABLE_CMAC */
+
static size_t
make_mac(
const rwbuffT * digest,
int ktype,
const robuffT * key,
- const robuffT * msg)
+ const robuffT * msg
+ )
{
/*
* Compute digest of key concatenated with packet. Note: the
* key type and digest type have been verified when the key
* was created.
*/
size_t retlen = 0;
#ifdef OPENSSL
INIT_SSL();
/* Check if CMAC key type specific code required */
# ifdef ENABLE_CMAC
if (ktype == NID_cmac) {
CMAC_CTX * ctx = NULL;
void const * keyptr = key->buf;
u_char keybuf[AES_128_KEY_SIZE];
/* adjust key size (zero padded buffer) if necessary */
if (AES_128_KEY_SIZE > key->len) {
memcpy(keybuf, keyptr, key->len);
- memset((keybuf + key->len), 0,
- (AES_128_KEY_SIZE - key->len));
+ zero_mem((keybuf + key->len),
+ (AES_128_KEY_SIZE - key->len));
keyptr = keybuf;
}
if (NULL == (ctx = CMAC_CTX_new())) {
msyslog(LOG_ERR, "MAC encrypt: CMAC %s CTX new failed.", CMAC);
goto cmac_fail;
}
if (!CMAC_Init(ctx, keyptr, AES_128_KEY_SIZE, EVP_aes_128_cbc(), NULL)) {
msyslog(LOG_ERR, "MAC encrypt: CMAC %s Init failed.", CMAC);
goto cmac_fail;
}
if (cmac_ctx_size(ctx) > digest->len) {
msyslog(LOG_ERR, "MAC encrypt: CMAC %s buf too small.", CMAC);
goto cmac_fail;
}
if (!CMAC_Update(ctx, msg->buf, msg->len)) {
msyslog(LOG_ERR, "MAC encrypt: CMAC %s Update failed.", CMAC);
goto cmac_fail;
}
if (!CMAC_Final(ctx, digest->buf, &retlen)) {
msyslog(LOG_ERR, "MAC encrypt: CMAC %s Final failed.", CMAC);
retlen = 0;
}
cmac_fail:
if (ctx)
CMAC_CTX_free(ctx);
}
else
# endif /*ENABLE_CMAC*/
{ /* generic MAC handling */
EVP_MD_CTX * ctx = EVP_MD_CTX_new();
u_int uilen = 0;
if ( ! ctx) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s Digest CTX new failed.",
OBJ_nid2sn(ktype));
goto mac_fail;
}
- #ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
+ #ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
/* make sure MD5 is allowd */
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
- #endif
+ #endif
/* [Bug 3457] DON'T use plain EVP_DigestInit! It would
* kill the flags! */
if (!EVP_DigestInit_ex(ctx, EVP_get_digestbynid(ktype), NULL)) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s Digest Init failed.",
OBJ_nid2sn(ktype));
goto mac_fail;
}
if ((size_t)EVP_MD_CTX_size(ctx) > digest->len) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s buf too small.",
OBJ_nid2sn(ktype));
goto mac_fail;
}
if (!EVP_DigestUpdate(ctx, key->buf, (u_int)key->len)) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s Digest Update key failed.",
OBJ_nid2sn(ktype));
goto mac_fail;
}
if (!EVP_DigestUpdate(ctx, msg->buf, (u_int)msg->len)) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s Digest Update data failed.",
OBJ_nid2sn(ktype));
goto mac_fail;
}
if (!EVP_DigestFinal(ctx, digest->buf, &uilen)) {
msyslog(LOG_ERR, "MAC encrypt: MAC %s Digest Final failed.",
OBJ_nid2sn(ktype));
uilen = 0;
}
mac_fail:
retlen = (size_t)uilen;
if (ctx)
EVP_MD_CTX_free(ctx);
}
#else /* !OPENSSL follows */
if (ktype == NID_md5)
{
EVP_MD_CTX * ctx = EVP_MD_CTX_new();
u_int uilen = 0;
if (digest->len < 16) {
msyslog(LOG_ERR, "%s", "MAC encrypt: MAC md5 buf too small.");
}
else if ( ! ctx) {
msyslog(LOG_ERR, "%s", "MAC encrypt: MAC md5 Digest CTX new failed.");
}
else if (!EVP_DigestInit(ctx, EVP_get_digestbynid(ktype))) {
msyslog(LOG_ERR, "%s", "MAC encrypt: MAC md5 Digest INIT failed.");
}
else {
EVP_DigestUpdate(ctx, key->buf, key->len);
EVP_DigestUpdate(ctx, msg->buf, msg->len);
EVP_DigestFinal(ctx, digest->buf, &uilen);
}
if (ctx)
EVP_MD_CTX_free(ctx);
retlen = (size_t)uilen;
}
else
{
msyslog(LOG_ERR, "MAC encrypt: invalid key type %d" , ktype);
}
#endif /* !OPENSSL */
return retlen;
}
/*
* MD5authencrypt - generate message digest
*
* Returns length of MAC including key ID and digest.
*/
size_t
MD5authencrypt(
int type, /* hash algorithm */
const u_char * key, /* key pointer */
size_t klen, /* key length */
u_int32 * pkt, /* packet pointer */
size_t length /* packet length */
)
{
u_char digest[EVP_MAX_MD_SIZE];
rwbuffT digb = { digest, sizeof(digest) };
robuffT keyb = { key, klen };
robuffT msgb = { pkt, length };
size_t dlen = 0;
dlen = make_mac(&digb, type, &keyb, &msgb);
/* If the MAC is longer than the MAX then truncate it. */
if (dlen > MAX_MDG_LEN)
dlen = MAX_MDG_LEN;
memcpy((u_char *)pkt + length + KEY_MAC_LEN, digest, dlen);
return (dlen + KEY_MAC_LEN);
}
/*
* MD5authdecrypt - verify MD5 message authenticator
*
* Returns one if digest valid, zero if invalid.
*/
int
MD5authdecrypt(
int type, /* hash algorithm */
const u_char * key, /* key pointer */
size_t klen, /* key length */
u_int32 * pkt, /* packet pointer */
size_t length, /* packet length */
size_t size, /* MAC size */
keyid_t keyno /* key id (for err log) */
)
{
u_char digest[EVP_MAX_MD_SIZE];
rwbuffT digb = { digest, sizeof(digest) };
robuffT keyb = { key, klen };
robuffT msgb = { pkt, length };
size_t dlen = 0;
dlen = make_mac(&digb, type, &keyb, &msgb);
/* If the MAC is longer than the MAX then truncate it. */
if (dlen > MAX_MDG_LEN)
dlen = MAX_MDG_LEN;
if (size != (size_t)dlen + KEY_MAC_LEN) {
msyslog(LOG_ERR,
- "MAC decrypt: MAC length error: len=%zu key=%d",
- size, keyno);
+ "MAC decrypt: MAC length error: len=%u key=%d",
+ (u_int)size, keyno);
return (0);
}
return !isc_tsmemcmp(digest,
(u_char *)pkt + length + KEY_MAC_LEN, dlen);
}
/*
* Calculate the reference id from the address. If it is an IPv4
* address, use it as is. If it is an IPv6 address, do a md5 on
* it and use the bottom 4 bytes.
* The result is in network byte order.
*/
u_int32
addr2refid(sockaddr_u *addr)
{
u_char digest[EVP_MAX_MD_SIZE];
u_int32 addr_refid;
EVP_MD_CTX *ctx;
u_int len;
if (IS_IPV4(addr))
return (NSRCADR(addr));
INIT_SSL();
ctx = EVP_MD_CTX_new();
# ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
/* MD5 is not used as a crypto hash here. */
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
# endif
/* [Bug 3457] DON'T use plain EVP_DigestInit! It would kill the
* flags! */
if (!EVP_DigestInit_ex(ctx, EVP_md5(), NULL)) {
msyslog(LOG_ERR,
"MD5 init failed");
EVP_MD_CTX_free(ctx); /* pedantic... but safe */
exit(1);
}
EVP_DigestUpdate(ctx, (u_char *)PSOCK_ADDR6(addr),
sizeof(struct in6_addr));
EVP_DigestFinal(ctx, digest, &len);
EVP_MD_CTX_free(ctx);
memcpy(&addr_refid, digest, sizeof(addr_refid));
return (addr_refid);
}
diff --git a/contrib/ntp/libntp/authkeys.c b/contrib/ntp/libntp/authkeys.c
index 4448dadd2b6a..d28b4b932b84 100644
--- a/contrib/ntp/libntp/authkeys.c
+++ b/contrib/ntp/libntp/authkeys.c
@@ -1,1021 +1,1020 @@
/*
* authkeys.c - routines to manage the storage of authentication keys
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <math.h>
#include <stdio.h>
#include "ntp.h"
#include "ntp_fp.h"
#include "ntpd.h"
#include "ntp_lists.h"
#include "ntp_string.h"
#include "ntp_malloc.h"
#include "ntp_stdlib.h"
#include "ntp_keyacc.h"
/*
* Structure to store keys in in the hash table.
*/
typedef struct savekey symkey;
struct savekey {
symkey * hlink; /* next in hash bucket */
DECL_DLIST_LINK(symkey, llink); /* for overall & free lists */
u_char * secret; /* shared secret */
KeyAccT * keyacclist; /* Private key access list */
u_long lifetime; /* remaining lifetime */
keyid_t keyid; /* key identifier */
u_short type; /* OpenSSL digest NID */
size_t secretsize; /* secret octets */
u_short flags; /* KEY_ flags that wave */
};
/* define the payload region of symkey beyond the list pointers */
#define symkey_payload secret
#define KEY_TRUSTED 0x001 /* this key is trusted */
#ifdef DEBUG
typedef struct symkey_alloc_tag symkey_alloc;
struct symkey_alloc_tag {
symkey_alloc * link;
void * mem; /* enable free() atexit */
};
symkey_alloc * authallocs;
#endif /* DEBUG */
static u_short auth_log2(size_t);
static void auth_resize_hashtable(void);
static void allocsymkey(keyid_t, u_short,
u_short, u_long, size_t, u_char *, KeyAccT *);
static void freesymkey(symkey *);
#ifdef DEBUG
static void free_auth_mem(void);
#endif
symkey key_listhead; /* list of all in-use keys */;
/*
* The hash table. This is indexed by the low order bits of the
* keyid. We make this fairly big for potentially busy servers.
*/
#define DEF_AUTHHASHSIZE 64
/*#define HASHMASK ((HASHSIZE)-1)*/
#define KEYHASH(keyid) ((keyid) & authhashmask)
int authhashdisabled;
u_short authhashbuckets = DEF_AUTHHASHSIZE;
u_short authhashmask = DEF_AUTHHASHSIZE - 1;
symkey **key_hash;
u_long authkeynotfound; /* keys not found */
u_long authkeylookups; /* calls to lookup keys */
u_long authnumkeys; /* number of active keys */
u_long authkeyexpired; /* key lifetime expirations */
u_long authkeyuncached; /* cache misses */
u_long authnokey; /* calls to encrypt with no key */
u_long authencryptions; /* calls to encrypt */
u_long authdecryptions; /* calls to decrypt */
/*
* Storage for free symkey structures. We malloc() such things but
* never free them.
*/
symkey *authfreekeys;
int authnumfreekeys;
#define MEMINC 16 /* number of new free ones to get */
/*
* The key cache. We cache the last key we looked at here.
* Note: this should hold the last *trusted* key. Also the
* cache is only loaded when the digest type / MAC algorithm
* is valid.
*/
keyid_t cache_keyid; /* key identifier */
u_char *cache_secret; /* secret */
size_t cache_secretsize; /* secret length */
int cache_type; /* OpenSSL digest NID */
u_short cache_flags; /* flags that wave */
KeyAccT *cache_keyacclist; /* key access list */
/* --------------------------------------------------------------------
* manage key access lists
* --------------------------------------------------------------------
*/
/* allocate and populate new access node and pushes it on the list.
* Returns the new head.
*/
KeyAccT*
keyacc_new_push(
KeyAccT * head,
const sockaddr_u * addr,
unsigned int subnetbits
)
{
KeyAccT * node = emalloc(sizeof(KeyAccT));
memcpy(&node->addr, addr, sizeof(sockaddr_u));
node->subnetbits = subnetbits;
node->next = head;
return node;
}
/* ----------------------------------------------------------------- */
/* pop and deallocate the first node of a list of access nodes, if
* the list is not empty. Returns the tail of the list.
*/
KeyAccT*
keyacc_pop_free(
KeyAccT *head
)
{
KeyAccT * next = NULL;
if (head) {
next = head->next;
free(head);
}
return next;
}
/* ----------------------------------------------------------------- */
/* deallocate the list; returns an empty list. */
KeyAccT*
keyacc_all_free(
KeyAccT * head
)
{
while (head)
head = keyacc_pop_free(head);
return head;
}
/* ----------------------------------------------------------------- */
/* scan a list to see if it contains a given address. Return the
* default result value in case of an empty list.
*/
int /*BOOL*/
keyacc_contains(
const KeyAccT *head,
const sockaddr_u *addr,
int defv)
{
if (head) {
do {
if (keyacc_amatch(&head->addr, addr,
head->subnetbits))
return TRUE;
} while (NULL != (head = head->next));
return FALSE;
} else {
return !!defv;
}
}
#if CHAR_BIT != 8
# error "don't know how to handle bytes with that bit size"
#endif
/* ----------------------------------------------------------------- */
/* check two addresses for a match, taking a prefix length into account
* when doing the compare.
*
* The ISC lib contains a similar function with not entirely specified
* semantics, so it seemed somewhat cleaner to do this from scratch.
*
* Note 1: It *is* assumed that the addresses are stored in network byte
* order, that is, most significant byte first!
*
* Note 2: "no address" compares unequal to all other addresses, even to
* itself. This has the same semantics as NaNs have for floats: *any*
* relational or equality operation involving a NaN returns FALSE, even
* equality with itself. "no address" is either a NULL pointer argument
* or an address of type AF_UNSPEC.
*/
int/*BOOL*/
keyacc_amatch(
const sockaddr_u * a1,
const sockaddr_u * a2,
unsigned int mbits
)
{
const uint8_t * pm1;
const uint8_t * pm2;
uint8_t msk;
unsigned int len;
/* 1st check: If any address is not an address, it's inequal. */
if ( !a1 || (AF_UNSPEC == AF(a1)) ||
!a2 || (AF_UNSPEC == AF(a2)) )
return FALSE;
/* We could check pointers for equality here and shortcut the
* other checks if we find object identity. But that use case is
* too rare to care for it.
*/
/* 2nd check: Address families must be the same. */
if (AF(a1) != AF(a2))
return FALSE;
/* type check: address family determines buffer & size */
switch (AF(a1)) {
case AF_INET:
/* IPv4 is easy: clamp size, get byte pointers */
if (mbits > sizeof(NSRCADR(a1)) * 8)
mbits = sizeof(NSRCADR(a1)) * 8;
pm1 = (const void*)&NSRCADR(a1);
pm2 = (const void*)&NSRCADR(a2);
break;
case AF_INET6:
/* IPv6 is slightly different: Both scopes must match,
* too, before we even consider doing a match!
*/
if ( ! SCOPE_EQ(a1, a2))
return FALSE;
if (mbits > sizeof(NSRCADR6(a1)) * 8)
mbits = sizeof(NSRCADR6(a1)) * 8;
pm1 = (const void*)&NSRCADR6(a1);
pm2 = (const void*)&NSRCADR6(a2);
break;
default:
/* don't know how to compare that!?! */
return FALSE;
}
/* Split bit length into byte length and partial byte mask.
* Note that the byte mask extends from the MSB of a byte down,
* and that zero shift (--> mbits % 8 == 0) results in an
* all-zero mask.
*/
msk = 0xFFu ^ (0xFFu >> (mbits & 7));
len = mbits >> 3;
/* 3rd check: Do memcmp() over full bytes, if any */
if (len && memcmp(pm1, pm2, len))
return FALSE;
/* 4th check: compare last incomplete byte, if any */
if (msk && ((pm1[len] ^ pm2[len]) & msk))
return FALSE;
/* If none of the above failed, we're successfully through. */
return TRUE;
}
/*
* init_auth - initialize internal data
*/
void
init_auth(void)
{
size_t newalloc;
/*
* Initialize hash table and free list
*/
newalloc = authhashbuckets * sizeof(key_hash[0]);
- key_hash = erealloc(key_hash, newalloc);
- memset(key_hash, '\0', newalloc);
+ key_hash = emalloc_zero(newalloc);
INIT_DLIST(key_listhead, llink);
#ifdef DEBUG
atexit(&free_auth_mem);
#endif
}
/*
* free_auth_mem - assist in leak detection by freeing all dynamic
* allocations from this module.
*/
#ifdef DEBUG
static void
free_auth_mem(void)
{
symkey * sk;
symkey_alloc * alloc;
symkey_alloc * next_alloc;
while (NULL != (sk = HEAD_DLIST(key_listhead, llink))) {
freesymkey(sk);
}
free(key_hash);
key_hash = NULL;
cache_keyid = 0;
cache_flags = 0;
cache_keyacclist = NULL;
for (alloc = authallocs; alloc != NULL; alloc = next_alloc) {
next_alloc = alloc->link;
free(alloc->mem);
}
authfreekeys = NULL;
authnumfreekeys = 0;
}
#endif /* DEBUG */
/*
* auth_moremem - get some more free key structures
*/
void
auth_moremem(
int keycount
)
{
symkey * sk;
int i;
#ifdef DEBUG
void * base;
symkey_alloc * allocrec;
# define MOREMEM_EXTRA_ALLOC (sizeof(*allocrec))
#else
# define MOREMEM_EXTRA_ALLOC (0)
#endif
i = (keycount > 0)
? keycount
: MEMINC;
sk = eallocarrayxz(i, sizeof(*sk), MOREMEM_EXTRA_ALLOC);
#ifdef DEBUG
base = sk;
#endif
authnumfreekeys += i;
for (; i > 0; i--, sk++) {
LINK_SLIST(authfreekeys, sk, llink.f);
}
#ifdef DEBUG
allocrec = (void *)sk;
allocrec->mem = base;
LINK_SLIST(authallocs, allocrec, link);
#endif
}
/*
* auth_prealloc_symkeys
*/
void
auth_prealloc_symkeys(
int keycount
)
{
int allocated;
int additional;
allocated = authnumkeys + authnumfreekeys;
additional = keycount - allocated;
if (additional > 0)
auth_moremem(additional);
auth_resize_hashtable();
}
static u_short
auth_log2(size_t x)
{
/*
** bithack to calculate floor(log2(x))
**
** This assumes
** - (sizeof(size_t) is a power of two
** - CHAR_BITS is a power of two
** - returning zero for arguments <= 0 is OK.
**
** Does only shifts, masks and sums in integer arithmetic in
** log2(CHAR_BIT*sizeof(size_t)) steps. (that is, 5/6 steps for
** 32bit/64bit size_t)
*/
int s;
int r = 0;
size_t m = ~(size_t)0;
for (s = sizeof(size_t) / 2 * CHAR_BIT; s != 0; s >>= 1) {
m <<= s;
if (x & m)
r += s;
else
x <<= s;
}
return (u_short)r;
}
int/*BOOL*/
ipaddr_match_masked(const sockaddr_u *,const sockaddr_u *,
unsigned int mbits);
static void
authcache_flush_id(
keyid_t id
)
{
if (cache_keyid == id) {
cache_keyid = 0;
cache_type = 0;
cache_flags = 0;
cache_secret = NULL;
cache_secretsize = 0;
cache_keyacclist = NULL;
}
}
/*
* auth_resize_hashtable
*
* Size hash table to average 4 or fewer entries per bucket initially,
* within the bounds of at least 4 and no more than 15 bits for the hash
* table index. Populate the hash table.
*/
static void
auth_resize_hashtable(void)
{
u_long totalkeys;
u_short hashbits;
u_short hash;
size_t newalloc;
symkey * sk;
totalkeys = authnumkeys + authnumfreekeys;
hashbits = auth_log2(totalkeys / 4) + 1;
hashbits = max(4, hashbits);
hashbits = min(15, hashbits);
authhashbuckets = 1 << hashbits;
authhashmask = authhashbuckets - 1;
newalloc = authhashbuckets * sizeof(key_hash[0]);
key_hash = erealloc(key_hash, newalloc);
- memset(key_hash, '\0', newalloc);
+ zero_mem(key_hash, newalloc);
ITER_DLIST_BEGIN(key_listhead, sk, llink, symkey)
hash = KEYHASH(sk->keyid);
LINK_SLIST(key_hash[hash], sk, hlink);
ITER_DLIST_END()
}
/*
* allocsymkey - common code to allocate and link in symkey
*
* secret must be allocated with a free-compatible allocator. It is
* owned by the referring symkey structure, and will be free()d by
* freesymkey().
*/
static void
allocsymkey(
keyid_t id,
u_short flags,
u_short type,
u_long lifetime,
size_t secretsize,
u_char * secret,
KeyAccT * ka
)
{
symkey * sk;
symkey ** bucket;
bucket = &key_hash[KEYHASH(id)];
if (authnumfreekeys < 1)
auth_moremem(-1);
UNLINK_HEAD_SLIST(sk, authfreekeys, llink.f);
DEBUG_ENSURE(sk != NULL);
sk->keyid = id;
sk->flags = flags;
sk->type = type;
sk->secretsize = secretsize;
sk->secret = secret;
sk->keyacclist = ka;
sk->lifetime = lifetime;
LINK_SLIST(*bucket, sk, hlink);
LINK_TAIL_DLIST(key_listhead, sk, llink);
authnumfreekeys--;
authnumkeys++;
}
/*
* freesymkey - common code to remove a symkey and recycle its entry.
*/
static void
freesymkey(
symkey * sk
)
{
symkey ** bucket;
symkey * unlinked;
if (NULL == sk)
return;
authcache_flush_id(sk->keyid);
keyacc_all_free(sk->keyacclist);
bucket = &key_hash[KEYHASH(sk->keyid)];
if (sk->secret != NULL) {
- memset(sk->secret, '\0', sk->secretsize);
+ zero_mem(sk->secret, sk->secretsize);
free(sk->secret);
}
UNLINK_SLIST(unlinked, *bucket, sk, hlink, symkey);
DEBUG_ENSURE(sk == unlinked);
UNLINK_DLIST(sk, llink);
- memset((char *)sk + offsetof(symkey, symkey_payload), '\0',
- sizeof(*sk) - offsetof(symkey, symkey_payload));
+ zero_mem((char *)sk + offsetof(symkey, symkey_payload),
+ sizeof(*sk) - offsetof(symkey, symkey_payload));
LINK_SLIST(authfreekeys, sk, llink.f);
authnumkeys--;
authnumfreekeys++;
}
/*
* auth_findkey - find a key in the hash table
*/
struct savekey *
auth_findkey(
keyid_t id
)
{
symkey * sk;
for (sk = key_hash[KEYHASH(id)]; sk != NULL; sk = sk->hlink)
if (id == sk->keyid)
return sk;
return NULL;
}
/*
* auth_havekey - return TRUE if the key id is zero or known. The
* key needs not to be trusted.
*/
int
auth_havekey(
keyid_t id
)
{
return
(0 == id) ||
(cache_keyid == id) ||
(NULL != auth_findkey(id));
}
/*
* authhavekey - return TRUE and cache the key, if zero or both known
* and trusted.
*/
int
authhavekey(
keyid_t id
)
{
symkey * sk;
authkeylookups++;
if (0 == id || cache_keyid == id)
return !!(KEY_TRUSTED & cache_flags);
/*
* Search the bin for the key. If not found, or found but the key
* type is zero, somebody marked it trusted without specifying a
* key or key type. In this case consider the key missing.
*/
authkeyuncached++;
sk = auth_findkey(id);
if ((sk == NULL) || (sk->type == 0)) {
authkeynotfound++;
return FALSE;
}
/*
* If the key is not trusted, the key is not considered found.
*/
if ( ! (KEY_TRUSTED & sk->flags)) {
authnokey++;
return FALSE;
}
/*
* The key is found and trusted. Initialize the key cache.
*/
cache_keyid = sk->keyid;
cache_type = sk->type;
cache_flags = sk->flags;
cache_secret = sk->secret;
cache_secretsize = sk->secretsize;
cache_keyacclist = sk->keyacclist;
return TRUE;
}
/*
* authtrust - declare a key to be trusted/untrusted
*/
void
authtrust(
keyid_t id,
u_long trust
)
{
symkey * sk;
u_long lifetime;
/*
* Search bin for key; if it does not exist and is untrusted,
* forget it.
*/
sk = auth_findkey(id);
if (!trust && sk == NULL)
return;
/*
* There are two conditions remaining. Either it does not
* exist and is to be trusted or it does exist and is or is
* not to be trusted.
*/
if (sk != NULL) {
/*
* Key exists. If it is to be trusted, say so and update
* its lifetime. If no longer trusted, return it to the
* free list. Flush the cache first to be sure there are
* no discrepancies.
*/
authcache_flush_id(id);
if (trust > 0) {
sk->flags |= KEY_TRUSTED;
if (trust > 1)
sk->lifetime = current_time + trust;
else
sk->lifetime = 0;
} else {
freesymkey(sk);
}
return;
}
/*
* keyid is not present, but the is to be trusted. We allocate
* a new key, but do not specify a key type or secret.
*/
if (trust > 1) {
lifetime = current_time + trust;
} else {
lifetime = 0;
}
allocsymkey(id, KEY_TRUSTED, 0, lifetime, 0, NULL, NULL);
}
/*
* authistrusted - determine whether a key is trusted
*/
int
authistrusted(
keyid_t id
)
{
symkey * sk;
if (id == cache_keyid)
return !!(KEY_TRUSTED & cache_flags);
authkeyuncached++;
sk = auth_findkey(id);
if (sk == NULL || !(KEY_TRUSTED & sk->flags)) {
authkeynotfound++;
return FALSE;
}
return TRUE;
}
/*
* authistrustedip - determine if the IP is OK for the keyid
*/
int
authistrustedip(
keyid_t keyno,
sockaddr_u * sau
)
{
symkey * sk;
if (keyno == cache_keyid) {
return (KEY_TRUSTED & cache_flags) &&
- keyacc_contains(cache_keyacclist, sau, TRUE);
+ keyacc_contains(cache_keyacclist, sau, TRUE);
}
if (NULL != (sk = auth_findkey(keyno))) {
authkeyuncached++;
return (KEY_TRUSTED & sk->flags) &&
- keyacc_contains(sk->keyacclist, sau, TRUE);
+ keyacc_contains(sk->keyacclist, sau, TRUE);
}
authkeynotfound++;
return FALSE;
}
/* Note: There are two locations below where 'strncpy()' is used. While
* this function is a hazard by itself, it's essential that it is used
* here. Bug 1243 involved that the secret was filled with NUL bytes
* after the first NUL encountered, and 'strlcpy()' simply does NOT have
* this behaviour. So disabling the fix and reverting to the buggy
* behaviour due to compatibility issues MUST also fill with NUL and
* this needs 'strncpy'. Also, the secret is managed as a byte blob of a
* given size, and eventually truncating it and replacing the last byte
* with a NUL would be a bug.
* perlinger@ntp.org 2015-10-10
*/
void
MD5auth_setkey(
keyid_t keyno,
int keytype,
const u_char *key,
size_t secretsize,
KeyAccT *ka
)
{
symkey * sk;
u_char * secret;
DEBUG_ENSURE(keytype <= USHRT_MAX);
DEBUG_ENSURE(secretsize < 4 * 1024);
/*
* See if we already have the key. If so just stick in the
* new value.
*/
sk = auth_findkey(keyno);
if (sk != NULL && keyno == sk->keyid) {
/* TALOS-CAN-0054: make sure we have a new buffer! */
if (NULL != sk->secret) {
memset(sk->secret, 0, sk->secretsize);
free(sk->secret);
}
sk->secret = emalloc(secretsize + 1);
sk->type = (u_short)keytype;
sk->secretsize = secretsize;
/* make sure access lists don't leak here! */
if (ka != sk->keyacclist) {
keyacc_all_free(sk->keyacclist);
sk->keyacclist = ka;
}
#ifndef DISABLE_BUG1243_FIX
memcpy(sk->secret, key, secretsize);
#else
/* >MUST< use 'strncpy()' here! See above! */
strncpy((char *)sk->secret, (const char *)key,
secretsize);
#endif
authcache_flush_id(keyno);
return;
}
/*
* Need to allocate new structure. Do it.
*/
secret = emalloc(secretsize + 1);
#ifndef DISABLE_BUG1243_FIX
memcpy(secret, key, secretsize);
#else
/* >MUST< use 'strncpy()' here! See above! */
strncpy((char *)secret, (const char *)key, secretsize);
#endif
allocsymkey(keyno, 0, (u_short)keytype, 0,
secretsize, secret, ka);
#ifdef DEBUG
- if (debug >= 4) {
+ if (debug >= 1) {
size_t j;
printf("auth_setkey: key %d type %d len %d ", (int)keyno,
keytype, (int)secretsize);
for (j = 0; j < secretsize; j++) {
printf("%02x", secret[j]);
}
printf("\n");
}
#endif
}
/*
* auth_delkeys - delete non-autokey untrusted keys, and clear all info
- * except the trusted bit of non-autokey trusted keys, in
+ * except the trusted bit of non-autokey trusted keys, in
* preparation for rereading the keys file.
*/
void
auth_delkeys(void)
{
symkey * sk;
ITER_DLIST_BEGIN(key_listhead, sk, llink, symkey)
if (sk->keyid > NTP_MAXKEY) { /* autokey */
continue;
}
/*
* Don't lose info as to which keys are trusted. Make
* sure there are no dangling pointers!
*/
if (KEY_TRUSTED & sk->flags) {
if (sk->secret != NULL) {
- memset(sk->secret, 0, sk->secretsize);
+ zero_mem(sk->secret, sk->secretsize);
free(sk->secret);
sk->secret = NULL; /* TALOS-CAN-0054 */
}
sk->keyacclist = keyacc_all_free(sk->keyacclist);
sk->secretsize = 0;
sk->lifetime = 0;
} else {
freesymkey(sk);
}
ITER_DLIST_END()
}
/*
* auth_agekeys - delete keys whose lifetimes have expired
*/
void
auth_agekeys(void)
{
symkey * sk;
ITER_DLIST_BEGIN(key_listhead, sk, llink, symkey)
if (sk->lifetime > 0 && current_time > sk->lifetime) {
freesymkey(sk);
authkeyexpired++;
}
ITER_DLIST_END()
DPRINTF(1, ("auth_agekeys: at %lu keys %lu expired %lu\n",
current_time, authnumkeys, authkeyexpired));
}
/*
* authencrypt - generate message authenticator
*
* Returns length of authenticator field, zero if key not found.
*/
size_t
authencrypt(
keyid_t keyno,
u_int32 * pkt,
size_t length
)
{
/*
* A zero key identifier means the sender has not verified
* the last message was correctly authenticated. The MAC
* consists of a single word with value zero.
*/
authencryptions++;
- pkt[length / 4] = htonl(keyno);
+ pkt[length / KEY_MAC_LEN] = htonl(keyno);
if (0 == keyno) {
- return 4;
+ return KEY_MAC_LEN;
}
if (!authhavekey(keyno)) {
return 0;
}
return MD5authencrypt(cache_type,
cache_secret, cache_secretsize,
pkt, length);
}
/*
* authdecrypt - verify message authenticator
*
* Returns TRUE if authenticator valid, FALSE if invalid or not found.
*/
int
authdecrypt(
keyid_t keyno,
u_int32 * pkt,
size_t length,
size_t size
)
{
/*
* A zero key identifier means the sender has not verified
* the last message was correctly authenticated. For our
* purpose this is an invalid authenticator.
*/
authdecryptions++;
if (0 == keyno || !authhavekey(keyno) || size < 4) {
return FALSE;
}
return MD5authdecrypt(cache_type,
cache_secret, cache_secretsize,
pkt, length, size, keyno);
}
/* password decoding helpers */
static size_t
pwdecode_plain(
u_char * dst,
size_t dstlen,
const char * src
)
{
size_t srclen = strlen(src);
if (srclen > dstlen) {
errno = ENOMEM;
return (size_t)-1;
}
memcpy(dst, src, srclen);
return srclen;
}
static size_t
pwdecode_hex(
u_char * dst,
size_t dstlen,
const char * src
)
{
static const char hex[] = "00112233445566778899AaBbCcDdEeFf";
size_t srclen = strlen(src);
size_t reslen = (srclen >> 1) + (srclen & 1);
u_char tmp;
char *ptr;
size_t j;
if (reslen > dstlen) {
errno = ENOMEM;
reslen = (size_t)-1;
} else {
for (j = 0; j < srclen; ++j) {
tmp = *(const unsigned char*)(src + j);
ptr = strchr(hex, tmp);
if (ptr == NULL) {
errno = EINVAL;
reslen = (size_t)-1;
break;
}
- tmp = (u_char)((ptr - hex) > 1);
+ tmp = (u_char)((ptr - hex) >> 1);
if (j & 1)
dst[j >> 1] |= tmp;
else
dst[j >> 1] = tmp << 4;
}
}
return reslen;
}
/*
* authdecodepw - decode plaintext or hex-encoded password to binary
* secret. Returns size of secret in bytes or -1 on error.
*/
size_t
authdecodepw(
u_char * dst,
size_t dstlen,
const char * src,
enum AuthPwdEnc enc
)
{
size_t reslen;
if ( !(dst && dstlen && src)) {
errno = EINVAL;
reslen = (size_t)-1;
} else {
switch (enc) {
case AUTHPWD_UNSPEC:
if (strlen(src) <= 20)
reslen = pwdecode_plain(dst, dstlen, src);
else
reslen = pwdecode_hex(dst, dstlen, src);
break;
case AUTHPWD_PLAIN:
reslen = pwdecode_plain(dst, dstlen, src);
break;
case AUTHPWD_HEX:
reslen = pwdecode_hex(dst, dstlen, src);
break;
default:
errno = EINVAL;
reslen = (size_t)-1;
}
}
return reslen;
}
diff --git a/contrib/ntp/libntp/authreadkeys.c b/contrib/ntp/libntp/authreadkeys.c
index da91bd0d3443..fa2f5b540de4 100644
--- a/contrib/ntp/libntp/authreadkeys.c
+++ b/contrib/ntp/libntp/authreadkeys.c
@@ -1,394 +1,402 @@
/*
* authreadkeys.c - routines to support the reading of the key file
*/
#include <config.h>
#include <stdio.h>
#include <ctype.h>
//#include "ntpd.h" /* Only for DPRINTF */
//#include "ntp_fp.h"
#include "ntp.h"
#include "ntp_syslog.h"
#include "ntp_stdlib.h"
#include "ntp_keyacc.h"
#ifdef OPENSSL
#include "openssl/objects.h"
#include "openssl/evp.h"
#endif /* OPENSSL */
/* Forwards */
static char *nexttok (char **);
/*
* nexttok - basic internal tokenizing routine
*/
static char *
nexttok(
char **str
)
{
register char *cp;
char *starttok;
cp = *str;
/*
* Space past white space
*/
while (*cp == ' ' || *cp == '\t')
cp++;
/*
* Save this and space to end of token
*/
starttok = cp;
while (*cp != '\0' && *cp != '\n' && *cp != ' '
&& *cp != '\t' && *cp != '#')
cp++;
/*
* If token length is zero return an error, else set end of
* token to zero and return start.
*/
if (starttok == cp)
return NULL;
if (*cp == ' ' || *cp == '\t')
*cp++ = '\0';
else
*cp = '\0';
*str = cp;
return starttok;
}
/* TALOS-CAN-0055: possibly DoS attack by setting the key file to the
* log file. This is hard to prevent (it would need to check two files
* to be the same on the inode level, which will not work so easily with
* Windows or VMS) but we can avoid the self-amplification loop: We only
* log the first 5 errors, silently ignore the next 10 errors, and give
* up when when we have found more than 15 errors.
*
* This avoids the endless file iteration we will end up with otherwise,
* and also avoids overflowing the log file.
*
* Nevertheless, once this happens, the keys are gone since this would
* require a save/swap strategy that is not easy to apply due to the
* data on global/static level.
*/
static const u_int nerr_loglimit = 5u;
static const u_int nerr_maxlimit = 15;
static void log_maybe(u_int*, const char*, ...) NTP_PRINTF(2, 3);
typedef struct keydata KeyDataT;
struct keydata {
KeyDataT *next; /* queue/stack link */
KeyAccT *keyacclist; /* key access list */
keyid_t keyid; /* stored key ID */
u_short keytype; /* stored key type */
u_short seclen; /* length of secret */
u_char secbuf[1]; /* begin of secret (formal only)*/
};
static void
log_maybe(
u_int *pnerr,
const char *fmt ,
...)
{
va_list ap;
if ((NULL == pnerr) || (++(*pnerr) <= nerr_loglimit)) {
va_start(ap, fmt);
mvsyslog(LOG_ERR, fmt, ap);
va_end(ap);
}
}
static void
free_keydata(
KeyDataT *node
)
{
KeyAccT *kap;
if (node) {
while (node->keyacclist) {
kap = node->keyacclist;
node->keyacclist = kap->next;
free(kap);
}
/* purge secrets from memory before free()ing it */
memset(node, 0, sizeof(*node) + node->seclen);
free(node);
}
}
/*
* authreadkeys - (re)read keys from a file.
*/
int
authreadkeys(
const char *file
)
{
FILE *fp;
char *line;
char *token;
keyid_t keyno;
int keytype;
char buf[512]; /* lots of room for line */
u_char keystr[AUTHPWD_MAXSECLEN];
size_t len;
u_int nerr;
KeyDataT *list = NULL;
KeyDataT *next = NULL;
/*
* Open file. Complain and return if it can't be opened.
*/
fp = fopen(file, "r");
if (fp == NULL) {
msyslog(LOG_ERR, "authreadkeys: file '%s': %m",
file);
goto onerror;
}
INIT_SSL();
/*
* Now read lines from the file, looking for key entries. Put
* the data into temporary store for later propagation to avoid
* two-pass processing.
*/
nerr = 0;
while ((line = fgets(buf, sizeof buf, fp)) != NULL) {
if (nerr > nerr_maxlimit)
break;
token = nexttok(&line);
if (token == NULL)
continue;
/*
* First is key number. See if it is okay.
*/
keyno = atoi(token);
if (keyno < 1) {
log_maybe(&nerr,
"authreadkeys: cannot change key %s",
token);
continue;
}
if (keyno > NTP_MAXKEY) {
log_maybe(&nerr,
"authreadkeys: key %s > %d reserved for Autokey",
token, NTP_MAXKEY);
continue;
}
/*
* Next is keytype. See if that is all right.
*/
token = nexttok(&line);
if (token == NULL) {
log_maybe(&nerr,
"authreadkeys: no key type for key %d",
keyno);
continue;
}
/* We want to silently ignore keys where we do not
* support the requested digest type. OTOH, we want to
* make sure the file is well-formed. That means we
* have to process the line completely and have to
* finally throw away the result... This is a bit more
* work, but it also results in better error detection.
*/
#ifdef OPENSSL
/*
* The key type is the NID used by the message digest
* algorithm. There are a number of inconsistencies in
* the OpenSSL database. We attempt to discover them
* here and prevent use of inconsistent data later.
*/
keytype = keytype_from_text(token, NULL);
if (keytype == 0) {
log_maybe(NULL,
"authreadkeys: invalid type for key %d",
keyno);
# ifdef ENABLE_CMAC
} else if (NID_cmac != keytype &&
EVP_get_digestbynid(keytype) == NULL) {
log_maybe(NULL,
"authreadkeys: no algorithm for key %d",
keyno);
keytype = 0;
# endif /* ENABLE_CMAC */
}
#else /* !OPENSSL follows */
/*
* The key type is unused, but is required to be 'M' or
* 'm' for compatibility.
*/
- if (!(*token == 'M' || *token == 'm')) {
+ if (! (toupper(*token) == 'M')) {
log_maybe(NULL,
"authreadkeys: invalid type for key %d",
keyno);
keytype = 0;
} else {
keytype = KEY_TYPE_MD5;
}
#endif /* !OPENSSL */
/*
* Finally, get key and insert it. If it is longer than 20
* characters, it is a binary string encoded in hex;
* otherwise, it is a text string of printable ASCII
* characters.
*/
token = nexttok(&line);
if (token == NULL) {
log_maybe(&nerr,
"authreadkeys: no key for key %d", keyno);
continue;
}
next = NULL;
len = authdecodepw(keystr, sizeof(keystr), token, AUTHPWD_UNSPEC);
if (len > sizeof(keystr)) {
switch (errno) {
case ENOMEM:
log_maybe(&nerr,
"authreadkeys: passwd too long for key %d",
keyno);
break;
case EINVAL:
log_maybe(&nerr,
"authreadkeys: passwd has bad char for key %d",
keyno);
break;
default:
log_maybe(&nerr,
"authreadkeys: unknown errno %d for key %d",
errno, keyno);
break;
}
continue;
}
next = emalloc(sizeof(KeyDataT) + len);
next->keyacclist = NULL;
next->keyid = keyno;
next->keytype = keytype;
next->seclen = len;
memcpy(next->secbuf, keystr, len);
token = nexttok(&line);
if (token != NULL) { /* A comma-separated IP access list */
char *tp = token;
while (tp) {
char *i;
char *snp; /* subnet text pointer */
unsigned int snbits;
sockaddr_u addr;
i = strchr(tp, (int)',');
if (i) {
*i = '\0';
}
snp = strchr(tp, (int)'/');
if (snp) {
char *sp;
*snp++ = '\0';
snbits = 0;
sp = snp;
while (*sp != '\0') {
if (!isdigit((unsigned char)*sp))
break;
if (snbits > 1000)
break; /* overflow */
snbits = 10 * snbits + (*sp++ - '0'); /* ascii dependent */
}
if (*sp != '\0') {
log_maybe(&nerr,
"authreadkeys: Invalid character in subnet specification for <%s/%s> in key %d",
sp, snp, keyno);
goto nextip;
}
} else {
snbits = UINT_MAX;
}
if (is_ip_address(tp, AF_UNSPEC, &addr)) {
/* Make sure that snbits is valid for addr */
if ((snbits < UINT_MAX) &&
( (IS_IPV4(&addr) && snbits > 32) ||
(IS_IPV6(&addr) && snbits > 128))) {
log_maybe(NULL,
"authreadkeys: excessive subnet mask <%s/%s> for key %d",
tp, snp, keyno);
}
next->keyacclist = keyacc_new_push(
next->keyacclist, &addr, snbits);
} else {
log_maybe(&nerr,
"authreadkeys: invalid IP address <%s> for key %d",
tp, keyno);
}
nextip:
if (i) {
tp = i + 1;
} else {
tp = 0;
}
}
}
/* check if this has to be weeded out... */
if (0 == keytype) {
free_keydata(next);
next = NULL;
continue;
}
- INSIST(NULL != next);
+ DEBUG_INSIST(NULL != next);
+#if defined(OPENSSL) && defined(ENABLE_CMAC)
+ if (NID_cmac == keytype && len < 16) {
+ msyslog(LOG_WARNING, CMAC " keys are 128 bits, "
+ "zero-extending key %u by %u bits",
+ (u_int)keyno, 8 * (16 - (u_int)len));
+ }
+#endif /* OPENSSL && ENABLE_CMAC */
next->next = list;
list = next;
}
fclose(fp);
if (nerr > 0) {
const char * why = "";
+
if (nerr > nerr_maxlimit)
why = " (emergency break)";
msyslog(LOG_ERR,
"authreadkeys: rejecting file '%s' after %u error(s)%s",
file, nerr, why);
goto onerror;
}
/* first remove old file-based keys */
auth_delkeys();
/* insert the new key material */
while (NULL != (next = list)) {
list = next->next;
MD5auth_setkey(next->keyid, next->keytype,
next->secbuf, next->seclen, next->keyacclist);
next->keyacclist = NULL; /* consumed by MD5auth_setkey */
free_keydata(next);
}
return (1);
onerror:
/* Mop up temporary storage before bailing out. */
while (NULL != (next = list)) {
list = next->next;
free_keydata(next);
}
return (0);
}
diff --git a/contrib/ntp/libntp/msyslog.c b/contrib/ntp/libntp/msyslog.c
index ae950171f468..a1ba72792595 100644
--- a/contrib/ntp/libntp/msyslog.c
+++ b/contrib/ntp/libntp/msyslog.c
@@ -1,622 +1,623 @@
/*
* msyslog - either send a message to the terminal or print it on
* the standard output.
*
* Converted to use varargs, much better ... jks
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <stdio.h>
#include "ntp_string.h"
#include "ntp.h"
#include "ntp_debug.h"
#include "ntp_syslog.h"
#ifdef SYS_WINNT
# include <stdarg.h>
# include "..\ports\winnt\libntp\messages.h"
#endif
int syslogit = TRUE;
int msyslog_term = FALSE; /* duplicate to stdout/err */
int msyslog_term_pid = TRUE;
int msyslog_include_timestamp = TRUE;
FILE * syslog_file;
char * syslog_fname;
char * syslog_abs_fname;
/* libntp default ntp_syslogmask is all bits lit */
#define INIT_NTP_SYSLOGMASK ~(u_int32)0
u_int32 ntp_syslogmask = INIT_NTP_SYSLOGMASK;
extern char const * progname;
/* Declare the local functions */
void addto_syslog (int, const char *);
#ifndef VSNPRINTF_PERCENT_M
void format_errmsg (char *, size_t, const char *, int);
/* format_errmsg() is under #ifndef VSNPRINTF_PERCENT_M above */
void
format_errmsg(
char * nfmt,
size_t lennfmt,
const char * fmt,
int errval
)
{
char errmsg[256];
char c;
char *n;
const char *f;
size_t len;
n = nfmt;
f = fmt;
while ((c = *f++) != '\0' && n < (nfmt + lennfmt - 1)) {
if (c != '%') {
*n++ = c;
continue;
}
if ((c = *f++) != 'm') {
*n++ = '%';
if ('\0' == c)
break;
*n++ = c;
continue;
}
errno_to_str(errval, errmsg, sizeof(errmsg));
len = strlen(errmsg);
/* Make sure we have enough space for the error message */
if ((n + len) < (nfmt + lennfmt - 1)) {
memcpy(n, errmsg, len);
n += len;
}
}
*n = '\0';
}
#endif /* VSNPRINTF_PERCENT_M */
/*
* errno_to_str() - a thread-safe strerror() replacement.
* Hides the varied signatures of strerror_r().
* For Windows, we have:
* #define errno_to_str isc__strerror
*/
#ifndef errno_to_str
void
errno_to_str(
int err,
char * buf,
size_t bufsiz
)
{
# if defined(STRERROR_R_CHAR_P) || !HAVE_DECL_STRERROR_R
char * pstatic;
buf[0] = '\0';
# ifdef STRERROR_R_CHAR_P
pstatic = strerror_r(err, buf, bufsiz);
# else
pstatic = strerror(err);
# endif
if (NULL == pstatic && '\0' == buf[0])
snprintf(buf, bufsiz, "%s(%d): errno %d",
# ifdef STRERROR_R_CHAR_P
"strerror_r",
# else
"strerror",
# endif
err, errno);
/* protect against believing an int return is a pointer */
else if (pstatic != buf && pstatic > (char *)bufsiz)
strlcpy(buf, pstatic, bufsiz);
# else
int rc;
rc = strerror_r(err, buf, bufsiz);
if (rc < 0)
snprintf(buf, bufsiz, "strerror_r(%d): errno %d",
err, errno);
# endif
}
#endif /* errno_to_str */
/*
* addto_syslog()
* This routine adds the contents of a buffer to the syslog or an
* application-specific logfile.
*/
void
addto_syslog(
int level,
const char * msg
)
{
static char const * prevcall_progname;
static char const * prog;
const char nl[] = "\n";
const char empty[] = "";
FILE * term_file;
int log_to_term;
int log_to_file;
int pid;
const char * nl_or_empty;
const char * human_time;
/* setup program basename static var prog if needed */
if (progname != prevcall_progname) {
prevcall_progname = progname;
prog = strrchr(progname, DIR_SEP);
if (prog != NULL)
prog++;
else
prog = progname;
}
log_to_term = msyslog_term;
log_to_file = FALSE;
#if !defined(VMS) && !defined(SYS_VXWORKS)
if (syslogit)
syslog(level, "%s", msg);
else
#endif
if (syslog_file != NULL)
log_to_file = TRUE;
else
log_to_term = TRUE;
#if DEBUG
if (debug > 0)
log_to_term = TRUE;
#endif
if (!(log_to_file || log_to_term))
return;
/* syslog() adds the timestamp, name, and pid */
if (msyslog_include_timestamp)
human_time = humanlogtime();
else /* suppress gcc pot. uninit. warning */
human_time = NULL;
if (msyslog_term_pid || log_to_file)
pid = getpid();
else /* suppress gcc pot. uninit. warning */
pid = -1;
/* syslog() adds trailing \n if not present */
if ('\n' != msg[strlen(msg) - 1])
nl_or_empty = nl;
else
nl_or_empty = empty;
if (log_to_term) {
term_file = (level <= LOG_ERR)
? stderr
: stdout;
if (msyslog_include_timestamp)
fprintf(term_file, "%s ", human_time);
if (msyslog_term_pid)
fprintf(term_file, "%s[%d]: ", prog, pid);
fprintf(term_file, "%s%s", msg, nl_or_empty);
fflush(term_file);
}
if (log_to_file) {
if (msyslog_include_timestamp)
fprintf(syslog_file, "%s ", human_time);
fprintf(syslog_file, "%s[%d]: %s%s", prog, pid, msg,
nl_or_empty);
fflush(syslog_file);
}
}
int
mvsnprintf(
char * buf,
size_t bufsiz,
const char * fmt,
va_list ap
)
{
#ifndef VSNPRINTF_PERCENT_M
char nfmt[256];
#else
const char * nfmt = fmt;
#endif
int errval;
/*
* Save the error value as soon as possible
*/
#ifdef SYS_WINNT
errval = GetLastError();
if (NO_ERROR == errval)
#endif /* SYS_WINNT */
errval = errno;
#ifndef VSNPRINTF_PERCENT_M
format_errmsg(nfmt, sizeof(nfmt), fmt, errval);
#else
errno = errval;
#endif
return vsnprintf(buf, bufsiz, nfmt, ap);
}
int
mvfprintf(
FILE * fp,
const char * fmt,
va_list ap
)
{
#ifndef VSNPRINTF_PERCENT_M
char nfmt[256];
#else
const char * nfmt = fmt;
#endif
int errval;
/*
* Save the error value as soon as possible
*/
#ifdef SYS_WINNT
errval = GetLastError();
if (NO_ERROR == errval)
#endif /* SYS_WINNT */
errval = errno;
#ifndef VSNPRINTF_PERCENT_M
format_errmsg(nfmt, sizeof(nfmt), fmt, errval);
#else
errno = errval;
#endif
return vfprintf(fp, nfmt, ap);
}
int
mfprintf(
FILE * fp,
const char * fmt,
...
)
{
va_list ap;
int rc;
va_start(ap, fmt);
rc = mvfprintf(fp, fmt, ap);
va_end(ap);
return rc;
}
int
mprintf(
const char * fmt,
...
)
{
va_list ap;
int rc;
va_start(ap, fmt);
rc = mvfprintf(stdout, fmt, ap);
va_end(ap);
return rc;
}
int
msnprintf(
char * buf,
size_t bufsiz,
const char * fmt,
...
)
{
va_list ap;
int rc;
va_start(ap, fmt);
rc = mvsnprintf(buf, bufsiz, fmt, ap);
va_end(ap);
return rc;
}
void
msyslog(
int level,
const char * fmt,
...
)
{
char buf[1024];
va_list ap;
va_start(ap, fmt);
mvsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap);
addto_syslog(level, buf);
}
void
mvsyslog(
int level,
const char * fmt,
va_list ap
)
{
char buf[1024];
mvsnprintf(buf, sizeof(buf), fmt, ap);
addto_syslog(level, buf);
}
/*
* Initialize the logging
*
* Called once per process, including forked children.
*/
void
init_logging(
const char * name,
u_int32 def_syslogmask,
int is_daemon
)
{
static int was_daemon;
char * cp;
const char * pname;
/*
* ntpd defaults to only logging sync-category events, when
* NLOG() is used to conditionalize. Other libntp clients
* leave it alone so that all NLOG() conditionals will fire.
* This presumes all bits lit in ntp_syslogmask can't be
* configured via logconfig and all lit is thereby a sentinel
* that ntp_syslogmask is still at its default from libntp,
* keeping in mind this function is called in forked children
* where it has already been called in the parent earlier.
* Forked children pass 0 for def_syslogmask.
*/
if (INIT_NTP_SYSLOGMASK == ntp_syslogmask &&
0 != def_syslogmask)
ntp_syslogmask = def_syslogmask; /* set more via logconfig */
/*
* Logging. This may actually work on the gizmo board. Find a name
* to log with by using the basename
*/
cp = strrchr(name, DIR_SEP);
if (NULL == cp)
pname = name;
else
pname = 1 + cp; /* skip DIR_SEP */
progname = estrdup(pname);
#ifdef SYS_WINNT /* strip ".exe" */
cp = strrchr(progname, '.');
if (NULL != cp && !strcasecmp(cp, ".exe"))
*cp = '\0';
#endif
#if !defined(VMS)
if (is_daemon)
was_daemon = TRUE;
# ifndef LOG_DAEMON
openlog(progname, LOG_PID);
# else /* LOG_DAEMON */
# ifndef LOG_NTP
# define LOG_NTP LOG_DAEMON
# endif
openlog(progname, LOG_PID | LOG_NDELAY, (was_daemon)
? LOG_NTP
: 0);
# ifdef DEBUG
if (debug)
setlogmask(LOG_UPTO(LOG_DEBUG));
else
# endif /* DEBUG */
setlogmask(LOG_UPTO(LOG_DEBUG)); /* @@@ was INFO */
# endif /* LOG_DAEMON */
#endif /* !VMS */
}
/*
* change_logfile()
*
* Used to change from syslog to a logfile, or from one logfile to
* another, and to reopen logfiles after forking. On systems where
* ntpd forks, deals with converting relative logfile paths to
* absolute (root-based) because we reopen logfiles after the current
* directory has changed.
*/
int
change_logfile(
const char * fname,
int leave_crumbs
)
{
FILE * new_file;
const char * log_fname;
char * abs_fname;
#if !defined(SYS_WINNT) && !defined(SYS_VXWORKS) && !defined(VMS)
char curdir[512];
size_t cd_octets;
size_t octets;
#endif /* POSIX */
REQUIRE(fname != NULL);
log_fname = fname;
/*
* In a forked child of a parent which is logging to a file
* instead of syslog, syslog_file will be NULL and both
* syslog_fname and syslog_abs_fname will be non-NULL.
* If we are given the same filename previously opened
* and it's still open, there's nothing to do here.
*/
if (syslog_file != NULL && syslog_fname != NULL &&
0 == strcmp(syslog_fname, log_fname))
return 0;
if (0 == strcmp(log_fname, "stderr")) {
new_file = stderr;
abs_fname = estrdup(log_fname);
} else if (0 == strcmp(log_fname, "stdout")) {
new_file = stdout;
abs_fname = estrdup(log_fname);
} else {
if (syslog_fname != NULL &&
0 == strcmp(log_fname, syslog_fname))
log_fname = syslog_abs_fname;
#if !defined(SYS_WINNT) && !defined(SYS_VXWORKS) && !defined(VMS)
if (log_fname != syslog_abs_fname &&
DIR_SEP != log_fname[0] &&
0 != strcmp(log_fname, "stderr") &&
0 != strcmp(log_fname, "stdout") &&
NULL != getcwd(curdir, sizeof(curdir))) {
cd_octets = strlen(curdir);
/* trim any trailing '/' */
if (cd_octets > 1 &&
DIR_SEP == curdir[cd_octets - 1])
cd_octets--;
octets = cd_octets;
octets += 1; /* separator '/' */
octets += strlen(log_fname);
octets += 1; /* NUL terminator */
abs_fname = emalloc(octets);
snprintf(abs_fname, octets, "%.*s%c%s",
(int)cd_octets, curdir, DIR_SEP,
log_fname);
} else
#endif
abs_fname = estrdup(log_fname);
TRACE(1, ("attempting to open log %s\n", abs_fname));
new_file = fopen(abs_fname, "a");
}
if (NULL == new_file) {
free(abs_fname);
return -1;
}
/* leave a pointer in the old log */
if (leave_crumbs && (syslogit || log_fname != syslog_abs_fname))
msyslog(LOG_NOTICE, "switching logging to file %s",
abs_fname);
if (syslog_file != NULL &&
syslog_file != stderr && syslog_file != stdout &&
fileno(syslog_file) != fileno(new_file))
fclose(syslog_file);
syslog_file = new_file;
if (log_fname == syslog_abs_fname) {
free(abs_fname);
} else {
if (syslog_abs_fname != NULL &&
syslog_abs_fname != syslog_fname)
free(syslog_abs_fname);
if (syslog_fname != NULL)
free(syslog_fname);
syslog_fname = estrdup(log_fname);
syslog_abs_fname = abs_fname;
}
syslogit = FALSE;
return 0;
}
/*
* setup_logfile()
*
* Redirect logging to a file if requested with -l/--logfile or via
* ntp.conf logfile directive.
*
* This routine is invoked three different times in the sequence of a
* typical daemon ntpd with DNS lookups to do. First it is invoked in
* the original ntpd process, then again in the daemon after closing
* all descriptors. In both of those cases, ntp.conf has not been
* processed, so only -l/--logfile will trigger logfile redirection in
* those invocations. Finally, if DNS names are resolved, the worker
* child invokes this routine after its fork and close of all
* descriptors. In this case, ntp.conf has been processed and any
* "logfile" directive needs to be honored in the child as well.
*/
void
setup_logfile(
const char * name
)
{
if (NULL == syslog_fname && NULL != name) {
if (-1 == change_logfile(name, TRUE))
msyslog(LOG_ERR, "Cannot open log file %s, %m",
name);
return ;
}
if (NULL == syslog_fname)
return;
if (-1 == change_logfile(syslog_fname, FALSE))
msyslog(LOG_ERR, "Cannot reopen log file %s, %m",
syslog_fname);
}
-/* Helper for unit tests, where stdout + stderr are piped to the same
- * stream. This works moderately reliable only if both streams are
+/*
+ * Helper for unit tests, where stdout + stderr are piped to the same
+ * stream. This works moderately reliably only if both streams are
* unbuffered or line buffered. Unfortunately stdout can be fully
* buffered on pipes or files...
*/
int
change_iobufs(
int how
)
{
int retv = 0;
# ifdef HAVE_SETVBUF
int mode;
switch (how) {
case 0 : mode = _IONBF; break; /* no buffering */
case 1 : mode = _IOLBF; break; /* line buffering */
case 2 : mode = _IOFBF; break; /* full buffering */
default: mode = _IOLBF; break; /* line buffering */
}
retv = 1;
if (setvbuf(stdout, NULL, mode, BUFSIZ) != 0)
retv = -1;
if (setvbuf(stderr, NULL, mode, BUFSIZ) != 0)
retv = -1;
# else
UNUSED_ARG(how);
# endif
return retv;
}
diff --git a/contrib/ntp/libparse/clk_hopf6021.c b/contrib/ntp/libparse/clk_hopf6021.c
index c5980ef13f2b..a747581b75dc 100644
--- a/contrib/ntp/libparse/clk_hopf6021.c
+++ b/contrib/ntp/libparse/clk_hopf6021.c
@@ -1,302 +1,305 @@
/*
* /src/NTP/ntp4-dev/libparse/clk_hopf6021.c,v 4.10 2004/11/14 15:29:41 kardel RELEASE_20050508_A
*
* clk_hopf6021.c,v 4.10 2004/11/14 15:29:41 kardel RELEASE_20050508_A
*
* Radiocode Clocks HOPF Funkuhr 6021 mit serieller Schnittstelle
* base code version from 24th Nov 1995 - history at end
*
* Created by F.Schnekenbuehl <frank@comsys.dofn.de> from clk_rcc8000.c
* Nortel DASA Network Systems GmbH, Department: ND250
* A Joint venture of Daimler-Benz Aerospace and Nortel
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
+#include <ntp_types.h>
+
#if defined(REFCLOCK) && defined(CLOCK_PARSE) && defined(CLOCK_HOPF6021)
#include "ntp_fp.h"
#include "ntp_unixtime.h"
#include "ntp_calendar.h"
-#include "ascii.h"
#include "parse.h"
#ifndef PARSESTREAM
#include "ntp_stdlib.h"
#include <stdio.h>
#else
#include "sys/parsestreams.h"
extern int printf (const char *, ...);
#endif
+#include "ascii.h"
+
/*
* hopf Funkuhr 6021
* used with 9600,8N1,
* UTC ueber serielle Schnittstelle
* Sekundenvorlauf ON
* ETX zum Sekundenvorlauf ON
* Datenstring 6021
* Ausgabe Uhrzeit und Datum
* Senden mit Steuerzeichen
* Senden sekuendlich
*/
/*
* Type 6021 Serial Output format
*
* 000000000011111111 / char
* 012345678901234567 \ position
* sABHHMMSSDDMMYYnre Actual
* C4110046231195 Parse
* s enr Check
*
* s = STX (0x02), e = ETX (0x03)
* n = NL (0x0A), r = CR (0x0D)
*
* A B - Status and weekday
*
* A - Status
*
* 8 4 2 1
* x x x 0 - no announcement
* x x x 1 - Summertime - wintertime - summertime announcement
* x x 0 x - Wintertime
* x x 1 x - Summertime
* 0 0 x x - Time/Date invalid
* 0 1 x x - Internal clock used
* 1 0 x x - Radio clock
* 1 1 x x - Radio clock highprecision
*
* B - 8 4 2 1
* 0 x x x - MESZ/MEZ
* 1 x x x - UTC
* x 0 0 1 - Monday
* x 0 1 0 - Tuesday
* x 0 1 1 - Wednesday
* x 1 0 0 - Thursday
* x 1 0 1 - Friday
* x 1 1 0 - Saturday
* x 1 1 1 - Sunday
*/
#define HOPF_DSTWARN 0x01 /* DST switch warning */
#define HOPF_DST 0x02 /* DST in effect */
#define HOPF_MODE 0x0C /* operation mode mask */
#define HOPF_INVALID 0x00 /* no time code available */
#define HOPF_INTERNAL 0x04 /* internal clock */
#define HOPF_RADIO 0x08 /* radio clock */
#define HOPF_RADIOHP 0x0C /* high precision radio clock */
#define HOPF_UTC 0x08 /* time code in UTC */
#define HOPF_WMASK 0x07 /* mask for weekday code */
static struct format hopf6021_fmt =
{
{
{ 9, 2 }, {11, 2}, { 13, 2}, /* Day, Month, Year */
{ 3, 2 }, { 5, 2}, { 7, 2}, /* Hour, Minute, Second */
{ 2, 1 }, { 1, 1}, { 0, 0}, /* Weekday, Flags, Zone */
/* ... */
},
(const unsigned char *)"\002 \n\r\003",
0
};
#define OFFS(x) format->field_offsets[(x)].offset
#define STOI(x, y) Stoi(&buffer[OFFS(x)], y, format->field_offsets[(x)].length)
static parse_cvt_fnc_t cvt_hopf6021;
static parse_inp_fnc_t inp_hopf6021;
static unsigned char hexval(unsigned char);
clockformat_t clock_hopf6021 =
{
inp_hopf6021, /* HOPF 6021 input handling */
cvt_hopf6021, /* Radiocode clock conversion */
0, /* no direct PPS monitoring */
(void *)&hopf6021_fmt, /* conversion configuration */
"hopf Funkuhr 6021", /* clock format name */
19, /* string buffer */
0 /* private data length, no private data */
};
/* parse_cvt_fnc_t cvt_hopf6021 */
static u_long
cvt_hopf6021(
unsigned char *buffer,
int size,
struct format *format,
clocktime_t *clock_time,
void *local
)
{
unsigned char status,weekday;
if (!Strok(buffer, format->fixed_string))
{
return CVT_NONE;
}
if ( STOI(O_DAY, &clock_time->day) ||
STOI(O_MONTH, &clock_time->month) ||
STOI(O_YEAR, &clock_time->year) ||
STOI(O_HOUR, &clock_time->hour) ||
STOI(O_MIN, &clock_time->minute) ||
STOI(O_SEC, &clock_time->second)
)
{
return CVT_FAIL|CVT_BADFMT;
}
clock_time->usecond = 0;
clock_time->flags = 0;
status = hexval(buffer[OFFS(O_FLAGS)]);
weekday = hexval(buffer[OFFS(O_WDAY)]);
if ((status == 0xFF) || (weekday == 0xFF))
{
return CVT_FAIL|CVT_BADFMT;
}
if (weekday & HOPF_UTC)
{
clock_time->flags |= PARSEB_UTC;
clock_time->utcoffset = 0;
}
else if (status & HOPF_DST)
{
clock_time->flags |= PARSEB_DST;
clock_time->utcoffset = -2*60*60; /* MET DST */
}
else
{
clock_time->utcoffset = -1*60*60; /* MET */
}
if (status & HOPF_DSTWARN)
{
clock_time->flags |= PARSEB_ANNOUNCE;
}
switch (status & HOPF_MODE)
{
default: /* dummy: we cover all 4 cases. */
case HOPF_INVALID: /* Time/Date invalid */
clock_time->flags |= PARSEB_POWERUP;
break;
case HOPF_INTERNAL: /* internal clock */
clock_time->flags |= PARSEB_NOSYNC;
break;
case HOPF_RADIO: /* Radio clock */
case HOPF_RADIOHP: /* Radio clock high precision */
break;
}
return CVT_OK;
}
/*
* parse_inp_fnc_t inp_hopf6021
*
* grab data from input stream
*/
static u_long
inp_hopf6021(
parse_t *parseio,
char ch,
timestamp_t *tstamp
)
{
unsigned int rtc;
parseprintf(DD_PARSE, ("inp_hopf6021(0x%p, 0x%x, ...)\n", (void*)parseio, ch));
switch (ch)
{
case ETX:
parseprintf(DD_PARSE, ("inp_hopf6021: EOL seen\n"));
parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */
if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP)
return parse_end(parseio);
else
return rtc;
default:
return parse_addchar(parseio, ch);
}
}
/*
* convert a hex-digit to numeric value
*/
static unsigned char
hexval(
unsigned char ch
)
{
unsigned int dv;
if ((dv = ch - '0') >= 10u)
{
if ((dv -= 'A'-'0') < 6u || (dv -= 'a'-'A') < 6u)
{
dv += 10;
}
else
{
dv = 0xFF;
}
}
return (unsigned char)dv;
}
#else /* not (REFCLOCK && CLOCK_PARSE && CLOCK_HOPF6021) */
-int clk_hopf6021_bs;
+NONEMPTY_TRANSLATION_UNIT
#endif /* not (REFCLOCK && CLOCK_PARSE && CLOCK_HOPF6021) */
/*
* History:
*
* clk_hopf6021.c,v
* Revision 4.10 2004/11/14 15:29:41 kardel
* support PPSAPI, upgrade Copyright to Berkeley style
*
* Revision 4.7 1999/11/28 09:13:49 kardel
* RECON_4_0_98F
*
* Revision 4.6 1998/11/15 20:27:57 kardel
* Release 4.0.73e13 reconcilation
*
* Revision 4.5 1998/06/14 21:09:35 kardel
* Sun acc cleanup
*
* Revision 4.4 1998/06/13 12:02:38 kardel
* fix SYSV clock name clash
*
* Revision 4.3 1998/06/12 15:22:27 kardel
* fix prototypes
*
* Revision 4.2 1998/06/12 09:13:25 kardel
* conditional compile macros fixed
* printf prototype
*
* Revision 4.1 1998/05/24 09:39:52 kardel
* implementation of the new IO handling model
*
* Revision 4.0 1998/04/10 19:45:29 kardel
* Start 4.0 release version numbering
*
* from V3 3.6 log info deleted 1998/04/11 kardel
*/
diff --git a/contrib/ntp/libparse/clk_wharton.c b/contrib/ntp/libparse/clk_wharton.c
index 371137dc6fe8..e1ef61d55bdb 100644
--- a/contrib/ntp/libparse/clk_wharton.c
+++ b/contrib/ntp/libparse/clk_wharton.c
@@ -1,177 +1,180 @@
/*
* /src/NTP/ntp4-dev/libparse/clk_wharton.c,v 4.2 2004/11/14 15:29:41 kardel RELEASE_20050508_A
*
* clk_wharton.c,v 4.2 2004/11/14 15:29:41 kardel RELEASE_20050508_A
*
* From Philippe De Muyter <phdm@macqel.be>, 1999
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
+#include <ntp_types.h>
+
#if defined(REFCLOCK) && defined(CLOCK_PARSE) && defined(CLOCK_WHARTON_400A)
/*
* Support for WHARTON 400A Series clock + 404.2 serial interface.
*/
#include "ntp_fp.h"
-#include "ascii.h"
#include "parse.h"
#ifndef PARSESTREAM
#include "ntp_stdlib.h"
#include <stdio.h>
#else
#include "sys/parsestreams.h"
extern void printf (const char *, ...);
#endif
+#include "ascii.h"
+
/*
* In private e-mail alastair@wharton.co.uk said :
* "If you are going to use the 400A and 404.2 system [for ntp] I recommend
* that you set the 400A to output the message every second. The start of
* transmission of the first byte of the message is synchronised to the
* second edge."
* The WHARTON 400A Series is able to send date/time serial messages
* in 7 output formats. We use format 1 here because it is the shortest.
* For use with this driver, the WHARTON 400A Series clock must be set-up
* as follows :
* Programmable Selected
* Option No Option
* BST or CET display 3 9 or 11
* No external controller 7 0
* Serial Output Format 1 9 1
* Baud rate 9600 bps 10 96
* Bit length 8 bits 11 8
* Parity even 12 E
*
* WHARTON 400A Series output format 1 is as follows :
*
* Timestamp STXssmmhhDDMMYYSETX
* Pos 0 12345678901234
* 0 00000000011111
*
* STX start transmission (ASCII 0x02)
* ETX end transmission (ASCII 0x03)
* ss Second expressed in reversed decimal (units then tens)
* mm Minute expressed in reversed decimal
* hh Hour expressed in reversed decimal
* DD Day of month expressed in reversed decimal
* MM Month expressed in reversed decimal (January is 1)
* YY Year (without century) expressed in reversed decimal
* S Status byte : 0x30 +
* bit 0 0 = MSF source 1 = DCF source
* bit 1 0 = Winter time 1 = Summer time
* bit 2 0 = not synchronised 1 = synchronised
* bit 3 0 = no early warning 1 = early warning
*
*/
static parse_cvt_fnc_t cvt_wharton_400a;
static parse_inp_fnc_t inp_wharton_400a;
/*
* parse_cvt_fnc_t cvt_wharton_400a
*
* convert simple type format
*/
static u_long
cvt_wharton_400a(
unsigned char *buffer,
int size,
struct format *format,
clocktime_t *clock_time,
void *local
)
{
int i;
/* The given `size' includes a terminating null-character. */
if (size != 15 || buffer[0] != STX || buffer[14] != ETX
|| buffer[13] < '0' || buffer[13] > ('0' + 0xf))
return CVT_NONE;
for (i = 1; i < 13; i += 1)
if (buffer[i] < '0' || buffer[i] > '9')
return CVT_NONE;
clock_time->second = (buffer[2] - '0') * 10 + buffer[1] - '0';
clock_time->minute = (buffer[4] - '0') * 10 + buffer[3] - '0';
clock_time->hour = (buffer[6] - '0') * 10 + buffer[5] - '0';
clock_time->day = (buffer[8] - '0') * 10 + buffer[7] - '0';
clock_time->month = (buffer[10] - '0') * 10 + buffer[9] - '0';
clock_time->year = (buffer[12] - '0') * 10 + buffer[11] - '0';
clock_time->usecond = 0;
if (buffer[13] & 0x1) /* We have CET time */
clock_time->utcoffset = -1*60*60;
else /* We have BST time */
clock_time->utcoffset = 0;
if (buffer[13] & 0x2) {
clock_time->flags |= PARSEB_DST;
clock_time->utcoffset += -1*60*60;
}
if (!(buffer[13] & 0x4))
clock_time->flags |= PARSEB_NOSYNC;
if (buffer[13] & 0x8)
clock_time->flags |= PARSEB_ANNOUNCE;
return CVT_OK;
}
/*
* parse_inp_fnc_t inp_wharton_400a
*
* grab data from input stream
*/
static u_long
inp_wharton_400a(
parse_t *parseio,
char ch,
timestamp_t *tstamp
)
{
unsigned int rtc;
parseprintf(DD_PARSE, ("inp_wharton_400a(0x%p, 0x%x, ...)\n", (void*)parseio, ch));
switch (ch)
{
case STX:
parseprintf(DD_PARSE, ("inp_wharton_400a: STX seen\n"));
parseio->parse_index = 1;
parseio->parse_data[0] = ch;
parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */
return PARSE_INP_SKIP;
case ETX:
parseprintf(DD_PARSE, ("inp_wharton_400a: ETX seen\n"));
if ((rtc = parse_addchar(parseio, ch)) == PARSE_INP_SKIP)
return parse_end(parseio);
else
return rtc;
default:
return parse_addchar(parseio, ch);
}
}
clockformat_t clock_wharton_400a =
{
inp_wharton_400a, /* input handling function */
cvt_wharton_400a, /* conversion function */
0, /* no PPS monitoring */
0, /* conversion configuration */
"WHARTON 400A Series clock Output Format 1", /* String format name */
15, /* string buffer */
0 /* no private data (complete packets) */
};
#else /* not (REFCLOCK && CLOCK_PARSE && CLOCK_WHARTON_400A) */
-int clk_wharton_400a_bs;
+NONEMPTY_TRANSLATION_UNIT
#endif /* not (REFCLOCK && CLOCK_PARSE && CLOCK_WHARTON_400A) */
/*
* clk_wharton.c,v
* Revision 4.1 1999/02/28 15:27:24 kardel
* wharton clock integration
*
*/
diff --git a/contrib/ntp/ntpd/invoke-ntp.conf.texi b/contrib/ntp/ntpd/invoke-ntp.conf.texi
index ff708155cd4e..86a039ea6f49 100644
--- a/contrib/ntp/ntpd/invoke-ntp.conf.texi
+++ b/contrib/ntp/ntpd/invoke-ntp.conf.texi
@@ -1,3085 +1,3085 @@
@node ntp.conf Notes
@section Notes about ntp.conf
@pindex ntp.conf
@cindex Network Time Protocol (NTP) daemon configuration file format
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:49:31 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:37:38 AM by AutoGen 5.18.16
# From the definitions ntp.conf.def
# and the template file agtexi-file.tpl
@end ignore
The
@code{ntp.conf}
configuration file is read at initial startup by the
@code{ntpd(1ntpdmdoc)}
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
@file{/etc}
directory,
but could be installed elsewhere
(see the daemon's
@code{-c}
command line option).
The file format is similar to other
@sc{unix}
configuration files.
Comments begin with a
@quoteleft{}#@quoteright{}
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
The rest of this page describes the configuration and control options.
The
"Notes on Configuring NTP and Setting up an NTP Subnet"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp})
contains an extended discussion of these options.
In addition to the discussion of general
@ref{Configuration Options},
there are sections describing the following supported functionality
and the options used to control it:
@itemize @bullet
@item
@ref{Authentication Support}
@item
@ref{Monitoring Support}
@item
@ref{Access Control Support}
@item
@ref{Automatic NTP Configuration Options}
@item
@ref{Reference Clock Support}
@item
@ref{Miscellaneous Options}
@end itemize
Following these is a section describing
@ref{Miscellaneous Options}.
While there is a rich set of options available,
the only required option is one or more
@code{pool},
@code{server},
@code{peer},
@code{broadcast}
or
@code{manycastclient}
commands.
@node Configuration Support
@subsection Configuration Support
Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
@subsubsection Configuration Commands
The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
If the Basic Socket Interface Extensions for IPv6 (RFC-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
@code{reslist}
billboard generated
by
@code{ntpq(1ntpqmdoc)}
or
@code{ntpdc(1ntpdcmdoc)},
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
@quotedblleft{}:@quotedblright{}
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
Note that in contexts where a host name is expected, a
@code{-4}
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
@code{-6}
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
@table @asis
@item @code{pool} @kbd{address} @code{[@code{burst}]} @code{[@code{iburst}]} @code{[@code{version} @kbd{version}]} @code{[@code{prefer}]} @code{[@code{minpoll} @kbd{minpoll}]} @code{[@code{maxpoll} @kbd{maxpoll}]} @code{[@code{xmtnonce}]}
@item @code{server} @kbd{address} @code{[@code{key} @kbd{key} @kbd{|} @code{autokey}]} @code{[@code{burst}]} @code{[@code{iburst}]} @code{[@code{version} @kbd{version}]} @code{[@code{prefer}]} @code{[@code{minpoll} @kbd{minpoll}]} @code{[@code{maxpoll} @kbd{maxpoll}]} @code{[@code{true}]} @code{[@code{xmtnonce}]}
@item @code{peer} @kbd{address} @code{[@code{key} @kbd{key} @kbd{|} @code{autokey}]} @code{[@code{version} @kbd{version}]} @code{[@code{prefer}]} @code{[@code{minpoll} @kbd{minpoll}]} @code{[@code{maxpoll} @kbd{maxpoll}]} @code{[@code{true}]} @code{[@code{xleave}]}
@item @code{broadcast} @kbd{address} @code{[@code{key} @kbd{key} @kbd{|} @code{autokey}]} @code{[@code{version} @kbd{version}]} @code{[@code{prefer}]} @code{[@code{minpoll} @kbd{minpoll}]} @code{[@code{ttl} @kbd{ttl}]} @code{[@code{xleave}]}
@item @code{manycastclient} @kbd{address} @code{[@code{key} @kbd{key} @kbd{|} @code{autokey}]} @code{[@code{version} @kbd{version}]} @code{[@code{prefer}]} @code{[@code{minpoll} @kbd{minpoll}]} @code{[@code{maxpoll} @kbd{maxpoll}]} @code{[@code{ttl} @kbd{ttl}]}
@end table
These five commands specify the time server name or address to
be used and the mode in which to operate.
The
@kbd{address}
can be
either a DNS name or an IP address in dotted-quad notation.
Additional information on association behavior can be found in the
"Association Management"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
@table @asis
@item @code{pool}
For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
@item @code{server}
For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
@emph{not}
be used for type
b or m addresses.
@item @code{peer}
For type s addresses (only), this command mobilizes a
persistent symmetric-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
@item @code{broadcast}
For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
@kbd{address}
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
@code{broadcastclient}
or
@code{multicastclient}
commands
below.
@item @code{manycastclient}
For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
@code{manycastserver}
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
@code{manycastserver}
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
@kbd{address}
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
@code{server}
command.
The remaining servers are discarded as if never
heard.
@end table
Options:
@table @asis
@item @code{autokey}
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
@ref{Authentication Options}.
@item @code{burst}
when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
@code{calldelay}
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
@code{server}
command and s addresses.
@item @code{iburst}
When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
@code{calldelay}
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
@code{server}
command and s addresses and when
@code{ntpd(1ntpdmdoc)}
is started with the
@code{-q}
option.
@item @code{key} @kbd{key}
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
@kbd{key}
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
@item @code{minpoll} @kbd{minpoll}
@item @code{maxpoll} @kbd{maxpoll}
These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
@code{maxpoll}
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
@code{minpoll}
option to a lower limit of 4 (16 s).
@item @code{noselect}
Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
@item @code{preempt}
Says the association can be preempted.
@item @code{prefer}
Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp})
for further information.
@item @code{true}
Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
@emph{only}
be used while testing an association.
@item @code{ttl} @kbd{ttl}
This option is used only with broadcast server and manycast
client modes.
It specifies the time-to-live
@kbd{ttl}
to
use on broadcast server and multicast server and the maximum
@kbd{ttl}
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
@item @code{version} @kbd{version}
Specifies the version number to be used for outgoing NTP
packets.
Versions 1-4 are the choices, with version 4 the
default.
@item @code{xleave}
Valid in
@code{peer}
and
@code{broadcast}
modes only, this flag enables interleave mode.
@item @code{xmtnonce}
Valid only for
@code{server}
and
@code{pool}
modes, this flag puts a random number in the packet's transmit timestamp.
@end table
@subsubsection Auxiliary Commands
@table @asis
@item @code{broadcastclient}
This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric-key or public-key
authentication as described in
@ref{Authentication Options}.
@item @code{manycastserver} @kbd{address} @kbd{...}
This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric-key or public-key
authentication as described in
@ref{Authentication Options}.
@item @code{multicastclient} @kbd{address} @kbd{...}
This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric-key or
public-key authentication as described in
@ref{Authentication Options}.
@item @code{mdnstries} @kbd{number}
If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
@code{mdnstries}
times.
After all,
@code{ntpd}
may be starting before mDNS.
The default value for
@code{mdnstries}
is 5.
@end table
@node Authentication Support
@subsection Authentication Support
Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed-MD5.
Either algorithm computes a message digest, or one-way hash, which
can be used to verify the server has the correct private key and
key identifier.
NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
Authentication is configured separately for each association
using the
@code{key}
or
@code{autokey}
subcommand on the
@code{peer},
@code{server},
@code{broadcast}
and
@code{manycastclient}
configuration commands as described in
@ref{Configuration Options}
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
The
@code{auth}
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
@code{enable}
and
@code{disable}
commands and also by remote
configuration commands sent by a
@code{ntpdc(1ntpdcmdoc)}
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
@code{auth}
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
@ref{Automatic NTP Configuration Options}
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
@code{http://www.ntp.org/}.
@subsubsection Symmetric-Key Cryptography
The original RFC-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
@file{ntp.keys},
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
utility programs.
When
@code{ntpd(1ntpdmdoc)}
is first started, it reads the key file specified in the
@code{keys}
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
@code{trusted}
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
@code{ntpdc(1ntpdcmdoc)}.
This also provides a revocation capability that can be used
if a key becomes compromised.
The
@code{requestkey}
command selects the key used as the password for the
@code{ntpdc(1ntpdcmdoc)}
utility, while the
@code{controlkey}
command selects the key used as the password for the
@code{ntpq(1ntpqmdoc)}
utility.
@subsubsection Public Key Cryptography
NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S-KEY scheme,
in which a pseudo-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
@ref{Autonomous Authentication}
page.
The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
@code{ntp-keygen(1ntpkeygenmdoc)}
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
@code{md5WithRSAEncryption},
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
@subsubsection Naming and Addressing
It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can't be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
By convention, the name of an Autokey host is the name returned
by the Unix
@code{gethostname(2)}
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
@subsubsection Operation
A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
@code{server}
or
@code{peer}
configuration command and no
@code{key}
or
@code{autokey}
subcommands are present, the association is not
authenticated; if the
@code{key}
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
@code{autokey}
subcommand is present, the association is authenticated
using Autokey.
When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice's unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob's symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it's the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto-NAK, which tells her
something broke.
She can see the evidence using the
@code{ntpq(1ntpqmdoc)}
program.
Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
@subsubsection Key Management
The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
@code{ntp-keygen(1ntpkeygenmdoc)}
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
utility programs.
The remaining files are necessary only for the
Autokey protocol.
Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
@code{trustRoot};.
Other extension fields are ignored.
@subsubsection Authentication Commands
@table @asis
@item @code{autokey} @code{[@kbd{logsec}]}
Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
@item @code{controlkey} @kbd{key}
Specifies the key identifier to use with the
@code{ntpq(1ntpqmdoc)}
utility, which uses the standard
protocol defined in RFC-1305.
The
@kbd{key}
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
@item @code{crypto} @code{[@code{cert} @kbd{file}]} @code{[@code{leap} @kbd{file}]} @code{[@code{randfile} @kbd{file}]} @code{[@code{host} @kbd{file}]} @code{[@code{sign} @kbd{file}]} @code{[@code{gq} @kbd{file}]} @code{[@code{gqpar} @kbd{file}]} @code{[@code{iffpar} @kbd{file}]} @code{[@code{mvpar} @kbd{file}]} @code{[@code{pw} @kbd{password}]}
This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
@code{keysdir}
command or default
@file{/usr/local/etc}.
Following are the subcommands:
@table @asis
@item @code{cert} @kbd{file}
Specifies the location of the required host public certificate file.
This overrides the link
@file{ntpkey_cert_}@kbd{hostname}
in the keys directory.
@item @code{gqpar} @kbd{file}
Specifies the location of the optional GQ parameters file.
This
overrides the link
@file{ntpkey_gq_}@kbd{hostname}
in the keys directory.
@item @code{host} @kbd{file}
Specifies the location of the required host key file.
This overrides
the link
@file{ntpkey_key_}@kbd{hostname}
in the keys directory.
@item @code{iffpar} @kbd{file}
Specifies the location of the optional IFF parameters file.
This overrides the link
@file{ntpkey_iff_}@kbd{hostname}
in the keys directory.
@item @code{leap} @kbd{file}
Specifies the location of the optional leapsecond file.
This overrides the link
@file{ntpkey_leap}
in the keys directory.
@item @code{mvpar} @kbd{file}
Specifies the location of the optional MV parameters file.
This overrides the link
@file{ntpkey_mv_}@kbd{hostname}
in the keys directory.
@item @code{pw} @kbd{password}
Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
@item @code{randfile} @kbd{file}
Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
@item @code{sign} @kbd{file}
Specifies the location of the optional sign key file.
This overrides
the link
@file{ntpkey_sign_}@kbd{hostname}
in the keys directory.
If this file is
not found, the host key is also the sign key.
@end table
@item @code{keys} @kbd{keyfile}
Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
@code{ntpd(1ntpdmdoc)},
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
when operating with symmetric key cryptography.
This is the same operation as the
@code{-k}
command line option.
@item @code{keysdir} @kbd{path}
This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
@file{/usr/local/etc/}.
@item @code{requestkey} @kbd{key}
Specifies the key identifier to use with the
@code{ntpdc(1ntpdcmdoc)}
utility program, which uses a
proprietary protocol specific to this implementation of
@code{ntpd(1ntpdmdoc)}.
The
@kbd{key}
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
@item @code{revoke} @kbd{logsec}
Specifies the interval between re-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
@item @code{trustedkey} @kbd{key} @kbd{...}
Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
@kbd{key}
arguments are 32-bit unsigned
integers with values from 1 to 65,535.
@end table
@subsubsection Error Codes
The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
@table @asis
@item 101
(bad field format or length)
The packet has invalid version, length or format.
@item 102
(bad timestamp)
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
@item 103
(bad filestamp)
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
@item 104
(bad or missing public key)
The public key is missing, has incorrect format or is an unsupported type.
@item 105
(unsupported digest type)
The server requires an unsupported digest/signature scheme.
@item 106
(mismatched digest types)
Not used.
@item 107
(bad signature length)
The signature length does not match the current public key.
@item 108
(signature not verified)
The message fails the signature check.
It could be bogus or signed by a
different private key.
@item 109
(certificate not verified)
The certificate is invalid or signed with the wrong key.
@item 110
(certificate not verified)
The certificate is not yet valid or has expired or the signature could not
be verified.
@item 111
(bad or missing cookie)
The cookie is missing, corrupted or bogus.
@item 112
(bad or missing leapseconds table)
The leapseconds table is missing, corrupted or bogus.
@item 113
(bad or missing certificate)
The certificate is missing, corrupted or bogus.
@item 114
(bad or missing identity)
The identity key is missing, corrupt or bogus.
@end table
@node Monitoring Support
@subsection Monitoring Support
@code{ntpd(1ntpdmdoc)}
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
@code{statistics}
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
@file{./scripts}
directory of the source code distribution.
Using
these facilities and
@sc{unix}
@code{cron(8)}
jobs, the data can be
automatically summarized and archived for retrospective analysis.
@subsubsection Monitoring Commands
@table @asis
@item @code{statistics} @kbd{name} @kbd{...}
Enables writing of statistics records.
Currently, eight kinds of
@kbd{name}
statistics are supported.
@table @asis
@item @code{clockstats}
Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
@code{clockstats}:
@verbatim
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
@end verbatim
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
@item @code{cryptostats}
This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
@code{cryptostats}:
@verbatim
49213 525.624 127.127.4.1 message
@end verbatim
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted-quad notation, The final message field includes the
message type and certain ancillary information.
See the
@ref{Authentication Options}
section for further information.
@item @code{loopstats}
Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
@code{loopstats}:
@verbatim
50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
@end verbatim
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million -
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
@item @code{peerstats}
Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
@code{peerstats}:
@verbatim
48773 10847.650 127.127.4.1 9714 -0.001605376 0.000000000 0.001424877 0.000958674
@end verbatim
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
@item @code{rawstats}
Enables recording of raw-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
@code{rawstats}:
@verbatim
50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
@end verbatim
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
@item @code{sysstats}
Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
@code{sysstats}:
@verbatim
50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
@end verbatim
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
@table @asis
@item Time since restart @code{36000}
Time in hours since the system was last rebooted.
@item Packets received @code{81965}
Total number of packets received.
@item Packets processed @code{0}
Number of packets received in response to previous packets sent
@item Current version @code{9546}
Number of packets matching the current NTP version.
@item Previous version @code{56}
Number of packets matching the previous NTP version.
@item Bad version @code{71793}
Number of packets matching neither NTP version.
@item Access denied @code{512}
Number of packets denied access for any reason.
@item Bad length or format @code{540}
Number of packets with invalid length, format or port number.
@item Bad authentication @code{10}
Number of packets not verified as authentic.
@item Rate exceeded @code{147}
Number of packets discarded due to rate limitation.
@end table
@item @code{statsdir} @kbd{directory_path}
Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
@code{filegen}
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
@item @code{filegen} @kbd{name} @code{[@code{file} @kbd{filename}]} @code{[@code{type} @kbd{typename}]} @code{[@code{link} | @code{nolink}]} @code{[@code{enable} | @code{disable}]}
Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
Note that this command can be sent from the
@code{ntpdc(1ntpdcmdoc)}
program running at a remote location.
@table @asis
@item @code{name}
This is the type of the statistics records, as shown in the
@code{statistics}
command.
@item @code{file} @kbd{filename}
This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
@code{prefix},
@code{filename}
and
@code{suffix}:
@table @asis
@item @code{prefix}
This is a constant filename path.
It is not subject to
modifications via the
@kbd{filegen}
option.
It is defined by the
server, usually specified as a compile-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
@kbd{loopstats}
and
@kbd{peerstats}
generation can be configured using the
@kbd{statsdir}
option explained above.
@item @code{filename}
This string is directly concatenated to the prefix mentioned
above (no intervening
@quoteleft{}/@quoteright{}).
This can be modified using
the file argument to the
@kbd{filegen}
statement.
No
@file{..}
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
@kbd{prefix}.
@item @code{suffix}
This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
@end table
@item @code{type} @kbd{typename}
A file generation set is characterized by its type.
The following
types are supported:
@table @asis
@item @code{none}
The file set is actually a single plain file.
@item @code{pid}
One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
@code{ntpd(1ntpdmdoc)}
server incarnations.
The set member filename is built by appending a
@quoteleft{}.@quoteright{}
to concatenated
@kbd{prefix}
and
@kbd{filename}
strings, and
appending the decimal representation of the process ID of the
@code{ntpd(1ntpdmdoc)}
server process.
@item @code{day}
One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
@quoteleft{}.@quoteright{}
and a day specification in
the form
@code{YYYYMMdd}.
@code{YYYY}
is a 4-digit year number (e.g., 1992).
@code{MM}
is a two digit month number.
@code{dd}
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
@kbd{prefix}
@kbd{filename}.19921210.
@item @code{week}
Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day-of-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4-digit year number, the letter
@code{W},
and a 2-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.No . Ns Ar 1992W1 .
@item @code{month}
One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4-digit year number, and
a 2-digit month.
@item @code{year}
One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
@item @code{age}
This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
@code{a},
and an 8-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24-hour period.
Information is only written to a file generation by specifying
@code{enable};
output is prevented by specifying
@code{disable}.
@end table
@item @code{link} | @code{nolink}
It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
@code{link}
and disabled using
@code{nolink}.
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
@code{C},
and the pid of the
@code{ntpd(1ntpdmdoc)}
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
@item @code{enable} @code{|} @code{disable}
Enables or disables the recording function.
@end table
@end table
@end table
@node Access Control Support
@subsection Access Control Support
The
@code{ntpd(1ntpdmdoc)}
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
"Notes on Configuring NTP and Setting up a NTP Subnet"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
Clients can be denied service because they are explicitly
included in the restrict list created by the
@code{restrict}
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
@subsubsection The Kiss-of-Death Packet
Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the "kiss-of-death" (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four-byte
ASCII code.
If the
@code{noserve}
or
@code{notrust}
flag of the matching restrict list entry is set,
the code is "DENY"; if the
@code{limited}
flag is set and the rate limit
is exceeded, the code is "RATE".
Finally, if a cryptographic violation occurs, the code is "CRYP".
A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
@subsubsection Access Control Commands
@table @asis
@item @code{discard} @code{[@code{average} @kbd{avg}]} @code{[@code{minimum} @kbd{min}]} @code{[@code{monitor} @kbd{prob}]}
Set the parameters of the
@code{limited}
facility which protects the server from
client abuse.
The
@code{average}
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
@code{minimum}
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss-o'-death packet returned if enabled.
The
@code{monitor}
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
@code{monitor}
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
@item @code{restrict} @code{address} @code{[@code{mask} @kbd{mask}]} @code{[@code{ippeerlimit} @kbd{int}]} @code{[@kbd{flag} @kbd{...}]}
The
@kbd{address}
argument expressed in
dotted-quad form is the address of a host or network.
Alternatively, the
@kbd{address}
argument can be a valid host DNS name.
The
@kbd{mask}
argument expressed in dotted-quad form defaults to
@code{255.255.255.255},
meaning that the
@kbd{address}
is treated as the address of an individual host.
A default entry (address
@code{0.0.0.0},
mask
@code{0.0.0.0})
is always included and is always the first entry in the list.
Note that text string
@code{default},
with no mask option, may
be used to indicate the default entry.
The
@code{ippeerlimit}
directive limits the number of peer requests for each IP to
@kbd{int},
where a value of -1 means "unlimited", the current default.
A value of 0 means "none".
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
@code{flag}
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run-time
reconfiguration of the server.
One or more of the following flags
may be specified:
@table @asis
@item @code{ignore}
Deny packets of all kinds, including
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
queries.
@item @code{kod}
If this flag is set when an access violation occurs, a kiss-o'-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
@item @code{limited}
Deny service if the packet spacing violates the lower limits specified
in the
@code{discard}
command.
A history of clients is kept using the
monitoring capability of
@code{ntpd(1ntpdmdoc)}.
Thus, monitoring is always active as
long as there is a restriction entry with the
@code{limited}
flag.
@item @code{lowpriotrap}
Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
@item @code{noepeer}
Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
@file{ntp.keys}
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
@code{noepeer}
to become the default in ntp-4.4.
@item @code{nomodify}
Deny
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
@item @code{noquery}
Deny
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
queries.
Time service is not affected.
@item @code{nopeer}
Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
@code{pool}
associations, so if you want to use servers from a
@code{pool}
directive and also want to use
@code{nopeer}
by default, you'll want a
@code{restrict source ...}
line as well that does
@emph{not}
include the
@code{nopeer}
directive.
@item @code{noserve}
Deny all packets except
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
queries.
@item @code{notrap}
Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
@code{ntpq(1ntpqmdoc)}
control message
protocol which is intended for use by remote event logging programs.
@item @code{notrust}
Deny service unless the packet is cryptographically authenticated.
@item @code{ntpport}
This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
@code{ntpport}
and
@code{non-ntpport}
may
be specified.
The
@code{ntpport}
is considered more specific and
is sorted later in the list.
@item @code{serverresponse fuzz}
When reponding to server requests,
fuzz the low order bits of the
@code{reftime}.
@item @code{version}
Deny packets that do not match the current NTP version.
@end table
Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
@end table
@node Automatic NTP Configuration Options
@subsection Automatic NTP Configuration Options
@subsubsection Manycasting
Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the "best"
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
@code{http://www.openssl.org/}.
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
A persistent manycast client association is configured
using the
@code{manycastclient}
command, which is similar to the
@code{server}
command but with a multicast (IPv4 class
@code{D}
or IPv6 prefix
@code{FF})
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time-to-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
Manycast servers configured with the
@code{manycastserver}
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the "best"
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near-simultaneous
arrival of manycast server messages.
The strategy is determined by the
@code{manycastclient},
@code{tos}
and
@code{ttl}
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
@code{minpoll}
value specified in the
@code{manycastclient},
command and, under normal circumstances, increments to the
@code{maxpolll}
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
@code{ttl}
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
@code{minclock}
and
@code{minsane}
values specified in the
@code{tos}
configuration command.
At least
@code{minsane}
candidate servers must be available and the mitigation
algorithms produce at least
@code{minclock}
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
@code{minsane}
defaults to 1 and
@code{minclock}
defaults to 3.
For manycast service
@code{minsane}
should be explicitly set to 4, assuming at least that
number of servers are available.
If at least
@code{minclock}
servers are found, the manycast poll interval is immediately
set to eight times
@code{maxpoll}.
If less than
@code{minclock}
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
@code{maxpoll}.
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
@code{ttl}
configuration command can be
used to modify the values to match the scope rules.
It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
@code{tos}
command can be used to modify this behavior.
Servers with stratum below
@code{floor}
or above
@code{ceiling}
specified in the
@code{tos}
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
@code{minclock}.
The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
@code{minclock},
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
@code{maxpoll}
is 12 (4,096 s).
It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
@code{multicastclient}
and
@code{multicastserver}
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
The remaining configuration files for all secondary
servers and clients have the same contents, except for the
@code{tos}
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
@code{floor}
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re-associate accordingly.
Some administrators prefer to avoid running
@code{ntpd(1ntpdmdoc)}
continuously and run either
@code{sntp(1sntpmdoc)}
or
@code{ntpd(1ntpdmdoc)}
@code{-q}
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
@code{ntpd(1ntpdmdoc)}
@code{-q}.
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
@subsubsection Manycast Interactions with Autokey
Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
@subsubsection Broadcast Options
@table @asis
@item @code{tos} @code{[@code{bcpollbstep} @kbd{gate}]}
This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server's time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
@end table
@subsubsection Manycast Options
@table @asis
@item @code{tos} @code{[@code{ceiling} @kbd{ceiling} | @code{cohort} @code{@{} @code{0} | @code{1} @code{@}} | @code{floor} @kbd{floor} | @code{minclock} @kbd{minclock} | @code{minsane} @kbd{minsane}]}
This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
@table @asis
@item @code{ceiling} @kbd{ceiling}
Peers with strata above
@code{ceiling}
will be discarded if there are at least
@code{minclock}
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
@item @code{cohort} @code{@{0 | 1@}}
This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
@item @code{floor} @kbd{floor}
Peers with strata below
@code{floor}
will be discarded if there are at least
@code{minclock}
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
@item @code{minclock} @kbd{minclock}
The clustering algorithm repeatedly casts out outlier
associations until no more than
@code{minclock}
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
@item @code{minsane} @kbd{minsane}
This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
@code{minsane}
should be at least 4 in order to detect and discard
a single falseticker.
@end table
@item @code{ttl} @kbd{hop} @kbd{...}
This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding-ring search.
The default is eight
multiples of 32 starting at 31.
@end table
@node Reference Clock Support
@subsection Reference Clock Support
The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
Additional information can be found in the pages linked
there, including the
"Debugging Hints for Reference Clock Drivers"
and
"How To Write a Reference Clock Driver"
pages
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
In addition, support for a PPS
signal is available as described in the
"Pulse-per-second (PPS) Signal Interfacing"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
"Line Disciplines and Streams Drivers"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
For the purposes of configuration,
@code{ntpd(1ntpdmdoc)}
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
@code{127.127.}@kbd{t}.@kbd{u},
where
@kbd{t}
is an integer
denoting the clock type and
@kbd{u}
indicates the unit
number in the range 0-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
The
@code{server}
command is used to configure a reference
clock, where the
@kbd{address}
argument in that command
is the clock address.
The
@code{key},
@code{version}
and
@code{ttl}
options are not used for reference clock support.
The
@code{mode}
option is added for reference clock support, as
described below.
The
@code{prefer}
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
"Mitigation Rules and the prefer Keyword"
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp})
page.
The
@code{minpoll}
and
@code{maxpoll}
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
The
@code{fudge}
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
@code{server}
command.
The
@kbd{address}
argument specifies the clock address.
The
@code{refid}
and
@code{stratum}
options can be used to
override the defaults for the device.
There are two optional
device-dependent time offsets and four flags that can be included
in the
@code{fudge}
command as well.
The stratum number of a reference clock is by default zero.
Since the
@code{ntpd(1ntpdmdoc)}
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
@code{stratum}
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse-per-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
@code{refid}
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
@subsubsection Reference Clock Commands
@table @asis
@item @code{server} @code{127.127.}@kbd{t}.@kbd{u} @code{[@code{prefer}]} @code{[@code{mode} @kbd{int}]} @code{[@code{minpoll} @kbd{int}]} @code{[@code{maxpoll} @kbd{int}]}
This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
@table @asis
@item @code{prefer}
Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp})
for further information.
@item @code{mode} @kbd{int}
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
@item @code{minpoll} @kbd{int}
@item @code{maxpoll} @kbd{int}
These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
@code{minpoll}
and
@code{maxpoll}
default to 6 (64 s).
For modem reference clocks,
@code{minpoll}
defaults to 10 (17.1 m) and
@code{maxpoll}
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
@end table
@item @code{fudge} @code{127.127.}@kbd{t}.@kbd{u} @code{[@code{time1} @kbd{sec}]} @code{[@code{time2} @kbd{sec}]} @code{[@code{stratum} @kbd{int}]} @code{[@code{refid} @kbd{string}]} @code{[@code{mode} @kbd{int}]} @code{[@code{flag1} @code{0} @code{|} @code{1}]} @code{[@code{flag2} @code{0} @code{|} @code{1}]} @code{[@code{flag3} @code{0} @code{|} @code{1}]} @code{[@code{flag4} @code{0} @code{|} @code{1}]}
This command can be used to configure reference clocks in
special ways.
It must immediately follow the
@code{server}
command which configures the driver.
Note that the same capability
is possible at run time using the
@code{ntpdc(1ntpdcmdoc)}
program.
The options are interpreted as
follows:
@table @asis
@item @code{time1} @kbd{sec}
Specifies a constant to be added to the time offset produced by
the driver, a fixed-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
@code{enable}
command described in
@ref{Miscellaneous Options}
page and operates as described in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp}).
@item @code{time2} @kbd{secs}
Specifies a fixed-point decimal number in seconds, which is
interpreted in a driver-dependent way.
See the descriptions of
specific drivers in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
@file{/usr/share/doc/ntp} @file{).}
@item @code{stratum} @kbd{int}
Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
@item @code{refid} @kbd{string}
Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
@item @code{mode} @kbd{int}
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
@item @code{flag1} @code{0} @code{|} @code{1}
@item @code{flag2} @code{0} @code{|} @code{1}
@item @code{flag3} @code{0} @code{|} @code{1}
@item @code{flag4} @code{0} @code{|} @code{1}
These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
@code{flag4}
is used to enable recording monitoring
data to the
@code{clockstats}
file configured with the
@code{filegen}
command.
Further information on the
@code{filegen}
command can be found in
@ref{Monitoring Options}.
@end table
@end table
@node Miscellaneous Options
@subsection Miscellaneous Options
@table @asis
@item @code{broadcastdelay} @kbd{seconds}
The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
@item @code{calldelay} @kbd{delay}
This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
@item @code{driftfile} @kbd{driftfile}
This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
@code{-f}
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts-per-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
@code{ntpd(1ntpdmdoc)}
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
@item @code{dscp} @kbd{value}
This option specifies the Differentiated Services Control Point (DSCP) value,
a 6-bit code.
The default value is 46, signifying Expedited Forwarding.
@item @code{enable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{peer_clear_digest_early} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
@item @code{disable} @code{[@code{auth} | @code{bclient} | @code{calibrate} | @code{kernel} | @code{mode7} | @code{monitor} | @code{ntp} | @code{stats} | @code{peer_clear_digest_early} | @code{unpeer_crypto_early} | @code{unpeer_crypto_nak_early} | @code{unpeer_digest_early}]}
Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
@code{ntpdc(1ntpdcmdoc)}
utility program.
@table @asis
@item @code{auth}
Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
@code{enable}.
@item @code{bclient}
Enables the server to listen for a message from a broadcast or
multicast server, as in the
@code{multicastclient}
command with default
address.
The default for this flag is
@code{disable}.
@item @code{calibrate}
Enables the calibrate feature for reference clocks.
The default for
this flag is
@code{disable}.
@item @code{kernel}
Enables the kernel time discipline, if available.
The default for this
flag is
@code{enable}
if support is available, otherwise
@code{disable}.
@item @code{mode7}
Enables processing of NTP mode 7 implementation-specific requests
which are used by the deprecated
@code{ntpdc(1ntpdcmdoc)}
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
@code{ntpq(1ntpqmdoc)}.
The
@code{ntpq(1ntpqmdoc)}
program provides the same capabilities as
@code{ntpdc(1ntpdcmdoc)}
using standard mode 6 requests.
@item @code{monitor}
Enables the monitoring facility.
See the
@code{ntpdc(1ntpdcmdoc)}
program
and the
@code{monlist}
command or further information.
The
default for this flag is
@code{enable}.
@item @code{ntp}
Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
@code{enable}.
@item @code{peer_clear_digest_early}
By default, if
@code{ntpd(1ntpdmdoc)}
is using autokey and it
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
@code{peerstats}
file for evidence of any of these attacks.
The
default for this flag is
@code{enable}.
@item @code{stats}
Enables the statistics facility.
See the
@ref{Monitoring Options}
section for further information.
The default for this flag is
@code{disable}.
@item @code{unpeer_crypto_early}
By default, if
@code{ntpd(1ntpdmdoc)}
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
@code{peerstats}
file for evidence of any of these attacks.
The
default for this flag is
@code{enable}.
@item @code{unpeer_crypto_nak_early}
By default, if
@code{ntpd(1ntpdmdoc)}
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
@code{peerstats}
file for evidence of any of these attacks.
The
default for this flag is
@code{enable}.
@item @code{unpeer_digest_early}
By default, if
@code{ntpd(1ntpdmdoc)}
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
@code{peerstats}
file for evidence of any of these attacks.
The
default for this flag is
@code{enable}.
@end table
@item @code{includefile} @kbd{includefile}
This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
@code{ntpd(1ntpdmdoc)}
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
@item @code{interface} @code{[@code{listen} | @code{ignore} | @code{drop}]} @code{[@code{all} | @code{ipv4} | @code{ipv6} | @code{wildcard} @kbd{name} | @kbd{address} @code{[@code{/} @kbd{prefixlen}]}]}
The
@code{interface}
directive controls which network addresses
@code{ntpd(1ntpdmdoc)}
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
@kbd{prefixlen}
determines how many bits must match for this rule to apply.
@code{ignore}
prevents opening matching addresses,
@code{drop}
causes
@code{ntpd(1ntpdmdoc)}
to open the address and drop all received packets without examination.
Multiple
@code{interface}
directives can be used.
The last rule which matches a particular address determines the action for it.
@code{interface}
directives are disabled if any
@code{-I},
@code{--interface},
@code{-L},
or
@code{--novirtualips}
command-line options are specified in the configuration file,
all available network addresses are opened.
The
@code{nic}
directive is an alias for
@code{interface}.
@item @code{leapfile} @kbd{leapfile}
This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
@code{https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list}
or
@code{ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list}.
The
@code{leapfile}
is scanned when
@code{ntpd(1ntpdmdoc)}
processes the
@code{leapfile} @code{directive} @code{or} @code{when}
@code{ntpd} @code{detects} @code{that} @code{the}
@kbd{leapfile}
has changed.
@code{ntpd}
checks once a day to see if the
@kbd{leapfile}
has changed.
The
@code{update-leap(1update_leapmdoc)}
script can be run to see if the
@kbd{leapfile}
should be updated.
@item @code{leapsmearinterval} @kbd{seconds}
This EXPERIMENTAL option is only available if
@code{ntpd(1ntpdmdoc)}
was built with the
@code{--enable-leap-smear}
option to the
@code{configure}
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
@item @code{logconfig} @kbd{configkeyword}
This command controls the amount and type of output written to
the system
@code{syslog(3)}
facility or the alternate
@code{logfile}
log file.
By default, all output is turned on.
All
@kbd{configkeyword}
keywords can be prefixed with
@quoteleft{}=@quoteright{},
@quoteleft{}+@quoteright{}
and
@quoteleft{}-@quoteright{},
where
@quoteleft{}=@quoteright{}
sets the
@code{syslog(3)}
priority mask,
@quoteleft{}+@quoteright{}
adds and
@quoteleft{}-@quoteright{}
removes
messages.
@code{syslog(3)}
messages can be controlled in four
classes
(@code{clock}, @code{peer}, @code{sys} and @code{sync}).
Within these classes four types of messages can be
controlled: informational messages
(@code{info}),
event messages
(@code{events}),
statistics messages
(@code{statistics})
and
status messages
(@code{status}).
Configuration keywords are formed by concatenating the message class with
the event class.
The
@code{all}
prefix can be used instead of a message class.
A
message class may also be followed by the
@code{all}
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
@verbatim
logconfig =syncstatus +sysevents
@end verbatim
This would just list the synchronizations state of
@code{ntpd(1ntpdmdoc)}
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
@verbatim
logconfig =syncall +clockall
@end verbatim
This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
@item @code{logfile} @kbd{logfile}
This command specifies the location of an alternate log file to
be used instead of the default system
@code{syslog(3)}
facility.
This is the same operation as the
@code{-l}
command line option.
@item @code{mru} @code{[@code{maxdepth} @kbd{count} | @code{maxmem} @kbd{kilobytes} | @code{mindepth} @kbd{count} | @code{maxage} @kbd{seconds} | @code{initialloc} @kbd{count} | @code{initmem} @kbd{kilobytes} | @code{incalloc} @kbd{count} | @code{incmem} @kbd{kilobytes}]}
Controls size limite of the monitoring facility's Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
@table @asis
@item @code{maxdepth} @kbd{count}
@item @code{maxmem} @kbd{kilobytes}
Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
@code{incalloc}
entries or
@code{incmem}
kilobytes larger.
As with all of the
@code{mru}
options offered in units of entries or kilobytes, if both
@code{maxdepth}
and
@code{maxmem} @code{are} @code{used,} @code{the} @code{last} @code{one} @code{used} @code{controls.}
The default is 1024 kilobytes.
@item @code{mindepth} @kbd{count}
Lower limit on the MRU list size.
When the MRU list has fewer than
@code{mindepth}
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
@item @code{maxage} @kbd{seconds}
Once the MRU list has
@code{mindepth}
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
@code{maxage}
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
@code{maxdepth} @code{/} @code{moxmem}.
The default is 64 seconds.
@item @code{initalloc} @kbd{count}
@item @code{initmem} @kbd{kilobytes}
Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
@item @code{incalloc} @kbd{count}
@item @code{incmem} @kbd{kilobytes}
Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
@end table
@item @code{nonvolatile} @kbd{threshold}
Specify the
@kbd{threshold}
delta in seconds before an hourly change to the
@code{driftfile}
(frequency file) will be written, with a default value of 1e-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
@code{threshold}
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
@item @code{phone} @kbd{dial} @kbd{...}
This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 - 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 - 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
@item @code{pollskewlist} @code{[@kbd{poll} @kbd{early} @kbd{late}]} @kbd{...} @code{[@code{default} @kbd{early} @kbd{late}]}
Enable skewing of our poll requests to our servers.
@kbd{poll}
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
@item @code{reset} @code{[@code{allpeers}]} @code{[@code{auth}]} @code{[@code{ctl}]} @code{[@code{io}]} @code{[@code{mem}]} @code{[@code{sys}]} @code{[@code{timer}]}
Reset one or more groups of counters maintained by
@code{ntpd}
and exposed by
@code{ntpq}
and
@code{ntpdc}.
@item @code{rlimit} @code{[@code{memlock} @kbd{Nmegabytes} | @code{stacksize} @kbd{N4kPages} @code{filenum} @kbd{Nfiledescriptors}]}
@table @asis
@item @code{memlock} @kbd{Nmegabytes}
Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
@code{-i}
option).
The default is 32 megabytes on non-Linux machines, and -1 under Linux.
-1 means "do not lock the process into memory".
0 means "lock whatever memory the process wants into memory".
@item @code{stacksize} @kbd{N4kPages}
Specifies the maximum size of the process stack on systems with the
@code{mlockall()}
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
@item @code{filenum} @kbd{Nfiledescriptors}
Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
@end table
@item @code{saveconfigdir} @kbd{directory_path}
Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq 's
@code{saveconfig}
command.
If
@code{saveconfigdir}
does not appear in the configuration file,
@code{saveconfig}
requests are rejected by
@code{ntpd}.
@item @code{saveconfig} @kbd{filename}
Write the current configuration, including any runtime
modifications given with
@code{:config}
or
@code{config-from-file}
to the
@code{ntpd}
host's
@kbd{filename}
in the
@code{saveconfigdir}.
This command will be rejected unless the
@code{saveconfigdir}
directive appears in
.Cm ntpd 's
configuration file.
@kbd{filename}
can use
@code{strftime(3)}
format directives to substitute the current date and time,
for example,
@code{saveconfig\ ntp-%Y%m%d-%H%M%S.conf}.
The filename used is stored in the system variable
@code{savedconfig}.
Authentication is required.
@item @code{setvar} @kbd{variable} @code{[@code{default}]}
This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
@code{name}@code{=}@kbd{value}
is followed by the
@code{default}
keyword, the
variable will be listed as part of the default system variables
(@code{rv} command)).
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
@code{setvar}
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
@code{sys_var_list}
holds
the names of all system variables.
The
@code{peer_var_list}
holds
the names of all peer variables and the
@code{clock_var_list}
holds the names of the reference clock variables.
@item @code{sysinfo}
Display operational summary.
@item @code{sysstats}
Show statistics counters maintained in the protocol module.
@item @code{tinker} @code{[@code{allan} @kbd{allan} | @code{dispersion} @kbd{dispersion} | @code{freq} @kbd{freq} | @code{huffpuff} @kbd{huffpuff} | @code{panic} @kbd{panic} | @code{step} @kbd{step} | @code{stepback} @kbd{stepback} | @code{stepfwd} @kbd{stepfwd} | @code{stepout} @kbd{stepout}]}
This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
The variables operate as follows:
@table @asis
@item @code{allan} @kbd{allan}
The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
@item @code{dispersion} @kbd{dispersion}
The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
@item @code{freq} @kbd{freq}
The argument becomes the initial value of the frequency offset in
parts-per-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
@item @code{huffpuff} @kbd{huffpuff}
The argument becomes the new value for the experimental
huff-n'-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
@item @code{panic} @kbd{panic}
The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
@item @code{step} @kbd{step}
The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
@item @code{stepback} @kbd{stepback}
The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
@item @code{stepfwd} @kbd{stepfwd}
As for stepback, but for the forward direction.
@item @code{stepout} @kbd{stepout}
The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
@end table
@item @code{writevar} @kbd{assocID\ name} @kbd{=} @kbd{value} @kbd{[,...]}
Write (create or update) the specified variables.
If the
@code{assocID}
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
@code{assocID}
is required, as the same name can occur in both name spaces.
@item @code{trap} @kbd{host_address} @code{[@code{port} @kbd{port_number}]} @code{[@code{interface} @kbd{interface_address}]}
This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
@item @code{ttl} @kbd{hop} @kbd{...}
This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
@code{manycast}
mode these values are used in-turn in an expanding-ring search.
The default is eight multiples of 32 starting at 31.
The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
@item @code{hop} @kbd{...}
This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding-ring search.
The default is eight multiples of 32 starting at
31.
@end table
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntp.conf} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntp.conf Files:: Files
* ntp.conf See Also:: See Also
* ntp.conf Bugs:: Bugs
* ntp.conf Notes:: Notes
@end menu
@node ntp.conf Files
@subsection ntp.conf Files
@table @asis
@item @file{/etc/ntp.conf}
the default name of the configuration file
@item @file{ntp.keys}
private MD5 keys
@item @file{ntpkey}
RSA private key
@item @file{ntpkey_}@kbd{host}
RSA public key
@item @file{ntp_dh}
Diffie-Hellman agreement parameters
@end table
@node ntp.conf See Also
@subsection ntp.conf See Also
@code{ntpd(1ntpdmdoc)},
@code{ntpdc(1ntpdcmdoc)},
@code{ntpq(1ntpqmdoc)}
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
@code{http://www.ntp.org/}.
A snapshot of this documentation is available in HTML format in
@file{/usr/share/doc/ntp}.
@*
@*
David L. Mills, @emph{Network Time Protocol (Version 4)}, RFC5905
@node ntp.conf Bugs
@subsection ntp.conf Bugs
The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
The
@file{ntpkey_}@kbd{host}
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
@node ntp.conf Notes
@subsection ntp.conf Notes
This document was derived from FreeBSD.
diff --git a/contrib/ntp/ntpd/invoke-ntp.keys.texi b/contrib/ntp/ntpd/invoke-ntp.keys.texi
index 52dee572b434..3926518de3a2 100644
--- a/contrib/ntp/ntpd/invoke-ntp.keys.texi
+++ b/contrib/ntp/ntpd/invoke-ntp.keys.texi
@@ -1,141 +1,141 @@
@node ntp.keys Notes
@section Notes about ntp.keys
@pindex ntp.keys
@cindex NTP symmetric key file format
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:49:34 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:37:41 AM by AutoGen 5.18.16
# From the definitions ntp.keys.def
# and the template file agtexi-file.tpl
@end ignore
This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
"Authentication Support"
section of the
@code{ntp.conf(5)}
page.
@code{ntpd(8)}
reads its keys from a file specified using the
@code{-k}
command line option or the
@code{keys}
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
@example
@kbd{keyno} @kbd{type} @kbd{key} @kbd{opt_IP_list}
@end example
where
@kbd{keyno}
is a positive integer (between 1 and 65535),
@kbd{type}
is the message digest algorithm,
@kbd{key}
is the key itself, and
@kbd{opt_IP_list}
is an optional comma-separated list of IPs
where the
@kbd{keyno}
should be trusted.
that are allowed to serve time.
Each IP in
@kbd{opt_IP_list}
may contain an optional
@code{/subnetbits}
specification which identifies the number of bits for
the desired subnet of trust.
If
@kbd{opt_IP_list}
is empty,
any properly-authenticated message will be
accepted.
The
@kbd{key}
may be given in a format
controlled by the
@kbd{type}
field.
The
@kbd{type}
@code{MD5}
is always supported.
If
@code{ntpd}
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140-2 is required the
@kbd{type}
must be either
@code{SHA}
or
@code{SHA1}.
What follows are some key types, and corresponding formats:
@table @asis
@item @code{MD5}
The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
@code{#}
(which is the "start of comment" character).
@item @code{SHA}
@item @code{SHA1}
@item @code{RMD160}
The key is a hex-encoded ASCII string of 40 characters,
which is truncated as necessary.
@end table
Note that the keys used by the
@code{ntpq(8)}
and
@code{ntpdc(8)}
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntp.keys} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntp.keys Files:: Files
* ntp.keys See Also:: See Also
* ntp.keys Notes:: Notes
@end menu
@node ntp.keys Files
@subsection ntp.keys Files
@table @asis
@item @file{/etc/ntp.keys}
the default name of the configuration file
@end table
@node ntp.keys See Also
@subsection ntp.keys See Also
@code{ntp.conf(5)},
@code{ntpd(1ntpdmdoc)},
@code{ntpdate(1ntpdatemdoc)},
@code{ntpdc(1ntpdcmdoc)},
@code{sntp(1sntpmdoc)}
@node ntp.keys Notes
@subsection ntp.keys Notes
This document was derived from FreeBSD.
diff --git a/contrib/ntp/ntpd/invoke-ntpd.texi b/contrib/ntp/ntpd/invoke-ntpd.texi
index fbce35dd8d26..471bca5b86c8 100644
--- a/contrib/ntp/ntpd/invoke-ntpd.texi
+++ b/contrib/ntp/ntpd/invoke-ntpd.texi
@@ -1,719 +1,719 @@
@node ntpd Invocation
@section Invoking ntpd
@pindex ntpd
@cindex NTP daemon program
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:49:36 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:37:42 AM by AutoGen 5.18.16
# From the definitions ntpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
The
@code{ntpd}
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC-5905,
but also retains compatibility with
version 3, as defined by RFC-1305, and versions 1
and 2, as defined by RFC-1059 and RFC-1119, respectively.
The
@code{ntpd}
utility does most computations in 64-bit floating point
arithmetic and does relatively clumsy 64-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
Ordinarily,
@code{ntpd}
reads the
@code{ntp.conf(5)}
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
If NetInfo support is built into
@code{ntpd}
then
@code{ntpd}
will attempt to read its configuration from the
NetInfo if the default
@code{ntp.conf(5)}
file cannot be read and no file is
specified by the
@code{-c}
option.
Various internal
@code{ntpd}
variables can be displayed and
configuration options altered while the
@code{ntpd}
is running
using the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
utility programs.
When
@code{ntpd}
starts it looks at the value of
@code{umask(2)},
and if zero
@code{ntpd}
will set the
@code{umask(2)}
to 022.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpd} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntpd usage:: ntpd help/usage (@option{--help})
* ntpd ipv4:: ipv4 option (-4)
* ntpd ipv6:: ipv6 option (-6)
* ntpd authreq:: authreq option (-a)
* ntpd authnoreq:: authnoreq option (-A)
* ntpd configfile:: configfile option (-c)
* ntpd driftfile:: driftfile option (-f)
* ntpd panicgate:: panicgate option (-g)
* ntpd force-step-once:: force-step-once option (-G)
* ntpd jaildir:: jaildir option (-i)
* ntpd interface:: interface option (-I)
* ntpd keyfile:: keyfile option (-k)
* ntpd logfile:: logfile option (-l)
* ntpd novirtualips:: novirtualips option (-L)
* ntpd modifymmtimer:: modifymmtimer option (-M)
* ntpd nice:: nice option (-N)
* ntpd pidfile:: pidfile option (-p)
* ntpd priority:: priority option (-P)
* ntpd quit:: quit option (-q)
* ntpd propagationdelay:: propagationdelay option (-r)
* ntpd saveconfigquit:: saveconfigquit option
* ntpd statsdir:: statsdir option (-s)
* ntpd trustedkey:: trustedkey option (-t)
* ntpd user:: user option (-u)
* ntpd updateinterval:: updateinterval option (-U)
* ntpd wait-sync:: wait-sync option (-w)
* ntpd slew:: slew option (-x)
* ntpd usepcc:: usepcc option
* ntpd pccfreq:: pccfreq option
* ntpd mdns:: mdns option (-m)
* ntpd config:: presetting/configuring ntpd
* ntpd exit status:: exit status
* ntpd Usage:: Usage
* ntpd Files:: Files
* ntpd See Also:: See Also
* ntpd Bugs:: Bugs
* ntpd Notes:: Notes
@end menu
@node ntpd usage
@subsection ntpd help/usage (@option{--help})
@cindex ntpd help
This is the automatically generated usage text for ntpd.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntpd - NTP daemon program - Ver. 4.2.8p16
+ntpd - NTP daemon program - Ver. 4.2.8p17
Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ <server1> ... <serverN> ]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-a no authreq Require crypto authentication
- prohibits the option 'authnoreq'
-A no authnoreq Do not require crypto authentication
- prohibits the option 'authreq'
-b no bcastsync Allow us to sync to broadcast servers
-c Str configfile configuration file name
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-f Str driftfile frequency drift file name
-g no panicgate Allow the first adjustment to be Big
- may appear multiple times
-G no force-step-once Step any initial offset correction.
-i --- jaildir built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
-I Str interface Listen on an interface name or address
- may appear multiple times
-k Str keyfile path to symmetric keys
-l Str logfile path to the log file
-L no novirtualips Do not listen to virtual interfaces
-n no nofork Do not fork
- prohibits the option 'wait-sync'
-N no nice Run at high priority
-p Str pidfile path to the PID file
-P Num priority Process priority
-q no quit Set the time and quit
- prohibits these options:
saveconfigquit
wait-sync
-r Str propagationdelay Broadcast/propagation delay
Str saveconfigquit Save parsed configuration and quit
- prohibits these options:
quit
wait-sync
-s Str statsdir Statistics file location
-t Str trustedkey Trusted key number
- may appear multiple times
-u --- user built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
-U Num updateinterval interval in seconds between scans for new or dropped interfaces
Str var make ARG an ntp variable (RW)
- may appear multiple times
Str dvar make ARG an ntp variable (RW|DEF)
- may appear multiple times
-w Num wait-sync Seconds to wait for first clock sync
- prohibits these options:
nofork
quit
saveconfigquit
-x no slew Slew up to 600 seconds
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- examining environment variables named NTPD_*
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node ntpd ipv4
@subsection ipv4 option (-4)
@cindex ntpd-ipv4
This is the ``force ipv4 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv6.
@end itemize
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
@node ntpd ipv6
@subsection ipv6 option (-6)
@cindex ntpd-ipv6
This is the ``force ipv6 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv4.
@end itemize
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
@node ntpd authreq
@subsection authreq option (-a)
@cindex ntpd-authreq
This is the ``require crypto authentication'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
authnoreq.
@end itemize
Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
@node ntpd authnoreq
@subsection authnoreq option (-A)
@cindex ntpd-authnoreq
This is the ``do not require crypto authentication'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
authreq.
@end itemize
Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
@node ntpd configfile
@subsection configfile option (-c)
@cindex ntpd-configfile
This is the ``configuration file name'' option.
This option takes a string argument.
The name and path of the configuration file,
@file{/etc/ntp.conf}
by default.
@node ntpd driftfile
@subsection driftfile option (-f)
@cindex ntpd-driftfile
This is the ``frequency drift file name'' option.
This option takes a string argument.
The name and path of the frequency file,
@file{/etc/ntp.drift}
by default.
This is the same operation as the
@code{driftfile} @kbd{driftfile}
configuration specification in the
@file{/etc/ntp.conf}
file.
@node ntpd panicgate
@subsection panicgate option (-g)
@cindex ntpd-panicgate
This is the ``allow the first adjustment to be big'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
Normally,
@code{ntpd}
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
@code{ntpd}
will exit with a message to the system log. This option can be used with the
@code{-q}
and
@code{-x}
options.
See the
@code{tinker}
configuration file directive for other options.
@node ntpd force-step-once
@subsection force-step-once option (-G)
@cindex ntpd-force-step-once
This is the ``step any initial offset correction.'' option.
Normally,
@code{ntpd}
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the @code{tinker} configuration file directive for other options.
@node ntpd jaildir
@subsection jaildir option (-i)
@cindex ntpd-jaildir
This is the ``jail directory'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{HAVE_DROPROOT} during the compilation.
@end itemize
Chroot the server to the directory
@kbd{jaildir}
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
@code{-u}
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
@code{--enable-clockctl}) or Linux (configure with
@code{--enable-linuxcaps}) or Solaris (configure with @code{--enable-solarisprivs}).
@node ntpd interface
@subsection interface option (-I)
@cindex ntpd-interface
This is the ``listen on an interface name or address'' option.
This option takes a string argument @file{iface}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
@code{interface} command, which is more versatile.
@node ntpd keyfile
@subsection keyfile option (-k)
@cindex ntpd-keyfile
This is the ``path to symmetric keys'' option.
This option takes a string argument.
Specify the name and path of the symmetric key file.
@file{/etc/ntp.keys}
is the default.
This is the same operation as the
@code{keys} @kbd{keyfile}
configuration file directive.
@node ntpd logfile
@subsection logfile option (-l)
@cindex ntpd-logfile
This is the ``path to the log file'' option.
This option takes a string argument.
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
@code{logfile} @kbd{logfile}
configuration file directive.
@node ntpd novirtualips
@subsection novirtualips option (-L)
@cindex ntpd-novirtualips
This is the ``do not listen to virtual interfaces'' option.
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file @code{interface} command, which
is more versatile.
@node ntpd modifymmtimer
@subsection modifymmtimer option (-M)
@cindex ntpd-modifymmtimer
This is the ``modify multimedia timer (windows only)'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{SYS_WINNT} during the compilation.
@end itemize
Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
@node ntpd nice
@subsection nice option (-N)
@cindex ntpd-nice
This is the ``run at high priority'' option.
To the extent permitted by the operating system, run
@code{ntpd}
at the highest priority.
@node ntpd pidfile
@subsection pidfile option (-p)
@cindex ntpd-pidfile
This is the ``path to the pid file'' option.
This option takes a string argument.
Specify the name and path of the file used to record
@code{ntpd}'s
process ID.
This is the same operation as the
@code{pidfile} @kbd{pidfile}
configuration file directive.
@node ntpd priority
@subsection priority option (-P)
@cindex ntpd-priority
This is the ``process priority'' option.
This option takes a number argument.
To the extent permitted by the operating system, run
@code{ntpd}
at the specified
@code{sched_setscheduler(SCHED_FIFO)}
priority.
@node ntpd quit
@subsection quit option (-q)
@cindex ntpd-quit
This is the ``set the time and quit'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
saveconfigquit, wait-sync.
@end itemize
@code{ntpd}
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
@code{ntpdate}
program, which will soon be replaced with a shell script.
The
@code{-g}
and
@code{-x}
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
@node ntpd propagationdelay
@subsection propagationdelay option (-r)
@cindex ntpd-propagationdelay
This is the ``broadcast/propagation delay'' option.
This option takes a string argument.
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
@node ntpd saveconfigquit
@subsection saveconfigquit option
@cindex ntpd-saveconfigquit
This is the ``save parsed configuration and quit'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{SAVECONFIG} during the compilation.
@item
must not appear in combination with any of the following options:
quit, wait-sync.
@end itemize
Cause @code{ntpd} to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
@node ntpd statsdir
@subsection statsdir option (-s)
@cindex ntpd-statsdir
This is the ``statistics file location'' option.
This option takes a string argument.
Specify the directory path for files created by the statistics facility.
This is the same operation as the
@code{statsdir} @kbd{statsdir}
configuration file directive.
@node ntpd trustedkey
@subsection trustedkey option (-t)
@cindex ntpd-trustedkey
This is the ``trusted key number'' option.
This option takes a string argument @file{tkey}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
Add the specified key number to the trusted key list.
@node ntpd user
@subsection user option (-u)
@cindex ntpd-user
This is the ``run as userid (or userid:groupid)'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{HAVE_DROPROOT} during the compilation.
@end itemize
Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
@code{--enable-clockctl}) or Linux (configure with
@code{--enable-linuxcaps}) or Solaris (configure with @code{--enable-solarisprivs}).
@node ntpd updateinterval
@subsection updateinterval option (-U)
@cindex ntpd-updateinterval
This is the ``interval in seconds between scans for new or dropped interfaces'' option.
This option takes a number argument.
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
@node ntpd wait-sync
@subsection wait-sync option (-w)
@cindex ntpd-wait-sync
This is the ``seconds to wait for first clock sync'' option.
This option takes a number argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{HAVE_WORKING_FORK} during the compilation.
@item
must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
@end itemize
If greater than zero, alters @code{ntpd}'s behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is @code{ETIMEDOUT}.
This provides the option for a script starting @code{ntpd} to easily
wait for the first set of the clock before proceeding.
@node ntpd slew
@subsection slew option (-x)
@cindex ntpd-slew
This is the ``slew up to 600 seconds'' option.
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
@code{-g}
and
@code{-q}
options.
See the
@code{tinker}
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
@node ntpd usepcc
@subsection usepcc option
@cindex ntpd-usepcc
This is the ``use cpu cycle counter (windows only)'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{SYS_WINNT} during the compilation.
@end itemize
Attempt to substitute the CPU counter for @code{QueryPerformanceCounter}.
The CPU counter and @code{QueryPerformanceCounter} are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
@node ntpd pccfreq
@subsection pccfreq option
@cindex ntpd-pccfreq
This is the ``force cpu cycle counter use (windows only)'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{SYS_WINNT} during the compilation.
@end itemize
Force substitution the CPU counter for @code{QueryPerformanceCounter}.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
@node ntpd mdns
@subsection mdns option (-m)
@cindex ntpd-mdns
This is the ``register with mdns as a ntp server'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{HAVE_DNSREGISTRATION} during the compilation.
@end itemize
Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
@node ntpd config
@subsection presetting/configuring ntpd
Any option that is not marked as @i{not presettable} may be preset by
loading values from environment variables named @code{NTPD} and @code{NTPD_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{NTPD} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node ntpd exit status
@subsection ntpd exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
@node ntpd Usage
@subsection ntpd Usage
@node ntpd Files
@subsection ntpd Files
@node ntpd See Also
@subsection ntpd See Also
@node ntpd Bugs
@subsection ntpd Bugs
@node ntpd Notes
@subsection ntpd Notes
diff --git a/contrib/ntp/ntpd/ntp.conf.5man b/contrib/ntp/ntpd/ntp.conf.5man
index 80b742f7d624..4e7a47ab83ef 100644
--- a/contrib/ntp/ntpd/ntp.conf.5man
+++ b/contrib/ntp/ntpd/ntp.conf.5man
@@ -1,3489 +1,3489 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5man "31 May 2023" "4.2.8p16" "File Formats"
+.TH ntp.conf 5man "06 Jun 2023" "4.2.8p17" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:38 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:45 AM by AutoGen 5.18.16
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp.conf\fP
\- Network Time Protocol (NTP) daemon configuration file format
.SH SYNOPSIS
\f\*[B-Font]ntp.conf\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The
\f\*[B-Font]ntp.conf\fP
configuration file is read at initial startup by the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
\fI/etc\f[]
directory,
but could be installed elsewhere
(see the daemon's
\f\*[B-Font]\-c\f[]
command line option).
.sp \n(Ppu
.ne 2
The file format is similar to other
UNIX
configuration files.
Comments begin with a
\[oq]#\[cq]
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
.sp \n(Ppu
.ne 2
The rest of this page describes the configuration and control options.
The
"Notes on Configuring NTP and Setting up an NTP Subnet"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
contains an extended discussion of these options.
In addition to the discussion of general
\fIConfiguration\f[] \fIOptions\f[],
there are sections describing the following supported functionality
and the options used to control it:
.IP \fB\(bu\fP 2
\fIAuthentication\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIMonitoring\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIAccess\f[] \fIControl\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
.IP \fB\(bu\fP 2
\fIReference\f[] \fIClock\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIMiscellaneous\f[] \fIOptions\f[]
.PP
.sp \n(Ppu
.ne 2
Following these is a section describing
\fIMiscellaneous\f[] \fIOptions\f[].
While there is a rich set of options available,
the only required option is one or more
\f\*[B-Font]pool\f[],
\f\*[B-Font]server\f[],
\f\*[B-Font]peer\f[],
\f\*[B-Font]broadcast\f[]
or
\f\*[B-Font]manycastclient\f[]
commands.
.SH Configuration Support
Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
.SS Configuration Commands
The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
.sp \n(Ppu
.ne 2
If the Basic Socket Interface Extensions for IPv6 (RFC-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
\f\*[B-Font]reslist\f[]
billboard generated
by
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
or
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[],
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
\*[Lq]\&:\*[Rq]
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
\f\*[B-Font]\-6\f[]
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
.TP 7
.NOP \f\*[B-Font]pool\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]burst\f[]] [\f\*[B-Font]iburst\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]xmtnonce\f[]]
.TP 7
.NOP \f\*[B-Font]server\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]burst\f[]] [\f\*[B-Font]iburst\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]true\f[]] [\f\*[B-Font]xmtnonce\f[]]
.TP 7
.NOP \f\*[B-Font]peer\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]true\f[]] [\f\*[B-Font]xleave\f[]]
.TP 7
.NOP \f\*[B-Font]broadcast\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]] [\f\*[B-Font]xleave\f[]]
.TP 7
.NOP \f\*[B-Font]manycastclient\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]]
.PP
.sp \n(Ppu
.ne 2
These five commands specify the time server name or address to
be used and the mode in which to operate.
The
\f\*[I-Font]address\f[]
can be
either a DNS name or an IP address in dotted-quad notation.
Additional information on association behavior can be found in the
"Association Management"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.TP 7
.NOP \f\*[B-Font]pool\f[]
For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
.TP 7
.NOP \f\*[B-Font]server\f[]
For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
\fInot\f[]
be used for type
b or m addresses.
.TP 7
.NOP \f\*[B-Font]peer\f[]
For type s addresses (only), this command mobilizes a
persistent symmetric-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
.TP 7
.NOP \f\*[B-Font]broadcast\f[]
For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
\f\*[I-Font]address\f[]
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
\f\*[B-Font]broadcastclient\f[]
or
\f\*[B-Font]multicastclient\f[]
commands
below.
.TP 7
.NOP \f\*[B-Font]manycastclient\f[]
For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
\f\*[B-Font]manycastserver\f[]
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
\f\*[B-Font]manycastserver\f[]
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
\f\*[I-Font]address\f[]
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
\f\*[B-Font]server\f[]
command.
The remaining servers are discarded as if never
heard.
.PP
.sp \n(Ppu
.ne 2
Options:
.TP 7
.NOP \f\*[B-Font]autokey\f[]
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]burst\f[]
when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
\f\*[B-Font]calldelay\f[]
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
\f\*[B-Font]server\f[]
command and s addresses.
.TP 7
.NOP \f\*[B-Font]iburst\f[]
When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
\f\*[B-Font]calldelay\f[]
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
\f\*[B-Font]server\f[]
command and s addresses and when
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
is started with the
\f\*[B-Font]\-q\f[]
option.
.TP 7
.NOP \f\*[B-Font]key\f[] \f\*[I-Font]key\f[]
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
\f\*[I-Font]key\f[]
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
.TP 7
.NOP \f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]
.TP 7
.NOP \f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]
These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
\f\*[B-Font]maxpoll\f[]
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
\f\*[B-Font]minpoll\f[]
option to a lower limit of 4 (16 s).
.TP 7
.NOP \f\*[B-Font]noselect\f[]
Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
.TP 7
.NOP \f\*[B-Font]preempt\f[]
Says the association can be preempted.
.TP 7
.NOP \f\*[B-Font]prefer\f[]
Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
for further information.
.TP 7
.NOP \f\*[B-Font]true\f[]
Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
\fIonly\f[]
be used while testing an association.
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]
This option is used only with broadcast server and manycast
client modes.
It specifies the time-to-live
\f\*[I-Font]ttl\f[]
to
use on broadcast server and multicast server and the maximum
\f\*[I-Font]ttl\f[]
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
.TP 7
.NOP \f\*[B-Font]version\f[] \f\*[I-Font]version\f[]
Specifies the version number to be used for outgoing NTP
packets.
Versions 1-4 are the choices, with version 4 the
default.
.TP 7
.NOP \f\*[B-Font]xleave\f[]
Valid in
\f\*[B-Font]peer\f[]
and
\f\*[B-Font]broadcast\f[]
modes only, this flag enables interleave mode.
.TP 7
.NOP \f\*[B-Font]xmtnonce\f[]
Valid only for
\f\*[B-Font]server\f[]
and
\f\*[B-Font]pool\f[]
modes, this flag puts a random number in the packet's transmit timestamp.
.PP
.SS Auxiliary Commands
.TP 7
.NOP \f\*[B-Font]broadcastclient\f[]
This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric-key or public-key
authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]manycastserver\f[] \f\*[I-Font]address\f[] \f\*[I-Font]...\f[]
This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric-key or public-key
authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]multicastclient\f[] \f\*[I-Font]address\f[] \f\*[I-Font]...\f[]
This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric-key or
public-key authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]mdnstries\f[] \f\*[I-Font]number\f[]
If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
\f\*[B-Font]mdnstries\f[]
times.
After all,
\f\*[B-Font]ntpd\f[]
may be starting before mDNS.
The default value for
\f\*[B-Font]mdnstries\f[]
is 5.
.PP
.SH Authentication Support
Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed-MD5.
Either algorithm computes a message digest, or one-way hash, which
can be used to verify the server has the correct private key and
key identifier.
.sp \n(Ppu
.ne 2
NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
.sp \n(Ppu
.ne 2
While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
.sp \n(Ppu
.ne 2
Authentication is configured separately for each association
using the
\f\*[B-Font]key\f[]
or
\f\*[B-Font]autokey\f[]
subcommand on the
\f\*[B-Font]peer\f[],
\f\*[B-Font]server\f[],
\f\*[B-Font]broadcast\f[]
and
\f\*[B-Font]manycastclient\f[]
configuration commands as described in
\fIConfiguration\f[] \fIOptions\f[]
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
.sp \n(Ppu
.ne 2
Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]auth\f[]
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
commands and also by remote
configuration commands sent by a
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
\f\*[B-Font]auth\f[]
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
.sp \n(Ppu
.ne 2
An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
.sp \n(Ppu
.ne 2
The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
\f[C]http://www.ntp.org/\f[].
.SS Symmetric-Key Cryptography
The original RFC-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
\fIntp.keys\f[],
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility programs.
.sp \n(Ppu
.ne 2
When
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
is first started, it reads the key file specified in the
\f\*[B-Font]keys\f[]
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
\f\*[B-Font]trusted\f[]
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[].
This also provides a revocation capability that can be used
if a key becomes compromised.
The
\f\*[B-Font]requestkey\f[]
command selects the key used as the password for the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility, while the
\f\*[B-Font]controlkey\f[]
command selects the key used as the password for the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
utility.
.SS Public Key Cryptography
NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
.\" .Pp
.\" The cryptographic means necessary for all Autokey operations
.\" is provided by the OpenSSL software library.
.\" This library is available from http://www.openssl.org/
.\" and can be installed using the procedures outlined
.\" in the Building and Installing the Distribution page.
.\" Once installed,
.\" the configure and build
.\" process automatically detects the library and links
.\" the library routines required.
.sp \n(Ppu
.ne 2
The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S-KEY scheme,
in which a pseudo-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
\fIAutonomous\f[] \fIAuthentication\f[]
page.
.sp \n(Ppu
.ne 2
The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
\fCntp-keygen\f[]\fR(1ntpkeygenmdoc)\f[]
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
\f\*[B-Font]md5WithRSAEncryption\f[],
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
.sp \n(Ppu
.ne 2
NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
.SS Naming and Addressing
It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can't be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
.sp \n(Ppu
.ne 2
By convention, the name of an Autokey host is the name returned
by the Unix
\fCgethostname\f[]\fR(2)\f[]
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
.sp \n(Ppu
.ne 2
It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
.SS Operation
A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
.sp \n(Ppu
.ne 2
The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
\f\*[B-Font]server\f[]
or
\f\*[B-Font]peer\f[]
configuration command and no
\f\*[B-Font]key\f[]
or
\f\*[B-Font]autokey\f[]
subcommands are present, the association is not
authenticated; if the
\f\*[B-Font]key\f[]
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
\f\*[B-Font]autokey\f[]
subcommand is present, the association is authenticated
using Autokey.
.sp \n(Ppu
.ne 2
When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
.sp \n(Ppu
.ne 2
Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
.sp \n(Ppu
.ne 2
Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice's unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob's symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it's the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto-NAK, which tells her
something broke.
She can see the evidence using the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
program.
.sp \n(Ppu
.ne 2
Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
.sp \n(Ppu
.ne 2
It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
.SS Key Management
The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
\fCntp-keygen\f[]\fR(1ntpkeygenmdoc)\f[]
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility programs.
The remaining files are necessary only for the
Autokey protocol.
.sp \n(Ppu
.ne 2
Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
\f\*[B-Font]trustRoot\f[];.
Other extension fields are ignored.
.SS Authentication Commands
.TP 7
.NOP \f\*[B-Font]autokey\f[] [\f\*[I-Font]logsec\f[]]
Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
.TP 7
.NOP \f\*[B-Font]controlkey\f[] \f\*[I-Font]key\f[]
Specifies the key identifier to use with the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
utility, which uses the standard
protocol defined in RFC-1305.
The
\f\*[I-Font]key\f[]
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
.TP 7
.NOP \f\*[B-Font]crypto\f[] [\f\*[B-Font]cert\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]leap\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]randfile\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]host\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]sign\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]gq\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]gqpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]iffpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]mvpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]pw\f[] \f\*[I-Font]password\f[]]
This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
\f\*[B-Font]keysdir\f[]
command or default
\fI/usr/local/etc\f[].
Following are the subcommands:
.RS
.TP 7
.NOP \f\*[B-Font]cert\f[] \f\*[I-Font]file\f[]
Specifies the location of the required host public certificate file.
This overrides the link
\fIntpkey_cert_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]gqpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional GQ parameters file.
This
overrides the link
\fIntpkey_gq_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]host\f[] \f\*[I-Font]file\f[]
Specifies the location of the required host key file.
This overrides
the link
\fIntpkey_key_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]iffpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional IFF parameters file.
This overrides the link
\fIntpkey_iff_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]leap\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional leapsecond file.
This overrides the link
\fIntpkey_leap\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]mvpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional MV parameters file.
This overrides the link
\fIntpkey_mv_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]pw\f[] \f\*[I-Font]password\f[]
Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
.TP 7
.NOP \f\*[B-Font]randfile\f[] \f\*[I-Font]file\f[]
Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
.TP 7
.NOP \f\*[B-Font]sign\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional sign key file.
This overrides
the link
\fIntpkey_sign_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
If this file is
not found, the host key is also the sign key.
.RE
.TP 7
.NOP \f\*[B-Font]keys\f[] \f\*[I-Font]keyfile\f[]
Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
\fCntpd\f[]\fR(1ntpdmdoc)\f[],
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
when operating with symmetric key cryptography.
This is the same operation as the
\f\*[B-Font]\-k\f[]
command line option.
.TP 7
.NOP \f\*[B-Font]keysdir\f[] \f\*[I-Font]path\f[]
This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
\fI/usr/local/etc/\f[].
.TP 7
.NOP \f\*[B-Font]requestkey\f[] \f\*[I-Font]key\f[]
Specifies the key identifier to use with the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility program, which uses a
proprietary protocol specific to this implementation of
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
The
\f\*[I-Font]key\f[]
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
.TP 7
.NOP \f\*[B-Font]revoke\f[] \f\*[I-Font]logsec\f[]
Specifies the interval between re-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
.TP 7
.NOP \f\*[B-Font]trustedkey\f[] \f\*[I-Font]key\f[] \f\*[I-Font]...\f[]
Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
\f\*[I-Font]key\f[]
arguments are 32-bit unsigned
integers with values from 1 to 65,535.
.PP
.SS Error Codes
The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
.TP 7
.NOP 101
(bad field format or length)
The packet has invalid version, length or format.
.TP 7
.NOP 102
(bad timestamp)
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
.TP 7
.NOP 103
(bad filestamp)
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
.TP 7
.NOP 104
(bad or missing public key)
The public key is missing, has incorrect format or is an unsupported type.
.TP 7
.NOP 105
(unsupported digest type)
The server requires an unsupported digest/signature scheme.
.TP 7
.NOP 106
(mismatched digest types)
Not used.
.TP 7
.NOP 107
(bad signature length)
The signature length does not match the current public key.
.TP 7
.NOP 108
(signature not verified)
The message fails the signature check.
It could be bogus or signed by a
different private key.
.TP 7
.NOP 109
(certificate not verified)
The certificate is invalid or signed with the wrong key.
.TP 7
.NOP 110
(certificate not verified)
The certificate is not yet valid or has expired or the signature could not
be verified.
.TP 7
.NOP 111
(bad or missing cookie)
The cookie is missing, corrupted or bogus.
.TP 7
.NOP 112
(bad or missing leapseconds table)
The leapseconds table is missing, corrupted or bogus.
.TP 7
.NOP 113
(bad or missing certificate)
The certificate is missing, corrupted or bogus.
.TP 7
.NOP 114
(bad or missing identity)
The identity key is missing, corrupt or bogus.
.PP
.SH Monitoring Support
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
\f\*[B-Font]statistics\f[]
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
\fI./scripts\f[]
directory of the source code distribution.
Using
these facilities and
UNIX
\fCcron\f[]\fR(8)\f[]
jobs, the data can be
automatically summarized and archived for retrospective analysis.
.SS Monitoring Commands
.TP 7
.NOP \f\*[B-Font]statistics\f[] \f\*[I-Font]name\f[] \f\*[I-Font]...\f[]
Enables writing of statistics records.
Currently, eight kinds of
\f\*[I-Font]name\f[]
statistics are supported.
.RS
.TP 7
.NOP \f\*[B-Font]clockstats\f[]
Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
\f\*[B-Font]clockstats\f[]:
.br
.in +4
.nf
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
.TP 7
.NOP \f\*[B-Font]cryptostats\f[]
This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
\f\*[B-Font]cryptostats\f[]:
.br
.in +4
.nf
49213 525.624 127.127.4.1 message
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted-quad notation, The final message field includes the
message type and certain ancillary information.
See the
\fIAuthentication\f[] \fIOptions\f[]
section for further information.
.TP 7
.NOP \f\*[B-Font]loopstats\f[]
Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
\f\*[B-Font]loopstats\f[]:
.br
.in +4
.nf
50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million \-
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
.TP 7
.NOP \f\*[B-Font]peerstats\f[]
Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
\f\*[B-Font]peerstats\f[]:
.br
.in +4
.nf
48773 10847.650 127.127.4.1 9714 \-0.001605376 0.000000000 0.001424877 0.000958674
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
.TP 7
.NOP \f\*[B-Font]rawstats\f[]
Enables recording of raw-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
\f\*[B-Font]rawstats\f[]:
.br
.in +4
.nf
50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
\f\*[B-Font]sysstats\f[]:
.br
.in +4
.nf
50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
.RS
.TP 7
.NOP Time since restart \f\*[B-Font]36000\f[]
Time in hours since the system was last rebooted.
.TP 7
.NOP Packets received \f\*[B-Font]81965\f[]
Total number of packets received.
.TP 7
.NOP Packets processed \f\*[B-Font]0\f[]
Number of packets received in response to previous packets sent
.TP 7
.NOP Current version \f\*[B-Font]9546\f[]
Number of packets matching the current NTP version.
.TP 7
.NOP Previous version \f\*[B-Font]56\f[]
Number of packets matching the previous NTP version.
.TP 7
.NOP Bad version \f\*[B-Font]71793\f[]
Number of packets matching neither NTP version.
.TP 7
.NOP Access denied \f\*[B-Font]512\f[]
Number of packets denied access for any reason.
.TP 7
.NOP Bad length or format \f\*[B-Font]540\f[]
Number of packets with invalid length, format or port number.
.TP 7
.NOP Bad authentication \f\*[B-Font]10\f[]
Number of packets not verified as authentic.
.TP 7
.NOP Rate exceeded \f\*[B-Font]147\f[]
Number of packets discarded due to rate limitation.
.RE
.TP 7
.NOP \f\*[B-Font]statsdir\f[] \f\*[I-Font]directory_path\f[]
Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
\f\*[B-Font]filegen\f[]
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
.TP 7
.NOP \f\*[B-Font]filegen\f[] \f\*[I-Font]name\f[] [\f\*[B-Font]file\f[] \f\*[I-Font]filename\f[]] [\f\*[B-Font]type\f[] \f\*[I-Font]typename\f[]] [\f\*[B-Font]link\f[] | \f\*[B-Font]nolink\f[]] [\f\*[B-Font]enable\f[] | \f\*[B-Font]disable\f[]]
Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
.sp \n(Ppu
.ne 2
Note that this command can be sent from the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
program running at a remote location.
.RS
.TP 7
.NOP \f\*[B-Font]name\f[]
This is the type of the statistics records, as shown in the
\f\*[B-Font]statistics\f[]
command.
.TP 7
.NOP \f\*[B-Font]file\f[] \f\*[I-Font]filename\f[]
This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
\f\*[B-Font]prefix\f[],
\f\*[B-Font]filename\f[]
and
\f\*[B-Font]suffix\f[]:
.RS
.TP 7
.NOP \f\*[B-Font]prefix\f[]
This is a constant filename path.
It is not subject to
modifications via the
\f\*[I-Font]filegen\f[]
option.
It is defined by the
server, usually specified as a compile-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
\f\*[I-Font]loopstats\f[]
and
\f\*[I-Font]peerstats\f[]
generation can be configured using the
\f\*[I-Font]statsdir\f[]
option explained above.
.TP 7
.NOP \f\*[B-Font]filename\f[]
This string is directly concatenated to the prefix mentioned
above (no intervening
\[oq]/\[cq]).
This can be modified using
the file argument to the
\f\*[I-Font]filegen\f[]
statement.
No
\fI..\f[]
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
\f\*[I-Font]prefix\f[].
.TP 7
.NOP \f\*[B-Font]suffix\f[]
This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
.RE
.TP 7
.NOP \f\*[B-Font]type\f[] \f\*[I-Font]typename\f[]
A file generation set is characterized by its type.
The following
types are supported:
.RS
.TP 7
.NOP \f\*[B-Font]none\f[]
The file set is actually a single plain file.
.TP 7
.NOP \f\*[B-Font]pid\f[]
One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
server incarnations.
The set member filename is built by appending a
\[oq]\&.\[cq]
to concatenated
\f\*[I-Font]prefix\f[]
and
\f\*[I-Font]filename\f[]
strings, and
appending the decimal representation of the process ID of the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
server process.
.TP 7
.NOP \f\*[B-Font]day\f[]
One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
\[oq]\&.\[cq]
and a day specification in
the form
\f\*[B-Font]YYYYMMdd\f[].
\f\*[B-Font]YYYY\f[]
is a 4-digit year number (e.g., 1992).
\f\*[B-Font]MM\f[]
is a two digit month number.
\f\*[B-Font]dd\f[]
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
\f\*[I-Font]prefix\f[]
\f\*[I-Font]filename\f[].19921210.
.TP 7
.NOP \f\*[B-Font]week\f[]
Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day-of-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4-digit year number, the letter
\f\*[B-Font]W\f[],
and a 2-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.NOP. \f\*[I-Font]1992W1\f[].
.TP 7
.NOP \f\*[B-Font]month\f[]
One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4-digit year number, and
a 2-digit month.
.TP 7
.NOP \f\*[B-Font]year\f[]
One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
.TP 7
.NOP \f\*[B-Font]age\f[]
This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
\f\*[B-Font]a\f[],
and an 8-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24-hour period.
Information is only written to a file generation by specifying
\f\*[B-Font]enable\f[];
output is prevented by specifying
\f\*[B-Font]disable\f[].
.RE
.TP 7
.NOP \f\*[B-Font]link\f[] | \f\*[B-Font]nolink\f[]
It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
\f\*[B-Font]link\f[]
and disabled using
\f\*[B-Font]nolink\f[].
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
\f\*[B-Font]C\f[],
and the pid of the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
.TP 7
.NOP \f\*[B-Font]enable\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]disable\f[]
Enables or disables the recording function.
.RE
.RE
.PP
.SH Access Control Support
The
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
"Notes on Configuring NTP and Setting up a NTP Subnet"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.sp \n(Ppu
.ne 2
The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
.sp \n(Ppu
.ne 2
Clients can be denied service because they are explicitly
included in the restrict list created by the
\f\*[B-Font]restrict\f[]
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
.SS The Kiss-of-Death Packet
Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the "kiss-of-death" (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four-byte
ASCII code.
If the
\f\*[B-Font]noserve\f[]
or
\f\*[B-Font]notrust\f[]
flag of the matching restrict list entry is set,
the code is "DENY"; if the
\f\*[B-Font]limited\f[]
flag is set and the rate limit
is exceeded, the code is "RATE".
Finally, if a cryptographic violation occurs, the code is "CRYP".
.sp \n(Ppu
.ne 2
A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
.SS Access Control Commands
.TP 7
.NOP \f\*[B-Font]discard\f[] [\f\*[B-Font]average\f[] \f\*[I-Font]avg\f[]] [\f\*[B-Font]minimum\f[] \f\*[I-Font]min\f[]] [\f\*[B-Font]monitor\f[] \f\*[I-Font]prob\f[]]
Set the parameters of the
\f\*[B-Font]limited\f[]
facility which protects the server from
client abuse.
The
\f\*[B-Font]average\f[]
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
\f\*[B-Font]minimum\f[]
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss-o'-death packet returned if enabled.
The
\f\*[B-Font]monitor\f[]
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
\f\*[B-Font]monitor\f[]
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
.TP 7
.NOP \f\*[B-Font]restrict\f[] \f\*[B-Font]address\f[] [\f\*[B-Font]mask\f[] \f\*[I-Font]mask\f[]] [\f\*[B-Font]ippeerlimit\f[] \f\*[I-Font]int\f[]] [\f\*[I-Font]flag\f[] \f\*[I-Font]...\f[]]
The
\f\*[I-Font]address\f[]
argument expressed in
dotted-quad form is the address of a host or network.
Alternatively, the
\f\*[I-Font]address\f[]
argument can be a valid host DNS name.
The
\f\*[I-Font]mask\f[]
argument expressed in dotted-quad form defaults to
\f\*[B-Font]255.255.255.255\f[],
meaning that the
\f\*[I-Font]address\f[]
is treated as the address of an individual host.
A default entry (address
\f\*[B-Font]0.0.0.0\f[],
mask
\f\*[B-Font]0.0.0.0\f[])
is always included and is always the first entry in the list.
Note that text string
\f\*[B-Font]default\f[],
with no mask option, may
be used to indicate the default entry.
The
\f\*[B-Font]ippeerlimit\f[]
directive limits the number of peer requests for each IP to
\f\*[I-Font]int\f[],
where a value of \-1 means "unlimited", the current default.
A value of 0 means "none".
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
\f\*[B-Font]flag\f[]
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run-time
reconfiguration of the server.
One or more of the following flags
may be specified:
.RS
.TP 7
.NOP \f\*[B-Font]ignore\f[]
Deny packets of all kinds, including
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
queries.
.TP 7
.NOP \f\*[B-Font]kod\f[]
If this flag is set when an access violation occurs, a kiss-o'-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
.TP 7
.NOP \f\*[B-Font]limited\f[]
Deny service if the packet spacing violates the lower limits specified
in the
\f\*[B-Font]discard\f[]
command.
A history of clients is kept using the
monitoring capability of
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
Thus, monitoring is always active as
long as there is a restriction entry with the
\f\*[B-Font]limited\f[]
flag.
.TP 7
.NOP \f\*[B-Font]lowpriotrap\f[]
Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
.TP 7
.NOP \f\*[B-Font]noepeer\f[]
Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
\fIntp.keys\f[]
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
\f\*[B-Font]noepeer\f[]
to become the default in ntp-4.4.
.TP 7
.NOP \f\*[B-Font]nomodify\f[]
Deny
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
.TP 7
.NOP \f\*[B-Font]noquery\f[]
Deny
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
queries.
Time service is not affected.
.TP 7
.NOP \f\*[B-Font]nopeer\f[]
Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
\f\*[B-Font]pool\f[]
associations, so if you want to use servers from a
\f\*[B-Font]pool\f[]
directive and also want to use
\f\*[B-Font]nopeer\f[]
by default, you'll want a
\f\*[B-Font]restrict source ...\f[]
line as well that does
\fInot\f[]
include the
\f\*[B-Font]nopeer\f[]
directive.
.TP 7
.NOP \f\*[B-Font]noserve\f[]
Deny all packets except
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
queries.
.TP 7
.NOP \f\*[B-Font]notrap\f[]
Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
control message
protocol which is intended for use by remote event logging programs.
.TP 7
.NOP \f\*[B-Font]notrust\f[]
Deny service unless the packet is cryptographically authenticated.
.TP 7
.NOP \f\*[B-Font]ntpport\f[]
This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
\f\*[B-Font]ntpport\f[]
and
\f\*[B-Font]non-ntpport\f[]
may
be specified.
The
\f\*[B-Font]ntpport\f[]
is considered more specific and
is sorted later in the list.
.TP 7
.NOP \f\*[B-Font]serverresponse fuzz\f[]
When reponding to server requests,
fuzz the low order bits of the
\f\*[B-Font]reftime\f[].
.TP 7
.NOP \f\*[B-Font]version\f[]
Deny packets that do not match the current NTP version.
.RE
.sp \n(Ppu
.ne 2
Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
.PP
.SH Automatic NTP Configuration Options
.SS Manycasting
Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the "best"
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
.sp \n(Ppu
.ne 2
Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
.sp \n(Ppu
.ne 2
Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
\f[C]http://www.openssl.org/\f[].
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
.sp \n(Ppu
.ne 2
A persistent manycast client association is configured
using the
\f\*[B-Font]manycastclient\f[]
command, which is similar to the
\f\*[B-Font]server\f[]
command but with a multicast (IPv4 class
\f\*[B-Font]D\f[]
or IPv6 prefix
\f\*[B-Font]FF\f[])
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time-to-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
.sp \n(Ppu
.ne 2
Manycast servers configured with the
\f\*[B-Font]manycastserver\f[]
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
.sp \n(Ppu
.ne 2
The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the "best"
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
.sp \n(Ppu
.ne 2
The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near-simultaneous
arrival of manycast server messages.
The strategy is determined by the
\f\*[B-Font]manycastclient\f[],
\f\*[B-Font]tos\f[]
and
\f\*[B-Font]ttl\f[]
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
\f\*[B-Font]minpoll\f[]
value specified in the
\f\*[B-Font]manycastclient\f[],
command and, under normal circumstances, increments to the
\f\*[B-Font]maxpolll\f[]
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
\f\*[B-Font]ttl\f[]
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
.sp \n(Ppu
.ne 2
The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
\f\*[B-Font]minclock\f[]
and
\f\*[B-Font]minsane\f[]
values specified in the
\f\*[B-Font]tos\f[]
configuration command.
At least
\f\*[B-Font]minsane\f[]
candidate servers must be available and the mitigation
algorithms produce at least
\f\*[B-Font]minclock\f[]
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
\f\*[B-Font]minsane\f[]
defaults to 1 and
\f\*[B-Font]minclock\f[]
defaults to 3.
For manycast service
\f\*[B-Font]minsane\f[]
should be explicitly set to 4, assuming at least that
number of servers are available.
.sp \n(Ppu
.ne 2
If at least
\f\*[B-Font]minclock\f[]
servers are found, the manycast poll interval is immediately
set to eight times
\f\*[B-Font]maxpoll\f[].
If less than
\f\*[B-Font]minclock\f[]
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
\f\*[B-Font]maxpoll\f[].
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
.sp \n(Ppu
.ne 2
Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
\f\*[B-Font]ttl\f[]
configuration command can be
used to modify the values to match the scope rules.
.sp \n(Ppu
.ne 2
It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
\f\*[B-Font]tos\f[]
command can be used to modify this behavior.
Servers with stratum below
\f\*[B-Font]floor\f[]
or above
\f\*[B-Font]ceiling\f[]
specified in the
\f\*[B-Font]tos\f[]
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
\f\*[B-Font]minclock\f[].
.sp \n(Ppu
.ne 2
The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
\f\*[B-Font]minclock\f[],
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
\f\*[B-Font]maxpoll\f[]
is 12 (4,096 s).
.sp \n(Ppu
.ne 2
It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
\f\*[B-Font]multicastclient\f[]
and
\f\*[B-Font]multicastserver\f[]
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
.sp \n(Ppu
.ne 2
The remaining configuration files for all secondary
servers and clients have the same contents, except for the
\f\*[B-Font]tos\f[]
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
\f\*[B-Font]floor\f[]
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
.sp \n(Ppu
.ne 2
Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re-associate accordingly.
.sp \n(Ppu
.ne 2
Some administrators prefer to avoid running
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
continuously and run either
\fCsntp\f[]\fR(1sntpmdoc)\f[]
or
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
\f\*[B-Font]\-q\f[]
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
\f\*[B-Font]\-q\f[].
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
.SS Manycast Interactions with Autokey
Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
.sp \n(Ppu
.ne 2
About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
.SS Broadcast Options
.TP 7
.NOP \f\*[B-Font]tos\f[] [\f\*[B-Font]bcpollbstep\f[] \f\*[I-Font]gate\f[]]
This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server's time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
.PP
.SS Manycast Options
.TP 7
.NOP \f\*[B-Font]tos\f[] [\f\*[B-Font]ceiling\f[] \f\*[I-Font]ceiling\f[] | \f\*[B-Font]cohort\f[] { \f\*[B-Font]0\f[] | \f\*[B-Font]1\f[] } | \f\*[B-Font]floor\f[] \f\*[I-Font]floor\f[] | \f\*[B-Font]minclock\f[] \f\*[I-Font]minclock\f[] | \f\*[B-Font]minsane\f[] \f\*[I-Font]minsane\f[]]
This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
.RS
.TP 7
.NOP \f\*[B-Font]ceiling\f[] \f\*[I-Font]ceiling\f[]
Peers with strata above
\f\*[B-Font]ceiling\f[]
will be discarded if there are at least
\f\*[B-Font]minclock\f[]
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
.TP 7
.NOP \f\*[B-Font]cohort\f[] {0 | 1 }
This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
.TP 7
.NOP \f\*[B-Font]floor\f[] \f\*[I-Font]floor\f[]
Peers with strata below
\f\*[B-Font]floor\f[]
will be discarded if there are at least
\f\*[B-Font]minclock\f[]
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
.TP 7
.NOP \f\*[B-Font]minclock\f[] \f\*[I-Font]minclock\f[]
The clustering algorithm repeatedly casts out outlier
associations until no more than
\f\*[B-Font]minclock\f[]
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
.TP 7
.NOP \f\*[B-Font]minsane\f[] \f\*[I-Font]minsane\f[]
This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
\f\*[B-Font]minsane\f[]
should be at least 4 in order to detect and discard
a single falseticker.
.RE
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding-ring search.
The default is eight
multiples of 32 starting at 31.
.PP
.SH Reference Clock Support
The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
Additional information can be found in the pages linked
there, including the
"Debugging Hints for Reference Clock Drivers"
and
"How To Write a Reference Clock Driver"
pages
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
In addition, support for a PPS
signal is available as described in the
"Pulse-per-second (PPS) Signal Interfacing"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
"Line Disciplines and Streams Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.sp \n(Ppu
.ne 2
A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
.sp \n(Ppu
.ne 2
For the purposes of configuration,
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
\f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[],
where
\f\*[I-Font]t\f[]
is an integer
denoting the clock type and
\f\*[I-Font]u\f[]
indicates the unit
number in the range 0-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]server\f[]
command is used to configure a reference
clock, where the
\f\*[I-Font]address\f[]
argument in that command
is the clock address.
The
\f\*[B-Font]key\f[],
\f\*[B-Font]version\f[]
and
\f\*[B-Font]ttl\f[]
options are not used for reference clock support.
The
\f\*[B-Font]mode\f[]
option is added for reference clock support, as
described below.
The
\f\*[B-Font]prefer\f[]
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
"Mitigation Rules and the prefer Keyword"
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
page.
The
\f\*[B-Font]minpoll\f[]
and
\f\*[B-Font]maxpoll\f[]
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]fudge\f[]
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
\f\*[B-Font]server\f[]
command.
The
\f\*[I-Font]address\f[]
argument specifies the clock address.
The
\f\*[B-Font]refid\f[]
and
\f\*[B-Font]stratum\f[]
options can be used to
override the defaults for the device.
There are two optional
device-dependent time offsets and four flags that can be included
in the
\f\*[B-Font]fudge\f[]
command as well.
.sp \n(Ppu
.ne 2
The stratum number of a reference clock is by default zero.
Since the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
\f\*[B-Font]stratum\f[]
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse-per-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
\f\*[B-Font]refid\f[]
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
.SS Reference Clock Commands
.TP 7
.NOP \f\*[B-Font]server\f[] \f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]int\f[]]
This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
.RS
.TP 7
.NOP \f\*[B-Font]prefer\f[]
Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
for further information.
.TP 7
.NOP \f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.TP 7
.NOP \f\*[B-Font]minpoll\f[] \f\*[I-Font]int\f[]
.TP 7
.NOP \f\*[B-Font]maxpoll\f[] \f\*[I-Font]int\f[]
These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
\f\*[B-Font]minpoll\f[]
and
\f\*[B-Font]maxpoll\f[]
default to 6 (64 s).
For modem reference clocks,
\f\*[B-Font]minpoll\f[]
defaults to 10 (17.1 m) and
\f\*[B-Font]maxpoll\f[]
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
.RE
.TP 7
.NOP \f\*[B-Font]fudge\f[] \f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[] [\f\*[B-Font]time1\f[] \f\*[I-Font]sec\f[]] [\f\*[B-Font]time2\f[] \f\*[I-Font]sec\f[]] [\f\*[B-Font]stratum\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]refid\f[] \f\*[I-Font]string\f[]] [\f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]flag1\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag2\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag3\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag4\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]]
This command can be used to configure reference clocks in
special ways.
It must immediately follow the
\f\*[B-Font]server\f[]
command which configures the driver.
Note that the same capability
is possible at run time using the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
program.
The options are interpreted as
follows:
.RS
.TP 7
.NOP \f\*[B-Font]time1\f[] \f\*[I-Font]sec\f[]
Specifies a constant to be added to the time offset produced by
the driver, a fixed-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
\f\*[B-Font]enable\f[]
command described in
\fIMiscellaneous\f[] \fIOptions\f[]
page and operates as described in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.TP 7
.NOP \f\*[B-Font]time2\f[] \f\*[I-Font]secs\f[]
Specifies a fixed-point decimal number in seconds, which is
interpreted in a driver-dependent way.
See the descriptions of
specific drivers in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[] \fI).\f[]
.TP 7
.NOP \f\*[B-Font]stratum\f[] \f\*[I-Font]int\f[]
Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
.TP 7
.NOP \f\*[B-Font]refid\f[] \f\*[I-Font]string\f[]
Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
.TP 7
.NOP \f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.TP 7
.NOP \f\*[B-Font]flag1\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag2\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag3\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag4\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
\f\*[B-Font]flag4\f[]
is used to enable recording monitoring
data to the
\f\*[B-Font]clockstats\f[]
file configured with the
\f\*[B-Font]filegen\f[]
command.
Further information on the
\f\*[B-Font]filegen\f[]
command can be found in
\fIMonitoring\f[] \fIOptions\f[].
.RE
.PP
.SH Miscellaneous Options
.TP 7
.NOP \f\*[B-Font]broadcastdelay\f[] \f\*[I-Font]seconds\f[]
The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
.TP 7
.NOP \f\*[B-Font]calldelay\f[] \f\*[I-Font]delay\f[]
This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
.TP 7
.NOP \f\*[B-Font]driftfile\f[] \f\*[I-Font]driftfile\f[]
This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
\f\*[B-Font]\-f\f[]
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
.sp \n(Ppu
.ne 2
The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts-per-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
.TP 7
.NOP \f\*[B-Font]dscp\f[] \f\*[I-Font]value\f[]
This option specifies the Differentiated Services Control Point (DSCP) value,
a 6-bit code.
The default value is 46, signifying Expedited Forwarding.
.TP 7
.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
.TP 7
.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility program.
.RS
.TP 7
.NOP \f\*[B-Font]auth\f[]
Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]bclient\f[]
Enables the server to listen for a message from a broadcast or
multicast server, as in the
\f\*[B-Font]multicastclient\f[]
command with default
address.
The default for this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]calibrate\f[]
Enables the calibrate feature for reference clocks.
The default for
this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]kernel\f[]
Enables the kernel time discipline, if available.
The default for this
flag is
\f\*[B-Font]enable\f[]
if support is available, otherwise
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]mode7\f[]
Enables processing of NTP mode 7 implementation-specific requests
which are used by the deprecated
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
\fCntpq\f[]\fR(1ntpqmdoc)\f[].
The
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
program provides the same capabilities as
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
using standard mode 6 requests.
.TP 7
.NOP \f\*[B-Font]monitor\f[]
Enables the monitoring facility.
See the
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
program
and the
\f\*[B-Font]monlist\f[]
command or further information.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]ntp\f[]
Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]peer_clear_digest_early\f[]
By default, if
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
is using autokey and it
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]stats\f[]
Enables the statistics facility.
See the
\fIMonitoring\f[] \fIOptions\f[]
section for further information.
The default for this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_crypto_early\f[]
By default, if
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
By default, if
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_digest_early\f[]
By default, if
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.RE
.TP 7
.NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
.TP 7
.NOP \f\*[B-Font]interface\f[] [\f\*[B-Font]listen\f[] | \f\*[B-Font]ignore\f[] | \f\*[B-Font]drop\f[]] [\f\*[B-Font]all\f[] | \f\*[B-Font]ipv4\f[] | \f\*[B-Font]ipv6\f[] | \f\*[B-Font]wildcard\f[] \f\*[I-Font]name\f[] | \f\*[I-Font]address\f[] [\f\*[B-Font]/\f[] \f\*[I-Font]prefixlen\f[]]]
The
\f\*[B-Font]interface\f[]
directive controls which network addresses
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
\f\*[I-Font]prefixlen\f[]
determines how many bits must match for this rule to apply.
\f\*[B-Font]ignore\f[]
prevents opening matching addresses,
\f\*[B-Font]drop\f[]
causes
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
to open the address and drop all received packets without examination.
Multiple
\f\*[B-Font]interface\f[]
directives can be used.
The last rule which matches a particular address determines the action for it.
\f\*[B-Font]interface\f[]
directives are disabled if any
\f\*[B-Font]\-I\f[],
\f\*[B-Font]\-\-interface\f[],
\f\*[B-Font]\-L\f[],
or
\f\*[B-Font]\-\-novirtualips\f[]
command-line options are specified in the configuration file,
all available network addresses are opened.
The
\f\*[B-Font]nic\f[]
directive is an alias for
\f\*[B-Font]interface\f[].
.TP 7
.NOP \f\*[B-Font]leapfile\f[] \f\*[I-Font]leapfile\f[]
This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
\f[C]https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list\f[]
or
\f[C]ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list\f[].
The
\f\*[B-Font]leapfile\f[]
is scanned when
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
processes the
\f\*[B-Font]leapfile\f[] \f\*[B-Font]directive\f[] \f\*[B-Font]or\f[] \f\*[B-Font]when\f[]
\f\*[B-Font]ntpd\f[] \f\*[B-Font]detects\f[] \f\*[B-Font]that\f[] \f\*[B-Font]the\f[]
\f\*[I-Font]leapfile\f[]
has changed.
\f\*[B-Font]ntpd\f[]
checks once a day to see if the
\f\*[I-Font]leapfile\f[]
has changed.
The
\fCupdate-leap\f[]\fR(1update_leapmdoc)\f[]
script can be run to see if the
\f\*[I-Font]leapfile\f[]
should be updated.
.TP 7
.NOP \f\*[B-Font]leapsmearinterval\f[] \f\*[I-Font]seconds\f[]
This EXPERIMENTAL option is only available if
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
was built with the
\f\*[B-Font]\--enable-leap-smear\f[]
option to the
\f\*[B-Font]configure\f[]
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
.TP 7
.NOP \f\*[B-Font]logconfig\f[] \f\*[I-Font]configkeyword\f[]
This command controls the amount and type of output written to
the system
\fCsyslog\f[]\fR(3)\f[]
facility or the alternate
\f\*[B-Font]logfile\f[]
log file.
By default, all output is turned on.
All
\f\*[I-Font]configkeyword\f[]
keywords can be prefixed with
\[oq]=\[cq],
\[oq]+\[cq]
and
\[oq]\-\[cq],
where
\[oq]=\[cq]
sets the
\fCsyslog\f[]\fR(3)\f[]
priority mask,
\[oq]+\[cq]
adds and
\[oq]\-\[cq]
removes
messages.
\fCsyslog\f[]\fR(3)\f[]
messages can be controlled in four
classes
(\f\*[B-Font]clock\f[], \f\*[B-Font]peer\f[], \f\*[B-Font]sys\f[] and \f\*[B-Font]sync\f[]).
Within these classes four types of messages can be
controlled: informational messages
(\f\*[B-Font]info\f[]),
event messages
(\f\*[B-Font]events\f[]),
statistics messages
(\f\*[B-Font]statistics\f[])
and
status messages
(\f\*[B-Font]status\f[]).
.sp \n(Ppu
.ne 2
Configuration keywords are formed by concatenating the message class with
the event class.
The
\f\*[B-Font]all\f[]
prefix can be used instead of a message class.
A
message class may also be followed by the
\f\*[B-Font]all\f[]
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
.br
.in +4
.nf
logconfig =syncstatus +sysevents
.in -4
.fi
.sp \n(Ppu
.ne 2
This would just list the synchronizations state of
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
.br
.in +4
.nf
logconfig =syncall +clockall
.in -4
.fi
.sp \n(Ppu
.ne 2
This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
.TP 7
.NOP \f\*[B-Font]logfile\f[] \f\*[I-Font]logfile\f[]
This command specifies the location of an alternate log file to
be used instead of the default system
\fCsyslog\f[]\fR(3)\f[]
facility.
This is the same operation as the
\f\*[B-Font]\-l\f[]
command line option.
.TP 7
.NOP \f\*[B-Font]mru\f[] [\f\*[B-Font]maxdepth\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]maxmem\f[] \f\*[I-Font]kilobytes\f[] | \f\*[B-Font]mindepth\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]maxage\f[] \f\*[I-Font]seconds\f[] | \f\*[B-Font]initialloc\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]initmem\f[] \f\*[I-Font]kilobytes\f[] | \f\*[B-Font]incalloc\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]incmem\f[] \f\*[I-Font]kilobytes\f[]]
Controls size limite of the monitoring facility's Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
.RS
.TP 7
.NOP \f\*[B-Font]maxdepth\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]maxmem\f[] \f\*[I-Font]kilobytes\f[]
Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
\f\*[B-Font]incalloc\f[]
entries or
\f\*[B-Font]incmem\f[]
kilobytes larger.
As with all of the
\f\*[B-Font]mru\f[]
options offered in units of entries or kilobytes, if both
\f\*[B-Font]maxdepth\f[]
and
\f\*[B-Font]maxmem\f[] \f\*[B-Font]are\f[] \f\*[B-Font]used,\f[] \f\*[B-Font]the\f[] \f\*[B-Font]last\f[] \f\*[B-Font]one\f[] \f\*[B-Font]used\f[] \f\*[B-Font]controls.\f[]
The default is 1024 kilobytes.
.TP 7
.NOP \f\*[B-Font]mindepth\f[] \f\*[I-Font]count\f[]
Lower limit on the MRU list size.
When the MRU list has fewer than
\f\*[B-Font]mindepth\f[]
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
.TP 7
.NOP \f\*[B-Font]maxage\f[] \f\*[I-Font]seconds\f[]
Once the MRU list has
\f\*[B-Font]mindepth\f[]
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
\f\*[B-Font]maxage\f[]
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
\f\*[B-Font]maxdepth\f[] \f\*[B-Font]/\f[] \f\*[B-Font]moxmem\f[].
The default is 64 seconds.
.TP 7
.NOP \f\*[B-Font]initalloc\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]initmem\f[] \f\*[I-Font]kilobytes\f[]
Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
.TP 7
.NOP \f\*[B-Font]incalloc\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]incmem\f[] \f\*[I-Font]kilobytes\f[]
Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
.RE
.TP 7
.NOP \f\*[B-Font]nonvolatile\f[] \f\*[I-Font]threshold\f[]
Specify the
\f\*[I-Font]threshold\f[]
delta in seconds before an hourly change to the
\f\*[B-Font]driftfile\f[]
(frequency file) will be written, with a default value of 1e-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
\f\*[B-Font]threshold\f[]
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
.TP 7
.NOP \f\*[B-Font]phone\f[] \f\*[I-Font]dial\f[] \f\*[I-Font]...\f[]
This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 \- 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 \- 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
.TP 7
.NOP \f\*[B-Font]pollskewlist\f[] [\f\*[I-Font]poll\f[] \f\*[I-Font]early\f[] \f\*[I-Font]late\f[]] \f\*[I-Font]...\f[] [\f\*[B-Font]default\f[] \f\*[I-Font]early\f[] \f\*[I-Font]late\f[]]
Enable skewing of our poll requests to our servers.
\f\*[I-Font]poll\f[]
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
.TP 7
.NOP \f\*[B-Font]reset\f[] [\f\*[B-Font]allpeers\f[]] [\f\*[B-Font]auth\f[]] [\f\*[B-Font]ctl\f[]] [\f\*[B-Font]io\f[]] [\f\*[B-Font]mem\f[]] [\f\*[B-Font]sys\f[]] [\f\*[B-Font]timer\f[]]
Reset one or more groups of counters maintained by
\f\*[B-Font]ntpd\f[]
and exposed by
\f\*[B-Font]ntpq\f[]
and
\f\*[B-Font]ntpdc\f[].
.TP 7
.NOP \f\*[B-Font]rlimit\f[] [\f\*[B-Font]memlock\f[] \f\*[I-Font]Nmegabytes\f[] | \f\*[B-Font]stacksize\f[] \f\*[I-Font]N4kPages\f[] \f\*[B-Font]filenum\f[] \f\*[I-Font]Nfiledescriptors\f[]]
.RS
.TP 7
.NOP \f\*[B-Font]memlock\f[] \f\*[I-Font]Nmegabytes\f[]
Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
\f\*[B-Font]\-i\f[]
option).
The default is 32 megabytes on non-Linux machines, and \-1 under Linux.
-1 means "do not lock the process into memory".
0 means "lock whatever memory the process wants into memory".
.TP 7
.NOP \f\*[B-Font]stacksize\f[] \f\*[I-Font]N4kPages\f[]
Specifies the maximum size of the process stack on systems with the
\fBmlockall\f[]\fR()\f[]
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
.TP 7
.NOP \f\*[B-Font]filenum\f[] \f\*[I-Font]Nfiledescriptors\f[]
Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
.RE
.TP 7
.NOP \f\*[B-Font]saveconfigdir\f[] \f\*[I-Font]directory_path\f[]
Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq 's
\f\*[B-Font]saveconfig\f[]
command.
If
\f\*[B-Font]saveconfigdir\f[]
does not appear in the configuration file,
\f\*[B-Font]saveconfig\f[]
requests are rejected by
\f\*[B-Font]ntpd\f[].
.TP 7
.NOP \f\*[B-Font]saveconfig\f[] \f\*[I-Font]filename\f[]
Write the current configuration, including any runtime
modifications given with
\f\*[B-Font]:config\f[]
or
\f\*[B-Font]config-from-file\f[]
to the
\f\*[B-Font]ntpd\f[]
host's
\f\*[I-Font]filename\f[]
in the
\f\*[B-Font]saveconfigdir\f[].
This command will be rejected unless the
\f\*[B-Font]saveconfigdir\f[]
directive appears in
.Cm ntpd 's
configuration file.
\f\*[I-Font]filename\f[]
can use
\fCstrftime\f[]\fR(3)\f[]
format directives to substitute the current date and time,
for example,
\f\*[B-Font]saveconfig\ ntp-%Y%m%d-%H%M%S.conf\f[].
The filename used is stored in the system variable
\f\*[B-Font]savedconfig\f[].
Authentication is required.
.TP 7
.NOP \f\*[B-Font]setvar\f[] \f\*[I-Font]variable\f[] [\f\*[B-Font]default\f[]]
This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
\fIname\f[]\fI=\f[]\f\*[I-Font]value\f[]
is followed by the
\f\*[B-Font]default\f[]
keyword, the
variable will be listed as part of the default system variables
(\fCntpq\f[]\fR(1ntpqmdoc)\f[] \f\*[B-Font]rv\f[] command)).
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
\f\*[B-Font]setvar\f[]
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
\fIsys_var_list\f[]
holds
the names of all system variables.
The
\fIpeer_var_list\f[]
holds
the names of all peer variables and the
\fIclock_var_list\f[]
holds the names of the reference clock variables.
.TP 7
.NOP \f\*[B-Font]sysinfo\f[]
Display operational summary.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Show statistics counters maintained in the protocol module.
.TP 7
.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
.sp \n(Ppu
.ne 2
The variables operate as follows:
.RS
.TP 7
.NOP \f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[]
The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
.TP 7
.NOP \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[]
The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
.TP 7
.NOP \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[]
The argument becomes the initial value of the frequency offset in
parts-per-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
.TP 7
.NOP \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[]
The argument becomes the new value for the experimental
huff-n'-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
.TP 7
.NOP \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[]
The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
.TP 7
.NOP \f\*[B-Font]step\f[] \f\*[I-Font]step\f[]
The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
.TP 7
.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[]
The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
.TP 7
.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[]
As for stepback, but for the forward direction.
.TP 7
.NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]
The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
.RE
.TP 7
.NOP \f\*[B-Font]writevar\f[] \f\*[I-Font]assocID\ name\f[] \f\*[I-Font]=\f[] \f\*[I-Font]value\f[] \f\*[I-Font][,...]\f[]
Write (create or update) the specified variables.
If the
\f\*[B-Font]assocID\f[]
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
\f\*[B-Font]assocID\f[]
is required, as the same name can occur in both name spaces.
.TP 7
.NOP \f\*[B-Font]trap\f[] \f\*[I-Font]host_address\f[] [\f\*[B-Font]port\f[] \f\*[I-Font]port_number\f[]] [\f\*[B-Font]interface\f[] \f\*[I-Font]interface_address\f[]]
This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
\f\*[B-Font]manycast\f[]
mode these values are used in-turn in an expanding-ring search.
The default is eight multiples of 32 starting at 31.
.sp \n(Ppu
.ne 2
The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
.TP 7
.NOP \f\*[B-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding-ring search.
The default is eight multiples of 32 starting at
31.
.PP
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_CONF_<option-name>\fP or \fBNTP_CONF\fP
.fi
.ad
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH FILES
.TP 15
.NOP \fI/etc/ntp.conf\f[]
the default name of the configuration file
.br
.ns
.TP 15
.NOP \fIntp.keys\f[]
private MD5 keys
.br
.ns
.TP 15
.NOP \fIntpkey\f[]
RSA private key
.br
.ns
.TP 15
.NOP \fIntpkey_\f[]\f\*[I-Font]host\f[]
RSA public key
.br
.ns
.TP 15
.NOP \fIntp_dh\f[]
Diffie-Hellman agreement parameters
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntpd\f[]\fR(1ntpdmdoc)\f[],
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[],
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
.sp \n(Ppu
.ne 2
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
\f[C]http://www.ntp.org/\f[].
A snapshot of this documentation is available in HTML format in
\fI/usr/share/doc/ntp\f[].
David L. Mills,
\fINetwork Time Protocol (Version 4)\fR,
RFC5905
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
.sp \n(Ppu
.ne 2
The
\fIntpkey_\f[]\f\*[I-Font]host\f[]
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
This document was derived from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp.conf\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.conf.5mdoc b/contrib/ntp/ntpd/ntp.conf.5mdoc
index bc6f31c73c24..951f33da4faa 100644
--- a/contrib/ntp/ntpd/ntp.conf.5mdoc
+++ b/contrib/ntp/ntpd/ntp.conf.5mdoc
@@ -1,3324 +1,3324 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_CONF 5mdoc File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:25 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:32 AM by AutoGen 5.18.16
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp.conf
.Nd Network Time Protocol (NTP) daemon configuration file format
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
The
.Nm
configuration file is read at initial startup by the
.Xr ntpd 1ntpdmdoc
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
.Pa /etc
directory,
but could be installed elsewhere
(see the daemon's
.Fl c
command line option).
.Pp
The file format is similar to other
.Ux
configuration files.
Comments begin with a
.Ql #
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted\-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
.Pp
The rest of this page describes the configuration and control options.
The
.Qq Notes on Configuring NTP and Setting up an NTP Subnet
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
contains an extended discussion of these options.
In addition to the discussion of general
.Sx Configuration Options ,
there are sections describing the following supported functionality
and the options used to control it:
.Bl -bullet -offset indent
.It
.Sx Authentication Support
.It
.Sx Monitoring Support
.It
.Sx Access Control Support
.It
.Sx Automatic NTP Configuration Options
.It
.Sx Reference Clock Support
.It
.Sx Miscellaneous Options
.El
.Pp
Following these is a section describing
.Sx Miscellaneous Options .
While there is a rich set of options available,
the only required option is one or more
.Ic pool ,
.Ic server ,
.Ic peer ,
.Ic broadcast
or
.Ic manycastclient
commands.
.Sh Configuration Support
Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
.Ss Configuration Commands
The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
.Pp
If the Basic Socket Interface Extensions for IPv6 (RFC\-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
.Cm reslist
billboard generated
by
.Xr ntpq 1ntpqmdoc
or
.Xr ntpdc 1ntpdcmdoc ,
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
.Dq \&:
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
.Fl 6
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
.Bl -tag -width indent
.It Xo Ic pool Ar address
.Op Cm burst
.Op Cm iburst
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm xmtnonce
.Xc
.It Xo Ic server Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm burst
.Op Cm iburst
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm true
.Op Cm xmtnonce
.Xc
.It Xo Ic peer Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm true
.Op Cm xleave
.Xc
.It Xo Ic broadcast Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm ttl Ar ttl
.Op Cm xleave
.Xc
.It Xo Ic manycastclient Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm ttl Ar ttl
.Xc
.El
.Pp
These five commands specify the time server name or address to
be used and the mode in which to operate.
The
.Ar address
can be
either a DNS name or an IP address in dotted\-quad notation.
Additional information on association behavior can be found in the
.Qq Association Management
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Bl -tag -width indent
.It Ic pool
For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
.It Ic server
For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
.Em not
be used for type
b or m addresses.
.It Ic peer
For type s addresses (only), this command mobilizes a
persistent symmetric\-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
.It Ic broadcast
For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
.Ar address
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
.Ic broadcastclient
or
.Ic multicastclient
commands
below.
.It Ic manycastclient
For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
.Ic manycastserver
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
.Ic manycastserver
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
.Ar address
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
.Ic server
command.
The remaining servers are discarded as if never
heard.
.El
.Pp
Options:
.Bl -tag -width indent
.It Cm autokey
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
.Sx Authentication Options .
.It Cm burst
when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
.Ic calldelay
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
.Ic server
command and s addresses.
.It Cm iburst
When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
.Ic calldelay
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
.Ic server
command and s addresses and when
.Xr ntpd 1ntpdmdoc
is started with the
.Fl q
option.
.It Cm key Ar key
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
.Ar key
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
.It Cm minpoll Ar minpoll
.It Cm maxpoll Ar maxpoll
These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
.Cm maxpoll
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
.Cm minpoll
option to a lower limit of 4 (16 s).
.It Cm noselect
Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
.It Cm preempt
Says the association can be preempted.
.It Cm prefer
Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
.Qq Mitigation Rules and the prefer Keyword
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
for further information.
.It Cm true
Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
.Em only
be used while testing an association.
.It Cm ttl Ar ttl
This option is used only with broadcast server and manycast
client modes.
It specifies the time\-to\-live
.Ar ttl
to
use on broadcast server and multicast server and the maximum
.Ar ttl
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
.It Cm version Ar version
Specifies the version number to be used for outgoing NTP
packets.
Versions 1\-4 are the choices, with version 4 the
default.
.It Cm xleave
Valid in
.Cm peer
and
.Cm broadcast
modes only, this flag enables interleave mode.
.It Cm xmtnonce
Valid only for
.Cm server
and
.Cm pool
modes, this flag puts a random number in the packet's transmit timestamp.
.El
.Ss Auxiliary Commands
.Bl -tag -width indent
.It Ic broadcastclient
This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric\-key or public\-key
authentication as described in
.Sx Authentication Options .
.It Ic manycastserver Ar address ...
This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric\-key or public\-key
authentication as described in
.Sx Authentication Options .
.It Ic multicastclient Ar address ...
This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric\-key or
public\-key authentication as described in
.Sx Authentication Options .
.It Ic mdnstries Ar number
If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
.Ic mdnstries
times.
After all,
.Ic ntpd
may be starting before mDNS.
The default value for
.Ic mdnstries
is 5.
.El
.Sh Authentication Support
Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC\-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES\-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed\-MD5.
Either algorithm computes a message digest, or one\-way hash, which
can be used to verify the server has the correct private key and
key identifier.
.Pp
NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
.Pp
While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
.Pp
Authentication is configured separately for each association
using the
.Cm key
or
.Cm autokey
subcommand on the
.Ic peer ,
.Ic server ,
.Ic broadcast
and
.Ic manycastclient
configuration commands as described in
.Sx Configuration Options
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
.Pp
Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
.Pp
The
.Cm auth
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
.Ic enable
and
.Ic disable
commands and also by remote
configuration commands sent by a
.Xr ntpdc 1ntpdcmdoc
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
.Ic auth
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
.Pp
An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
.Sx Automatic NTP Configuration Options
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
.Pp
The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
.Li http://www.ntp.org/ .
.Ss Symmetric\-Key Cryptography
The original RFC\-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32\-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
.Pa ntp.keys ,
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
utility programs.
.Pp
When
.Xr ntpd 1ntpdmdoc
is first started, it reads the key file specified in the
.Ic keys
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
.Ic trusted
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
.Xr ntpdc 1ntpdcmdoc .
This also provides a revocation capability that can be used
if a key becomes compromised.
The
.Ic requestkey
command selects the key used as the password for the
.Xr ntpdc 1ntpdcmdoc
utility, while the
.Ic controlkey
command selects the key used as the password for the
.Xr ntpq 1ntpqmdoc
utility.
.Ss Public Key Cryptography
NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC\-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
.\" .Pp
.\" The cryptographic means necessary for all Autokey operations
.\" is provided by the OpenSSL software library.
.\" This library is available from http://www.openssl.org/
.\" and can be installed using the procedures outlined
.\" in the Building and Installing the Distribution page.
.\" Once installed,
.\" the configure and build
.\" process automatically detects the library and links
.\" the library routines required.
.Pp
The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S\-KEY scheme,
in which a pseudo\-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
.Sx Autonomous Authentication
page.
.Pp
The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
.Xr ntp\-keygen 1ntpkeygenmdoc
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
.Cm md5WithRSAEncryption ,
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
.Pp
NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
.Ss Naming and Addressing
It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can't be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
.Pp
By convention, the name of an Autokey host is the name returned
by the Unix
.Xr gethostname 2
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
.Pp
It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
.Ss Operation
A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
.Pp
The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
.Ic server
or
.Ic peer
configuration command and no
.Ic key
or
.Ic autokey
subcommands are present, the association is not
authenticated; if the
.Ic key
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
.Ic autokey
subcommand is present, the association is authenticated
using Autokey.
.Pp
When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
.Pp
Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
.Pp
Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice's unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob's symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it's the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto\-NAK, which tells her
something broke.
She can see the evidence using the
.Xr ntpq 1ntpqmdoc
program.
.Pp
Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
.Pp
It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
.Ss Key Management
The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
.Xr ntp\-keygen 1ntpkeygenmdoc
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
utility programs.
The remaining files are necessary only for the
Autokey protocol.
.Pp
Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
.Cm trustRoot ; .
Other extension fields are ignored.
.Ss Authentication Commands
.Bl -tag -width indent
.It Ic autokey Op Ar logsec
Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
.It Ic controlkey Ar key
Specifies the key identifier to use with the
.Xr ntpq 1ntpqmdoc
utility, which uses the standard
protocol defined in RFC\-1305.
The
.Ar key
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
.It Xo Ic crypto
.Op Cm cert Ar file
.Op Cm leap Ar file
.Op Cm randfile Ar file
.Op Cm host Ar file
.Op Cm sign Ar file
.Op Cm gq Ar file
.Op Cm gqpar Ar file
.Op Cm iffpar Ar file
.Op Cm mvpar Ar file
.Op Cm pw Ar password
.Xc
This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
.Ic keysdir
command or default
.Pa /usr/local/etc .
Following are the subcommands:
.Bl -tag -width indent
.It Cm cert Ar file
Specifies the location of the required host public certificate file.
This overrides the link
.Pa ntpkey_cert_ Ns Ar hostname
in the keys directory.
.It Cm gqpar Ar file
Specifies the location of the optional GQ parameters file.
This
overrides the link
.Pa ntpkey_gq_ Ns Ar hostname
in the keys directory.
.It Cm host Ar file
Specifies the location of the required host key file.
This overrides
the link
.Pa ntpkey_key_ Ns Ar hostname
in the keys directory.
.It Cm iffpar Ar file
Specifies the location of the optional IFF parameters file.
This overrides the link
.Pa ntpkey_iff_ Ns Ar hostname
in the keys directory.
.It Cm leap Ar file
Specifies the location of the optional leapsecond file.
This overrides the link
.Pa ntpkey_leap
in the keys directory.
.It Cm mvpar Ar file
Specifies the location of the optional MV parameters file.
This overrides the link
.Pa ntpkey_mv_ Ns Ar hostname
in the keys directory.
.It Cm pw Ar password
Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
.It Cm randfile Ar file
Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
.It Cm sign Ar file
Specifies the location of the optional sign key file.
This overrides
the link
.Pa ntpkey_sign_ Ns Ar hostname
in the keys directory.
If this file is
not found, the host key is also the sign key.
.El
.It Ic keys Ar keyfile
Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
.Xr ntpd 1ntpdmdoc ,
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
when operating with symmetric key cryptography.
This is the same operation as the
.Fl k
command line option.
.It Ic keysdir Ar path
This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
.Pa /usr/local/etc/ .
.It Ic requestkey Ar key
Specifies the key identifier to use with the
.Xr ntpdc 1ntpdcmdoc
utility program, which uses a
proprietary protocol specific to this implementation of
.Xr ntpd 1ntpdmdoc .
The
.Ar key
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
.It Ic revoke Ar logsec
Specifies the interval between re\-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute\-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
.It Ic trustedkey Ar key ...
Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
.Ar key
arguments are 32\-bit unsigned
integers with values from 1 to 65,535.
.El
.Ss Error Codes
The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
.Bl -tag -width indent
.It 101
.Pq bad field format or length
The packet has invalid version, length or format.
.It 102
.Pq bad timestamp
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
.It 103
.Pq bad filestamp
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
.It 104
.Pq bad or missing public key
The public key is missing, has incorrect format or is an unsupported type.
.It 105
.Pq unsupported digest type
The server requires an unsupported digest/signature scheme.
.It 106
.Pq mismatched digest types
Not used.
.It 107
.Pq bad signature length
The signature length does not match the current public key.
.It 108
.Pq signature not verified
The message fails the signature check.
It could be bogus or signed by a
different private key.
.It 109
.Pq certificate not verified
The certificate is invalid or signed with the wrong key.
.It 110
.Pq certificate not verified
The certificate is not yet valid or has expired or the signature could not
be verified.
.It 111
.Pq bad or missing cookie
The cookie is missing, corrupted or bogus.
.It 112
.Pq bad or missing leapseconds table
The leapseconds table is missing, corrupted or bogus.
.It 113
.Pq bad or missing certificate
The certificate is missing, corrupted or bogus.
.It 114
.Pq bad or missing identity
The identity key is missing, corrupt or bogus.
.El
.Sh Monitoring Support
.Xr ntpd 1ntpdmdoc
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
.Ic statistics
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
.Pa ./scripts
directory of the source code distribution.
Using
these facilities and
.Ux
.Xr cron 8
jobs, the data can be
automatically summarized and archived for retrospective analysis.
.Ss Monitoring Commands
.Bl -tag -width indent
.It Ic statistics Ar name ...
Enables writing of statistics records.
Currently, eight kinds of
.Ar name
statistics are supported.
.Bl -tag -width indent
.It Cm clockstats
Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
.Cm clockstats :
.Bd -literal
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted\-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
.It Cm cryptostats
This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
.Cm cryptostats :
.Bd -literal
49213 525.624 127.127.4.1 message
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted\-quad notation, The final message field includes the
message type and certain ancillary information.
See the
.Sx Authentication Options
section for further information.
.It Cm loopstats
Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
.Cm loopstats :
.Bd -literal
50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million \-
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
.It Cm peerstats
Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
.Cm peerstats :
.Bd -literal
48773 10847.650 127.127.4.1 9714 \-0.001605376 0.000000000 0.001424877 0.000958674
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted\-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
.It Cm rawstats
Enables recording of raw\-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
.Cm rawstats :
.Bd -literal
50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted\-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
.It Cm sysstats
Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
.Cm sysstats :
.Bd -literal
50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
.Bl -tag -width indent
.It Time since restart Cm 36000
Time in hours since the system was last rebooted.
.It Packets received Cm 81965
Total number of packets received.
.It Packets processed Cm 0
Number of packets received in response to previous packets sent
.It Current version Cm 9546
Number of packets matching the current NTP version.
.It Previous version Cm 56
Number of packets matching the previous NTP version.
.It Bad version Cm 71793
Number of packets matching neither NTP version.
.It Access denied Cm 512
Number of packets denied access for any reason.
.It Bad length or format Cm 540
Number of packets with invalid length, format or port number.
.It Bad authentication Cm 10
Number of packets not verified as authentic.
.It Rate exceeded Cm 147
Number of packets discarded due to rate limitation.
.El
.It Cm statsdir Ar directory_path
Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
.Cm filegen
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
.It Cm filegen Ar name Xo
.Op Cm file Ar filename
.Op Cm type Ar typename
.Op Cm link | nolink
.Op Cm enable | disable
.Xc
Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
.Pp
Note that this command can be sent from the
.Xr ntpdc 1ntpdcmdoc
program running at a remote location.
.Bl -tag -width indent
.It Cm name
This is the type of the statistics records, as shown in the
.Cm statistics
command.
.It Cm file Ar filename
This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
.Ar Cm prefix ,
.Ar Cm filename
and
.Ar Cm suffix :
.Bl -tag -width indent
.It Cm prefix
This is a constant filename path.
It is not subject to
modifications via the
.Ar filegen
option.
It is defined by the
server, usually specified as a compile\-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
.Ar loopstats
and
.Ar peerstats
generation can be configured using the
.Ar statsdir
option explained above.
.It Cm filename
This string is directly concatenated to the prefix mentioned
above (no intervening
.Ql / ) .
This can be modified using
the file argument to the
.Ar filegen
statement.
No
.Pa ..
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
.Ar prefix .
.It Cm suffix
This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
.El
.It Cm type Ar typename
A file generation set is characterized by its type.
The following
types are supported:
.Bl -tag -width indent
.It Cm none
The file set is actually a single plain file.
.It Cm pid
One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
.Xr ntpd 1ntpdmdoc
server incarnations.
The set member filename is built by appending a
.Ql \&.
to concatenated
.Ar prefix
and
.Ar filename
strings, and
appending the decimal representation of the process ID of the
.Xr ntpd 1ntpdmdoc
server process.
.It Cm day
One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
.Ql \&.
and a day specification in
the form
.Cm YYYYMMdd .
.Cm YYYY
is a 4\-digit year number (e.g., 1992).
.Cm MM
is a two digit month number.
.Cm dd
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
.Ar prefix
.Ar filename Ns .19921210 .
.It Cm week
Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day\-of\-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4\-digit year number, the letter
.Cm W ,
and a 2\-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.No . Ns Ar 1992W1 .
.It Cm month
One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4\-digit year number, and
a 2\-digit month.
.It Cm year
One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
.It Cm age
This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
.Cm a ,
and an 8\-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24\-hour period.
Information is only written to a file generation by specifying
.Cm enable ;
output is prevented by specifying
.Cm disable .
.El
.It Cm link | nolink
It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
.Cm link
and disabled using
.Cm nolink .
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
.Cm C ,
and the pid of the
.Xr ntpd 1ntpdmdoc
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
.It Cm enable \&| Cm disable
Enables or disables the recording function.
.El
.El
.El
.Sh Access Control Support
The
.Xr ntpd 1ntpdmdoc
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
.Qq Notes on Configuring NTP and Setting up a NTP Subnet
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Pp
The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
.Pp
Clients can be denied service because they are explicitly
included in the restrict list created by the
.Ic restrict
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
.Ss The Kiss\-of\-Death Packet
Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the "kiss\-of\-death" (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four\-byte
ASCII code.
If the
.Cm noserve
or
.Cm notrust
flag of the matching restrict list entry is set,
the code is "DENY"; if the
.Cm limited
flag is set and the rate limit
is exceeded, the code is "RATE".
Finally, if a cryptographic violation occurs, the code is "CRYP".
.Pp
A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
.Ss Access Control Commands
.Bl -tag -width indent
.It Xo Ic discard
.Op Cm average Ar avg
.Op Cm minimum Ar min
.Op Cm monitor Ar prob
.Xc
Set the parameters of the
.Cm limited
facility which protects the server from
client abuse.
The
.Cm average
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
.Cm minimum
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss\-o'\-death packet returned if enabled.
The
.Ic monitor
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
.Ic monitor
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
.It Xo Ic restrict address
.Op Cm mask Ar mask
.Op Cm ippeerlimit Ar int
.Op Ar flag ...
.Xc
The
.Ar address
argument expressed in
dotted\-quad form is the address of a host or network.
Alternatively, the
.Ar address
argument can be a valid host DNS name.
The
.Ar mask
argument expressed in dotted\-quad form defaults to
.Cm 255.255.255.255 ,
meaning that the
.Ar address
is treated as the address of an individual host.
A default entry (address
.Cm 0.0.0.0 ,
mask
.Cm 0.0.0.0 )
is always included and is always the first entry in the list.
Note that text string
.Cm default ,
with no mask option, may
be used to indicate the default entry.
The
.Cm ippeerlimit
directive limits the number of peer requests for each IP to
.Ar int ,
where a value of \-1 means "unlimited", the current default.
A value of 0 means "none".
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
.Cm flag
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run\-time
reconfiguration of the server.
One or more of the following flags
may be specified:
.Bl -tag -width indent
.It Cm ignore
Deny packets of all kinds, including
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
queries.
.It Cm kod
If this flag is set when an access violation occurs, a kiss\-o'\-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
.It Cm limited
Deny service if the packet spacing violates the lower limits specified
in the
.Ic discard
command.
A history of clients is kept using the
monitoring capability of
.Xr ntpd 1ntpdmdoc .
Thus, monitoring is always active as
long as there is a restriction entry with the
.Cm limited
flag.
.It Cm lowpriotrap
Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
.It Cm noepeer
Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
.Pa ntp.keys
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
.Cm noepeer
to become the default in ntp\-4.4.
.It Cm nomodify
Deny
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
.It Cm noquery
Deny
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
queries.
Time service is not affected.
.It Cm nopeer
Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
.Cm pool
associations, so if you want to use servers from a
.Cm pool
directive and also want to use
.Cm nopeer
by default, you'll want a
.Cm "restrict source ..."
line as well that does
.Em not
include the
.Cm nopeer
directive.
.It Cm noserve
Deny all packets except
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
queries.
.It Cm notrap
Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
.Xr ntpq 1ntpqmdoc
control message
protocol which is intended for use by remote event logging programs.
.It Cm notrust
Deny service unless the packet is cryptographically authenticated.
.It Cm ntpport
This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
.Cm ntpport
and
.Cm non\-ntpport
may
be specified.
The
.Cm ntpport
is considered more specific and
is sorted later in the list.
.It Ic "serverresponse fuzz"
When reponding to server requests,
fuzz the low order bits of the
.Cm reftime .
.It Cm version
Deny packets that do not match the current NTP version.
.El
.Pp
Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
.El
.Sh Automatic NTP Configuration Options
.Ss Manycasting
Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the "best"
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
.Pp
Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC\-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
.Pp
Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
.Li http://www.openssl.org/ .
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
.Pp
A persistent manycast client association is configured
using the
.Ic manycastclient
command, which is similar to the
.Ic server
command but with a multicast (IPv4 class
.Cm D
or IPv6 prefix
.Cm FF )
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time\-to\-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
.Pp
Manycast servers configured with the
.Ic manycastserver
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
.Pp
The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2\-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the "best"
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
.Pp
The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near\-simultaneous
arrival of manycast server messages.
The strategy is determined by the
.Ic manycastclient ,
.Ic tos
and
.Ic ttl
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
.Cm minpoll
value specified in the
.Ic manycastclient ,
command and, under normal circumstances, increments to the
.Cm maxpolll
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
.Ic ttl
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
.Pp
The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
.Cm minclock
and
.Cm minsane
values specified in the
.Ic tos
configuration command.
At least
.Cm minsane
candidate servers must be available and the mitigation
algorithms produce at least
.Cm minclock
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
.Cm minsane
defaults to 1 and
.Cm minclock
defaults to 3.
For manycast service
.Cm minsane
should be explicitly set to 4, assuming at least that
number of servers are available.
.Pp
If at least
.Cm minclock
servers are found, the manycast poll interval is immediately
set to eight times
.Cm maxpoll .
If less than
.Cm minclock
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
.Cm maxpoll .
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
.Pp
Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
.Ic ttl
configuration command can be
used to modify the values to match the scope rules.
.Pp
It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
.Ic tos
command can be used to modify this behavior.
Servers with stratum below
.Cm floor
or above
.Cm ceiling
specified in the
.Ic tos
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
.Cm minclock .
.Pp
The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
.Cm minclock ,
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
.Cm maxpoll
is 12 (4,096 s).
.Pp
It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
.Ic multicastclient
and
.Ic multicastserver
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
.Pp
The remaining configuration files for all secondary
servers and clients have the same contents, except for the
.Ic tos
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
.Cm floor
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
.Pp
Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re\-associate accordingly.
.Pp
Some administrators prefer to avoid running
.Xr ntpd 1ntpdmdoc
continuously and run either
.Xr sntp 1sntpmdoc
or
.Xr ntpd 1ntpdmdoc
.Fl q
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
.Xr ntpd 1ntpdmdoc
.Fl q .
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
.Ss Manycast Interactions with Autokey
Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
.Pp
About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
.Ss Broadcast Options
.Bl -tag -width indent
.It Xo Ic tos
.Oo
.Cm bcpollbstep Ar gate
.Oc
.Xc
This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server's time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
.El
.Ss Manycast Options
.Bl -tag -width indent
.It Xo Ic tos
.Oo
.Cm ceiling Ar ceiling |
.Cm cohort { 0 | 1 } |
.Cm floor Ar floor |
.Cm minclock Ar minclock |
.Cm minsane Ar minsane
.Oc
.Xc
This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
.Bl -tag -width indent
.It Cm ceiling Ar ceiling
Peers with strata above
.Cm ceiling
will be discarded if there are at least
.Cm minclock
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
.It Cm cohort Bro 0 | 1 Brc
This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
.It Cm floor Ar floor
Peers with strata below
.Cm floor
will be discarded if there are at least
.Cm minclock
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
.It Cm minclock Ar minclock
The clustering algorithm repeatedly casts out outlier
associations until no more than
.Cm minclock
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
.It Cm minsane Ar minsane
This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
.Cm minsane
should be at least 4 in order to detect and discard
a single falseticker.
.El
.It Cm ttl Ar hop ...
This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding\-ring search.
The default is eight
multiples of 32 starting at 31.
.El
.Sh Reference Clock Support
The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo\-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
Additional information can be found in the pages linked
there, including the
.Qq Debugging Hints for Reference Clock Drivers
and
.Qq How To Write a Reference Clock Driver
pages
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
In addition, support for a PPS
signal is available as described in the
.Qq Pulse\-per\-second (PPS) Signal Interfacing
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
.Qq Line Disciplines and Streams Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Pp
A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
.Pp
For the purposes of configuration,
.Xr ntpd 1ntpdmdoc
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
.Sm off
.Li 127.127. Ar t . Ar u ,
.Sm on
where
.Ar t
is an integer
denoting the clock type and
.Ar u
indicates the unit
number in the range 0\-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
.Pp
The
.Ic server
command is used to configure a reference
clock, where the
.Ar address
argument in that command
is the clock address.
The
.Cm key ,
.Cm version
and
.Cm ttl
options are not used for reference clock support.
The
.Cm mode
option is added for reference clock support, as
described below.
The
.Cm prefer
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
.Qq Mitigation Rules and the prefer Keyword
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
page.
The
.Cm minpoll
and
.Cm maxpoll
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
.Pp
The
.Ic fudge
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
.Ic server
command.
The
.Ar address
argument specifies the clock address.
The
.Cm refid
and
.Cm stratum
options can be used to
override the defaults for the device.
There are two optional
device\-dependent time offsets and four flags that can be included
in the
.Ic fudge
command as well.
.Pp
The stratum number of a reference clock is by default zero.
Since the
.Xr ntpd 1ntpdmdoc
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
.Cm stratum
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse\-per\-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
.Cm refid
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
.Ss Reference Clock Commands
.Bl -tag -width indent
.It Xo Ic server
.Sm off
.Li 127.127. Ar t . Ar u
.Sm on
.Op Cm prefer
.Op Cm mode Ar int
.Op Cm minpoll Ar int
.Op Cm maxpoll Ar int
.Xc
This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
.Bl -tag -width indent
.It Cm prefer
Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
.Qq Mitigation Rules and the prefer Keyword
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
for further information.
.It Cm mode Ar int
Specifies a mode number which is interpreted in a
device\-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.It Cm minpoll Ar int
.It Cm maxpoll Ar int
These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
.Cm minpoll
and
.Cm maxpoll
default to 6 (64 s).
For modem reference clocks,
.Cm minpoll
defaults to 10 (17.1 m) and
.Cm maxpoll
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
.El
.It Xo Ic fudge
.Sm off
.Li 127.127. Ar t . Ar u
.Sm on
.Op Cm time1 Ar sec
.Op Cm time2 Ar sec
.Op Cm stratum Ar int
.Op Cm refid Ar string
.Op Cm mode Ar int
.Op Cm flag1 Cm 0 \&| Cm 1
.Op Cm flag2 Cm 0 \&| Cm 1
.Op Cm flag3 Cm 0 \&| Cm 1
.Op Cm flag4 Cm 0 \&| Cm 1
.Xc
This command can be used to configure reference clocks in
special ways.
It must immediately follow the
.Ic server
command which configures the driver.
Note that the same capability
is possible at run time using the
.Xr ntpdc 1ntpdcmdoc
program.
The options are interpreted as
follows:
.Bl -tag -width indent
.It Cm time1 Ar sec
Specifies a constant to be added to the time offset produced by
the driver, a fixed\-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
.Ic enable
command described in
.Sx Miscellaneous Options
page and operates as described in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.It Cm time2 Ar secs
Specifies a fixed\-point decimal number in seconds, which is
interpreted in a driver\-dependent way.
See the descriptions of
specific drivers in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ).
.It Cm stratum Ar int
Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
.It Cm refid Ar string
Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
.It Cm mode Ar int
Specifies a mode number which is interpreted in a
device\-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.It Cm flag1 Cm 0 \&| Cm 1
.It Cm flag2 Cm 0 \&| Cm 1
.It Cm flag3 Cm 0 \&| Cm 1
.It Cm flag4 Cm 0 \&| Cm 1
These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
.Cm flag4
is used to enable recording monitoring
data to the
.Cm clockstats
file configured with the
.Ic filegen
command.
Further information on the
.Ic filegen
command can be found in
.Sx Monitoring Options .
.El
.El
.Sh Miscellaneous Options
.Bl -tag -width indent
.It Ic broadcastdelay Ar seconds
The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
.It Ic calldelay Ar delay
This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
.It Ic driftfile Ar driftfile
This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
.Fl f
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
.Pp
The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts\-per\-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
.Xr ntpd 1ntpdmdoc
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
.It Ic dscp Ar value
This option specifies the Differentiated Services Control Point (DSCP) value,
a 6\-bit code.
The default value is 46, signifying Expedited Forwarding.
.It Xo Ic enable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm mode7 | Cm monitor |
.Cm ntp | Cm stats |
.Cm peer_clear_digest_early |
.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
.Oc
.Xc
.It Xo Ic disable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm mode7 | Cm monitor |
.Cm ntp | Cm stats |
.Cm peer_clear_digest_early |
.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
.Oc
.Xc
Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
.Xr ntpdc 1ntpdcmdoc
utility program.
.Bl -tag -width indent
.It Cm auth
Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
.Ic enable .
.It Cm bclient
Enables the server to listen for a message from a broadcast or
multicast server, as in the
.Ic multicastclient
command with default
address.
The default for this flag is
.Ic disable .
.It Cm calibrate
Enables the calibrate feature for reference clocks.
The default for
this flag is
.Ic disable .
.It Cm kernel
Enables the kernel time discipline, if available.
The default for this
flag is
.Ic enable
if support is available, otherwise
.Ic disable .
.It Cm mode7
Enables processing of NTP mode 7 implementation\-specific requests
which are used by the deprecated
.Xr ntpdc 1ntpdcmdoc
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
.Xr ntpq 1ntpqmdoc .
The
.Xr ntpq 1ntpqmdoc
program provides the same capabilities as
.Xr ntpdc 1ntpdcmdoc
using standard mode 6 requests.
.It Cm monitor
Enables the monitoring facility.
See the
.Xr ntpdc 1ntpdcmdoc
program
and the
.Ic monlist
command or further information.
The
default for this flag is
.Ic enable .
.It Cm ntp
Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
.Ic enable .
.It Cm peer_clear_digest_early
By default, if
.Xr ntpd 1ntpdmdoc
is using autokey and it
receives a crypto\-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto\-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm stats
Enables the statistics facility.
See the
.Sx Monitoring Options
section for further information.
The default for this flag is
.Ic disable .
.It Cm unpeer_crypto_early
By default, if
.Xr ntpd 1ntpdmdoc
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm unpeer_crypto_nak_early
By default, if
.Xr ntpd 1ntpdmdoc
receives a crypto\-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto\-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm unpeer_digest_early
By default, if
.Xr ntpd 1ntpdmdoc
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.El
.It Ic includefile Ar includefile
This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
.Xr ntpd 1ntpdmdoc
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
.It Xo Ic interface
.Oo
.Cm listen | Cm ignore | Cm drop
.Oc
.Oo
.Cm all | Cm ipv4 | Cm ipv6 | Cm wildcard
.Ar name | Ar address
.Oo Cm / Ar prefixlen
.Oc
.Oc
.Xc
The
.Cm interface
directive controls which network addresses
.Xr ntpd 1ntpdmdoc
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
.Ar prefixlen
determines how many bits must match for this rule to apply.
.Cm ignore
prevents opening matching addresses,
.Cm drop
causes
.Xr ntpd 1ntpdmdoc
to open the address and drop all received packets without examination.
Multiple
.Cm interface
directives can be used.
The last rule which matches a particular address determines the action for it.
.Cm interface
directives are disabled if any
.Fl I ,
.Fl \-interface ,
.Fl L ,
or
.Fl \-novirtualips
command\-line options are specified in the configuration file,
all available network addresses are opened.
The
.Cm nic
directive is an alias for
.Cm interface .
.It Ic leapfile Ar leapfile
This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
.Li https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap\-seconds.list
or
.Li ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap\-seconds.list .
The
.Cm leapfile
is scanned when
.Xr ntpd 1ntpdmdoc
processes the
.Cm leapfile directive or when
.Cm ntpd detects that the
.Ar leapfile
has changed.
.Cm ntpd
checks once a day to see if the
.Ar leapfile
has changed.
The
.Xr update\-leap 1update_leapmdoc
script can be run to see if the
.Ar leapfile
should be updated.
.It Ic leapsmearinterval Ar seconds
This EXPERIMENTAL option is only available if
.Xr ntpd 1ntpdmdoc
was built with the
.Cm \-\-enable\-leap\-smear
option to the
.Cm configure
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC\-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
.It Ic logconfig Ar configkeyword
This command controls the amount and type of output written to
the system
.Xr syslog 3
facility or the alternate
.Ic logfile
log file.
By default, all output is turned on.
All
.Ar configkeyword
keywords can be prefixed with
.Ql = ,
.Ql +
and
.Ql \- ,
where
.Ql =
sets the
.Xr syslog 3
priority mask,
.Ql +
adds and
.Ql \-
removes
messages.
.Xr syslog 3
messages can be controlled in four
classes
.Po
.Cm clock ,
.Cm peer ,
.Cm sys
and
.Cm sync
.Pc .
Within these classes four types of messages can be
controlled: informational messages
.Po
.Cm info
.Pc ,
event messages
.Po
.Cm events
.Pc ,
statistics messages
.Po
.Cm statistics
.Pc
and
status messages
.Po
.Cm status
.Pc .
.Pp
Configuration keywords are formed by concatenating the message class with
the event class.
The
.Cm all
prefix can be used instead of a message class.
A
message class may also be followed by the
.Cm all
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
.Bd -literal
logconfig =syncstatus +sysevents
.Ed
.Pp
This would just list the synchronizations state of
.Xr ntpd 1ntpdmdoc
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
.Bd -literal
logconfig =syncall +clockall
.Ed
.Pp
This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
.It Ic logfile Ar logfile
This command specifies the location of an alternate log file to
be used instead of the default system
.Xr syslog 3
facility.
This is the same operation as the
.Fl l
command line option.
.It Xo Ic mru
.Oo
.Cm maxdepth Ar count | Cm maxmem Ar kilobytes |
.Cm mindepth Ar count | Cm maxage Ar seconds |
.Cm initialloc Ar count | Cm initmem Ar kilobytes |
.Cm incalloc Ar count | Cm incmem Ar kilobytes
.Oc
.Xc
Controls size limite of the monitoring facility's Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
.Bl -tag -width indent
.It Ic maxdepth Ar count
.It Ic maxmem Ar kilobytes
Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
.Cm incalloc
entries or
.Cm incmem
kilobytes larger.
As with all of the
.Cm mru
options offered in units of entries or kilobytes, if both
.Cm maxdepth
and
.Cm maxmem are used, the last one used controls.
The default is 1024 kilobytes.
.It Cm mindepth Ar count
Lower limit on the MRU list size.
When the MRU list has fewer than
.Cm mindepth
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
.It Cm maxage Ar seconds
Once the MRU list has
.Cm mindepth
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
.Cm maxage
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
.Cm maxdepth / moxmem .
The default is 64 seconds.
.It Cm initalloc Ar count
.It Cm initmem Ar kilobytes
Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
.It Cm incalloc Ar count
.It Cm incmem Ar kilobytes
Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
.El
.It Ic nonvolatile Ar threshold
Specify the
.Ar threshold
delta in seconds before an hourly change to the
.Cm driftfile
(frequency file) will be written, with a default value of 1e\-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
.Cm threshold
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
.It Ic phone Ar dial ...
This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 \- 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 \- 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
.It Xo Cm pollskewlist
.Oo
.Ar poll
.Ar early late
.Oc
.Ar ...
.Oo
.Cm default
.Ar early late
.Oc
.Xc
Enable skewing of our poll requests to our servers.
.Ar poll
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one\-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
.It Xo Ic reset
.Oo
.Ic allpeers
.Oc
.Oo
.Ic auth
.Oc
.Oo
.Ic ctl
.Oc
.Oo
.Ic io
.Oc
.Oo
.Ic mem
.Oc
.Oo
.Ic sys
.Oc
.Oo
.Ic timer
.Oc
.Xc
Reset one or more groups of counters maintained by
.Cm ntpd
and exposed by
.Cm ntpq
and
.Cm ntpdc .
.It Xo Ic rlimit
.Oo
.Cm memlock Ar Nmegabytes |
.Cm stacksize Ar N4kPages
.Cm filenum Ar Nfiledescriptors
.Oc
.Xc
.Bl -tag -width indent
.It Cm memlock Ar Nmegabytes
Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
.Fl i
option).
The default is 32 megabytes on non\-Linux machines, and \-1 under Linux.
-1 means "do not lock the process into memory".
0 means "lock whatever memory the process wants into memory".
.It Cm stacksize Ar N4kPages
Specifies the maximum size of the process stack on systems with the
.Fn mlockall
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
.It Cm filenum Ar Nfiledescriptors
Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
.El
.It Ic saveconfigdir Ar directory_path
Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq 's
.Cm saveconfig
command.
If
.Cm saveconfigdir
does not appear in the configuration file,
.Cm saveconfig
requests are rejected by
.Cm ntpd .
.It Ic saveconfig Ar filename
Write the current configuration, including any runtime
modifications given with
.Cm :config
or
.Cm config\-from\-file
to the
.Cm ntpd
host's
.Ar filename
in the
.Cm saveconfigdir .
This command will be rejected unless the
.Cm saveconfigdir
directive appears in
.Cm ntpd 's
configuration file.
.Ar filename
can use
.Xr strftime 3
format directives to substitute the current date and time,
for example,
.Cm saveconfig\ ntp\-%Y%m%d\-%H%M%S.conf .
The filename used is stored in the system variable
.Cm savedconfig .
Authentication is required.
.It Ic setvar Ar variable Op Cm default
This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
.Sm off
.Va name = Ar value
.Sm on
is followed by the
.Cm default
keyword, the
variable will be listed as part of the default system variables
.Po
.Xr ntpq 1ntpqmdoc
.Ic rv
command
.Pc ) .
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
.Ic setvar
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
.Va sys_var_list
holds
the names of all system variables.
The
.Va peer_var_list
holds
the names of all peer variables and the
.Va clock_var_list
holds the names of the reference clock variables.
.It Cm sysinfo
Display operational summary.
.It Cm sysstats
Show statistics counters maintained in the protocol module.
.It Xo Ic tinker
.Oo
.Cm allan Ar allan |
.Cm dispersion Ar dispersion |
.Cm freq Ar freq |
.Cm huffpuff Ar huffpuff |
.Cm panic Ar panic |
.Cm step Ar step |
.Cm stepback Ar stepback |
.Cm stepfwd Ar stepfwd |
.Cm stepout Ar stepout
.Oc
.Xc
This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
.Pp
The variables operate as follows:
.Bl -tag -width indent
.It Cm allan Ar allan
The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
.It Cm dispersion Ar dispersion
The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
.It Cm freq Ar freq
The argument becomes the initial value of the frequency offset in
parts\-per\-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
.It Cm huffpuff Ar huffpuff
The argument becomes the new value for the experimental
huff\-n'\-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
.It Cm panic Ar panic
The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
.It Cm step Ar step
The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
.It Cm stepback Ar stepback
The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
.It Cm stepfwd Ar stepfwd
As for stepback, but for the forward direction.
.It Cm stepout Ar stepout
The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
.El
.It Cm writevar Ar assocID\ name = value [,...]
Write (create or update) the specified variables.
If the
.Cm assocID
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
.Cm assocID
is required, as the same name can occur in both name spaces.
.It Xo Ic trap Ar host_address
.Op Cm port Ar port_number
.Op Cm interface Ar interface_address
.Xc
This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
.It Cm ttl Ar hop ...
This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
.Cm manycast
mode these values are used in\-turn in an expanding\-ring search.
The default is eight multiples of 32 starting at 31.
.Pp
The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
.It Cm hop Ar ...
This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding\-ring search.
The default is eight multiples of 32 starting at
31.
.El
.Sh "OPTIONS"
.Bl -tag
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_CONF_<option\-name>\fP or \fBNTP_CONF\fP
.fi
.ad
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.drift -compact
.It Pa /etc/ntp.conf
the default name of the configuration file
.It Pa ntp.keys
private MD5 keys
.It Pa ntpkey
RSA private key
.It Pa ntpkey_ Ns Ar host
RSA public key
.It Pa ntp_dh
Diffie\-Hellman agreement parameters
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntpd 1ntpdmdoc ,
.Xr ntpdc 1ntpdcmdoc ,
.Xr ntpq 1ntpqmdoc
.Pp
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
.Li http://www.ntp.org/ .
A snapshot of this documentation is available in HTML format in
.Pa /usr/share/doc/ntp .
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 4)
.%O RFC5905
.Re
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
.Pp
The
.Pa ntpkey_ Ns Ar host
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
This document was derived from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp.conf\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.conf.html b/contrib/ntp/ntpd/ntp.conf.html
index bda4b750d4f5..f7f0b4bef931 100644
--- a/contrib/ntp/ntpd/ntp.conf.html
+++ b/contrib/ntp/ntpd/ntp.conf.html
@@ -1,3407 +1,3407 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>NTP Configuration File User&rsquo;s Manual</title>
<meta name="description" content="NTP Configuration File User&rsquo;s Manual">
<meta name="keywords" content="NTP Configuration File User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">NTP Configuration File User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntp_002econf-Description" accesskey="n" rel="next">ntp.conf Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="NTP_0027s-Configuration-File-User-Manual"></span><h1 class="top">NTP&rsquo;s Configuration File User Manual</h1>
<p>This document describes the configuration file for the NTP Project&rsquo;s
<code>ntpd</code> program.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntp.conf</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntp.conf</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Description" accesskey="1">ntp.conf Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Notes" accesskey="2">ntp.conf Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntp_002econf-Description"></span><div class="header">
<p>
Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>The behavior of <code>ntpd</code> can be changed by a configuration file,
by default <code>ntp.conf</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Notes" accesskey="1">Notes about ntp.conf</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntp_002econf-Notes"></span><div class="header">
<p>
Previous: <a href="#ntp_002econf-Bugs" accesskey="p" rel="prev">ntp.conf Bugs</a>, Up: <a href="#ntp_002econf-Description" accesskey="u" rel="up">ntp.conf Description</a> &nbsp; </p>
</div>
<span id="Notes-about-ntp_002econf"></span><h3 class="section">1.1 Notes about ntp.conf</h3>
<span id="index-ntp_002econf"></span>
<span id="index-Network-Time-Protocol-_0028NTP_0029-daemon-configuration-file-format"></span>
<p>The
<code>ntp.conf</code>
configuration file is read at initial startup by the
<code>ntpd(1ntpdmdoc)</code>
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
<samp>/etc</samp>
directory,
but could be installed elsewhere
(see the daemon&rsquo;s
<code>-c</code>
command line option).
</p>
<p>The file format is similar to other
<small>UNIX</small>
configuration files.
Comments begin with a
&lsquo;#&rsquo;
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
</p>
<p>The rest of this page describes the configuration and control options.
The
&quot;Notes on Configuring NTP and Setting up an NTP Subnet&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>)
contains an extended discussion of these options.
In addition to the discussion of general
&lsquo;Configuration Options&rsquo;,
there are sections describing the following supported functionality
and the options used to control it:
</p><ul>
<li> <a href="#Authentication-Support">Authentication Support</a>
</li><li> <a href="#Monitoring-Support">Monitoring Support</a>
</li><li> <a href="#Access-Control-Support">Access Control Support</a>
</li><li> <a href="#Automatic-NTP-Configuration-Options">Automatic NTP Configuration Options</a>
</li><li> <a href="#Reference-Clock-Support">Reference Clock Support</a>
</li><li> <a href="#Miscellaneous-Options">Miscellaneous Options</a>
</li></ul>
<p>Following these is a section describing
<a href="#Miscellaneous-Options">Miscellaneous Options</a>.
While there is a rich set of options available,
the only required option is one or more
<code>pool</code>,
<code>server</code>,
<code>peer</code>,
<code>broadcast</code>
or
<code>manycastclient</code>
commands.
</p><table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Configuration-Support" accesskey="1">Configuration Support</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Authentication-Support" accesskey="2">Authentication Support</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Monitoring-Support" accesskey="3">Monitoring Support</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Access-Control-Support" accesskey="4">Access Control Support</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Automatic-NTP-Configuration-Options" accesskey="5">Automatic NTP Configuration Options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Reference-Clock-Support" accesskey="6">Reference Clock Support</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Miscellaneous-Options" accesskey="7">Miscellaneous Options</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Files" accesskey="8">ntp.conf Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-See-Also" accesskey="9">ntp.conf See Also</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Bugs">ntp.conf Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; ntp.conf Notes</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="Configuration-Support"></span><div class="header">
<p>
Next: <a href="#Authentication-Support" accesskey="n" rel="next">Authentication Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Configuration-Support-1"></span><h4 class="subsection">1.1.1 Configuration Support</h4>
<p>Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
</p><span id="Configuration-Commands"></span><h4 class="subsubsection">1.1.1.1 Configuration Commands</h4>
<p>The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
</p>
<p>If the Basic Socket Interface Extensions for IPv6 (RFC-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
<code>reslist</code>
billboard generated
by
<code>ntpq(1ntpqmdoc)</code>
or
<code>ntpdc(1ntpdcmdoc)</code>,
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
&ldquo;:&rdquo;
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
</p>
<p>Note that in contexts where a host name is expected, a
<code>-4</code>
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
<code>-6</code>
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
</p><dl compact="compact">
<dt><code>pool</code> <kbd>address</kbd> <code>[<code>burst</code>]</code> <code>[<code>iburst</code>]</code> <code>[<code>version</code> <kbd>version</kbd>]</code> <code>[<code>prefer</code>]</code> <code>[<code>minpoll</code> <kbd>minpoll</kbd>]</code> <code>[<code>maxpoll</code> <kbd>maxpoll</kbd>]</code> <code>[<code>xmtnonce</code>]</code></dt>
<dt><code>server</code> <kbd>address</kbd> <code>[<code>key</code> <kbd>key</kbd> <kbd>|</kbd> <code>autokey</code>]</code> <code>[<code>burst</code>]</code> <code>[<code>iburst</code>]</code> <code>[<code>version</code> <kbd>version</kbd>]</code> <code>[<code>prefer</code>]</code> <code>[<code>minpoll</code> <kbd>minpoll</kbd>]</code> <code>[<code>maxpoll</code> <kbd>maxpoll</kbd>]</code> <code>[<code>true</code>]</code> <code>[<code>xmtnonce</code>]</code></dt>
<dt><code>peer</code> <kbd>address</kbd> <code>[<code>key</code> <kbd>key</kbd> <kbd>|</kbd> <code>autokey</code>]</code> <code>[<code>version</code> <kbd>version</kbd>]</code> <code>[<code>prefer</code>]</code> <code>[<code>minpoll</code> <kbd>minpoll</kbd>]</code> <code>[<code>maxpoll</code> <kbd>maxpoll</kbd>]</code> <code>[<code>true</code>]</code> <code>[<code>xleave</code>]</code></dt>
<dt><code>broadcast</code> <kbd>address</kbd> <code>[<code>key</code> <kbd>key</kbd> <kbd>|</kbd> <code>autokey</code>]</code> <code>[<code>version</code> <kbd>version</kbd>]</code> <code>[<code>prefer</code>]</code> <code>[<code>minpoll</code> <kbd>minpoll</kbd>]</code> <code>[<code>ttl</code> <kbd>ttl</kbd>]</code> <code>[<code>xleave</code>]</code></dt>
<dt><code>manycastclient</code> <kbd>address</kbd> <code>[<code>key</code> <kbd>key</kbd> <kbd>|</kbd> <code>autokey</code>]</code> <code>[<code>version</code> <kbd>version</kbd>]</code> <code>[<code>prefer</code>]</code> <code>[<code>minpoll</code> <kbd>minpoll</kbd>]</code> <code>[<code>maxpoll</code> <kbd>maxpoll</kbd>]</code> <code>[<code>ttl</code> <kbd>ttl</kbd>]</code></dt>
</dl>
<p>These five commands specify the time server name or address to
be used and the mode in which to operate.
The
<kbd>address</kbd>
can be
either a DNS name or an IP address in dotted-quad notation.
Additional information on association behavior can be found in the
&quot;Association Management&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
</p><dl compact="compact">
<dt><code>pool</code></dt>
<dd><p>For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
</p></dd>
<dt><code>server</code></dt>
<dd><p>For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
<em>not</em>
be used for type
b or m addresses.
</p></dd>
<dt><code>peer</code></dt>
<dd><p>For type s addresses (only), this command mobilizes a
persistent symmetric-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
</p></dd>
<dt><code>broadcast</code></dt>
<dd><p>For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
<kbd>address</kbd>
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
<code>broadcastclient</code>
or
<code>multicastclient</code>
commands
below.
</p></dd>
<dt><code>manycastclient</code></dt>
<dd><p>For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
<code>manycastserver</code>
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
<code>manycastserver</code>
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
<kbd>address</kbd>
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
<code>server</code>
command.
The remaining servers are discarded as if never
heard.
</p></dd>
</dl>
<p>Options:
</p><dl compact="compact">
<dt><code>autokey</code></dt>
<dd><p>All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
&lsquo;Authentication Options&rsquo;.
</p></dd>
<dt><code>burst</code></dt>
<dd><p>when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
<code>calldelay</code>
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
<code>server</code>
command and s addresses.
</p></dd>
<dt><code>iburst</code></dt>
<dd><p>When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
<code>calldelay</code>
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
<code>server</code>
command and s addresses and when
<code>ntpd(1ntpdmdoc)</code>
is started with the
<code>-q</code>
option.
</p></dd>
<dt><code>key</code> <kbd>key</kbd></dt>
<dd><p>All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
<kbd>key</kbd>
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
</p></dd>
<dt><code>minpoll</code> <kbd>minpoll</kbd></dt>
<dt><code>maxpoll</code> <kbd>maxpoll</kbd></dt>
<dd><p>These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
<code>maxpoll</code>
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
<code>minpoll</code>
option to a lower limit of 4 (16 s).
</p></dd>
<dt><code>noselect</code></dt>
<dd><p>Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
</p></dd>
<dt><code>preempt</code></dt>
<dd><p>Says the association can be preempted.
</p></dd>
<dt><code>prefer</code></dt>
<dd><p>Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
&quot;Mitigation Rules and the prefer Keyword&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>)
for further information.
</p></dd>
<dt><code>true</code></dt>
<dd><p>Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
<em>only</em>
be used while testing an association.
</p></dd>
<dt><code>ttl</code> <kbd>ttl</kbd></dt>
<dd><p>This option is used only with broadcast server and manycast
client modes.
It specifies the time-to-live
<kbd>ttl</kbd>
to
use on broadcast server and multicast server and the maximum
<kbd>ttl</kbd>
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
</p></dd>
<dt><code>version</code> <kbd>version</kbd></dt>
<dd><p>Specifies the version number to be used for outgoing NTP
packets.
Versions 1-4 are the choices, with version 4 the
default.
</p></dd>
<dt><code>xleave</code></dt>
<dd><p>Valid in
<code>peer</code>
and
<code>broadcast</code>
modes only, this flag enables interleave mode.
</p></dd>
<dt><code>xmtnonce</code></dt>
<dd><p>Valid only for
<code>server</code>
and
<code>pool</code>
modes, this flag puts a random number in the packet&rsquo;s transmit timestamp.
</p>
</dd>
</dl>
<span id="Auxiliary-Commands"></span><h4 class="subsubsection">1.1.1.2 Auxiliary Commands</h4>
<dl compact="compact">
<dt><code>broadcastclient</code></dt>
<dd><p>This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric-key or public-key
authentication as described in
&lsquo;Authentication Options&rsquo;.
</p></dd>
<dt><code>manycastserver</code> <kbd>address</kbd> <kbd>...</kbd></dt>
<dd><p>This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric-key or public-key
authentication as described in
&lsquo;Authentication Options&rsquo;.
</p></dd>
<dt><code>multicastclient</code> <kbd>address</kbd> <kbd>...</kbd></dt>
<dd><p>This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric-key or
public-key authentication as described in
&lsquo;Authentication Options&rsquo;.
</p></dd>
<dt><code>mdnstries</code> <kbd>number</kbd></dt>
<dd><p>If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
<code>mdnstries</code>
times.
After all,
<code>ntpd</code>
may be starting before mDNS.
The default value for
<code>mdnstries</code>
is 5.
</p></dd>
</dl>
<hr>
<span id="Authentication-Support"></span><div class="header">
<p>
Next: <a href="#Monitoring-Support" accesskey="n" rel="next">Monitoring Support</a>, Previous: <a href="#Configuration-Support" accesskey="p" rel="prev">Configuration Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Authentication-Support-1"></span><h4 class="subsection">1.1.2 Authentication Support</h4>
<p>Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed-MD5.
Either algorithm computes a message digest, or one-way hash, which
can be used to verify the server has the correct private key and
key identifier.
</p>
<p>NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
</p>
<p>While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
</p>
<p>Authentication is configured separately for each association
using the
<code>key</code>
or
<code>autokey</code>
subcommand on the
<code>peer</code>,
<code>server</code>,
<code>broadcast</code>
and
<code>manycastclient</code>
configuration commands as described in
&lsquo;Configuration Options&rsquo;
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
</p>
<p>Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
</p>
<p>The
<code>auth</code>
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
<code>enable</code>
and
<code>disable</code>
commands and also by remote
configuration commands sent by a
<code>ntpdc(1ntpdcmdoc)</code>
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
<code>auth</code>
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
</p>
<p>An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
<a href="#Automatic-NTP-Configuration-Options">Automatic NTP Configuration Options</a>
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
</p>
<p>The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
<code>http://www.ntp.org/</code>.
</p><span id="Symmetric_002dKey-Cryptography"></span><h4 class="subsubsection">1.1.2.1 Symmetric-Key Cryptography</h4>
<p>The original RFC-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
<samp>ntp.keys</samp>,
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
utility programs.
</p>
<p>When
<code>ntpd(1ntpdmdoc)</code>
is first started, it reads the key file specified in the
<code>keys</code>
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
<code>trusted</code>
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
<code>ntpdc(1ntpdcmdoc)</code>.
This also provides a revocation capability that can be used
if a key becomes compromised.
The
<code>requestkey</code>
command selects the key used as the password for the
<code>ntpdc(1ntpdcmdoc)</code>
utility, while the
<code>controlkey</code>
command selects the key used as the password for the
<code>ntpq(1ntpqmdoc)</code>
utility.
</p><span id="Public-Key-Cryptography"></span><h4 class="subsubsection">1.1.2.2 Public Key Cryptography</h4>
<p>NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
</p>
<p>The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S-KEY scheme,
in which a pseudo-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
&lsquo;Autonomous Authentication&rsquo;
page.
</p>
<p>The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
<code>ntp-keygen(1ntpkeygenmdoc)</code>
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
<code>md5WithRSAEncryption</code>,
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
</p>
<p>NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
</p><span id="Naming-and-Addressing"></span><h4 class="subsubsection">1.1.2.3 Naming and Addressing</h4>
<p>It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can&rsquo;t be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
</p>
<p>By convention, the name of an Autokey host is the name returned
by the Unix
<code>gethostname(2)</code>
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
</p>
<p>It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
</p><span id="Operation"></span><h4 class="subsubsection">1.1.2.4 Operation</h4>
<p>A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
</p>
<p>The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
<code>server</code>
or
<code>peer</code>
configuration command and no
<code>key</code>
or
<code>autokey</code>
subcommands are present, the association is not
authenticated; if the
<code>key</code>
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
<code>autokey</code>
subcommand is present, the association is authenticated
using Autokey.
</p>
<p>When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
</p>
<p>Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
</p>
<p>Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice&rsquo;s unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob&rsquo;s symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it&rsquo;s the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto-NAK, which tells her
something broke.
She can see the evidence using the
<code>ntpq(1ntpqmdoc)</code>
program.
</p>
<p>Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
</p>
<p>It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
</p><span id="Key-Management"></span><h4 class="subsubsection">1.1.2.5 Key Management</h4>
<p>The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
<code>ntp-keygen(1ntpkeygenmdoc)</code>
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
utility programs.
The remaining files are necessary only for the
Autokey protocol.
</p>
<p>Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
<code>trustRoot</code>;.
Other extension fields are ignored.
</p><span id="Authentication-Commands"></span><h4 class="subsubsection">1.1.2.6 Authentication Commands</h4>
<dl compact="compact">
<dt><code>autokey</code> <code>[<kbd>logsec</kbd>]</code></dt>
<dd><p>Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
</p></dd>
<dt><code>controlkey</code> <kbd>key</kbd></dt>
<dd><p>Specifies the key identifier to use with the
<code>ntpq(1ntpqmdoc)</code>
utility, which uses the standard
protocol defined in RFC-1305.
The
<kbd>key</kbd>
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
</p></dd>
<dt><code>crypto</code> <code>[<code>cert</code> <kbd>file</kbd>]</code> <code>[<code>leap</code> <kbd>file</kbd>]</code> <code>[<code>randfile</code> <kbd>file</kbd>]</code> <code>[<code>host</code> <kbd>file</kbd>]</code> <code>[<code>sign</code> <kbd>file</kbd>]</code> <code>[<code>gq</code> <kbd>file</kbd>]</code> <code>[<code>gqpar</code> <kbd>file</kbd>]</code> <code>[<code>iffpar</code> <kbd>file</kbd>]</code> <code>[<code>mvpar</code> <kbd>file</kbd>]</code> <code>[<code>pw</code> <kbd>password</kbd>]</code></dt>
<dd><p>This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
<code>keysdir</code>
command or default
<samp>/usr/local/etc</samp>.
Following are the subcommands:
</p><dl compact="compact">
<dt><code>cert</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the required host public certificate file.
This overrides the link
<samp>ntpkey_cert_</samp><kbd>hostname</kbd>
in the keys directory.
</p></dd>
<dt><code>gqpar</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the optional GQ parameters file.
This
overrides the link
<samp>ntpkey_gq_</samp><kbd>hostname</kbd>
in the keys directory.
</p></dd>
<dt><code>host</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the required host key file.
This overrides
the link
<samp>ntpkey_key_</samp><kbd>hostname</kbd>
in the keys directory.
</p></dd>
<dt><code>iffpar</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the optional IFF parameters file.
This overrides the link
<samp>ntpkey_iff_</samp><kbd>hostname</kbd>
in the keys directory.
</p></dd>
<dt><code>leap</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the optional leapsecond file.
This overrides the link
<samp>ntpkey_leap</samp>
in the keys directory.
</p></dd>
<dt><code>mvpar</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the optional MV parameters file.
This overrides the link
<samp>ntpkey_mv_</samp><kbd>hostname</kbd>
in the keys directory.
</p></dd>
<dt><code>pw</code> <kbd>password</kbd></dt>
<dd><p>Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
</p></dd>
<dt><code>randfile</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
</p></dd>
<dt><code>sign</code> <kbd>file</kbd></dt>
<dd><p>Specifies the location of the optional sign key file.
This overrides
the link
<samp>ntpkey_sign_</samp><kbd>hostname</kbd>
in the keys directory.
If this file is
not found, the host key is also the sign key.
</p></dd>
</dl>
</dd>
<dt><code>keys</code> <kbd>keyfile</kbd></dt>
<dd><p>Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
<code>ntpd(1ntpdmdoc)</code>,
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
when operating with symmetric key cryptography.
This is the same operation as the
<code>-k</code>
command line option.
</p></dd>
<dt><code>keysdir</code> <kbd>path</kbd></dt>
<dd><p>This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
<samp>/usr/local/etc/</samp>.
</p></dd>
<dt><code>requestkey</code> <kbd>key</kbd></dt>
<dd><p>Specifies the key identifier to use with the
<code>ntpdc(1ntpdcmdoc)</code>
utility program, which uses a
proprietary protocol specific to this implementation of
<code>ntpd(1ntpdmdoc)</code>.
The
<kbd>key</kbd>
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
</p></dd>
<dt><code>revoke</code> <kbd>logsec</kbd></dt>
<dd><p>Specifies the interval between re-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
</p></dd>
<dt><code>trustedkey</code> <kbd>key</kbd> <kbd>...</kbd></dt>
<dd><p>Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
<kbd>key</kbd>
arguments are 32-bit unsigned
integers with values from 1 to 65,535.
</p></dd>
</dl>
<span id="Error-Codes"></span><h4 class="subsubsection">1.1.2.7 Error Codes</h4>
<p>The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
</p><dl compact="compact">
<dt>101</dt>
<dd><p>(bad field format or length)
The packet has invalid version, length or format.
</p></dd>
<dt>102</dt>
<dd><p>(bad timestamp)
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
</p></dd>
<dt>103</dt>
<dd><p>(bad filestamp)
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
</p></dd>
<dt>104</dt>
<dd><p>(bad or missing public key)
The public key is missing, has incorrect format or is an unsupported type.
</p></dd>
<dt>105</dt>
<dd><p>(unsupported digest type)
The server requires an unsupported digest/signature scheme.
</p></dd>
<dt>106</dt>
<dd><p>(mismatched digest types)
Not used.
</p></dd>
<dt>107</dt>
<dd><p>(bad signature length)
The signature length does not match the current public key.
</p></dd>
<dt>108</dt>
<dd><p>(signature not verified)
The message fails the signature check.
It could be bogus or signed by a
different private key.
</p></dd>
<dt>109</dt>
<dd><p>(certificate not verified)
The certificate is invalid or signed with the wrong key.
</p></dd>
<dt>110</dt>
<dd><p>(certificate not verified)
The certificate is not yet valid or has expired or the signature could not
be verified.
</p></dd>
<dt>111</dt>
<dd><p>(bad or missing cookie)
The cookie is missing, corrupted or bogus.
</p></dd>
<dt>112</dt>
<dd><p>(bad or missing leapseconds table)
The leapseconds table is missing, corrupted or bogus.
</p></dd>
<dt>113</dt>
<dd><p>(bad or missing certificate)
The certificate is missing, corrupted or bogus.
</p></dd>
<dt>114</dt>
<dd><p>(bad or missing identity)
The identity key is missing, corrupt or bogus.
</p></dd>
</dl>
<hr>
<span id="Monitoring-Support"></span><div class="header">
<p>
Next: <a href="#Access-Control-Support" accesskey="n" rel="next">Access Control Support</a>, Previous: <a href="#Authentication-Support" accesskey="p" rel="prev">Authentication Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Monitoring-Support-1"></span><h4 class="subsection">1.1.3 Monitoring Support</h4>
<p><code>ntpd(1ntpdmdoc)</code>
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
<code>statistics</code>
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
<samp>./scripts</samp>
directory of the source code distribution.
Using
these facilities and
<small>UNIX</small>
<code>cron(8)</code>
jobs, the data can be
automatically summarized and archived for retrospective analysis.
</p><span id="Monitoring-Commands"></span><h4 class="subsubsection">1.1.3.1 Monitoring Commands</h4>
<dl compact="compact">
<dt><code>statistics</code> <kbd>name</kbd> <kbd>...</kbd></dt>
<dd><p>Enables writing of statistics records.
Currently, eight kinds of
<kbd>name</kbd>
statistics are supported.
</p><dl compact="compact">
<dt><code>clockstats</code></dt>
<dd><p>Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
<code>clockstats</code>:
</p><pre class="verbatim">49213 525.624 127.127.4.1 93 226 00:08:29.606 D
</pre>
<p>The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
</p></dd>
<dt><code>cryptostats</code></dt>
<dd><p>This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
<code>cryptostats</code>:
</p><pre class="verbatim">49213 525.624 127.127.4.1 message
</pre>
<p>The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted-quad notation, The final message field includes the
message type and certain ancillary information.
See the
&lsquo;Authentication Options&rsquo;
section for further information.
</p></dd>
<dt><code>loopstats</code></dt>
<dd><p>Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
<code>loopstats</code>:
</p><pre class="verbatim">50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
</pre>
<p>The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million -
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
</p></dd>
<dt><code>peerstats</code></dt>
<dd><p>Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
<code>peerstats</code>:
</p><pre class="verbatim">48773 10847.650 127.127.4.1 9714 -0.001605376 0.000000000 0.001424877 0.000958674
</pre>
<p>The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
</p></dd>
<dt><code>rawstats</code></dt>
<dd><p>Enables recording of raw-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
<code>rawstats</code>:
</p><pre class="verbatim">50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
</pre>
<p>The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
</p></dd>
<dt><code>sysstats</code></dt>
<dd><p>Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
<code>sysstats</code>:
</p><pre class="verbatim">50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
</pre>
<p>The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
</p><dl compact="compact">
<dt>Time since restart <code>36000</code></dt>
<dd><p>Time in hours since the system was last rebooted.
</p></dd>
<dt>Packets received <code>81965</code></dt>
<dd><p>Total number of packets received.
</p></dd>
<dt>Packets processed <code>0</code></dt>
<dd><p>Number of packets received in response to previous packets sent
</p></dd>
<dt>Current version <code>9546</code></dt>
<dd><p>Number of packets matching the current NTP version.
</p></dd>
<dt>Previous version <code>56</code></dt>
<dd><p>Number of packets matching the previous NTP version.
</p></dd>
<dt>Bad version <code>71793</code></dt>
<dd><p>Number of packets matching neither NTP version.
</p></dd>
<dt>Access denied <code>512</code></dt>
<dd><p>Number of packets denied access for any reason.
</p></dd>
<dt>Bad length or format <code>540</code></dt>
<dd><p>Number of packets with invalid length, format or port number.
</p></dd>
<dt>Bad authentication <code>10</code></dt>
<dd><p>Number of packets not verified as authentic.
</p></dd>
<dt>Rate exceeded <code>147</code></dt>
<dd><p>Number of packets discarded due to rate limitation.
</p></dd>
</dl>
</dd>
<dt><code>statsdir</code> <kbd>directory_path</kbd></dt>
<dd><p>Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
<code>filegen</code>
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
</p></dd>
<dt><code>filegen</code> <kbd>name</kbd> <code>[<code>file</code> <kbd>filename</kbd>]</code> <code>[<code>type</code> <kbd>typename</kbd>]</code> <code>[<code>link</code> | <code>nolink</code>]</code> <code>[<code>enable</code> | <code>disable</code>]</code></dt>
<dd><p>Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
</p>
<p>Note that this command can be sent from the
<code>ntpdc(1ntpdcmdoc)</code>
program running at a remote location.
</p><dl compact="compact">
<dt><code>name</code></dt>
<dd><p>This is the type of the statistics records, as shown in the
<code>statistics</code>
command.
</p></dd>
<dt><code>file</code> <kbd>filename</kbd></dt>
<dd><p>This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
<code>prefix</code>,
<code>filename</code>
and
<code>suffix</code>:
</p><dl compact="compact">
<dt><code>prefix</code></dt>
<dd><p>This is a constant filename path.
It is not subject to
modifications via the
<kbd>filegen</kbd>
option.
It is defined by the
server, usually specified as a compile-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
<kbd>loopstats</kbd>
and
<kbd>peerstats</kbd>
generation can be configured using the
<kbd>statsdir</kbd>
option explained above.
</p></dd>
<dt><code>filename</code></dt>
<dd><p>This string is directly concatenated to the prefix mentioned
above (no intervening
&lsquo;/&rsquo;).
This can be modified using
the file argument to the
<kbd>filegen</kbd>
statement.
No
<samp>..</samp>
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
<kbd>prefix</kbd>.
</p></dd>
<dt><code>suffix</code></dt>
<dd><p>This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
</p></dd>
</dl>
</dd>
<dt><code>type</code> <kbd>typename</kbd></dt>
<dd><p>A file generation set is characterized by its type.
The following
types are supported:
</p><dl compact="compact">
<dt><code>none</code></dt>
<dd><p>The file set is actually a single plain file.
</p></dd>
<dt><code>pid</code></dt>
<dd><p>One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
<code>ntpd(1ntpdmdoc)</code>
server incarnations.
The set member filename is built by appending a
&lsquo;.&rsquo;
to concatenated
<kbd>prefix</kbd>
and
<kbd>filename</kbd>
strings, and
appending the decimal representation of the process ID of the
<code>ntpd(1ntpdmdoc)</code>
server process.
</p></dd>
<dt><code>day</code></dt>
<dd><p>One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
&lsquo;.&rsquo;
and a day specification in
the form
<code>YYYYMMdd</code>.
<code>YYYY</code>
is a 4-digit year number (e.g., 1992).
<code>MM</code>
is a two digit month number.
<code>dd</code>
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
<kbd>prefix</kbd>
<kbd>filename</kbd>.19921210.
</p></dd>
<dt><code>week</code></dt>
<dd><p>Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day-of-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4-digit year number, the letter
<code>W</code>,
and a 2-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.No . Ns Ar 1992W1 .
</p></dd>
<dt><code>month</code></dt>
<dd><p>One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4-digit year number, and
a 2-digit month.
</p></dd>
<dt><code>year</code></dt>
<dd><p>One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
</p></dd>
<dt><code>age</code></dt>
<dd><p>This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
<code>a</code>,
and an 8-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24-hour period.
Information is only written to a file generation by specifying
<code>enable</code>;
output is prevented by specifying
<code>disable</code>.
</p></dd>
</dl>
</dd>
<dt><code>link</code> | <code>nolink</code></dt>
<dd><p>It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
<code>link</code>
and disabled using
<code>nolink</code>.
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
<code>C</code>,
and the pid of the
<code>ntpd(1ntpdmdoc)</code>
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
</p></dd>
<dt><code>enable</code> <code>|</code> <code>disable</code></dt>
<dd><p>Enables or disables the recording function.
</p></dd>
</dl>
</dd>
</dl>
</dd>
</dl>
<hr>
<span id="Access-Control-Support"></span><div class="header">
<p>
Next: <a href="#Automatic-NTP-Configuration-Options" accesskey="n" rel="next">Automatic NTP Configuration Options</a>, Previous: <a href="#Monitoring-Support" accesskey="p" rel="prev">Monitoring Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Access-Control-Support-1"></span><h4 class="subsection">1.1.4 Access Control Support</h4>
<p>The
<code>ntpd(1ntpdmdoc)</code>
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
&quot;Notes on Configuring NTP and Setting up a NTP Subnet&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
</p>
<p>The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
</p>
<p>Clients can be denied service because they are explicitly
included in the restrict list created by the
<code>restrict</code>
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
</p><span id="The-Kiss_002dof_002dDeath-Packet"></span><h4 class="subsubsection">1.1.4.1 The Kiss-of-Death Packet</h4>
<p>Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the &quot;kiss-of-death&quot; (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four-byte
ASCII code.
If the
<code>noserve</code>
or
<code>notrust</code>
flag of the matching restrict list entry is set,
the code is &quot;DENY&quot;; if the
<code>limited</code>
flag is set and the rate limit
is exceeded, the code is &quot;RATE&quot;.
Finally, if a cryptographic violation occurs, the code is &quot;CRYP&quot;.
</p>
<p>A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
</p><span id="Access-Control-Commands"></span><h4 class="subsubsection">1.1.4.2 Access Control Commands</h4>
<dl compact="compact">
<dt><code>discard</code> <code>[<code>average</code> <kbd>avg</kbd>]</code> <code>[<code>minimum</code> <kbd>min</kbd>]</code> <code>[<code>monitor</code> <kbd>prob</kbd>]</code></dt>
<dd><p>Set the parameters of the
<code>limited</code>
facility which protects the server from
client abuse.
The
<code>average</code>
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
<code>minimum</code>
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss-o&rsquo;-death packet returned if enabled.
The
<code>monitor</code>
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
<code>monitor</code>
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
</p></dd>
<dt><code>restrict</code> <code>address</code> <code>[<code>mask</code> <kbd>mask</kbd>]</code> <code>[<code>ippeerlimit</code> <kbd>int</kbd>]</code> <code>[<kbd>flag</kbd> <kbd>...</kbd>]</code></dt>
<dd><p>The
<kbd>address</kbd>
argument expressed in
dotted-quad form is the address of a host or network.
Alternatively, the
<kbd>address</kbd>
argument can be a valid host DNS name.
The
<kbd>mask</kbd>
argument expressed in dotted-quad form defaults to
<code>255.255.255.255</code>,
meaning that the
<kbd>address</kbd>
is treated as the address of an individual host.
A default entry (address
<code>0.0.0.0</code>,
mask
<code>0.0.0.0</code>)
is always included and is always the first entry in the list.
Note that text string
<code>default</code>,
with no mask option, may
be used to indicate the default entry.
The
<code>ippeerlimit</code>
directive limits the number of peer requests for each IP to
<kbd>int</kbd>,
where a value of -1 means &quot;unlimited&quot;, the current default.
A value of 0 means &quot;none&quot;.
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
<code>flag</code>
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run-time
reconfiguration of the server.
One or more of the following flags
may be specified:
</p><dl compact="compact">
<dt><code>ignore</code></dt>
<dd><p>Deny packets of all kinds, including
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
queries.
</p></dd>
<dt><code>kod</code></dt>
<dd><p>If this flag is set when an access violation occurs, a kiss-o&rsquo;-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
</p></dd>
<dt><code>limited</code></dt>
<dd><p>Deny service if the packet spacing violates the lower limits specified
in the
<code>discard</code>
command.
A history of clients is kept using the
monitoring capability of
<code>ntpd(1ntpdmdoc)</code>.
Thus, monitoring is always active as
long as there is a restriction entry with the
<code>limited</code>
flag.
</p></dd>
<dt><code>lowpriotrap</code></dt>
<dd><p>Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
</p></dd>
<dt><code>noepeer</code></dt>
<dd><p>Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
<samp>ntp.keys</samp>
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
<code>noepeer</code>
to become the default in ntp-4.4.
</p></dd>
<dt><code>nomodify</code></dt>
<dd><p>Deny
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
</p></dd>
<dt><code>noquery</code></dt>
<dd><p>Deny
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
queries.
Time service is not affected.
</p></dd>
<dt><code>nopeer</code></dt>
<dd><p>Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
<code>pool</code>
associations, so if you want to use servers from a
<code>pool</code>
directive and also want to use
<code>nopeer</code>
by default, you&rsquo;ll want a
<code>restrict source ...</code>
line as well that does
<em>not</em>
include the
<code>nopeer</code>
directive.
</p></dd>
<dt><code>noserve</code></dt>
<dd><p>Deny all packets except
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
queries.
</p></dd>
<dt><code>notrap</code></dt>
<dd><p>Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
<code>ntpq(1ntpqmdoc)</code>
control message
protocol which is intended for use by remote event logging programs.
</p></dd>
<dt><code>notrust</code></dt>
<dd><p>Deny service unless the packet is cryptographically authenticated.
</p></dd>
<dt><code>ntpport</code></dt>
<dd><p>This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
<code>ntpport</code>
and
<code>non-ntpport</code>
may
be specified.
The
<code>ntpport</code>
is considered more specific and
is sorted later in the list.
</p></dd>
<dt><code>serverresponse fuzz</code></dt>
<dd><p>When reponding to server requests,
fuzz the low order bits of the
<code>reftime</code>.
</p></dd>
<dt><code>version</code></dt>
<dd><p>Deny packets that do not match the current NTP version.
</p></dd>
</dl>
<p>Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host&rsquo;s interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
</p></dd>
</dl>
<hr>
<span id="Automatic-NTP-Configuration-Options"></span><div class="header">
<p>
Next: <a href="#Reference-Clock-Support" accesskey="n" rel="next">Reference Clock Support</a>, Previous: <a href="#Access-Control-Support" accesskey="p" rel="prev">Access Control Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Automatic-NTP-Configuration-Options-1"></span><h4 class="subsection">1.1.5 Automatic NTP Configuration Options</h4>
<span id="Manycasting"></span><h4 class="subsubsection">1.1.5.1 Manycasting</h4>
<p>Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the &quot;best&quot;
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
</p>
<p>Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
</p>
<p>Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
<code>http://www.openssl.org/</code>.
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
</p>
<p>A persistent manycast client association is configured
using the
<code>manycastclient</code>
command, which is similar to the
<code>server</code>
command but with a multicast (IPv4 class
<code>D</code>
or IPv6 prefix
<code>FF</code>)
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time-to-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
</p>
<p>Manycast servers configured with the
<code>manycastserver</code>
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
</p>
<p>The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the &quot;best&quot;
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
</p>
<p>The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near-simultaneous
arrival of manycast server messages.
The strategy is determined by the
<code>manycastclient</code>,
<code>tos</code>
and
<code>ttl</code>
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
<code>minpoll</code>
value specified in the
<code>manycastclient</code>,
command and, under normal circumstances, increments to the
<code>maxpolll</code>
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
<code>ttl</code>
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
</p>
<p>The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
<code>minclock</code>
and
<code>minsane</code>
values specified in the
<code>tos</code>
configuration command.
At least
<code>minsane</code>
candidate servers must be available and the mitigation
algorithms produce at least
<code>minclock</code>
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
<code>minsane</code>
defaults to 1 and
<code>minclock</code>
defaults to 3.
For manycast service
<code>minsane</code>
should be explicitly set to 4, assuming at least that
number of servers are available.
</p>
<p>If at least
<code>minclock</code>
servers are found, the manycast poll interval is immediately
set to eight times
<code>maxpoll</code>.
If less than
<code>minclock</code>
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
<code>maxpoll</code>.
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
</p>
<p>Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
<code>ttl</code>
configuration command can be
used to modify the values to match the scope rules.
</p>
<p>It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
<code>tos</code>
command can be used to modify this behavior.
Servers with stratum below
<code>floor</code>
or above
<code>ceiling</code>
specified in the
<code>tos</code>
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
<code>minclock</code>.
</p>
<p>The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
<code>minclock</code>,
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
<code>maxpoll</code>
is 12 (4,096 s).
</p>
<p>It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
<code>multicastclient</code>
and
<code>multicastserver</code>
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
</p>
<p>The remaining configuration files for all secondary
servers and clients have the same contents, except for the
<code>tos</code>
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
<code>floor</code>
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
</p>
<p>Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re-associate accordingly.
</p>
<p>Some administrators prefer to avoid running
<code>ntpd(1ntpdmdoc)</code>
continuously and run either
<code>sntp(1sntpmdoc)</code>
or
<code>ntpd(1ntpdmdoc)</code>
<code>-q</code>
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
<code>ntpd(1ntpdmdoc)</code>
<code>-q</code>.
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
</p><span id="Manycast-Interactions-with-Autokey"></span><h4 class="subsubsection">1.1.5.2 Manycast Interactions with Autokey</h4>
<p>Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
</p>
<p>About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
</p><span id="Broadcast-Options"></span><h4 class="subsubsection">1.1.5.3 Broadcast Options</h4>
<dl compact="compact">
<dt><code>tos</code> <code>[<code>bcpollbstep</code> <kbd>gate</kbd>]</code></dt>
<dd><p>This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server&rsquo;s time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
</p></dd>
</dl>
<span id="Manycast-Options"></span><h4 class="subsubsection">1.1.5.4 Manycast Options</h4>
<dl compact="compact">
<dt><code>tos</code> <code>[<code>ceiling</code> <kbd>ceiling</kbd> | <code>cohort</code> <code>{</code> <code>0</code> | <code>1</code> <code>}</code> | <code>floor</code> <kbd>floor</kbd> | <code>minclock</code> <kbd>minclock</kbd> | <code>minsane</code> <kbd>minsane</kbd>]</code></dt>
<dd><p>This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
</p><dl compact="compact">
<dt><code>ceiling</code> <kbd>ceiling</kbd></dt>
<dd><p>Peers with strata above
<code>ceiling</code>
will be discarded if there are at least
<code>minclock</code>
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
</p></dd>
<dt><code>cohort</code> <code>{0 | 1}</code></dt>
<dd><p>This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
</p></dd>
<dt><code>floor</code> <kbd>floor</kbd></dt>
<dd><p>Peers with strata below
<code>floor</code>
will be discarded if there are at least
<code>minclock</code>
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
</p></dd>
<dt><code>minclock</code> <kbd>minclock</kbd></dt>
<dd><p>The clustering algorithm repeatedly casts out outlier
associations until no more than
<code>minclock</code>
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
</p></dd>
<dt><code>minsane</code> <kbd>minsane</kbd></dt>
<dd><p>This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
<code>minsane</code>
should be at least 4 in order to detect and discard
a single falseticker.
</p></dd>
</dl>
</dd>
<dt><code>ttl</code> <kbd>hop</kbd> <kbd>...</kbd></dt>
<dd><p>This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding-ring search.
The default is eight
multiples of 32 starting at 31.
</p></dd>
</dl>
<hr>
<span id="Reference-Clock-Support"></span><div class="header">
<p>
Next: <a href="#Miscellaneous-Options" accesskey="n" rel="next">Miscellaneous Options</a>, Previous: <a href="#Automatic-NTP-Configuration-Options" accesskey="p" rel="prev">Automatic NTP Configuration Options</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Reference-Clock-Support-1"></span><h4 class="subsection">1.1.6 Reference Clock Support</h4>
<p>The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
&quot;Reference Clock Drivers&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
Additional information can be found in the pages linked
there, including the
&quot;Debugging Hints for Reference Clock Drivers&quot;
and
&quot;How To Write a Reference Clock Driver&quot;
pages
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
In addition, support for a PPS
signal is available as described in the
&quot;Pulse-per-second (PPS) Signal Interfacing&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
&quot;Line Disciplines and Streams Drivers&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
</p>
<p>A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
</p>
<p>For the purposes of configuration,
<code>ntpd(1ntpdmdoc)</code>
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
<code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd>,
where
<kbd>t</kbd>
is an integer
denoting the clock type and
<kbd>u</kbd>
indicates the unit
number in the range 0-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
</p>
<p>The
<code>server</code>
command is used to configure a reference
clock, where the
<kbd>address</kbd>
argument in that command
is the clock address.
The
<code>key</code>,
<code>version</code>
and
<code>ttl</code>
options are not used for reference clock support.
The
<code>mode</code>
option is added for reference clock support, as
described below.
The
<code>prefer</code>
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
&quot;Mitigation Rules and the prefer Keyword&quot;
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>)
page.
The
<code>minpoll</code>
and
<code>maxpoll</code>
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
</p>
<p>The
<code>fudge</code>
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
<code>server</code>
command.
The
<kbd>address</kbd>
argument specifies the clock address.
The
<code>refid</code>
and
<code>stratum</code>
options can be used to
override the defaults for the device.
There are two optional
device-dependent time offsets and four flags that can be included
in the
<code>fudge</code>
command as well.
</p>
<p>The stratum number of a reference clock is by default zero.
Since the
<code>ntpd(1ntpdmdoc)</code>
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
<code>stratum</code>
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse-per-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
<code>refid</code>
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
</p><span id="Reference-Clock-Commands"></span><h4 class="subsubsection">1.1.6.1 Reference Clock Commands</h4>
<dl compact="compact">
<dt><code>server</code> <code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd> <code>[<code>prefer</code>]</code> <code>[<code>mode</code> <kbd>int</kbd>]</code> <code>[<code>minpoll</code> <kbd>int</kbd>]</code> <code>[<code>maxpoll</code> <kbd>int</kbd>]</code></dt>
<dd><p>This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
</p><dl compact="compact">
<dt><code>prefer</code></dt>
<dd><p>Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
&quot;Mitigation Rules and the prefer Keyword&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>)
for further information.
</p></dd>
<dt><code>mode</code> <kbd>int</kbd></dt>
<dd><p>Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
</p></dd>
<dt><code>minpoll</code> <kbd>int</kbd></dt>
<dt><code>maxpoll</code> <kbd>int</kbd></dt>
<dd><p>These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
<code>minpoll</code>
and
<code>maxpoll</code>
default to 6 (64 s).
For modem reference clocks,
<code>minpoll</code>
defaults to 10 (17.1 m) and
<code>maxpoll</code>
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
</p></dd>
</dl>
</dd>
<dt><code>fudge</code> <code>127.127.</code><kbd>t</kbd>.<kbd>u</kbd> <code>[<code>time1</code> <kbd>sec</kbd>]</code> <code>[<code>time2</code> <kbd>sec</kbd>]</code> <code>[<code>stratum</code> <kbd>int</kbd>]</code> <code>[<code>refid</code> <kbd>string</kbd>]</code> <code>[<code>mode</code> <kbd>int</kbd>]</code> <code>[<code>flag1</code> <code>0</code> <code>|</code> <code>1</code>]</code> <code>[<code>flag2</code> <code>0</code> <code>|</code> <code>1</code>]</code> <code>[<code>flag3</code> <code>0</code> <code>|</code> <code>1</code>]</code> <code>[<code>flag4</code> <code>0</code> <code>|</code> <code>1</code>]</code></dt>
<dd><p>This command can be used to configure reference clocks in
special ways.
It must immediately follow the
<code>server</code>
command which configures the driver.
Note that the same capability
is possible at run time using the
<code>ntpdc(1ntpdcmdoc)</code>
program.
The options are interpreted as
follows:
</p><dl compact="compact">
<dt><code>time1</code> <kbd>sec</kbd></dt>
<dd><p>Specifies a constant to be added to the time offset produced by
the driver, a fixed-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
<code>enable</code>
command described in
<a href="#Miscellaneous-Options">Miscellaneous Options</a>
page and operates as described in the
&quot;Reference Clock Drivers&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp>).
</p></dd>
<dt><code>time2</code> <kbd>secs</kbd></dt>
<dd><p>Specifies a fixed-point decimal number in seconds, which is
interpreted in a driver-dependent way.
See the descriptions of
specific drivers in the
&quot;Reference Clock Drivers&quot;
page
(available as part of the HTML documentation
provided in
<samp>/usr/share/doc/ntp</samp> <samp>).</samp>
</p></dd>
<dt><code>stratum</code> <kbd>int</kbd></dt>
<dd><p>Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
</p></dd>
<dt><code>refid</code> <kbd>string</kbd></dt>
<dd><p>Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
</p></dd>
<dt><code>mode</code> <kbd>int</kbd></dt>
<dd><p>Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
</p></dd>
<dt><code>flag1</code> <code>0</code> <code>|</code> <code>1</code></dt>
<dt><code>flag2</code> <code>0</code> <code>|</code> <code>1</code></dt>
<dt><code>flag3</code> <code>0</code> <code>|</code> <code>1</code></dt>
<dt><code>flag4</code> <code>0</code> <code>|</code> <code>1</code></dt>
<dd><p>These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
<code>flag4</code>
is used to enable recording monitoring
data to the
<code>clockstats</code>
file configured with the
<code>filegen</code>
command.
Further information on the
<code>filegen</code>
command can be found in
&lsquo;Monitoring Options&rsquo;.
</p></dd>
</dl>
</dd>
</dl>
<hr>
<span id="Miscellaneous-Options"></span><div class="header">
<p>
Next: <a href="#ntp_002econf-Files" accesskey="n" rel="next">ntp.conf Files</a>, Previous: <a href="#Reference-Clock-Support" accesskey="p" rel="prev">Reference Clock Support</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="Miscellaneous-Options-1"></span><h4 class="subsection">1.1.7 Miscellaneous Options</h4>
<dl compact="compact">
<dt><code>broadcastdelay</code> <kbd>seconds</kbd></dt>
<dd><p>The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
</p></dd>
<dt><code>calldelay</code> <kbd>delay</kbd></dt>
<dd><p>This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
</p></dd>
<dt><code>driftfile</code> <kbd>driftfile</kbd></dt>
<dd><p>This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
<code>-f</code>
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
</p>
<p>The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts-per-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
<code>ntpd(1ntpdmdoc)</code>
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
</p></dd>
<dt><code>dscp</code> <kbd>value</kbd></dt>
<dd><p>This option specifies the Differentiated Services Control Point (DSCP) value,
a 6-bit code.
The default value is 46, signifying Expedited Forwarding.
</p></dd>
<dt><code>enable</code> <code>[<code>auth</code> | <code>bclient</code> | <code>calibrate</code> | <code>kernel</code> | <code>mode7</code> | <code>monitor</code> | <code>ntp</code> | <code>stats</code> | <code>peer_clear_digest_early</code> | <code>unpeer_crypto_early</code> | <code>unpeer_crypto_nak_early</code> | <code>unpeer_digest_early</code>]</code></dt>
<dt><code>disable</code> <code>[<code>auth</code> | <code>bclient</code> | <code>calibrate</code> | <code>kernel</code> | <code>mode7</code> | <code>monitor</code> | <code>ntp</code> | <code>stats</code> | <code>peer_clear_digest_early</code> | <code>unpeer_crypto_early</code> | <code>unpeer_crypto_nak_early</code> | <code>unpeer_digest_early</code>]</code></dt>
<dd><p>Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
<code>ntpdc(1ntpdcmdoc)</code>
utility program.
</p><dl compact="compact">
<dt><code>auth</code></dt>
<dd><p>Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
<code>enable</code>.
</p></dd>
<dt><code>bclient</code></dt>
<dd><p>Enables the server to listen for a message from a broadcast or
multicast server, as in the
<code>multicastclient</code>
command with default
address.
The default for this flag is
<code>disable</code>.
</p></dd>
<dt><code>calibrate</code></dt>
<dd><p>Enables the calibrate feature for reference clocks.
The default for
this flag is
<code>disable</code>.
</p></dd>
<dt><code>kernel</code></dt>
<dd><p>Enables the kernel time discipline, if available.
The default for this
flag is
<code>enable</code>
if support is available, otherwise
<code>disable</code>.
</p></dd>
<dt><code>mode7</code></dt>
<dd><p>Enables processing of NTP mode 7 implementation-specific requests
which are used by the deprecated
<code>ntpdc(1ntpdcmdoc)</code>
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
<code>ntpq(1ntpqmdoc)</code>.
The
<code>ntpq(1ntpqmdoc)</code>
program provides the same capabilities as
<code>ntpdc(1ntpdcmdoc)</code>
using standard mode 6 requests.
</p></dd>
<dt><code>monitor</code></dt>
<dd><p>Enables the monitoring facility.
See the
<code>ntpdc(1ntpdcmdoc)</code>
program
and the
<code>monlist</code>
command or further information.
The
default for this flag is
<code>enable</code>.
</p></dd>
<dt><code>ntp</code></dt>
<dd><p>Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
<code>enable</code>.
</p></dd>
<dt><code>peer_clear_digest_early</code></dt>
<dd><p>By default, if
<code>ntpd(1ntpdmdoc)</code>
is using autokey and it
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
<code>peerstats</code>
file for evidence of any of these attacks.
The
default for this flag is
<code>enable</code>.
</p></dd>
<dt><code>stats</code></dt>
<dd><p>Enables the statistics facility.
See the
&lsquo;Monitoring Options&rsquo;
section for further information.
The default for this flag is
<code>disable</code>.
</p></dd>
<dt><code>unpeer_crypto_early</code></dt>
<dd><p>By default, if
<code>ntpd(1ntpdmdoc)</code>
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
<code>peerstats</code>
file for evidence of any of these attacks.
The
default for this flag is
<code>enable</code>.
</p></dd>
<dt><code>unpeer_crypto_nak_early</code></dt>
<dd><p>By default, if
<code>ntpd(1ntpdmdoc)</code>
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
<code>peerstats</code>
file for evidence of any of these attacks.
The
default for this flag is
<code>enable</code>.
</p></dd>
<dt><code>unpeer_digest_early</code></dt>
<dd><p>By default, if
<code>ntpd(1ntpdmdoc)</code>
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
<code>peerstats</code>
file for evidence of any of these attacks.
The
default for this flag is
<code>enable</code>.
</p></dd>
</dl>
</dd>
<dt><code>includefile</code> <kbd>includefile</kbd></dt>
<dd><p>This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
<code>ntpd(1ntpdmdoc)</code>
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
</p></dd>
<dt><code>interface</code> <code>[<code>listen</code> | <code>ignore</code> | <code>drop</code>]</code> <code>[<code>all</code> | <code>ipv4</code> | <code>ipv6</code> | <code>wildcard</code> <kbd>name</kbd> | <kbd>address</kbd> <code>[<code>/</code> <kbd>prefixlen</kbd>]</code>]</code></dt>
<dd><p>The
<code>interface</code>
directive controls which network addresses
<code>ntpd(1ntpdmdoc)</code>
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
<kbd>prefixlen</kbd>
determines how many bits must match for this rule to apply.
<code>ignore</code>
prevents opening matching addresses,
<code>drop</code>
causes
<code>ntpd(1ntpdmdoc)</code>
to open the address and drop all received packets without examination.
Multiple
<code>interface</code>
directives can be used.
The last rule which matches a particular address determines the action for it.
<code>interface</code>
directives are disabled if any
<code>-I</code>,
<code>--interface</code>,
<code>-L</code>,
or
<code>--novirtualips</code>
command-line options are specified in the configuration file,
all available network addresses are opened.
The
<code>nic</code>
directive is an alias for
<code>interface</code>.
</p></dd>
<dt><code>leapfile</code> <kbd>leapfile</kbd></dt>
<dd><p>This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
<code>https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list</code>
or
<code>ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list</code>.
The
<code>leapfile</code>
is scanned when
<code>ntpd(1ntpdmdoc)</code>
processes the
<code>leapfile</code> <code>directive</code> <code>or</code> <code>when</code>
<code>ntpd</code> <code>detects</code> <code>that</code> <code>the</code>
<kbd>leapfile</kbd>
has changed.
<code>ntpd</code>
checks once a day to see if the
<kbd>leapfile</kbd>
has changed.
The
<code>update-leap(1update_leapmdoc)</code>
script can be run to see if the
<kbd>leapfile</kbd>
should be updated.
</p></dd>
<dt><code>leapsmearinterval</code> <kbd>seconds</kbd></dt>
<dd><p>This EXPERIMENTAL option is only available if
<code>ntpd(1ntpdmdoc)</code>
was built with the
<code>--enable-leap-smear</code>
option to the
<code>configure</code>
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
</p></dd>
<dt><code>logconfig</code> <kbd>configkeyword</kbd></dt>
<dd><p>This command controls the amount and type of output written to
the system
<code>syslog(3)</code>
facility or the alternate
<code>logfile</code>
log file.
By default, all output is turned on.
All
<kbd>configkeyword</kbd>
keywords can be prefixed with
&lsquo;=&rsquo;,
&lsquo;+&rsquo;
and
&lsquo;-&rsquo;,
where
&lsquo;=&rsquo;
sets the
<code>syslog(3)</code>
priority mask,
&lsquo;+&rsquo;
adds and
&lsquo;-&rsquo;
removes
messages.
<code>syslog(3)</code>
messages can be controlled in four
classes
(<code>clock</code>, <code>peer</code>, <code>sys</code> and <code>sync</code>).
Within these classes four types of messages can be
controlled: informational messages
(<code>info</code>),
event messages
(<code>events</code>),
statistics messages
(<code>statistics</code>)
and
status messages
(<code>status</code>).
</p>
<p>Configuration keywords are formed by concatenating the message class with
the event class.
The
<code>all</code>
prefix can be used instead of a message class.
A
message class may also be followed by the
<code>all</code>
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
</p><pre class="verbatim">logconfig =syncstatus +sysevents
</pre>
<p>This would just list the synchronizations state of
<code>ntpd(1ntpdmdoc)</code>
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
</p><pre class="verbatim">logconfig =syncall +clockall
</pre>
<p>This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
</p></dd>
<dt><code>logfile</code> <kbd>logfile</kbd></dt>
<dd><p>This command specifies the location of an alternate log file to
be used instead of the default system
<code>syslog(3)</code>
facility.
This is the same operation as the
<code>-l</code>
command line option.
</p></dd>
<dt><code>mru</code> <code>[<code>maxdepth</code> <kbd>count</kbd> | <code>maxmem</code> <kbd>kilobytes</kbd> | <code>mindepth</code> <kbd>count</kbd> | <code>maxage</code> <kbd>seconds</kbd> | <code>initialloc</code> <kbd>count</kbd> | <code>initmem</code> <kbd>kilobytes</kbd> | <code>incalloc</code> <kbd>count</kbd> | <code>incmem</code> <kbd>kilobytes</kbd>]</code></dt>
<dd><p>Controls size limite of the monitoring facility&rsquo;s Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
</p><dl compact="compact">
<dt><code>maxdepth</code> <kbd>count</kbd></dt>
<dt><code>maxmem</code> <kbd>kilobytes</kbd></dt>
<dd><p>Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
<code>incalloc</code>
entries or
<code>incmem</code>
kilobytes larger.
As with all of the
<code>mru</code>
options offered in units of entries or kilobytes, if both
<code>maxdepth</code>
and
<code>maxmem</code> <code>are</code> <code>used,</code> <code>the</code> <code>last</code> <code>one</code> <code>used</code> <code>controls.</code>
The default is 1024 kilobytes.
</p></dd>
<dt><code>mindepth</code> <kbd>count</kbd></dt>
<dd><p>Lower limit on the MRU list size.
When the MRU list has fewer than
<code>mindepth</code>
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
</p></dd>
<dt><code>maxage</code> <kbd>seconds</kbd></dt>
<dd><p>Once the MRU list has
<code>mindepth</code>
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
<code>maxage</code>
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
<code>maxdepth</code> <code>/</code> <code>moxmem</code>.
The default is 64 seconds.
</p></dd>
<dt><code>initalloc</code> <kbd>count</kbd></dt>
<dt><code>initmem</code> <kbd>kilobytes</kbd></dt>
<dd><p>Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
</p></dd>
<dt><code>incalloc</code> <kbd>count</kbd></dt>
<dt><code>incmem</code> <kbd>kilobytes</kbd></dt>
<dd><p>Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
</p></dd>
</dl>
</dd>
<dt><code>nonvolatile</code> <kbd>threshold</kbd></dt>
<dd><p>Specify the
<kbd>threshold</kbd>
delta in seconds before an hourly change to the
<code>driftfile</code>
(frequency file) will be written, with a default value of 1e-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
<code>threshold</code>
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
</p></dd>
<dt><code>phone</code> <kbd>dial</kbd> <kbd>...</kbd></dt>
<dd><p>This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 - 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 - 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
</p></dd>
<dt><code>pollskewlist</code> <code>[<kbd>poll</kbd> <kbd>early</kbd> <kbd>late</kbd>]</code> <kbd>...</kbd> <code>[<code>default</code> <kbd>early</kbd> <kbd>late</kbd>]</code></dt>
<dd><p>Enable skewing of our poll requests to our servers.
<kbd>poll</kbd>
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
</p></dd>
<dt><code>reset</code> <code>[<code>allpeers</code>]</code> <code>[<code>auth</code>]</code> <code>[<code>ctl</code>]</code> <code>[<code>io</code>]</code> <code>[<code>mem</code>]</code> <code>[<code>sys</code>]</code> <code>[<code>timer</code>]</code></dt>
<dd><p>Reset one or more groups of counters maintained by
<code>ntpd</code>
and exposed by
<code>ntpq</code>
and
<code>ntpdc</code>.
</p></dd>
<dt><code>rlimit</code> <code>[<code>memlock</code> <kbd>Nmegabytes</kbd> | <code>stacksize</code> <kbd>N4kPages</kbd> <code>filenum</code> <kbd>Nfiledescriptors</kbd>]</code></dt>
<dd><dl compact="compact">
<dt><code>memlock</code> <kbd>Nmegabytes</kbd></dt>
<dd><p>Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
<code>-i</code>
option).
The default is 32 megabytes on non-Linux machines, and -1 under Linux.
-1 means &quot;do not lock the process into memory&quot;.
0 means &quot;lock whatever memory the process wants into memory&quot;.
</p></dd>
<dt><code>stacksize</code> <kbd>N4kPages</kbd></dt>
<dd><p>Specifies the maximum size of the process stack on systems with the
<code>mlockall()</code>
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
</p></dd>
<dt><code>filenum</code> <kbd>Nfiledescriptors</kbd></dt>
<dd><p>Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
</p></dd>
</dl>
</dd>
<dt><code>saveconfigdir</code> <kbd>directory_path</kbd></dt>
<dd><p>Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq &rsquo;s
<code>saveconfig</code>
command.
If
<code>saveconfigdir</code>
does not appear in the configuration file,
<code>saveconfig</code>
requests are rejected by
<code>ntpd</code>.
</p></dd>
<dt><code>saveconfig</code> <kbd>filename</kbd></dt>
<dd><p>Write the current configuration, including any runtime
modifications given with
<code>:config</code>
or
<code>config-from-file</code>
to the
<code>ntpd</code>
host&rsquo;s
<kbd>filename</kbd>
in the
<code>saveconfigdir</code>.
This command will be rejected unless the
<code>saveconfigdir</code>
directive appears in
.Cm ntpd &rsquo;s
configuration file.
<kbd>filename</kbd>
can use
<code>strftime(3)</code>
format directives to substitute the current date and time,
for example,
<code>saveconfig\ ntp-%Y%m%d-%H%M%S.conf</code>.
The filename used is stored in the system variable
<code>savedconfig</code>.
Authentication is required.
</p></dd>
<dt><code>setvar</code> <kbd>variable</kbd> <code>[<code>default</code>]</code></dt>
<dd><p>This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
<code>name</code><code>=</code><kbd>value</kbd>
is followed by the
<code>default</code>
keyword, the
variable will be listed as part of the default system variables
(<code>rv</code> command)).
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
<code>setvar</code>
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
<code>sys_var_list</code>
holds
the names of all system variables.
The
<code>peer_var_list</code>
holds
the names of all peer variables and the
<code>clock_var_list</code>
holds the names of the reference clock variables.
</p></dd>
<dt><code>sysinfo</code></dt>
<dd><p>Display operational summary.
</p></dd>
<dt><code>sysstats</code></dt>
<dd><p>Show statistics counters maintained in the protocol module.
</p></dd>
<dt><code>tinker</code> <code>[<code>allan</code> <kbd>allan</kbd> | <code>dispersion</code> <kbd>dispersion</kbd> | <code>freq</code> <kbd>freq</kbd> | <code>huffpuff</code> <kbd>huffpuff</kbd> | <code>panic</code> <kbd>panic</kbd> | <code>step</code> <kbd>step</kbd> | <code>stepback</code> <kbd>stepback</kbd> | <code>stepfwd</code> <kbd>stepfwd</kbd> | <code>stepout</code> <kbd>stepout</kbd>]</code></dt>
<dd><p>This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
</p>
<p>The variables operate as follows:
</p><dl compact="compact">
<dt><code>allan</code> <kbd>allan</kbd></dt>
<dd><p>The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
</p></dd>
<dt><code>dispersion</code> <kbd>dispersion</kbd></dt>
<dd><p>The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
</p></dd>
<dt><code>freq</code> <kbd>freq</kbd></dt>
<dd><p>The argument becomes the initial value of the frequency offset in
parts-per-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
</p></dd>
<dt><code>huffpuff</code> <kbd>huffpuff</kbd></dt>
<dd><p>The argument becomes the new value for the experimental
huff-n&rsquo;-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
</p></dd>
<dt><code>panic</code> <kbd>panic</kbd></dt>
<dd><p>The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
</p></dd>
<dt><code>step</code> <kbd>step</kbd></dt>
<dd><p>The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
</p></dd>
<dt><code>stepback</code> <kbd>stepback</kbd></dt>
<dd><p>The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
</p></dd>
<dt><code>stepfwd</code> <kbd>stepfwd</kbd></dt>
<dd><p>As for stepback, but for the forward direction.
</p></dd>
<dt><code>stepout</code> <kbd>stepout</kbd></dt>
<dd><p>The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
</p></dd>
</dl>
</dd>
<dt><code>writevar</code> <kbd>assocID\ name</kbd> <kbd>=</kbd> <kbd>value</kbd> <kbd>[,...]</kbd></dt>
<dd><p>Write (create or update) the specified variables.
If the
<code>assocID</code>
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
<code>assocID</code>
is required, as the same name can occur in both name spaces.
</p></dd>
<dt><code>trap</code> <kbd>host_address</kbd> <code>[<code>port</code> <kbd>port_number</kbd>]</code> <code>[<code>interface</code> <kbd>interface_address</kbd>]</code></dt>
<dd><p>This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
</p></dd>
<dt><code>ttl</code> <kbd>hop</kbd> <kbd>...</kbd></dt>
<dd><p>This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
<code>manycast</code>
mode these values are used in-turn in an expanding-ring search.
The default is eight multiples of 32 starting at 31.
</p>
<p>The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
</p></dd>
<dt><code>hop</code> <kbd>...</kbd></dt>
<dd><p>This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding-ring search.
The default is eight multiples of 32 starting at
31.
</p></dd>
</dl>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp.conf</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Files" accesskey="1">ntp.conf Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Files
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-See-Also" accesskey="2">ntp.conf See Also</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">See Also
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Bugs" accesskey="3">ntp.conf Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bugs
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002econf-Notes" accesskey="4">ntp.conf Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notes
</td></tr>
</table>
<hr>
<span id="ntp_002econf-Files"></span><div class="header">
<p>
Next: <a href="#ntp_002econf-See-Also" accesskey="n" rel="next">ntp.conf See Also</a>, Previous: <a href="#Miscellaneous-Options" accesskey="p" rel="prev">Miscellaneous Options</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="ntp_002econf-Files-1"></span><h4 class="subsection">1.1.8 ntp.conf Files</h4>
<dl compact="compact">
<dt><samp>/etc/ntp.conf</samp></dt>
<dd><p>the default name of the configuration file
</p></dd>
<dt><samp>ntp.keys</samp></dt>
<dd><p>private MD5 keys
</p></dd>
<dt><samp>ntpkey</samp></dt>
<dd><p>RSA private key
</p></dd>
<dt><samp>ntpkey_</samp><kbd>host</kbd></dt>
<dd><p>RSA public key
</p></dd>
<dt><samp>ntp_dh</samp></dt>
<dd><p>Diffie-Hellman agreement parameters
</p></dd>
</dl>
<hr>
<span id="ntp_002econf-See-Also"></span><div class="header">
<p>
Next: <a href="#ntp_002econf-Bugs" accesskey="n" rel="next">ntp.conf Bugs</a>, Previous: <a href="#ntp_002econf-Files" accesskey="p" rel="prev">ntp.conf Files</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="ntp_002econf-See-Also-1"></span><h4 class="subsection">1.1.9 ntp.conf See Also</h4>
<p><code>ntpd(1ntpdmdoc)</code>,
<code>ntpdc(1ntpdcmdoc)</code>,
<code>ntpq(1ntpqmdoc)</code>
</p>
<p>In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
<code>http://www.ntp.org/</code>.
A snapshot of this documentation is available in HTML format in
<samp>/usr/share/doc/ntp</samp>.
<br>
</p>
<br>
<p>David L. Mills, <em>Network Time Protocol (Version 4)</em>, RFC5905
</p><hr>
<span id="ntp_002econf-Bugs"></span><div class="header">
<p>
Previous: <a href="#ntp_002econf-See-Also" accesskey="p" rel="prev">ntp.conf See Also</a>, Up: <a href="#ntp_002econf-Notes" accesskey="u" rel="up">ntp.conf Notes</a> &nbsp; </p>
</div>
<span id="ntp_002econf-Bugs-1"></span><h4 class="subsection">1.1.10 ntp.conf Bugs</h4>
<p>The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
</p>
<p>The
<samp>ntpkey_</samp><kbd>host</kbd>
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
</p><hr>
<div class="header">
<p>
&nbsp; </p>
</div>
<span id="ntp_002econf-Notes-1"></span><h4 class="subsection">1.1.11 ntp.conf Notes</h4>
<p>This document was derived from FreeBSD.
</p><hr>
</body>
</html>
diff --git a/contrib/ntp/ntpd/ntp.conf.man.in b/contrib/ntp/ntpd/ntp.conf.man.in
index 10544a131eaa..0c56ee503df6 100644
--- a/contrib/ntp/ntpd/ntp.conf.man.in
+++ b/contrib/ntp/ntpd/ntp.conf.man.in
@@ -1,3489 +1,3489 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5 "31 May 2023" "4.2.8p16" "File Formats"
+.TH ntp.conf 5 "06 Jun 2023" "4.2.8p17" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:38 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:45 AM by AutoGen 5.18.16
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp.conf\fP
\- Network Time Protocol (NTP) daemon configuration file format
.SH SYNOPSIS
\f\*[B-Font]ntp.conf\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The
\f\*[B-Font]ntp.conf\fP
configuration file is read at initial startup by the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
\fI/etc\f[]
directory,
but could be installed elsewhere
(see the daemon's
\f\*[B-Font]\-c\f[]
command line option).
.sp \n(Ppu
.ne 2
The file format is similar to other
UNIX
configuration files.
Comments begin with a
\[oq]#\[cq]
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
.sp \n(Ppu
.ne 2
The rest of this page describes the configuration and control options.
The
"Notes on Configuring NTP and Setting up an NTP Subnet"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
contains an extended discussion of these options.
In addition to the discussion of general
\fIConfiguration\f[] \fIOptions\f[],
there are sections describing the following supported functionality
and the options used to control it:
.IP \fB\(bu\fP 2
\fIAuthentication\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIMonitoring\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIAccess\f[] \fIControl\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
.IP \fB\(bu\fP 2
\fIReference\f[] \fIClock\f[] \fISupport\f[]
.IP \fB\(bu\fP 2
\fIMiscellaneous\f[] \fIOptions\f[]
.PP
.sp \n(Ppu
.ne 2
Following these is a section describing
\fIMiscellaneous\f[] \fIOptions\f[].
While there is a rich set of options available,
the only required option is one or more
\f\*[B-Font]pool\f[],
\f\*[B-Font]server\f[],
\f\*[B-Font]peer\f[],
\f\*[B-Font]broadcast\f[]
or
\f\*[B-Font]manycastclient\f[]
commands.
.SH Configuration Support
Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
.SS Configuration Commands
The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
.sp \n(Ppu
.ne 2
If the Basic Socket Interface Extensions for IPv6 (RFC-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
\f\*[B-Font]reslist\f[]
billboard generated
by
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
or
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[],
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
\*[Lq]\&:\*[Rq]
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
\f\*[B-Font]\-6\f[]
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
.TP 7
.NOP \f\*[B-Font]pool\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]burst\f[]] [\f\*[B-Font]iburst\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]xmtnonce\f[]]
.TP 7
.NOP \f\*[B-Font]server\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]burst\f[]] [\f\*[B-Font]iburst\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]true\f[]] [\f\*[B-Font]xmtnonce\f[]]
.TP 7
.NOP \f\*[B-Font]peer\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]true\f[]] [\f\*[B-Font]xleave\f[]]
.TP 7
.NOP \f\*[B-Font]broadcast\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]] [\f\*[B-Font]xleave\f[]]
.TP 7
.NOP \f\*[B-Font]manycastclient\f[] \f\*[I-Font]address\f[] [\f\*[B-Font]key\f[] \f\*[I-Font]key\f[] \f\*[I-Font]\&|\f[] \f\*[B-Font]autokey\f[]] [\f\*[B-Font]version\f[] \f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]] [\f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]]
.PP
.sp \n(Ppu
.ne 2
These five commands specify the time server name or address to
be used and the mode in which to operate.
The
\f\*[I-Font]address\f[]
can be
either a DNS name or an IP address in dotted-quad notation.
Additional information on association behavior can be found in the
"Association Management"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.TP 7
.NOP \f\*[B-Font]pool\f[]
For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
.TP 7
.NOP \f\*[B-Font]server\f[]
For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
\fInot\f[]
be used for type
b or m addresses.
.TP 7
.NOP \f\*[B-Font]peer\f[]
For type s addresses (only), this command mobilizes a
persistent symmetric-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
.TP 7
.NOP \f\*[B-Font]broadcast\f[]
For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
\f\*[I-Font]address\f[]
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
\f\*[B-Font]broadcastclient\f[]
or
\f\*[B-Font]multicastclient\f[]
commands
below.
.TP 7
.NOP \f\*[B-Font]manycastclient\f[]
For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
\f\*[B-Font]manycastserver\f[]
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
\f\*[B-Font]manycastserver\f[]
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
\f\*[I-Font]address\f[]
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
\f\*[B-Font]server\f[]
command.
The remaining servers are discarded as if never
heard.
.PP
.sp \n(Ppu
.ne 2
Options:
.TP 7
.NOP \f\*[B-Font]autokey\f[]
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]burst\f[]
when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
\f\*[B-Font]calldelay\f[]
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
\f\*[B-Font]server\f[]
command and s addresses.
.TP 7
.NOP \f\*[B-Font]iburst\f[]
When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
\f\*[B-Font]calldelay\f[]
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
\f\*[B-Font]server\f[]
command and s addresses and when
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
is started with the
\f\*[B-Font]\-q\f[]
option.
.TP 7
.NOP \f\*[B-Font]key\f[] \f\*[I-Font]key\f[]
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
\f\*[I-Font]key\f[]
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
.TP 7
.NOP \f\*[B-Font]minpoll\f[] \f\*[I-Font]minpoll\f[]
.TP 7
.NOP \f\*[B-Font]maxpoll\f[] \f\*[I-Font]maxpoll\f[]
These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
\f\*[B-Font]maxpoll\f[]
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
\f\*[B-Font]minpoll\f[]
option to a lower limit of 4 (16 s).
.TP 7
.NOP \f\*[B-Font]noselect\f[]
Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
.TP 7
.NOP \f\*[B-Font]preempt\f[]
Says the association can be preempted.
.TP 7
.NOP \f\*[B-Font]prefer\f[]
Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
for further information.
.TP 7
.NOP \f\*[B-Font]true\f[]
Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
\fIonly\f[]
be used while testing an association.
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]ttl\f[]
This option is used only with broadcast server and manycast
client modes.
It specifies the time-to-live
\f\*[I-Font]ttl\f[]
to
use on broadcast server and multicast server and the maximum
\f\*[I-Font]ttl\f[]
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
.TP 7
.NOP \f\*[B-Font]version\f[] \f\*[I-Font]version\f[]
Specifies the version number to be used for outgoing NTP
packets.
Versions 1-4 are the choices, with version 4 the
default.
.TP 7
.NOP \f\*[B-Font]xleave\f[]
Valid in
\f\*[B-Font]peer\f[]
and
\f\*[B-Font]broadcast\f[]
modes only, this flag enables interleave mode.
.TP 7
.NOP \f\*[B-Font]xmtnonce\f[]
Valid only for
\f\*[B-Font]server\f[]
and
\f\*[B-Font]pool\f[]
modes, this flag puts a random number in the packet's transmit timestamp.
.PP
.SS Auxiliary Commands
.TP 7
.NOP \f\*[B-Font]broadcastclient\f[]
This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric-key or public-key
authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]manycastserver\f[] \f\*[I-Font]address\f[] \f\*[I-Font]...\f[]
This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric-key or public-key
authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]multicastclient\f[] \f\*[I-Font]address\f[] \f\*[I-Font]...\f[]
This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric-key or
public-key authentication as described in
\fIAuthentication\f[] \fIOptions\f[].
.TP 7
.NOP \f\*[B-Font]mdnstries\f[] \f\*[I-Font]number\f[]
If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
\f\*[B-Font]mdnstries\f[]
times.
After all,
\f\*[B-Font]ntpd\f[]
may be starting before mDNS.
The default value for
\f\*[B-Font]mdnstries\f[]
is 5.
.PP
.SH Authentication Support
Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed-MD5.
Either algorithm computes a message digest, or one-way hash, which
can be used to verify the server has the correct private key and
key identifier.
.sp \n(Ppu
.ne 2
NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
.sp \n(Ppu
.ne 2
While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
.sp \n(Ppu
.ne 2
Authentication is configured separately for each association
using the
\f\*[B-Font]key\f[]
or
\f\*[B-Font]autokey\f[]
subcommand on the
\f\*[B-Font]peer\f[],
\f\*[B-Font]server\f[],
\f\*[B-Font]broadcast\f[]
and
\f\*[B-Font]manycastclient\f[]
configuration commands as described in
\fIConfiguration\f[] \fIOptions\f[]
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
.sp \n(Ppu
.ne 2
Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]auth\f[]
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
commands and also by remote
configuration commands sent by a
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
\f\*[B-Font]auth\f[]
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
.sp \n(Ppu
.ne 2
An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
.sp \n(Ppu
.ne 2
The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
\f[C]http://www.ntp.org/\f[].
.SS Symmetric-Key Cryptography
The original RFC-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
\fIntp.keys\f[],
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility programs.
.sp \n(Ppu
.ne 2
When
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
is first started, it reads the key file specified in the
\f\*[B-Font]keys\f[]
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
\f\*[B-Font]trusted\f[]
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[].
This also provides a revocation capability that can be used
if a key becomes compromised.
The
\f\*[B-Font]requestkey\f[]
command selects the key used as the password for the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility, while the
\f\*[B-Font]controlkey\f[]
command selects the key used as the password for the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
utility.
.SS Public Key Cryptography
NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
.\" .Pp
.\" The cryptographic means necessary for all Autokey operations
.\" is provided by the OpenSSL software library.
.\" This library is available from http://www.openssl.org/
.\" and can be installed using the procedures outlined
.\" in the Building and Installing the Distribution page.
.\" Once installed,
.\" the configure and build
.\" process automatically detects the library and links
.\" the library routines required.
.sp \n(Ppu
.ne 2
The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S-KEY scheme,
in which a pseudo-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
\fIAutonomous\f[] \fIAuthentication\f[]
page.
.sp \n(Ppu
.ne 2
The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
\fCntp-keygen\f[]\fR(1ntpkeygenmdoc)\f[]
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
\f\*[B-Font]md5WithRSAEncryption\f[],
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
.sp \n(Ppu
.ne 2
NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
.SS Naming and Addressing
It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can't be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
.sp \n(Ppu
.ne 2
By convention, the name of an Autokey host is the name returned
by the Unix
\fCgethostname\f[]\fR(2)\f[]
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
.sp \n(Ppu
.ne 2
It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
.SS Operation
A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
.sp \n(Ppu
.ne 2
The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
\f\*[B-Font]server\f[]
or
\f\*[B-Font]peer\f[]
configuration command and no
\f\*[B-Font]key\f[]
or
\f\*[B-Font]autokey\f[]
subcommands are present, the association is not
authenticated; if the
\f\*[B-Font]key\f[]
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
\f\*[B-Font]autokey\f[]
subcommand is present, the association is authenticated
using Autokey.
.sp \n(Ppu
.ne 2
When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
.sp \n(Ppu
.ne 2
Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
.sp \n(Ppu
.ne 2
Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice's unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob's symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it's the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto-NAK, which tells her
something broke.
She can see the evidence using the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
program.
.sp \n(Ppu
.ne 2
Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
.sp \n(Ppu
.ne 2
It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
.SS Key Management
The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
\fCntp-keygen\f[]\fR(1ntpkeygenmdoc)\f[]
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility programs.
The remaining files are necessary only for the
Autokey protocol.
.sp \n(Ppu
.ne 2
Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
\f\*[B-Font]trustRoot\f[];.
Other extension fields are ignored.
.SS Authentication Commands
.TP 7
.NOP \f\*[B-Font]autokey\f[] [\f\*[I-Font]logsec\f[]]
Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
.TP 7
.NOP \f\*[B-Font]controlkey\f[] \f\*[I-Font]key\f[]
Specifies the key identifier to use with the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
utility, which uses the standard
protocol defined in RFC-1305.
The
\f\*[I-Font]key\f[]
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
.TP 7
.NOP \f\*[B-Font]crypto\f[] [\f\*[B-Font]cert\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]leap\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]randfile\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]host\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]sign\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]gq\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]gqpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]iffpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]mvpar\f[] \f\*[I-Font]file\f[]] [\f\*[B-Font]pw\f[] \f\*[I-Font]password\f[]]
This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
\f\*[B-Font]keysdir\f[]
command or default
\fI/usr/local/etc\f[].
Following are the subcommands:
.RS
.TP 7
.NOP \f\*[B-Font]cert\f[] \f\*[I-Font]file\f[]
Specifies the location of the required host public certificate file.
This overrides the link
\fIntpkey_cert_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]gqpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional GQ parameters file.
This
overrides the link
\fIntpkey_gq_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]host\f[] \f\*[I-Font]file\f[]
Specifies the location of the required host key file.
This overrides
the link
\fIntpkey_key_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]iffpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional IFF parameters file.
This overrides the link
\fIntpkey_iff_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]leap\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional leapsecond file.
This overrides the link
\fIntpkey_leap\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]mvpar\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional MV parameters file.
This overrides the link
\fIntpkey_mv_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
.TP 7
.NOP \f\*[B-Font]pw\f[] \f\*[I-Font]password\f[]
Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
.TP 7
.NOP \f\*[B-Font]randfile\f[] \f\*[I-Font]file\f[]
Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
.TP 7
.NOP \f\*[B-Font]sign\f[] \f\*[I-Font]file\f[]
Specifies the location of the optional sign key file.
This overrides
the link
\fIntpkey_sign_\f[]\f\*[I-Font]hostname\f[]
in the keys directory.
If this file is
not found, the host key is also the sign key.
.RE
.TP 7
.NOP \f\*[B-Font]keys\f[] \f\*[I-Font]keyfile\f[]
Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
\fCntpd\f[]\fR(@NTPD_MS@)\f[],
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
when operating with symmetric key cryptography.
This is the same operation as the
\f\*[B-Font]\-k\f[]
command line option.
.TP 7
.NOP \f\*[B-Font]keysdir\f[] \f\*[I-Font]path\f[]
This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
\fI/usr/local/etc/\f[].
.TP 7
.NOP \f\*[B-Font]requestkey\f[] \f\*[I-Font]key\f[]
Specifies the key identifier to use with the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility program, which uses a
proprietary protocol specific to this implementation of
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
The
\f\*[I-Font]key\f[]
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
.TP 7
.NOP \f\*[B-Font]revoke\f[] \f\*[I-Font]logsec\f[]
Specifies the interval between re-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
.TP 7
.NOP \f\*[B-Font]trustedkey\f[] \f\*[I-Font]key\f[] \f\*[I-Font]...\f[]
Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
\f\*[I-Font]key\f[]
arguments are 32-bit unsigned
integers with values from 1 to 65,535.
.PP
.SS Error Codes
The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
.TP 7
.NOP 101
(bad field format or length)
The packet has invalid version, length or format.
.TP 7
.NOP 102
(bad timestamp)
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
.TP 7
.NOP 103
(bad filestamp)
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
.TP 7
.NOP 104
(bad or missing public key)
The public key is missing, has incorrect format or is an unsupported type.
.TP 7
.NOP 105
(unsupported digest type)
The server requires an unsupported digest/signature scheme.
.TP 7
.NOP 106
(mismatched digest types)
Not used.
.TP 7
.NOP 107
(bad signature length)
The signature length does not match the current public key.
.TP 7
.NOP 108
(signature not verified)
The message fails the signature check.
It could be bogus or signed by a
different private key.
.TP 7
.NOP 109
(certificate not verified)
The certificate is invalid or signed with the wrong key.
.TP 7
.NOP 110
(certificate not verified)
The certificate is not yet valid or has expired or the signature could not
be verified.
.TP 7
.NOP 111
(bad or missing cookie)
The cookie is missing, corrupted or bogus.
.TP 7
.NOP 112
(bad or missing leapseconds table)
The leapseconds table is missing, corrupted or bogus.
.TP 7
.NOP 113
(bad or missing certificate)
The certificate is missing, corrupted or bogus.
.TP 7
.NOP 114
(bad or missing identity)
The identity key is missing, corrupt or bogus.
.PP
.SH Monitoring Support
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
\f\*[B-Font]statistics\f[]
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
\fI./scripts\f[]
directory of the source code distribution.
Using
these facilities and
UNIX
\fCcron\f[]\fR(8)\f[]
jobs, the data can be
automatically summarized and archived for retrospective analysis.
.SS Monitoring Commands
.TP 7
.NOP \f\*[B-Font]statistics\f[] \f\*[I-Font]name\f[] \f\*[I-Font]...\f[]
Enables writing of statistics records.
Currently, eight kinds of
\f\*[I-Font]name\f[]
statistics are supported.
.RS
.TP 7
.NOP \f\*[B-Font]clockstats\f[]
Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
\f\*[B-Font]clockstats\f[]:
.br
.in +4
.nf
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
.TP 7
.NOP \f\*[B-Font]cryptostats\f[]
This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
\f\*[B-Font]cryptostats\f[]:
.br
.in +4
.nf
49213 525.624 127.127.4.1 message
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted-quad notation, The final message field includes the
message type and certain ancillary information.
See the
\fIAuthentication\f[] \fIOptions\f[]
section for further information.
.TP 7
.NOP \f\*[B-Font]loopstats\f[]
Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
\f\*[B-Font]loopstats\f[]:
.br
.in +4
.nf
50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million \-
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
.TP 7
.NOP \f\*[B-Font]peerstats\f[]
Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
\f\*[B-Font]peerstats\f[]:
.br
.in +4
.nf
48773 10847.650 127.127.4.1 9714 \-0.001605376 0.000000000 0.001424877 0.000958674
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
.TP 7
.NOP \f\*[B-Font]rawstats\f[]
Enables recording of raw-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
\f\*[B-Font]rawstats\f[]:
.br
.in +4
.nf
50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
\f\*[B-Font]sysstats\f[]:
.br
.in +4
.nf
50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
.in -4
.fi
.sp \n(Ppu
.ne 2
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
.RS
.TP 7
.NOP Time since restart \f\*[B-Font]36000\f[]
Time in hours since the system was last rebooted.
.TP 7
.NOP Packets received \f\*[B-Font]81965\f[]
Total number of packets received.
.TP 7
.NOP Packets processed \f\*[B-Font]0\f[]
Number of packets received in response to previous packets sent
.TP 7
.NOP Current version \f\*[B-Font]9546\f[]
Number of packets matching the current NTP version.
.TP 7
.NOP Previous version \f\*[B-Font]56\f[]
Number of packets matching the previous NTP version.
.TP 7
.NOP Bad version \f\*[B-Font]71793\f[]
Number of packets matching neither NTP version.
.TP 7
.NOP Access denied \f\*[B-Font]512\f[]
Number of packets denied access for any reason.
.TP 7
.NOP Bad length or format \f\*[B-Font]540\f[]
Number of packets with invalid length, format or port number.
.TP 7
.NOP Bad authentication \f\*[B-Font]10\f[]
Number of packets not verified as authentic.
.TP 7
.NOP Rate exceeded \f\*[B-Font]147\f[]
Number of packets discarded due to rate limitation.
.RE
.TP 7
.NOP \f\*[B-Font]statsdir\f[] \f\*[I-Font]directory_path\f[]
Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
\f\*[B-Font]filegen\f[]
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
.TP 7
.NOP \f\*[B-Font]filegen\f[] \f\*[I-Font]name\f[] [\f\*[B-Font]file\f[] \f\*[I-Font]filename\f[]] [\f\*[B-Font]type\f[] \f\*[I-Font]typename\f[]] [\f\*[B-Font]link\f[] | \f\*[B-Font]nolink\f[]] [\f\*[B-Font]enable\f[] | \f\*[B-Font]disable\f[]]
Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
.sp \n(Ppu
.ne 2
Note that this command can be sent from the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
program running at a remote location.
.RS
.TP 7
.NOP \f\*[B-Font]name\f[]
This is the type of the statistics records, as shown in the
\f\*[B-Font]statistics\f[]
command.
.TP 7
.NOP \f\*[B-Font]file\f[] \f\*[I-Font]filename\f[]
This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
\f\*[B-Font]prefix\f[],
\f\*[B-Font]filename\f[]
and
\f\*[B-Font]suffix\f[]:
.RS
.TP 7
.NOP \f\*[B-Font]prefix\f[]
This is a constant filename path.
It is not subject to
modifications via the
\f\*[I-Font]filegen\f[]
option.
It is defined by the
server, usually specified as a compile-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
\f\*[I-Font]loopstats\f[]
and
\f\*[I-Font]peerstats\f[]
generation can be configured using the
\f\*[I-Font]statsdir\f[]
option explained above.
.TP 7
.NOP \f\*[B-Font]filename\f[]
This string is directly concatenated to the prefix mentioned
above (no intervening
\[oq]/\[cq]).
This can be modified using
the file argument to the
\f\*[I-Font]filegen\f[]
statement.
No
\fI..\f[]
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
\f\*[I-Font]prefix\f[].
.TP 7
.NOP \f\*[B-Font]suffix\f[]
This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
.RE
.TP 7
.NOP \f\*[B-Font]type\f[] \f\*[I-Font]typename\f[]
A file generation set is characterized by its type.
The following
types are supported:
.RS
.TP 7
.NOP \f\*[B-Font]none\f[]
The file set is actually a single plain file.
.TP 7
.NOP \f\*[B-Font]pid\f[]
One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
server incarnations.
The set member filename is built by appending a
\[oq]\&.\[cq]
to concatenated
\f\*[I-Font]prefix\f[]
and
\f\*[I-Font]filename\f[]
strings, and
appending the decimal representation of the process ID of the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
server process.
.TP 7
.NOP \f\*[B-Font]day\f[]
One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
\[oq]\&.\[cq]
and a day specification in
the form
\f\*[B-Font]YYYYMMdd\f[].
\f\*[B-Font]YYYY\f[]
is a 4-digit year number (e.g., 1992).
\f\*[B-Font]MM\f[]
is a two digit month number.
\f\*[B-Font]dd\f[]
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
\f\*[I-Font]prefix\f[]
\f\*[I-Font]filename\f[].19921210.
.TP 7
.NOP \f\*[B-Font]week\f[]
Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day-of-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4-digit year number, the letter
\f\*[B-Font]W\f[],
and a 2-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.NOP. \f\*[I-Font]1992W1\f[].
.TP 7
.NOP \f\*[B-Font]month\f[]
One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4-digit year number, and
a 2-digit month.
.TP 7
.NOP \f\*[B-Font]year\f[]
One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
.TP 7
.NOP \f\*[B-Font]age\f[]
This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
\f\*[B-Font]a\f[],
and an 8-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24-hour period.
Information is only written to a file generation by specifying
\f\*[B-Font]enable\f[];
output is prevented by specifying
\f\*[B-Font]disable\f[].
.RE
.TP 7
.NOP \f\*[B-Font]link\f[] | \f\*[B-Font]nolink\f[]
It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
\f\*[B-Font]link\f[]
and disabled using
\f\*[B-Font]nolink\f[].
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
\f\*[B-Font]C\f[],
and the pid of the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
.TP 7
.NOP \f\*[B-Font]enable\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]disable\f[]
Enables or disables the recording function.
.RE
.RE
.PP
.SH Access Control Support
The
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
"Notes on Configuring NTP and Setting up a NTP Subnet"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.sp \n(Ppu
.ne 2
The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
.sp \n(Ppu
.ne 2
Clients can be denied service because they are explicitly
included in the restrict list created by the
\f\*[B-Font]restrict\f[]
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
.SS The Kiss-of-Death Packet
Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the "kiss-of-death" (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four-byte
ASCII code.
If the
\f\*[B-Font]noserve\f[]
or
\f\*[B-Font]notrust\f[]
flag of the matching restrict list entry is set,
the code is "DENY"; if the
\f\*[B-Font]limited\f[]
flag is set and the rate limit
is exceeded, the code is "RATE".
Finally, if a cryptographic violation occurs, the code is "CRYP".
.sp \n(Ppu
.ne 2
A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
.SS Access Control Commands
.TP 7
.NOP \f\*[B-Font]discard\f[] [\f\*[B-Font]average\f[] \f\*[I-Font]avg\f[]] [\f\*[B-Font]minimum\f[] \f\*[I-Font]min\f[]] [\f\*[B-Font]monitor\f[] \f\*[I-Font]prob\f[]]
Set the parameters of the
\f\*[B-Font]limited\f[]
facility which protects the server from
client abuse.
The
\f\*[B-Font]average\f[]
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
\f\*[B-Font]minimum\f[]
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss-o'-death packet returned if enabled.
The
\f\*[B-Font]monitor\f[]
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
\f\*[B-Font]monitor\f[]
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
.TP 7
.NOP \f\*[B-Font]restrict\f[] \f\*[B-Font]address\f[] [\f\*[B-Font]mask\f[] \f\*[I-Font]mask\f[]] [\f\*[B-Font]ippeerlimit\f[] \f\*[I-Font]int\f[]] [\f\*[I-Font]flag\f[] \f\*[I-Font]...\f[]]
The
\f\*[I-Font]address\f[]
argument expressed in
dotted-quad form is the address of a host or network.
Alternatively, the
\f\*[I-Font]address\f[]
argument can be a valid host DNS name.
The
\f\*[I-Font]mask\f[]
argument expressed in dotted-quad form defaults to
\f\*[B-Font]255.255.255.255\f[],
meaning that the
\f\*[I-Font]address\f[]
is treated as the address of an individual host.
A default entry (address
\f\*[B-Font]0.0.0.0\f[],
mask
\f\*[B-Font]0.0.0.0\f[])
is always included and is always the first entry in the list.
Note that text string
\f\*[B-Font]default\f[],
with no mask option, may
be used to indicate the default entry.
The
\f\*[B-Font]ippeerlimit\f[]
directive limits the number of peer requests for each IP to
\f\*[I-Font]int\f[],
where a value of \-1 means "unlimited", the current default.
A value of 0 means "none".
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
\f\*[B-Font]flag\f[]
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run-time
reconfiguration of the server.
One or more of the following flags
may be specified:
.RS
.TP 7
.NOP \f\*[B-Font]ignore\f[]
Deny packets of all kinds, including
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
queries.
.TP 7
.NOP \f\*[B-Font]kod\f[]
If this flag is set when an access violation occurs, a kiss-o'-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
.TP 7
.NOP \f\*[B-Font]limited\f[]
Deny service if the packet spacing violates the lower limits specified
in the
\f\*[B-Font]discard\f[]
command.
A history of clients is kept using the
monitoring capability of
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
Thus, monitoring is always active as
long as there is a restriction entry with the
\f\*[B-Font]limited\f[]
flag.
.TP 7
.NOP \f\*[B-Font]lowpriotrap\f[]
Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
.TP 7
.NOP \f\*[B-Font]noepeer\f[]
Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
\fIntp.keys\f[]
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
\f\*[B-Font]noepeer\f[]
to become the default in ntp-4.4.
.TP 7
.NOP \f\*[B-Font]nomodify\f[]
Deny
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
.TP 7
.NOP \f\*[B-Font]noquery\f[]
Deny
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
queries.
Time service is not affected.
.TP 7
.NOP \f\*[B-Font]nopeer\f[]
Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
\f\*[B-Font]pool\f[]
associations, so if you want to use servers from a
\f\*[B-Font]pool\f[]
directive and also want to use
\f\*[B-Font]nopeer\f[]
by default, you'll want a
\f\*[B-Font]restrict source ...\f[]
line as well that does
\fInot\f[]
include the
\f\*[B-Font]nopeer\f[]
directive.
.TP 7
.NOP \f\*[B-Font]noserve\f[]
Deny all packets except
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
queries.
.TP 7
.NOP \f\*[B-Font]notrap\f[]
Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
control message
protocol which is intended for use by remote event logging programs.
.TP 7
.NOP \f\*[B-Font]notrust\f[]
Deny service unless the packet is cryptographically authenticated.
.TP 7
.NOP \f\*[B-Font]ntpport\f[]
This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
\f\*[B-Font]ntpport\f[]
and
\f\*[B-Font]non-ntpport\f[]
may
be specified.
The
\f\*[B-Font]ntpport\f[]
is considered more specific and
is sorted later in the list.
.TP 7
.NOP \f\*[B-Font]serverresponse fuzz\f[]
When reponding to server requests,
fuzz the low order bits of the
\f\*[B-Font]reftime\f[].
.TP 7
.NOP \f\*[B-Font]version\f[]
Deny packets that do not match the current NTP version.
.RE
.sp \n(Ppu
.ne 2
Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
.PP
.SH Automatic NTP Configuration Options
.SS Manycasting
Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the "best"
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
.sp \n(Ppu
.ne 2
Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
.sp \n(Ppu
.ne 2
Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
\f[C]http://www.openssl.org/\f[].
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
.sp \n(Ppu
.ne 2
A persistent manycast client association is configured
using the
\f\*[B-Font]manycastclient\f[]
command, which is similar to the
\f\*[B-Font]server\f[]
command but with a multicast (IPv4 class
\f\*[B-Font]D\f[]
or IPv6 prefix
\f\*[B-Font]FF\f[])
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time-to-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
.sp \n(Ppu
.ne 2
Manycast servers configured with the
\f\*[B-Font]manycastserver\f[]
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
.sp \n(Ppu
.ne 2
The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the "best"
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
.sp \n(Ppu
.ne 2
The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near-simultaneous
arrival of manycast server messages.
The strategy is determined by the
\f\*[B-Font]manycastclient\f[],
\f\*[B-Font]tos\f[]
and
\f\*[B-Font]ttl\f[]
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
\f\*[B-Font]minpoll\f[]
value specified in the
\f\*[B-Font]manycastclient\f[],
command and, under normal circumstances, increments to the
\f\*[B-Font]maxpolll\f[]
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
\f\*[B-Font]ttl\f[]
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
.sp \n(Ppu
.ne 2
The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
\f\*[B-Font]minclock\f[]
and
\f\*[B-Font]minsane\f[]
values specified in the
\f\*[B-Font]tos\f[]
configuration command.
At least
\f\*[B-Font]minsane\f[]
candidate servers must be available and the mitigation
algorithms produce at least
\f\*[B-Font]minclock\f[]
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
\f\*[B-Font]minsane\f[]
defaults to 1 and
\f\*[B-Font]minclock\f[]
defaults to 3.
For manycast service
\f\*[B-Font]minsane\f[]
should be explicitly set to 4, assuming at least that
number of servers are available.
.sp \n(Ppu
.ne 2
If at least
\f\*[B-Font]minclock\f[]
servers are found, the manycast poll interval is immediately
set to eight times
\f\*[B-Font]maxpoll\f[].
If less than
\f\*[B-Font]minclock\f[]
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
\f\*[B-Font]maxpoll\f[].
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
.sp \n(Ppu
.ne 2
Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
\f\*[B-Font]ttl\f[]
configuration command can be
used to modify the values to match the scope rules.
.sp \n(Ppu
.ne 2
It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
\f\*[B-Font]tos\f[]
command can be used to modify this behavior.
Servers with stratum below
\f\*[B-Font]floor\f[]
or above
\f\*[B-Font]ceiling\f[]
specified in the
\f\*[B-Font]tos\f[]
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
\f\*[B-Font]minclock\f[].
.sp \n(Ppu
.ne 2
The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
\f\*[B-Font]minclock\f[],
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
\f\*[B-Font]maxpoll\f[]
is 12 (4,096 s).
.sp \n(Ppu
.ne 2
It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
\f\*[B-Font]multicastclient\f[]
and
\f\*[B-Font]multicastserver\f[]
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
.sp \n(Ppu
.ne 2
The remaining configuration files for all secondary
servers and clients have the same contents, except for the
\f\*[B-Font]tos\f[]
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
\f\*[B-Font]floor\f[]
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
.sp \n(Ppu
.ne 2
Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re-associate accordingly.
.sp \n(Ppu
.ne 2
Some administrators prefer to avoid running
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
continuously and run either
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
or
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
\f\*[B-Font]\-q\f[]
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
\f\*[B-Font]\-q\f[].
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
.SS Manycast Interactions with Autokey
Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
.sp \n(Ppu
.ne 2
About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
.SS Broadcast Options
.TP 7
.NOP \f\*[B-Font]tos\f[] [\f\*[B-Font]bcpollbstep\f[] \f\*[I-Font]gate\f[]]
This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server's time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
.PP
.SS Manycast Options
.TP 7
.NOP \f\*[B-Font]tos\f[] [\f\*[B-Font]ceiling\f[] \f\*[I-Font]ceiling\f[] | \f\*[B-Font]cohort\f[] { \f\*[B-Font]0\f[] | \f\*[B-Font]1\f[] } | \f\*[B-Font]floor\f[] \f\*[I-Font]floor\f[] | \f\*[B-Font]minclock\f[] \f\*[I-Font]minclock\f[] | \f\*[B-Font]minsane\f[] \f\*[I-Font]minsane\f[]]
This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
.RS
.TP 7
.NOP \f\*[B-Font]ceiling\f[] \f\*[I-Font]ceiling\f[]
Peers with strata above
\f\*[B-Font]ceiling\f[]
will be discarded if there are at least
\f\*[B-Font]minclock\f[]
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
.TP 7
.NOP \f\*[B-Font]cohort\f[] {0 | 1 }
This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
.TP 7
.NOP \f\*[B-Font]floor\f[] \f\*[I-Font]floor\f[]
Peers with strata below
\f\*[B-Font]floor\f[]
will be discarded if there are at least
\f\*[B-Font]minclock\f[]
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
.TP 7
.NOP \f\*[B-Font]minclock\f[] \f\*[I-Font]minclock\f[]
The clustering algorithm repeatedly casts out outlier
associations until no more than
\f\*[B-Font]minclock\f[]
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
.TP 7
.NOP \f\*[B-Font]minsane\f[] \f\*[I-Font]minsane\f[]
This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
\f\*[B-Font]minsane\f[]
should be at least 4 in order to detect and discard
a single falseticker.
.RE
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding-ring search.
The default is eight
multiples of 32 starting at 31.
.PP
.SH Reference Clock Support
The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
Additional information can be found in the pages linked
there, including the
"Debugging Hints for Reference Clock Drivers"
and
"How To Write a Reference Clock Driver"
pages
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
In addition, support for a PPS
signal is available as described in the
"Pulse-per-second (PPS) Signal Interfacing"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
"Line Disciplines and Streams Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.sp \n(Ppu
.ne 2
A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
.sp \n(Ppu
.ne 2
For the purposes of configuration,
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
\f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[],
where
\f\*[I-Font]t\f[]
is an integer
denoting the clock type and
\f\*[I-Font]u\f[]
indicates the unit
number in the range 0-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]server\f[]
command is used to configure a reference
clock, where the
\f\*[I-Font]address\f[]
argument in that command
is the clock address.
The
\f\*[B-Font]key\f[],
\f\*[B-Font]version\f[]
and
\f\*[B-Font]ttl\f[]
options are not used for reference clock support.
The
\f\*[B-Font]mode\f[]
option is added for reference clock support, as
described below.
The
\f\*[B-Font]prefer\f[]
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
"Mitigation Rules and the prefer Keyword"
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
page.
The
\f\*[B-Font]minpoll\f[]
and
\f\*[B-Font]maxpoll\f[]
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]fudge\f[]
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
\f\*[B-Font]server\f[]
command.
The
\f\*[I-Font]address\f[]
argument specifies the clock address.
The
\f\*[B-Font]refid\f[]
and
\f\*[B-Font]stratum\f[]
options can be used to
override the defaults for the device.
There are two optional
device-dependent time offsets and four flags that can be included
in the
\f\*[B-Font]fudge\f[]
command as well.
.sp \n(Ppu
.ne 2
The stratum number of a reference clock is by default zero.
Since the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
\f\*[B-Font]stratum\f[]
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse-per-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
\f\*[B-Font]refid\f[]
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
.SS Reference Clock Commands
.TP 7
.NOP \f\*[B-Font]server\f[] \f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[] [\f\*[B-Font]prefer\f[]] [\f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]minpoll\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]maxpoll\f[] \f\*[I-Font]int\f[]]
This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
.RS
.TP 7
.NOP \f\*[B-Font]prefer\f[]
Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
"Mitigation Rules and the prefer Keyword"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
for further information.
.TP 7
.NOP \f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.TP 7
.NOP \f\*[B-Font]minpoll\f[] \f\*[I-Font]int\f[]
.TP 7
.NOP \f\*[B-Font]maxpoll\f[] \f\*[I-Font]int\f[]
These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
\f\*[B-Font]minpoll\f[]
and
\f\*[B-Font]maxpoll\f[]
default to 6 (64 s).
For modem reference clocks,
\f\*[B-Font]minpoll\f[]
defaults to 10 (17.1 m) and
\f\*[B-Font]maxpoll\f[]
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
.RE
.TP 7
.NOP \f\*[B-Font]fudge\f[] \f[C]127.127.\f[]\f\*[I-Font]t\f[].\f\*[I-Font]u\f[] [\f\*[B-Font]time1\f[] \f\*[I-Font]sec\f[]] [\f\*[B-Font]time2\f[] \f\*[I-Font]sec\f[]] [\f\*[B-Font]stratum\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]refid\f[] \f\*[I-Font]string\f[]] [\f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]] [\f\*[B-Font]flag1\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag2\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag3\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]] [\f\*[B-Font]flag4\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]]
This command can be used to configure reference clocks in
special ways.
It must immediately follow the
\f\*[B-Font]server\f[]
command which configures the driver.
Note that the same capability
is possible at run time using the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
program.
The options are interpreted as
follows:
.RS
.TP 7
.NOP \f\*[B-Font]time1\f[] \f\*[I-Font]sec\f[]
Specifies a constant to be added to the time offset produced by
the driver, a fixed-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
\f\*[B-Font]enable\f[]
command described in
\fIMiscellaneous\f[] \fIOptions\f[]
page and operates as described in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
.TP 7
.NOP \f\*[B-Font]time2\f[] \f\*[I-Font]secs\f[]
Specifies a fixed-point decimal number in seconds, which is
interpreted in a driver-dependent way.
See the descriptions of
specific drivers in the
"Reference Clock Drivers"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[] \fI).\f[]
.TP 7
.NOP \f\*[B-Font]stratum\f[] \f\*[I-Font]int\f[]
Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
.TP 7
.NOP \f\*[B-Font]refid\f[] \f\*[I-Font]string\f[]
Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
.TP 7
.NOP \f\*[B-Font]mode\f[] \f\*[I-Font]int\f[]
Specifies a mode number which is interpreted in a
device-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.TP 7
.NOP \f\*[B-Font]flag1\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag2\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag3\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
.TP 7
.NOP \f\*[B-Font]flag4\f[] \f\*[B-Font]0\f[] \f\*[B-Font]\&|\f[] \f\*[B-Font]1\f[]
These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
\f\*[B-Font]flag4\f[]
is used to enable recording monitoring
data to the
\f\*[B-Font]clockstats\f[]
file configured with the
\f\*[B-Font]filegen\f[]
command.
Further information on the
\f\*[B-Font]filegen\f[]
command can be found in
\fIMonitoring\f[] \fIOptions\f[].
.RE
.PP
.SH Miscellaneous Options
.TP 7
.NOP \f\*[B-Font]broadcastdelay\f[] \f\*[I-Font]seconds\f[]
The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
.TP 7
.NOP \f\*[B-Font]calldelay\f[] \f\*[I-Font]delay\f[]
This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
.TP 7
.NOP \f\*[B-Font]driftfile\f[] \f\*[I-Font]driftfile\f[]
This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
\f\*[B-Font]\-f\f[]
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
.sp \n(Ppu
.ne 2
The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts-per-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
.TP 7
.NOP \f\*[B-Font]dscp\f[] \f\*[I-Font]value\f[]
This option specifies the Differentiated Services Control Point (DSCP) value,
a 6-bit code.
The default value is 46, signifying Expedited Forwarding.
.TP 7
.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
.TP 7
.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]mode7\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]stats\f[] | \f\*[B-Font]peer_clear_digest_early\f[] | \f\*[B-Font]unpeer_crypto_early\f[] | \f\*[B-Font]unpeer_crypto_nak_early\f[] | \f\*[B-Font]unpeer_digest_early\f[]]
Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility program.
.RS
.TP 7
.NOP \f\*[B-Font]auth\f[]
Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]bclient\f[]
Enables the server to listen for a message from a broadcast or
multicast server, as in the
\f\*[B-Font]multicastclient\f[]
command with default
address.
The default for this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]calibrate\f[]
Enables the calibrate feature for reference clocks.
The default for
this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]kernel\f[]
Enables the kernel time discipline, if available.
The default for this
flag is
\f\*[B-Font]enable\f[]
if support is available, otherwise
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]mode7\f[]
Enables processing of NTP mode 7 implementation-specific requests
which are used by the deprecated
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
\fCntpq\f[]\fR(@NTPQ_MS@)\f[].
The
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
program provides the same capabilities as
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
using standard mode 6 requests.
.TP 7
.NOP \f\*[B-Font]monitor\f[]
Enables the monitoring facility.
See the
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
program
and the
\f\*[B-Font]monlist\f[]
command or further information.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]ntp\f[]
Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]peer_clear_digest_early\f[]
By default, if
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
is using autokey and it
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]stats\f[]
Enables the statistics facility.
See the
\fIMonitoring\f[] \fIOptions\f[]
section for further information.
The default for this flag is
\f\*[B-Font]disable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_crypto_early\f[]
By default, if
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_crypto_nak_early\f[]
By default, if
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
receives a crypto-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.TP 7
.NOP \f\*[B-Font]unpeer_digest_early\f[]
By default, if
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
\f\*[B-Font]peerstats\f[]
file for evidence of any of these attacks.
The
default for this flag is
\f\*[B-Font]enable\f[].
.RE
.TP 7
.NOP \f\*[B-Font]includefile\f[] \f\*[I-Font]includefile\f[]
This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
.TP 7
.NOP \f\*[B-Font]interface\f[] [\f\*[B-Font]listen\f[] | \f\*[B-Font]ignore\f[] | \f\*[B-Font]drop\f[]] [\f\*[B-Font]all\f[] | \f\*[B-Font]ipv4\f[] | \f\*[B-Font]ipv6\f[] | \f\*[B-Font]wildcard\f[] \f\*[I-Font]name\f[] | \f\*[I-Font]address\f[] [\f\*[B-Font]/\f[] \f\*[I-Font]prefixlen\f[]]]
The
\f\*[B-Font]interface\f[]
directive controls which network addresses
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
\f\*[I-Font]prefixlen\f[]
determines how many bits must match for this rule to apply.
\f\*[B-Font]ignore\f[]
prevents opening matching addresses,
\f\*[B-Font]drop\f[]
causes
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
to open the address and drop all received packets without examination.
Multiple
\f\*[B-Font]interface\f[]
directives can be used.
The last rule which matches a particular address determines the action for it.
\f\*[B-Font]interface\f[]
directives are disabled if any
\f\*[B-Font]\-I\f[],
\f\*[B-Font]\-\-interface\f[],
\f\*[B-Font]\-L\f[],
or
\f\*[B-Font]\-\-novirtualips\f[]
command-line options are specified in the configuration file,
all available network addresses are opened.
The
\f\*[B-Font]nic\f[]
directive is an alias for
\f\*[B-Font]interface\f[].
.TP 7
.NOP \f\*[B-Font]leapfile\f[] \f\*[I-Font]leapfile\f[]
This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
\f[C]https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list\f[]
or
\f[C]ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap-seconds.list\f[].
The
\f\*[B-Font]leapfile\f[]
is scanned when
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
processes the
\f\*[B-Font]leapfile\f[] \f\*[B-Font]directive\f[] \f\*[B-Font]or\f[] \f\*[B-Font]when\f[]
\f\*[B-Font]ntpd\f[] \f\*[B-Font]detects\f[] \f\*[B-Font]that\f[] \f\*[B-Font]the\f[]
\f\*[I-Font]leapfile\f[]
has changed.
\f\*[B-Font]ntpd\f[]
checks once a day to see if the
\f\*[I-Font]leapfile\f[]
has changed.
The
\fCupdate-leap\f[]\fR(1update_leapmdoc)\f[]
script can be run to see if the
\f\*[I-Font]leapfile\f[]
should be updated.
.TP 7
.NOP \f\*[B-Font]leapsmearinterval\f[] \f\*[I-Font]seconds\f[]
This EXPERIMENTAL option is only available if
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
was built with the
\f\*[B-Font]\--enable-leap-smear\f[]
option to the
\f\*[B-Font]configure\f[]
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
.TP 7
.NOP \f\*[B-Font]logconfig\f[] \f\*[I-Font]configkeyword\f[]
This command controls the amount and type of output written to
the system
\fCsyslog\f[]\fR(3)\f[]
facility or the alternate
\f\*[B-Font]logfile\f[]
log file.
By default, all output is turned on.
All
\f\*[I-Font]configkeyword\f[]
keywords can be prefixed with
\[oq]=\[cq],
\[oq]+\[cq]
and
\[oq]\-\[cq],
where
\[oq]=\[cq]
sets the
\fCsyslog\f[]\fR(3)\f[]
priority mask,
\[oq]+\[cq]
adds and
\[oq]\-\[cq]
removes
messages.
\fCsyslog\f[]\fR(3)\f[]
messages can be controlled in four
classes
(\f\*[B-Font]clock\f[], \f\*[B-Font]peer\f[], \f\*[B-Font]sys\f[] and \f\*[B-Font]sync\f[]).
Within these classes four types of messages can be
controlled: informational messages
(\f\*[B-Font]info\f[]),
event messages
(\f\*[B-Font]events\f[]),
statistics messages
(\f\*[B-Font]statistics\f[])
and
status messages
(\f\*[B-Font]status\f[]).
.sp \n(Ppu
.ne 2
Configuration keywords are formed by concatenating the message class with
the event class.
The
\f\*[B-Font]all\f[]
prefix can be used instead of a message class.
A
message class may also be followed by the
\f\*[B-Font]all\f[]
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
.br
.in +4
.nf
logconfig =syncstatus +sysevents
.in -4
.fi
.sp \n(Ppu
.ne 2
This would just list the synchronizations state of
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
.br
.in +4
.nf
logconfig =syncall +clockall
.in -4
.fi
.sp \n(Ppu
.ne 2
This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
.TP 7
.NOP \f\*[B-Font]logfile\f[] \f\*[I-Font]logfile\f[]
This command specifies the location of an alternate log file to
be used instead of the default system
\fCsyslog\f[]\fR(3)\f[]
facility.
This is the same operation as the
\f\*[B-Font]\-l\f[]
command line option.
.TP 7
.NOP \f\*[B-Font]mru\f[] [\f\*[B-Font]maxdepth\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]maxmem\f[] \f\*[I-Font]kilobytes\f[] | \f\*[B-Font]mindepth\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]maxage\f[] \f\*[I-Font]seconds\f[] | \f\*[B-Font]initialloc\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]initmem\f[] \f\*[I-Font]kilobytes\f[] | \f\*[B-Font]incalloc\f[] \f\*[I-Font]count\f[] | \f\*[B-Font]incmem\f[] \f\*[I-Font]kilobytes\f[]]
Controls size limite of the monitoring facility's Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
.RS
.TP 7
.NOP \f\*[B-Font]maxdepth\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]maxmem\f[] \f\*[I-Font]kilobytes\f[]
Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
\f\*[B-Font]incalloc\f[]
entries or
\f\*[B-Font]incmem\f[]
kilobytes larger.
As with all of the
\f\*[B-Font]mru\f[]
options offered in units of entries or kilobytes, if both
\f\*[B-Font]maxdepth\f[]
and
\f\*[B-Font]maxmem\f[] \f\*[B-Font]are\f[] \f\*[B-Font]used,\f[] \f\*[B-Font]the\f[] \f\*[B-Font]last\f[] \f\*[B-Font]one\f[] \f\*[B-Font]used\f[] \f\*[B-Font]controls.\f[]
The default is 1024 kilobytes.
.TP 7
.NOP \f\*[B-Font]mindepth\f[] \f\*[I-Font]count\f[]
Lower limit on the MRU list size.
When the MRU list has fewer than
\f\*[B-Font]mindepth\f[]
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
.TP 7
.NOP \f\*[B-Font]maxage\f[] \f\*[I-Font]seconds\f[]
Once the MRU list has
\f\*[B-Font]mindepth\f[]
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
\f\*[B-Font]maxage\f[]
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
\f\*[B-Font]maxdepth\f[] \f\*[B-Font]/\f[] \f\*[B-Font]moxmem\f[].
The default is 64 seconds.
.TP 7
.NOP \f\*[B-Font]initalloc\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]initmem\f[] \f\*[I-Font]kilobytes\f[]
Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
.TP 7
.NOP \f\*[B-Font]incalloc\f[] \f\*[I-Font]count\f[]
.TP 7
.NOP \f\*[B-Font]incmem\f[] \f\*[I-Font]kilobytes\f[]
Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
.RE
.TP 7
.NOP \f\*[B-Font]nonvolatile\f[] \f\*[I-Font]threshold\f[]
Specify the
\f\*[I-Font]threshold\f[]
delta in seconds before an hourly change to the
\f\*[B-Font]driftfile\f[]
(frequency file) will be written, with a default value of 1e-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
\f\*[B-Font]threshold\f[]
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
.TP 7
.NOP \f\*[B-Font]phone\f[] \f\*[I-Font]dial\f[] \f\*[I-Font]...\f[]
This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 \- 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 \- 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
.TP 7
.NOP \f\*[B-Font]pollskewlist\f[] [\f\*[I-Font]poll\f[] \f\*[I-Font]early\f[] \f\*[I-Font]late\f[]] \f\*[I-Font]...\f[] [\f\*[B-Font]default\f[] \f\*[I-Font]early\f[] \f\*[I-Font]late\f[]]
Enable skewing of our poll requests to our servers.
\f\*[I-Font]poll\f[]
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
.TP 7
.NOP \f\*[B-Font]reset\f[] [\f\*[B-Font]allpeers\f[]] [\f\*[B-Font]auth\f[]] [\f\*[B-Font]ctl\f[]] [\f\*[B-Font]io\f[]] [\f\*[B-Font]mem\f[]] [\f\*[B-Font]sys\f[]] [\f\*[B-Font]timer\f[]]
Reset one or more groups of counters maintained by
\f\*[B-Font]ntpd\f[]
and exposed by
\f\*[B-Font]ntpq\f[]
and
\f\*[B-Font]ntpdc\f[].
.TP 7
.NOP \f\*[B-Font]rlimit\f[] [\f\*[B-Font]memlock\f[] \f\*[I-Font]Nmegabytes\f[] | \f\*[B-Font]stacksize\f[] \f\*[I-Font]N4kPages\f[] \f\*[B-Font]filenum\f[] \f\*[I-Font]Nfiledescriptors\f[]]
.RS
.TP 7
.NOP \f\*[B-Font]memlock\f[] \f\*[I-Font]Nmegabytes\f[]
Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
\f\*[B-Font]\-i\f[]
option).
The default is 32 megabytes on non-Linux machines, and \-1 under Linux.
-1 means "do not lock the process into memory".
0 means "lock whatever memory the process wants into memory".
.TP 7
.NOP \f\*[B-Font]stacksize\f[] \f\*[I-Font]N4kPages\f[]
Specifies the maximum size of the process stack on systems with the
\fBmlockall\f[]\fR()\f[]
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
.TP 7
.NOP \f\*[B-Font]filenum\f[] \f\*[I-Font]Nfiledescriptors\f[]
Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
.RE
.TP 7
.NOP \f\*[B-Font]saveconfigdir\f[] \f\*[I-Font]directory_path\f[]
Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq 's
\f\*[B-Font]saveconfig\f[]
command.
If
\f\*[B-Font]saveconfigdir\f[]
does not appear in the configuration file,
\f\*[B-Font]saveconfig\f[]
requests are rejected by
\f\*[B-Font]ntpd\f[].
.TP 7
.NOP \f\*[B-Font]saveconfig\f[] \f\*[I-Font]filename\f[]
Write the current configuration, including any runtime
modifications given with
\f\*[B-Font]:config\f[]
or
\f\*[B-Font]config-from-file\f[]
to the
\f\*[B-Font]ntpd\f[]
host's
\f\*[I-Font]filename\f[]
in the
\f\*[B-Font]saveconfigdir\f[].
This command will be rejected unless the
\f\*[B-Font]saveconfigdir\f[]
directive appears in
.Cm ntpd 's
configuration file.
\f\*[I-Font]filename\f[]
can use
\fCstrftime\f[]\fR(3)\f[]
format directives to substitute the current date and time,
for example,
\f\*[B-Font]saveconfig\ ntp-%Y%m%d-%H%M%S.conf\f[].
The filename used is stored in the system variable
\f\*[B-Font]savedconfig\f[].
Authentication is required.
.TP 7
.NOP \f\*[B-Font]setvar\f[] \f\*[I-Font]variable\f[] [\f\*[B-Font]default\f[]]
This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
\fIname\f[]\fI=\f[]\f\*[I-Font]value\f[]
is followed by the
\f\*[B-Font]default\f[]
keyword, the
variable will be listed as part of the default system variables
(\fCntpq\f[]\fR(@NTPQ_MS@)\f[] \f\*[B-Font]rv\f[] command)).
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
\f\*[B-Font]setvar\f[]
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
\fIsys_var_list\f[]
holds
the names of all system variables.
The
\fIpeer_var_list\f[]
holds
the names of all peer variables and the
\fIclock_var_list\f[]
holds the names of the reference clock variables.
.TP 7
.NOP \f\*[B-Font]sysinfo\f[]
Display operational summary.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Show statistics counters maintained in the protocol module.
.TP 7
.NOP \f\*[B-Font]tinker\f[] [\f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[] | \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[] | \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[] | \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[] | \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[] | \f\*[B-Font]step\f[] \f\*[I-Font]step\f[] | \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[] | \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[] | \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]]
This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
.sp \n(Ppu
.ne 2
The variables operate as follows:
.RS
.TP 7
.NOP \f\*[B-Font]allan\f[] \f\*[I-Font]allan\f[]
The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
.TP 7
.NOP \f\*[B-Font]dispersion\f[] \f\*[I-Font]dispersion\f[]
The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
.TP 7
.NOP \f\*[B-Font]freq\f[] \f\*[I-Font]freq\f[]
The argument becomes the initial value of the frequency offset in
parts-per-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
.TP 7
.NOP \f\*[B-Font]huffpuff\f[] \f\*[I-Font]huffpuff\f[]
The argument becomes the new value for the experimental
huff-n'-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
.TP 7
.NOP \f\*[B-Font]panic\f[] \f\*[I-Font]panic\f[]
The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
.TP 7
.NOP \f\*[B-Font]step\f[] \f\*[I-Font]step\f[]
The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
.TP 7
.NOP \f\*[B-Font]stepback\f[] \f\*[I-Font]stepback\f[]
The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
.TP 7
.NOP \f\*[B-Font]stepfwd\f[] \f\*[I-Font]stepfwd\f[]
As for stepback, but for the forward direction.
.TP 7
.NOP \f\*[B-Font]stepout\f[] \f\*[I-Font]stepout\f[]
The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
.RE
.TP 7
.NOP \f\*[B-Font]writevar\f[] \f\*[I-Font]assocID\ name\f[] \f\*[I-Font]=\f[] \f\*[I-Font]value\f[] \f\*[I-Font][,...]\f[]
Write (create or update) the specified variables.
If the
\f\*[B-Font]assocID\f[]
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
\f\*[B-Font]assocID\f[]
is required, as the same name can occur in both name spaces.
.TP 7
.NOP \f\*[B-Font]trap\f[] \f\*[I-Font]host_address\f[] [\f\*[B-Font]port\f[] \f\*[I-Font]port_number\f[]] [\f\*[B-Font]interface\f[] \f\*[I-Font]interface_address\f[]]
This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
.TP 7
.NOP \f\*[B-Font]ttl\f[] \f\*[I-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
\f\*[B-Font]manycast\f[]
mode these values are used in-turn in an expanding-ring search.
The default is eight multiples of 32 starting at 31.
.sp \n(Ppu
.ne 2
The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
.TP 7
.NOP \f\*[B-Font]hop\f[] \f\*[I-Font]...\f[]
This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding-ring search.
The default is eight multiples of 32 starting at
31.
.PP
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_CONF_<option-name>\fP or \fBNTP_CONF\fP
.fi
.ad
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH FILES
.TP 15
.NOP \fI/etc/ntp.conf\f[]
the default name of the configuration file
.br
.ns
.TP 15
.NOP \fIntp.keys\f[]
private MD5 keys
.br
.ns
.TP 15
.NOP \fIntpkey\f[]
RSA private key
.br
.ns
.TP 15
.NOP \fIntpkey_\f[]\f\*[I-Font]host\f[]
RSA public key
.br
.ns
.TP 15
.NOP \fIntp_dh\f[]
Diffie-Hellman agreement parameters
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntpd\f[]\fR(@NTPD_MS@)\f[],
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[],
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
.sp \n(Ppu
.ne 2
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
\f[C]http://www.ntp.org/\f[].
A snapshot of this documentation is available in HTML format in
\fI/usr/share/doc/ntp\f[].
David L. Mills,
\fINetwork Time Protocol (Version 4)\fR,
RFC5905
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
.sp \n(Ppu
.ne 2
The
\fIntpkey_\f[]\f\*[I-Font]host\f[]
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
This document was derived from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp.conf\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.conf.mdoc.in b/contrib/ntp/ntpd/ntp.conf.mdoc.in
index 338fb4b30977..22348ee727d0 100644
--- a/contrib/ntp/ntpd/ntp.conf.mdoc.in
+++ b/contrib/ntp/ntpd/ntp.conf.mdoc.in
@@ -1,3324 +1,3324 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_CONF 5 File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:25 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:32 AM by AutoGen 5.18.16
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp.conf
.Nd Network Time Protocol (NTP) daemon configuration file format
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
The
.Nm
configuration file is read at initial startup by the
.Xr ntpd @NTPD_MS@
daemon in order to specify the synchronization sources,
modes and other related information.
Usually, it is installed in the
.Pa /etc
directory,
but could be installed elsewhere
(see the daemon's
.Fl c
command line option).
.Pp
The file format is similar to other
.Ux
configuration files.
Comments begin with a
.Ql #
character and extend to the end of the line;
blank lines are ignored.
Configuration commands consist of an initial keyword
followed by a list of arguments,
some of which may be optional, separated by whitespace.
Commands may not be continued over multiple lines.
Arguments may be host names,
host addresses written in numeric, dotted\-quad form,
integers, floating point numbers (when specifying times in seconds)
and text strings.
.Pp
The rest of this page describes the configuration and control options.
The
.Qq Notes on Configuring NTP and Setting up an NTP Subnet
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
contains an extended discussion of these options.
In addition to the discussion of general
.Sx Configuration Options ,
there are sections describing the following supported functionality
and the options used to control it:
.Bl -bullet -offset indent
.It
.Sx Authentication Support
.It
.Sx Monitoring Support
.It
.Sx Access Control Support
.It
.Sx Automatic NTP Configuration Options
.It
.Sx Reference Clock Support
.It
.Sx Miscellaneous Options
.El
.Pp
Following these is a section describing
.Sx Miscellaneous Options .
While there is a rich set of options available,
the only required option is one or more
.Ic pool ,
.Ic server ,
.Ic peer ,
.Ic broadcast
or
.Ic manycastclient
commands.
.Sh Configuration Support
Following is a description of the configuration commands in
NTPv4.
These commands have the same basic functions as in NTPv3 and
in some cases new functions and new arguments.
There are two
classes of commands, configuration commands that configure a
persistent association with a remote server or peer or reference
clock, and auxiliary commands that specify environmental variables
that control various related operations.
.Ss Configuration Commands
The various modes are determined by the command keyword and the
type of the required IP address.
Addresses are classed by type as
(s) a remote server or peer (IPv4 class A, B and C), (b) the
broadcast address of a local interface, (m) a multicast address (IPv4
class D), or (r) a reference clock address (127.127.x.x).
Note that
only those options applicable to each command are listed below.
Use
of options not listed may not be caught as an error, but may result
in some weird and even destructive behavior.
.Pp
If the Basic Socket Interface Extensions for IPv6 (RFC\-2553)
is detected, support for the IPv6 address family is generated
in addition to the default support of the IPv4 address family.
In a few cases, including the
.Cm reslist
billboard generated
by
.Xr ntpq @NTPQ_MS@
or
.Xr ntpdc @NTPDC_MS@ ,
IPv6 addresses are automatically generated.
IPv6 addresses can be identified by the presence of colons
.Dq \&:
in the address field.
IPv6 addresses can be used almost everywhere where
IPv4 addresses can be used,
with the exception of reference clock addresses,
which are always IPv4.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding
the host name forces DNS resolution to the IPv4 namespace,
while a
.Fl 6
qualifier forces DNS resolution to the IPv6 namespace.
See IPv6 references for the
equivalent classes for that address family.
.Bl -tag -width indent
.It Xo Ic pool Ar address
.Op Cm burst
.Op Cm iburst
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm xmtnonce
.Xc
.It Xo Ic server Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm burst
.Op Cm iburst
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm true
.Op Cm xmtnonce
.Xc
.It Xo Ic peer Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm true
.Op Cm xleave
.Xc
.It Xo Ic broadcast Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm ttl Ar ttl
.Op Cm xleave
.Xc
.It Xo Ic manycastclient Ar address
.Op Cm key Ar key \&| Cm autokey
.Op Cm version Ar version
.Op Cm prefer
.Op Cm minpoll Ar minpoll
.Op Cm maxpoll Ar maxpoll
.Op Cm ttl Ar ttl
.Xc
.El
.Pp
These five commands specify the time server name or address to
be used and the mode in which to operate.
The
.Ar address
can be
either a DNS name or an IP address in dotted\-quad notation.
Additional information on association behavior can be found in the
.Qq Association Management
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Bl -tag -width indent
.It Ic pool
For type s addresses, this command mobilizes a persistent
client mode association with a number of remote servers.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
.It Ic server
For type s and r addresses, this command mobilizes a persistent
client mode association with the specified remote server or local
radio clock.
In this mode the local clock can synchronized to the
remote server, but the remote server can never be synchronized to
the local clock.
This command should
.Em not
be used for type
b or m addresses.
.It Ic peer
For type s addresses (only), this command mobilizes a
persistent symmetric\-active mode association with the specified
remote peer.
In this mode the local clock can be synchronized to
the remote peer or the remote peer can be synchronized to the local
clock.
This is useful in a network of servers where, depending on
various failure scenarios, either the local or remote peer may be
the better source of time.
This command should NOT be used for type
b, m or r addresses.
.It Ic broadcast
For type b and m addresses (only), this
command mobilizes a persistent broadcast mode association.
Multiple
commands can be used to specify multiple local broadcast interfaces
(subnets) and/or multiple multicast groups.
Note that local
broadcast messages go only to the interface associated with the
subnet specified, but multicast messages go to all interfaces.
In broadcast mode the local server sends periodic broadcast
messages to a client population at the
.Ar address
specified, which is usually the broadcast address on (one of) the
local network(s) or a multicast address assigned to NTP.
The IANA
has assigned the multicast group address IPv4 224.0.1.1 and
IPv6 ff05::101 (site local) exclusively to
NTP, but other nonconflicting addresses can be used to contain the
messages within administrative boundaries.
Ordinarily, this
specification applies only to the local server operating as a
sender; for operation as a broadcast client, see the
.Ic broadcastclient
or
.Ic multicastclient
commands
below.
.It Ic manycastclient
For type m addresses (only), this command mobilizes a
manycast client mode association for the multicast address
specified.
In this case a specific address must be supplied which
matches the address used on the
.Ic manycastserver
command for
the designated manycast servers.
The NTP multicast address
224.0.1.1 assigned by the IANA should NOT be used, unless specific
means are taken to avoid spraying large areas of the Internet with
these messages and causing a possibly massive implosion of replies
at the sender.
The
.Ic manycastserver
command specifies that the local server
is to operate in client mode with the remote servers that are
discovered as the result of broadcast/multicast messages.
The
client broadcasts a request message to the group address associated
with the specified
.Ar address
and specifically enabled
servers respond to these messages.
The client selects the servers
providing the best time and continues as with the
.Ic server
command.
The remaining servers are discarded as if never
heard.
.El
.Pp
Options:
.Bl -tag -width indent
.It Cm autokey
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the autokey scheme
described in
.Sx Authentication Options .
.It Cm burst
when the server is reachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first and second packets
can be changed with the
.Ic calldelay
command to allow
additional time for a modem or ISDN call to complete.
This is designed to improve timekeeping quality
with the
.Ic server
command and s addresses.
.It Cm iburst
When the server is unreachable, send a burst of eight packets
instead of the usual one.
The packet spacing is normally 2 s;
however, the spacing between the first two packets can be
changed with the
.Ic calldelay
command to allow
additional time for a modem or ISDN call to complete.
This is designed to speed the initial synchronization
acquisition with the
.Ic server
command and s addresses and when
.Xr ntpd @NTPD_MS@
is started with the
.Fl q
option.
.It Cm key Ar key
All packets sent to and received from the server or peer are to
include authentication fields encrypted using the specified
.Ar key
identifier with values from 1 to 65535, inclusive.
The
default is to include no encryption field.
.It Cm minpoll Ar minpoll
.It Cm maxpoll Ar maxpoll
These options specify the minimum and maximum poll intervals
for NTP messages, as a power of 2 in seconds
The maximum poll
interval defaults to 10 (1,024 s), but can be increased by the
.Cm maxpoll
option to an upper limit of 17 (36.4 h).
The
minimum poll interval defaults to 6 (64 s), but can be decreased by
the
.Cm minpoll
option to a lower limit of 4 (16 s).
.It Cm noselect
Marks the server as unused, except for display purposes.
The server is discarded by the selection algroithm.
.It Cm preempt
Says the association can be preempted.
.It Cm prefer
Marks the server as preferred.
All other things being equal,
this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
.Qq Mitigation Rules and the prefer Keyword
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
for further information.
.It Cm true
Marks the server as a truechimer,
forcing the association to always survive the selection and clustering algorithms.
This option should almost certainly
.Em only
be used while testing an association.
.It Cm ttl Ar ttl
This option is used only with broadcast server and manycast
client modes.
It specifies the time\-to\-live
.Ar ttl
to
use on broadcast server and multicast server and the maximum
.Ar ttl
for the expanding ring search with manycast
client packets.
Selection of the proper value, which defaults to
127, is something of a black art and should be coordinated with the
network administrator.
.It Cm version Ar version
Specifies the version number to be used for outgoing NTP
packets.
Versions 1\-4 are the choices, with version 4 the
default.
.It Cm xleave
Valid in
.Cm peer
and
.Cm broadcast
modes only, this flag enables interleave mode.
.It Cm xmtnonce
Valid only for
.Cm server
and
.Cm pool
modes, this flag puts a random number in the packet's transmit timestamp.
.El
.Ss Auxiliary Commands
.Bl -tag -width indent
.It Ic broadcastclient
This command enables reception of broadcast server messages to
any local interface (type b) address.
Upon receiving a message for
the first time, the broadcast client measures the nominal server
propagation delay using a brief client/server exchange with the
server, then enters the broadcast client mode, in which it
synchronizes to succeeding broadcast messages.
Note that, in order
to avoid accidental or malicious disruption in this mode, both the
server and client should operate using symmetric\-key or public\-key
authentication as described in
.Sx Authentication Options .
.It Ic manycastserver Ar address ...
This command enables reception of manycast client messages to
the multicast group address(es) (type m) specified.
At least one
address is required, but the NTP multicast address 224.0.1.1
assigned by the IANA should NOT be used, unless specific means are
taken to limit the span of the reply and avoid a possibly massive
implosion at the original sender.
Note that, in order to avoid
accidental or malicious disruption in this mode, both the server
and client should operate using symmetric\-key or public\-key
authentication as described in
.Sx Authentication Options .
.It Ic multicastclient Ar address ...
This command enables reception of multicast server messages to
the multicast group address(es) (type m) specified.
Upon receiving
a message for the first time, the multicast client measures the
nominal server propagation delay using a brief client/server
exchange with the server, then enters the broadcast client mode, in
which it synchronizes to succeeding multicast messages.
Note that,
in order to avoid accidental or malicious disruption in this mode,
both the server and client should operate using symmetric\-key or
public\-key authentication as described in
.Sx Authentication Options .
.It Ic mdnstries Ar number
If we are participating in mDNS,
after we have synched for the first time
we attempt to register with the mDNS system.
If that registration attempt fails,
we try again at one minute intervals for up to
.Ic mdnstries
times.
After all,
.Ic ntpd
may be starting before mDNS.
The default value for
.Ic mdnstries
is 5.
.El
.Sh Authentication Support
Authentication support allows the NTP client to verify that the
server is in fact known and trusted and not an intruder intending
accidentally or on purpose to masquerade as that server.
The NTPv3
specification RFC\-1305 defines a scheme which provides
cryptographic authentication of received NTP packets.
Originally,
this was done using the Data Encryption Standard (DES) algorithm
operating in Cipher Block Chaining (CBC) mode, commonly called
DES\-CBC.
Subsequently, this was replaced by the RSA Message Digest
5 (MD5) algorithm using a private key, commonly called keyed\-MD5.
Either algorithm computes a message digest, or one\-way hash, which
can be used to verify the server has the correct private key and
key identifier.
.Pp
NTPv4 retains the NTPv3 scheme, properly described as symmetric key
cryptography and, in addition, provides a new Autokey scheme
based on public key cryptography.
Public key cryptography is generally considered more secure
than symmetric key cryptography, since the security is based
on a private value which is generated by each server and
never revealed.
With Autokey all key distribution and
management functions involve only public values, which
considerably simplifies key distribution and storage.
Public key management is based on X.509 certificates,
which can be provided by commercial services or
produced by utility programs in the OpenSSL software library
or the NTPv4 distribution.
.Pp
While the algorithms for symmetric key cryptography are
included in the NTPv4 distribution, public key cryptography
requires the OpenSSL software library to be installed
before building the NTP distribution.
Directions for doing that
are on the Building and Installing the Distribution page.
.Pp
Authentication is configured separately for each association
using the
.Cm key
or
.Cm autokey
subcommand on the
.Ic peer ,
.Ic server ,
.Ic broadcast
and
.Ic manycastclient
configuration commands as described in
.Sx Configuration Options
page.
The authentication
options described below specify the locations of the key files,
if other than default, which symmetric keys are trusted
and the interval between various operations, if other than default.
.Pp
Authentication is always enabled,
although ineffective if not configured as
described below.
If a NTP packet arrives
including a message authentication
code (MAC), it is accepted only if it
passes all cryptographic checks.
The
checks require correct key ID, key value
and message digest.
If the packet has
been modified in any way or replayed
by an intruder, it will fail one or more
of these checks and be discarded.
Furthermore, the Autokey scheme requires a
preliminary protocol exchange to obtain
the server certificate, verify its
credentials and initialize the protocol
.Pp
The
.Cm auth
flag controls whether new associations or
remote configuration commands require cryptographic authentication.
This flag can be set or reset by the
.Ic enable
and
.Ic disable
commands and also by remote
configuration commands sent by a
.Xr ntpdc @NTPDC_MS@
program running on
another machine.
If this flag is enabled, which is the default
case, new broadcast client and symmetric passive associations and
remote configuration commands must be cryptographically
authenticated using either symmetric key or public key cryptography.
If this
flag is disabled, these operations are effective
even if not cryptographic
authenticated.
It should be understood
that operating with the
.Ic auth
flag disabled invites a significant vulnerability
where a rogue hacker can
masquerade as a falseticker and seriously
disrupt system timekeeping.
It is
important to note that this flag has no purpose
other than to allow or disallow
a new association in response to new broadcast
and symmetric active messages
and remote configuration commands and, in particular,
the flag has no effect on
the authentication process itself.
.Pp
An attractive alternative where multicast support is available
is manycast mode, in which clients periodically troll
for servers as described in the
.Sx Automatic NTP Configuration Options
page.
Either symmetric key or public key
cryptographic authentication can be used in this mode.
The principle advantage
of manycast mode is that potential servers need not be
configured in advance,
since the client finds them during regular operation,
and the configuration
files for all clients can be identical.
.Pp
The security model and protocol schemes for
both symmetric key and public key
cryptography are summarized below;
further details are in the briefings, papers
and reports at the NTP project page linked from
.Li http://www.ntp.org/ .
.Ss Symmetric\-Key Cryptography
The original RFC\-1305 specification allows any one of possibly
65,535 keys, each distinguished by a 32\-bit key identifier, to
authenticate an association.
The servers and clients involved must
agree on the key and key identifier to
authenticate NTP packets.
Keys and
related information are specified in a key
file, usually called
.Pa ntp.keys ,
which must be distributed and stored using
secure means beyond the scope of the NTP protocol itself.
Besides the keys used
for ordinary NTP associations,
additional keys can be used as passwords for the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
utility programs.
.Pp
When
.Xr ntpd @NTPD_MS@
is first started, it reads the key file specified in the
.Ic keys
configuration command and installs the keys
in the key cache.
However,
individual keys must be activated with the
.Ic trusted
command before use.
This
allows, for instance, the installation of possibly
several batches of keys and
then activating or deactivating each batch
remotely using
.Xr ntpdc @NTPDC_MS@ .
This also provides a revocation capability that can be used
if a key becomes compromised.
The
.Ic requestkey
command selects the key used as the password for the
.Xr ntpdc @NTPDC_MS@
utility, while the
.Ic controlkey
command selects the key used as the password for the
.Xr ntpq @NTPQ_MS@
utility.
.Ss Public Key Cryptography
NTPv4 supports the original NTPv3 symmetric key scheme
described in RFC\-1305 and in addition the Autokey protocol,
which is based on public key cryptography.
The Autokey Version 2 protocol described on the Autokey Protocol
page verifies packet integrity using MD5 message digests
and verifies the source with digital signatures and any of several
digest/signature schemes.
Optional identity schemes described on the Identity Schemes
page and based on cryptographic challenge/response algorithms
are also available.
Using all of these schemes provides strong security against
replay with or without modification, spoofing, masquerade
and most forms of clogging attacks.
.\" .Pp
.\" The cryptographic means necessary for all Autokey operations
.\" is provided by the OpenSSL software library.
.\" This library is available from http://www.openssl.org/
.\" and can be installed using the procedures outlined
.\" in the Building and Installing the Distribution page.
.\" Once installed,
.\" the configure and build
.\" process automatically detects the library and links
.\" the library routines required.
.Pp
The Autokey protocol has several modes of operation
corresponding to the various NTP modes supported.
Most modes use a special cookie which can be
computed independently by the client and server,
but encrypted in transmission.
All modes use in addition a variant of the S\-KEY scheme,
in which a pseudo\-random key list is generated and used
in reverse order.
These schemes are described along with an executive summary,
current status, briefing slides and reading list on the
.Sx Autonomous Authentication
page.
.Pp
The specific cryptographic environment used by Autokey servers
and clients is determined by a set of files
and soft links generated by the
.Xr ntp\-keygen 1ntpkeygenmdoc
program.
This includes a required host key file,
required certificate file and optional sign key file,
leapsecond file and identity scheme files.
The
digest/signature scheme is specified in the X.509 certificate
along with the matching sign key.
There are several schemes
available in the OpenSSL software library, each identified
by a specific string such as
.Cm md5WithRSAEncryption ,
which stands for the MD5 message digest with RSA
encryption scheme.
The current NTP distribution supports
all the schemes in the OpenSSL library, including
those based on RSA and DSA digital signatures.
.Pp
NTP secure groups can be used to define cryptographic compartments
and security hierarchies.
It is important that every host
in the group be able to construct a certificate trail to one
or more trusted hosts in the same group.
Each group
host runs the Autokey protocol to obtain the certificates
for all hosts along the trail to one or more trusted hosts.
This requires the configuration file in all hosts to be
engineered so that, even under anticipated failure conditions,
the NTP subnet will form such that every group host can find
a trail to at least one trusted host.
.Ss Naming and Addressing
It is important to note that Autokey does not use DNS to
resolve addresses, since DNS can't be completely trusted
until the name servers have synchronized clocks.
The cryptographic name used by Autokey to bind the host identity
credentials and cryptographic values must be independent
of interface, network and any other naming convention.
The name appears in the host certificate in either or both
the subject and issuer fields, so protection against
DNS compromise is essential.
.Pp
By convention, the name of an Autokey host is the name returned
by the Unix
.Xr gethostname 2
system call or equivalent in other systems.
By the system design
model, there are no provisions to allow alternate names or aliases.
However, this is not to say that DNS aliases, different names
for each interface, etc., are constrained in any way.
.Pp
It is also important to note that Autokey verifies authenticity
using the host name, network address and public keys,
all of which are bound together by the protocol specifically
to deflect masquerade attacks.
For this reason Autokey
includes the source and destination IP addresses in message digest
computations and so the same addresses must be available
at both the server and client.
For this reason operation
with network address translation schemes is not possible.
This reflects the intended robust security model where government
and corporate NTP servers are operated outside firewall perimeters.
.Ss Operation
A specific combination of authentication scheme (none,
symmetric key, public key) and identity scheme is called
a cryptotype, although not all combinations are compatible.
There may be management configurations where the clients,
servers and peers may not all support the same cryptotypes.
A secure NTPv4 subnet can be configured in many ways while
keeping in mind the principles explained above and
in this section.
Note however that some cryptotype
combinations may successfully interoperate with each other,
but may not represent good security practice.
.Pp
The cryptotype of an association is determined at the time
of mobilization, either at configuration time or some time
later when a message of appropriate cryptotype arrives.
When mobilized by a
.Ic server
or
.Ic peer
configuration command and no
.Ic key
or
.Ic autokey
subcommands are present, the association is not
authenticated; if the
.Ic key
subcommand is present, the association is authenticated
using the symmetric key ID specified; if the
.Ic autokey
subcommand is present, the association is authenticated
using Autokey.
.Pp
When multiple identity schemes are supported in the Autokey
protocol, the first message exchange determines which one is used.
The client request message contains bits corresponding
to which schemes it has available.
The server response message
contains bits corresponding to which schemes it has available.
Both server and client match the received bits with their own
and select a common scheme.
.Pp
Following the principle that time is a public value,
a server responds to any client packet that matches
its cryptotype capabilities.
Thus, a server receiving
an unauthenticated packet will respond with an unauthenticated
packet, while the same server receiving a packet of a cryptotype
it supports will respond with packets of that cryptotype.
However, unconfigured broadcast or manycast client
associations or symmetric passive associations will not be
mobilized unless the server supports a cryptotype compatible
with the first packet received.
By default, unauthenticated associations will not be mobilized
unless overridden in a decidedly dangerous way.
.Pp
Some examples may help to reduce confusion.
Client Alice has no specific cryptotype selected.
Server Bob has both a symmetric key file and minimal Autokey files.
Alice's unauthenticated messages arrive at Bob, who replies with
unauthenticated messages.
Cathy has a copy of Bob's symmetric
key file and has selected key ID 4 in messages to Bob.
Bob verifies the message with his key ID 4.
If it's the
same key and the message is verified, Bob sends Cathy a reply
authenticated with that key.
If verification fails,
Bob sends Cathy a thing called a crypto\-NAK, which tells her
something broke.
She can see the evidence using the
.Xr ntpq @NTPQ_MS@
program.
.Pp
Denise has rolled her own host key and certificate.
She also uses one of the identity schemes as Bob.
She sends the first Autokey message to Bob and they
both dance the protocol authentication and identity steps.
If all comes out okay, Denise and Bob continue as described above.
.Pp
It should be clear from the above that Bob can support
all the girls at the same time, as long as he has compatible
authentication and identity credentials.
Now, Bob can act just like the girls in his own choice of servers;
he can run multiple configured associations with multiple different
servers (or the same server, although that might not be useful).
But, wise security policy might preclude some cryptotype
combinations; for instance, running an identity scheme
with one server and no authentication with another might not be wise.
.Ss Key Management
The cryptographic values used by the Autokey protocol are
incorporated as a set of files generated by the
.Xr ntp\-keygen 1ntpkeygenmdoc
utility program, including symmetric key, host key and
public certificate files, as well as sign key, identity parameters
and leapseconds files.
Alternatively, host and sign keys and
certificate files can be generated by the OpenSSL utilities
and certificates can be imported from public certificate
authorities.
Note that symmetric keys are necessary for the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
utility programs.
The remaining files are necessary only for the
Autokey protocol.
.Pp
Certificates imported from OpenSSL or public certificate
authorities have certian limitations.
The certificate should be in ASN.1 syntax, X.509 Version 3
format and encoded in PEM, which is the same format
used by OpenSSL.
The overall length of the certificate encoded
in ASN.1 must not exceed 1024 bytes.
The subject distinguished
name field (CN) is the fully qualified name of the host
on which it is used; the remaining subject fields are ignored.
The certificate extension fields must not contain either
a subject key identifier or a issuer key identifier field;
however, an extended key usage field for a trusted host must
contain the value
.Cm trustRoot ; .
Other extension fields are ignored.
.Ss Authentication Commands
.Bl -tag -width indent
.It Ic autokey Op Ar logsec
Specifies the interval between regenerations of the session key
list used with the Autokey protocol.
Note that the size of the key
list for each association depends on this interval and the current
poll interval.
The default value is 12 (4096 s or about 1.1 hours).
For poll intervals above the specified interval, a session key list
with a single entry will be regenerated for every message
sent.
.It Ic controlkey Ar key
Specifies the key identifier to use with the
.Xr ntpq @NTPQ_MS@
utility, which uses the standard
protocol defined in RFC\-1305.
The
.Ar key
argument is
the key identifier for a trusted key, where the value can be in the
range 1 to 65,535, inclusive.
.It Xo Ic crypto
.Op Cm cert Ar file
.Op Cm leap Ar file
.Op Cm randfile Ar file
.Op Cm host Ar file
.Op Cm sign Ar file
.Op Cm gq Ar file
.Op Cm gqpar Ar file
.Op Cm iffpar Ar file
.Op Cm mvpar Ar file
.Op Cm pw Ar password
.Xc
This command requires the OpenSSL library.
It activates public key
cryptography, selects the message digest and signature
encryption scheme and loads the required private and public
values described above.
If one or more files are left unspecified,
the default names are used as described above.
Unless the complete path and name of the file are specified, the
location of a file is relative to the keys directory specified
in the
.Ic keysdir
command or default
.Pa /usr/local/etc .
Following are the subcommands:
.Bl -tag -width indent
.It Cm cert Ar file
Specifies the location of the required host public certificate file.
This overrides the link
.Pa ntpkey_cert_ Ns Ar hostname
in the keys directory.
.It Cm gqpar Ar file
Specifies the location of the optional GQ parameters file.
This
overrides the link
.Pa ntpkey_gq_ Ns Ar hostname
in the keys directory.
.It Cm host Ar file
Specifies the location of the required host key file.
This overrides
the link
.Pa ntpkey_key_ Ns Ar hostname
in the keys directory.
.It Cm iffpar Ar file
Specifies the location of the optional IFF parameters file.
This overrides the link
.Pa ntpkey_iff_ Ns Ar hostname
in the keys directory.
.It Cm leap Ar file
Specifies the location of the optional leapsecond file.
This overrides the link
.Pa ntpkey_leap
in the keys directory.
.It Cm mvpar Ar file
Specifies the location of the optional MV parameters file.
This overrides the link
.Pa ntpkey_mv_ Ns Ar hostname
in the keys directory.
.It Cm pw Ar password
Specifies the password to decrypt files containing private keys and
identity parameters.
This is required only if these files have been
encrypted.
.It Cm randfile Ar file
Specifies the location of the random seed file used by the OpenSSL
library.
The defaults are described in the main text above.
.It Cm sign Ar file
Specifies the location of the optional sign key file.
This overrides
the link
.Pa ntpkey_sign_ Ns Ar hostname
in the keys directory.
If this file is
not found, the host key is also the sign key.
.El
.It Ic keys Ar keyfile
Specifies the complete path and location of the MD5 key file
containing the keys and key identifiers used by
.Xr ntpd @NTPD_MS@ ,
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
when operating with symmetric key cryptography.
This is the same operation as the
.Fl k
command line option.
.It Ic keysdir Ar path
This command specifies the default directory path for
cryptographic keys, parameters and certificates.
The default is
.Pa /usr/local/etc/ .
.It Ic requestkey Ar key
Specifies the key identifier to use with the
.Xr ntpdc @NTPDC_MS@
utility program, which uses a
proprietary protocol specific to this implementation of
.Xr ntpd @NTPD_MS@ .
The
.Ar key
argument is a key identifier
for the trusted key, where the value can be in the range 1 to
65,535, inclusive.
.It Ic revoke Ar logsec
Specifies the interval between re\-randomization of certain
cryptographic values used by the Autokey scheme, as a power of 2 in
seconds.
These values need to be updated frequently in order to
deflect brute\-force attacks on the algorithms of the scheme;
however, updating some values is a relatively expensive operation.
The default interval is 16 (65,536 s or about 18 hours).
For poll
intervals above the specified interval, the values will be updated
for every message sent.
.It Ic trustedkey Ar key ...
Specifies the key identifiers which are trusted for the
purposes of authenticating peers with symmetric key cryptography,
as well as keys used by the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
programs.
The authentication procedures require that both the local
and remote servers share the same key and key identifier for this
purpose, although different keys can be used with different
servers.
The
.Ar key
arguments are 32\-bit unsigned
integers with values from 1 to 65,535.
.El
.Ss Error Codes
The following error codes are reported via the NTP control
and monitoring protocol trap mechanism.
.Bl -tag -width indent
.It 101
.Pq bad field format or length
The packet has invalid version, length or format.
.It 102
.Pq bad timestamp
The packet timestamp is the same or older than the most recent received.
This could be due to a replay or a server clock time step.
.It 103
.Pq bad filestamp
The packet filestamp is the same or older than the most recent received.
This could be due to a replay or a key file generation error.
.It 104
.Pq bad or missing public key
The public key is missing, has incorrect format or is an unsupported type.
.It 105
.Pq unsupported digest type
The server requires an unsupported digest/signature scheme.
.It 106
.Pq mismatched digest types
Not used.
.It 107
.Pq bad signature length
The signature length does not match the current public key.
.It 108
.Pq signature not verified
The message fails the signature check.
It could be bogus or signed by a
different private key.
.It 109
.Pq certificate not verified
The certificate is invalid or signed with the wrong key.
.It 110
.Pq certificate not verified
The certificate is not yet valid or has expired or the signature could not
be verified.
.It 111
.Pq bad or missing cookie
The cookie is missing, corrupted or bogus.
.It 112
.Pq bad or missing leapseconds table
The leapseconds table is missing, corrupted or bogus.
.It 113
.Pq bad or missing certificate
The certificate is missing, corrupted or bogus.
.It 114
.Pq bad or missing identity
The identity key is missing, corrupt or bogus.
.El
.Sh Monitoring Support
.Xr ntpd @NTPD_MS@
includes a comprehensive monitoring facility suitable
for continuous, long term recording of server and client
timekeeping performance.
See the
.Ic statistics
command below
for a listing and example of each type of statistics currently
supported.
Statistic files are managed using file generation sets
and scripts in the
.Pa ./scripts
directory of the source code distribution.
Using
these facilities and
.Ux
.Xr cron 8
jobs, the data can be
automatically summarized and archived for retrospective analysis.
.Ss Monitoring Commands
.Bl -tag -width indent
.It Ic statistics Ar name ...
Enables writing of statistics records.
Currently, eight kinds of
.Ar name
statistics are supported.
.Bl -tag -width indent
.It Cm clockstats
Enables recording of clock driver statistics information.
Each update
received from a clock driver appends a line of the following form to
the file generation set named
.Cm clockstats :
.Bd -literal
49213 525.624 127.127.4.1 93 226 00:08:29.606 D
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the
clock address in dotted\-quad notation.
The final field shows the last
timecode received from the clock in decoded ASCII format, where
meaningful.
In some clock drivers a good deal of additional information
can be gathered and displayed as well.
See information specific to each
clock for further details.
.It Cm cryptostats
This option requires the OpenSSL cryptographic software library.
It
enables recording of cryptographic public key protocol information.
Each message received by the protocol module appends a line of the
following form to the file generation set named
.Cm cryptostats :
.Bd -literal
49213 525.624 127.127.4.1 message
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The next field shows the peer
address in dotted\-quad notation, The final message field includes the
message type and certain ancillary information.
See the
.Sx Authentication Options
section for further information.
.It Cm loopstats
Enables recording of loop filter statistics information.
Each
update of the local clock outputs a line of the following form to
the file generation set named
.Cm loopstats :
.Bd -literal
50935 75440.031 0.000006019 13.778190 0.000351733 0.0133806
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next five fields
show time offset (seconds), frequency offset (parts per million \-
PPM), RMS jitter (seconds), Allan deviation (PPM) and clock
discipline time constant.
.It Cm peerstats
Enables recording of peer statistics information.
This includes
statistics records of all peers of a NTP server and of special
signals, where present and configured.
Each valid update appends a
line of the following form to the current element of a file
generation set named
.Cm peerstats :
.Bd -literal
48773 10847.650 127.127.4.1 9714 \-0.001605376 0.000000000 0.001424877 0.000958674
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the peer address in dotted\-quad notation and status,
respectively.
The status field is encoded in hex in the format
described in Appendix A of the NTP specification RFC 1305.
The final four fields show the offset,
delay, dispersion and RMS jitter, all in seconds.
.It Cm rawstats
Enables recording of raw\-timestamp statistics information.
This
includes statistics records of all peers of a NTP server and of
special signals, where present and configured.
Each NTP message
received from a peer or clock driver appends a line of the
following form to the file generation set named
.Cm rawstats :
.Bd -literal
50928 2132.543 128.4.1.1 128.4.1.20 3102453281.584327000 3102453281.58622800031 02453332.540806000 3102453332.541458000
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and
time (seconds and fraction past UTC midnight).
The next two fields
show the remote peer or clock address followed by the local address
in dotted\-quad notation.
The final four fields show the originate,
receive, transmit and final NTP timestamps in order.
The timestamp
values are as received and before processing by the various data
smoothing and mitigation algorithms.
.It Cm sysstats
Enables recording of ntpd statistics counters on a periodic basis.
Each
hour a line of the following form is appended to the file generation
set named
.Cm sysstats :
.Bd -literal
50928 2132.543 36000 81965 0 9546 56 71793 512 540 10 147
.Ed
.Pp
The first two fields show the date (Modified Julian Day) and time
(seconds and fraction past UTC midnight).
The remaining ten fields show
the statistics counter values accumulated since the last generated
line.
.Bl -tag -width indent
.It Time since restart Cm 36000
Time in hours since the system was last rebooted.
.It Packets received Cm 81965
Total number of packets received.
.It Packets processed Cm 0
Number of packets received in response to previous packets sent
.It Current version Cm 9546
Number of packets matching the current NTP version.
.It Previous version Cm 56
Number of packets matching the previous NTP version.
.It Bad version Cm 71793
Number of packets matching neither NTP version.
.It Access denied Cm 512
Number of packets denied access for any reason.
.It Bad length or format Cm 540
Number of packets with invalid length, format or port number.
.It Bad authentication Cm 10
Number of packets not verified as authentic.
.It Rate exceeded Cm 147
Number of packets discarded due to rate limitation.
.El
.It Cm statsdir Ar directory_path
Indicates the full path of a directory where statistics files
should be created (see below).
This keyword allows
the (otherwise constant)
.Cm filegen
filename prefix to be modified for file generation sets, which
is useful for handling statistics logs.
.It Cm filegen Ar name Xo
.Op Cm file Ar filename
.Op Cm type Ar typename
.Op Cm link | nolink
.Op Cm enable | disable
.Xc
Configures setting of generation file set name.
Generation
file sets provide a means for handling files that are
continuously growing during the lifetime of a server.
Server statistics are a typical example for such files.
Generation file sets provide access to a set of files used
to store the actual data.
At any time at most one element
of the set is being written to.
The type given specifies
when and how data will be directed to a new element of the set.
This way, information stored in elements of a file set
that are currently unused are available for administrational
operations without the risk of disturbing the operation of ntpd.
(Most important: they can be removed to free space for new data
produced.)
.Pp
Note that this command can be sent from the
.Xr ntpdc @NTPDC_MS@
program running at a remote location.
.Bl -tag -width indent
.It Cm name
This is the type of the statistics records, as shown in the
.Cm statistics
command.
.It Cm file Ar filename
This is the file name for the statistics records.
Filenames of set
members are built from three concatenated elements
.Ar Cm prefix ,
.Ar Cm filename
and
.Ar Cm suffix :
.Bl -tag -width indent
.It Cm prefix
This is a constant filename path.
It is not subject to
modifications via the
.Ar filegen
option.
It is defined by the
server, usually specified as a compile\-time constant.
It may,
however, be configurable for individual file generation sets
via other commands.
For example, the prefix used with
.Ar loopstats
and
.Ar peerstats
generation can be configured using the
.Ar statsdir
option explained above.
.It Cm filename
This string is directly concatenated to the prefix mentioned
above (no intervening
.Ql / ) .
This can be modified using
the file argument to the
.Ar filegen
statement.
No
.Pa ..
elements are
allowed in this component to prevent filenames referring to
parts outside the filesystem hierarchy denoted by
.Ar prefix .
.It Cm suffix
This part is reflects individual elements of a file set.
It is
generated according to the type of a file set.
.El
.It Cm type Ar typename
A file generation set is characterized by its type.
The following
types are supported:
.Bl -tag -width indent
.It Cm none
The file set is actually a single plain file.
.It Cm pid
One element of file set is used per incarnation of a ntpd
server.
This type does not perform any changes to file set
members during runtime, however it provides an easy way of
separating files belonging to different
.Xr ntpd @NTPD_MS@
server incarnations.
The set member filename is built by appending a
.Ql \&.
to concatenated
.Ar prefix
and
.Ar filename
strings, and
appending the decimal representation of the process ID of the
.Xr ntpd @NTPD_MS@
server process.
.It Cm day
One file generation set element is created per day.
A day is
defined as the period between 00:00 and 24:00 UTC.
The file set
member suffix consists of a
.Ql \&.
and a day specification in
the form
.Cm YYYYMMdd .
.Cm YYYY
is a 4\-digit year number (e.g., 1992).
.Cm MM
is a two digit month number.
.Cm dd
is a two digit day number.
Thus, all information written at 10 December 1992 would end up
in a file named
.Ar prefix
.Ar filename Ns .19921210 .
.It Cm week
Any file set member contains data related to a certain week of
a year.
The term week is defined by computing day\-of\-year
modulo 7.
Elements of such a file generation set are
distinguished by appending the following suffix to the file set
filename base: A dot, a 4\-digit year number, the letter
.Cm W ,
and a 2\-digit week number.
For example, information from January,
10th 1992 would end up in a file with suffix
.No . Ns Ar 1992W1 .
.It Cm month
One generation file set element is generated per month.
The
file name suffix consists of a dot, a 4\-digit year number, and
a 2\-digit month.
.It Cm year
One generation file element is generated per year.
The filename
suffix consists of a dot and a 4 digit year number.
.It Cm age
This type of file generation sets changes to a new element of
the file set every 24 hours of server operation.
The filename
suffix consists of a dot, the letter
.Cm a ,
and an 8\-digit number.
This number is taken to be the number of seconds the server is
running at the start of the corresponding 24\-hour period.
Information is only written to a file generation by specifying
.Cm enable ;
output is prevented by specifying
.Cm disable .
.El
.It Cm link | nolink
It is convenient to be able to access the current element of a file
generation set by a fixed name.
This feature is enabled by
specifying
.Cm link
and disabled using
.Cm nolink .
If link is specified, a
hard link from the current file set element to a file without
suffix is created.
When there is already a file with this name and
the number of links of this file is one, it is renamed appending a
dot, the letter
.Cm C ,
and the pid of the
.Xr ntpd @NTPD_MS@
server process.
When the
number of links is greater than one, the file is unlinked.
This
allows the current file to be accessed by a constant name.
.It Cm enable \&| Cm disable
Enables or disables the recording function.
.El
.El
.El
.Sh Access Control Support
The
.Xr ntpd @NTPD_MS@
daemon implements a general purpose address/mask based restriction
list.
The list contains address/match entries sorted first
by increasing address values and and then by increasing mask values.
A match occurs when the bitwise AND of the mask and the packet
source address is equal to the bitwise AND of the mask and
address in the list.
The list is searched in order with the
last match found defining the restriction flags associated
with the entry.
Additional information and examples can be found in the
.Qq Notes on Configuring NTP and Setting up a NTP Subnet
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Pp
The restriction facility was implemented in conformance
with the access policies for the original NSFnet backbone
time servers.
Later the facility was expanded to deflect
cryptographic and clogging attacks.
While this facility may
be useful for keeping unwanted or broken or malicious clients
from congesting innocent servers, it should not be considered
an alternative to the NTP authentication facilities.
Source address based restrictions are easily circumvented
by a determined cracker.
.Pp
Clients can be denied service because they are explicitly
included in the restrict list created by the
.Ic restrict
command
or implicitly as the result of cryptographic or rate limit
violations.
Cryptographic violations include certificate
or identity verification failure; rate limit violations generally
result from defective NTP implementations that send packets
at abusive rates.
Some violations cause denied service
only for the offending packet, others cause denied service
for a timed period and others cause the denied service for
an indefinite period.
When a client or network is denied access
for an indefinite period, the only way at present to remove
the restrictions is by restarting the server.
.Ss The Kiss\-of\-Death Packet
Ordinarily, packets denied service are simply dropped with no
further action except incrementing statistics counters.
Sometimes a
more proactive response is needed, such as a server message that
explicitly requests the client to stop sending and leave a message
for the system operator.
A special packet format has been created
for this purpose called the "kiss\-of\-death" (KoD) packet.
KoD packets have the leap bits set unsynchronized and stratum set
to zero and the reference identifier field set to a four\-byte
ASCII code.
If the
.Cm noserve
or
.Cm notrust
flag of the matching restrict list entry is set,
the code is "DENY"; if the
.Cm limited
flag is set and the rate limit
is exceeded, the code is "RATE".
Finally, if a cryptographic violation occurs, the code is "CRYP".
.Pp
A client receiving a KoD performs a set of sanity checks to
minimize security exposure, then updates the stratum and
reference identifier peer variables, sets the access
denied (TEST4) bit in the peer flash variable and sends
a message to the log.
As long as the TEST4 bit is set,
the client will send no further packets to the server.
The only way at present to recover from this condition is
to restart the protocol at both the client and server.
This
happens automatically at the client when the association times out.
It will happen at the server only if the server operator cooperates.
.Ss Access Control Commands
.Bl -tag -width indent
.It Xo Ic discard
.Op Cm average Ar avg
.Op Cm minimum Ar min
.Op Cm monitor Ar prob
.Xc
Set the parameters of the
.Cm limited
facility which protects the server from
client abuse.
The
.Cm average
subcommand specifies the minimum average packet
spacing in log2 seconds, defaulting to 3 (8s), while the
.Cm minimum
subcommand specifies the minimum packet spacing
in seconds, defaulting to 2.
Packets that violate these minima are discarded
and a kiss\-o'\-death packet returned if enabled.
The
.Ic monitor
subcommand indirectly specifies the probability of
replacing the oldest entry from the monitor (MRU)
list of recent requests used to enforce rate controls,
when that list is at its maximum size. The probability
of replacing the oldest entry is the age of that entry
in seconds divided by the
.Ic monitor
value, default 3000. For example, if the oldest entry
in the MRU list represents a request 300 seconds ago,
by default the probability of replacing it with an
entry representing the client request being processed
now is 10%. Conversely, if the oldest entry is more
than 3000 seconds old, the probability is 100%.
.It Xo Ic restrict address
.Op Cm mask Ar mask
.Op Cm ippeerlimit Ar int
.Op Ar flag ...
.Xc
The
.Ar address
argument expressed in
dotted\-quad form is the address of a host or network.
Alternatively, the
.Ar address
argument can be a valid host DNS name.
The
.Ar mask
argument expressed in dotted\-quad form defaults to
.Cm 255.255.255.255 ,
meaning that the
.Ar address
is treated as the address of an individual host.
A default entry (address
.Cm 0.0.0.0 ,
mask
.Cm 0.0.0.0 )
is always included and is always the first entry in the list.
Note that text string
.Cm default ,
with no mask option, may
be used to indicate the default entry.
The
.Cm ippeerlimit
directive limits the number of peer requests for each IP to
.Ar int ,
where a value of \-1 means "unlimited", the current default.
A value of 0 means "none".
There would usually be at most 1 peering request per IP,
but if the remote peering requests are behind a proxy
there could well be more than 1 per IP.
In the current implementation,
.Cm flag
always
restricts access, i.e., an entry with no flags indicates that free
access to the server is to be given.
The flags are not orthogonal,
in that more restrictive flags will often make less restrictive
ones redundant.
The flags can generally be classed into two
categories, those which restrict time service and those which
restrict informational queries and attempts to do run\-time
reconfiguration of the server.
One or more of the following flags
may be specified:
.Bl -tag -width indent
.It Cm ignore
Deny packets of all kinds, including
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
queries.
.It Cm kod
If this flag is set when an access violation occurs, a kiss\-o'\-death
(KoD) packet is sent.
KoD packets are rate limited to no more than one
per second.
If another KoD packet occurs within one second after the
last one, the packet is dropped.
.It Cm limited
Deny service if the packet spacing violates the lower limits specified
in the
.Ic discard
command.
A history of clients is kept using the
monitoring capability of
.Xr ntpd @NTPD_MS@ .
Thus, monitoring is always active as
long as there is a restriction entry with the
.Cm limited
flag.
.It Cm lowpriotrap
Declare traps set by matching hosts to be low priority.
The
number of traps a server can maintain is limited (the current limit
is 3).
Traps are usually assigned on a first come, first served
basis, with later trap requestors being denied service.
This flag
modifies the assignment algorithm by allowing low priority traps to
be overridden by later requests for normal priority traps.
.It Cm noepeer
Deny ephemeral peer requests,
even if they come from an authenticated source.
Note that the ability to use a symmetric key for authentication may be restricted to
one or more IPs or subnets via the third field of the
.Pa ntp.keys
file.
This restriction is not enabled by default,
to maintain backward compatability.
Expect
.Cm noepeer
to become the default in ntp\-4.4.
.It Cm nomodify
Deny
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
queries which attempt to modify the state of the
server (i.e., run time reconfiguration).
Queries which return
information are permitted.
.It Cm noquery
Deny
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
queries.
Time service is not affected.
.It Cm nopeer
Deny unauthenticated packets which would result in mobilizing a new association.
This includes
broadcast and symmetric active packets
when a configured association does not exist.
It also includes
.Cm pool
associations, so if you want to use servers from a
.Cm pool
directive and also want to use
.Cm nopeer
by default, you'll want a
.Cm "restrict source ..."
line as well that does
.Em not
include the
.Cm nopeer
directive.
.It Cm noserve
Deny all packets except
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
queries.
.It Cm notrap
Decline to provide mode 6 control message trap service to matching
hosts.
The trap service is a subsystem of the
.Xr ntpq @NTPQ_MS@
control message
protocol which is intended for use by remote event logging programs.
.It Cm notrust
Deny service unless the packet is cryptographically authenticated.
.It Cm ntpport
This is actually a match algorithm modifier, rather than a
restriction flag.
Its presence causes the restriction entry to be
matched only if the source port in the packet is the standard NTP
UDP port (123).
Both
.Cm ntpport
and
.Cm non\-ntpport
may
be specified.
The
.Cm ntpport
is considered more specific and
is sorted later in the list.
.It Ic "serverresponse fuzz"
When reponding to server requests,
fuzz the low order bits of the
.Cm reftime .
.It Cm version
Deny packets that do not match the current NTP version.
.El
.Pp
Default restriction list entries with the flags ignore, interface,
ntpport, for each of the local host's interface addresses are
inserted into the table at startup to prevent the server
from attempting to synchronize to its own time.
A default entry is also always present, though if it is
otherwise unconfigured; no flags are associated
with the default entry (i.e., everything besides your own
NTP server is unrestricted).
.El
.Sh Automatic NTP Configuration Options
.Ss Manycasting
Manycasting is a automatic discovery and configuration paradigm
new to NTPv4.
It is intended as a means for a multicast client
to troll the nearby network neighborhood to find cooperating
manycast servers, validate them using cryptographic means
and evaluate their time values with respect to other servers
that might be lurking in the vicinity.
The intended result is that each manycast client mobilizes
client associations with some number of the "best"
of the nearby manycast servers, yet automatically reconfigures
to sustain this number of servers should one or another fail.
.Pp
Note that the manycasting paradigm does not coincide
with the anycast paradigm described in RFC\-1546,
which is designed to find a single server from a clique
of servers providing the same service.
The manycast paradigm is designed to find a plurality
of redundant servers satisfying defined optimality criteria.
.Pp
Manycasting can be used with either symmetric key
or public key cryptography.
The public key infrastructure (PKI)
offers the best protection against compromised keys
and is generally considered stronger, at least with relatively
large key sizes.
It is implemented using the Autokey protocol and
the OpenSSL cryptographic library available from
.Li http://www.openssl.org/ .
The library can also be used with other NTPv4 modes
as well and is highly recommended, especially for broadcast modes.
.Pp
A persistent manycast client association is configured
using the
.Ic manycastclient
command, which is similar to the
.Ic server
command but with a multicast (IPv4 class
.Cm D
or IPv6 prefix
.Cm FF )
group address.
The IANA has designated IPv4 address 224.1.1.1
and IPv6 address FF05::101 (site local) for NTP.
When more servers are needed, it broadcasts manycast
client messages to this address at the minimum feasible rate
and minimum feasible time\-to\-live (TTL) hops, depending
on how many servers have already been found.
There can be as many manycast client associations
as different group address, each one serving as a template
for a future ephemeral unicast client/server association.
.Pp
Manycast servers configured with the
.Ic manycastserver
command listen on the specified group address for manycast
client messages.
Note the distinction between manycast client,
which actively broadcasts messages, and manycast server,
which passively responds to them.
If a manycast server is
in scope of the current TTL and is itself synchronized
to a valid source and operating at a stratum level equal
to or lower than the manycast client, it replies to the
manycast client message with an ordinary unicast server message.
.Pp
The manycast client receiving this message mobilizes
an ephemeral client/server association according to the
matching manycast client template, but only if cryptographically
authenticated and the server stratum is less than or equal
to the client stratum.
Authentication is explicitly required
and either symmetric key or public key (Autokey) can be used.
Then, the client polls the server at its unicast address
in burst mode in order to reliably set the host clock
and validate the source.
This normally results
in a volley of eight client/server at 2\-s intervals
during which both the synchronization and cryptographic
protocols run concurrently.
Following the volley,
the client runs the NTP intersection and clustering
algorithms, which act to discard all but the "best"
associations according to stratum and synchronization
distance.
The surviving associations then continue
in ordinary client/server mode.
.Pp
The manycast client polling strategy is designed to reduce
as much as possible the volume of manycast client messages
and the effects of implosion due to near\-simultaneous
arrival of manycast server messages.
The strategy is determined by the
.Ic manycastclient ,
.Ic tos
and
.Ic ttl
configuration commands.
The manycast poll interval is
normally eight times the system poll interval,
which starts out at the
.Cm minpoll
value specified in the
.Ic manycastclient ,
command and, under normal circumstances, increments to the
.Cm maxpolll
value specified in this command.
Initially, the TTL is
set at the minimum hops specified by the
.Ic ttl
command.
At each retransmission the TTL is increased until reaching
the maximum hops specified by this command or a sufficient
number client associations have been found.
Further retransmissions use the same TTL.
.Pp
The quality and reliability of the suite of associations
discovered by the manycast client is determined by the NTP
mitigation algorithms and the
.Cm minclock
and
.Cm minsane
values specified in the
.Ic tos
configuration command.
At least
.Cm minsane
candidate servers must be available and the mitigation
algorithms produce at least
.Cm minclock
survivors in order to synchronize the clock.
Byzantine agreement principles require at least four
candidates in order to correctly discard a single falseticker.
For legacy purposes,
.Cm minsane
defaults to 1 and
.Cm minclock
defaults to 3.
For manycast service
.Cm minsane
should be explicitly set to 4, assuming at least that
number of servers are available.
.Pp
If at least
.Cm minclock
servers are found, the manycast poll interval is immediately
set to eight times
.Cm maxpoll .
If less than
.Cm minclock
servers are found when the TTL has reached the maximum hops,
the manycast poll interval is doubled.
For each transmission
after that, the poll interval is doubled again until
reaching the maximum of eight times
.Cm maxpoll .
Further transmissions use the same poll interval and
TTL values.
Note that while all this is going on,
each client/server association found is operating normally
it the system poll interval.
.Pp
Administratively scoped multicast boundaries are normally
specified by the network router configuration and,
in the case of IPv6, the link/site scope prefix.
By default, the increment for TTL hops is 32 starting
from 31; however, the
.Ic ttl
configuration command can be
used to modify the values to match the scope rules.
.Pp
It is often useful to narrow the range of acceptable
servers which can be found by manycast client associations.
Because manycast servers respond only when the client
stratum is equal to or greater than the server stratum,
primary (stratum 1) servers fill find only primary servers
in TTL range, which is probably the most common objective.
However, unless configured otherwise, all manycast clients
in TTL range will eventually find all primary servers
in TTL range, which is probably not the most common
objective in large networks.
The
.Ic tos
command can be used to modify this behavior.
Servers with stratum below
.Cm floor
or above
.Cm ceiling
specified in the
.Ic tos
command are strongly discouraged during the selection
process; however, these servers may be temporally
accepted if the number of servers within TTL range is
less than
.Cm minclock .
.Pp
The above actions occur for each manycast client message,
which repeats at the designated poll interval.
However, once the ephemeral client association is mobilized,
subsequent manycast server replies are discarded,
since that would result in a duplicate association.
If during a poll interval the number of client associations
falls below
.Cm minclock ,
all manycast client prototype associations are reset
to the initial poll interval and TTL hops and operation
resumes from the beginning.
It is important to avoid
frequent manycast client messages, since each one requires
all manycast servers in TTL range to respond.
The result could well be an implosion, either minor or major,
depending on the number of servers in range.
The recommended value for
.Cm maxpoll
is 12 (4,096 s).
.Pp
It is possible and frequently useful to configure a host
as both manycast client and manycast server.
A number of hosts configured this way and sharing a common
group address will automatically organize themselves
in an optimum configuration based on stratum and
synchronization distance.
For example, consider an NTP
subnet of two primary servers and a hundred or more
dependent clients.
With two exceptions, all servers
and clients have identical configuration files including both
.Ic multicastclient
and
.Ic multicastserver
commands using, for instance, multicast group address
239.1.1.1.
The only exception is that each primary server
configuration file must include commands for the primary
reference source such as a GPS receiver.
.Pp
The remaining configuration files for all secondary
servers and clients have the same contents, except for the
.Ic tos
command, which is specific for each stratum level.
For stratum 1 and stratum 2 servers, that command is
not necessary.
For stratum 3 and above servers the
.Cm floor
value is set to the intended stratum number.
Thus, all stratum 3 configuration files are identical,
all stratum 4 files are identical and so forth.
.Pp
Once operations have stabilized in this scenario,
the primary servers will find the primary reference source
and each other, since they both operate at the same
stratum (1), but not with any secondary server or client,
since these operate at a higher stratum.
The secondary
servers will find the servers at the same stratum level.
If one of the primary servers loses its GPS receiver,
it will continue to operate as a client and other clients
will time out the corresponding association and
re\-associate accordingly.
.Pp
Some administrators prefer to avoid running
.Xr ntpd @NTPD_MS@
continuously and run either
.Xr sntp @SNTP_MS@
or
.Xr ntpd @NTPD_MS@
.Fl q
as a cron job.
In either case the servers must be
configured in advance and the program fails if none are
available when the cron job runs.
A really slick
application of manycast is with
.Xr ntpd @NTPD_MS@
.Fl q .
The program wakes up, scans the local landscape looking
for the usual suspects, selects the best from among
the rascals, sets the clock and then departs.
Servers do not have to be configured in advance and
all clients throughout the network can have the same
configuration file.
.Ss Manycast Interactions with Autokey
Each time a manycast client sends a client mode packet
to a multicast group address, all manycast servers
in scope generate a reply including the host name
and status word.
The manycast clients then run
the Autokey protocol, which collects and verifies
all certificates involved.
Following the burst interval
all but three survivors are cast off,
but the certificates remain in the local cache.
It often happens that several complete signing trails
from the client to the primary servers are collected in this way.
.Pp
About once an hour or less often if the poll interval
exceeds this, the client regenerates the Autokey key list.
This is in general transparent in client/server mode.
However, about once per day the server private value
used to generate cookies is refreshed along with all
manycast client associations.
In this case all
cryptographic values including certificates is refreshed.
If a new certificate has been generated since
the last refresh epoch, it will automatically revoke
all prior certificates that happen to be in the
certificate cache.
At the same time, the manycast
scheme starts all over from the beginning and
the expanding ring shrinks to the minimum and increments
from there while collecting all servers in scope.
.Ss Broadcast Options
.Bl -tag -width indent
.It Xo Ic tos
.Oo
.Cm bcpollbstep Ar gate
.Oc
.Xc
This command provides a way to delay,
by the specified number of broadcast poll intervals,
believing backward time steps from a broadcast server.
Broadcast time networks are expected to be trusted.
In the event a broadcast server's time is stepped backwards,
there is clear benefit to having the clients notice this change
as soon as possible.
Attacks such as replay attacks can happen, however,
and even though there are a number of protections built in to
broadcast mode, attempts to perform a replay attack are possible.
This value defaults to 0, but can be changed
to any number of poll intervals between 0 and 4.
.El
.Ss Manycast Options
.Bl -tag -width indent
.It Xo Ic tos
.Oo
.Cm ceiling Ar ceiling |
.Cm cohort { 0 | 1 } |
.Cm floor Ar floor |
.Cm minclock Ar minclock |
.Cm minsane Ar minsane
.Oc
.Xc
This command affects the clock selection and clustering
algorithms.
It can be used to select the quality and
quantity of peers used to synchronize the system clock
and is most useful in manycast mode.
The variables operate
as follows:
.Bl -tag -width indent
.It Cm ceiling Ar ceiling
Peers with strata above
.Cm ceiling
will be discarded if there are at least
.Cm minclock
peers remaining.
This value defaults to 15, but can be changed
to any number from 1 to 15.
.It Cm cohort Bro 0 | 1 Brc
This is a binary flag which enables (0) or disables (1)
manycast server replies to manycast clients with the same
stratum level.
This is useful to reduce implosions where
large numbers of clients with the same stratum level
are present.
The default is to enable these replies.
.It Cm floor Ar floor
Peers with strata below
.Cm floor
will be discarded if there are at least
.Cm minclock
peers remaining.
This value defaults to 1, but can be changed
to any number from 1 to 15.
.It Cm minclock Ar minclock
The clustering algorithm repeatedly casts out outlier
associations until no more than
.Cm minclock
associations remain.
This value defaults to 3,
but can be changed to any number from 1 to the number of
configured sources.
.It Cm minsane Ar minsane
This is the minimum number of candidates available
to the clock selection algorithm in order to produce
one or more truechimers for the clustering algorithm.
If fewer than this number are available, the clock is
undisciplined and allowed to run free.
The default is 1
for legacy purposes.
However, according to principles of
Byzantine agreement,
.Cm minsane
should be at least 4 in order to detect and discard
a single falseticker.
.El
.It Cm ttl Ar hop ...
This command specifies a list of TTL values in increasing
order, up to 8 values can be specified.
In manycast mode these values are used in turn
in an expanding\-ring search.
The default is eight
multiples of 32 starting at 31.
.El
.Sh Reference Clock Support
The NTP Version 4 daemon supports some three dozen different radio,
satellite and modem reference clocks plus a special pseudo\-clock
used for backup or when no other clock source is available.
Detailed descriptions of individual device drivers and options can
be found in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
Additional information can be found in the pages linked
there, including the
.Qq Debugging Hints for Reference Clock Drivers
and
.Qq How To Write a Reference Clock Driver
pages
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
In addition, support for a PPS
signal is available as described in the
.Qq Pulse\-per\-second (PPS) Signal Interfacing
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
Many
drivers support special line discipline/streams modules which can
significantly improve the accuracy using the driver.
These are
described in the
.Qq Line Disciplines and Streams Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.Pp
A reference clock will generally (though not always) be a radio
timecode receiver which is synchronized to a source of standard
time such as the services offered by the NRC in Canada and NIST and
USNO in the US.
The interface between the computer and the timecode
receiver is device dependent, but is usually a serial port.
A
device driver specific to each reference clock must be selected and
compiled in the distribution; however, most common radio, satellite
and modem clocks are included by default.
Note that an attempt to
configure a reference clock when the driver has not been compiled
or the hardware port has not been appropriately configured results
in a scalding remark to the system log file, but is otherwise non
hazardous.
.Pp
For the purposes of configuration,
.Xr ntpd @NTPD_MS@
treats
reference clocks in a manner analogous to normal NTP peers as much
as possible.
Reference clocks are identified by a syntactically
correct but invalid IP address, in order to distinguish them from
normal NTP peers.
Reference clock addresses are of the form
.Sm off
.Li 127.127. Ar t . Ar u ,
.Sm on
where
.Ar t
is an integer
denoting the clock type and
.Ar u
indicates the unit
number in the range 0\-3.
While it may seem overkill, it is in fact
sometimes useful to configure multiple reference clocks of the same
type, in which case the unit numbers must be unique.
.Pp
The
.Ic server
command is used to configure a reference
clock, where the
.Ar address
argument in that command
is the clock address.
The
.Cm key ,
.Cm version
and
.Cm ttl
options are not used for reference clock support.
The
.Cm mode
option is added for reference clock support, as
described below.
The
.Cm prefer
option can be useful to
persuade the server to cherish a reference clock with somewhat more
enthusiasm than other reference clocks or peers.
Further
information on this option can be found in the
.Qq Mitigation Rules and the prefer Keyword
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
page.
The
.Cm minpoll
and
.Cm maxpoll
options have
meaning only for selected clock drivers.
See the individual clock
driver document pages for additional information.
.Pp
The
.Ic fudge
command is used to provide additional
information for individual clock drivers and normally follows
immediately after the
.Ic server
command.
The
.Ar address
argument specifies the clock address.
The
.Cm refid
and
.Cm stratum
options can be used to
override the defaults for the device.
There are two optional
device\-dependent time offsets and four flags that can be included
in the
.Ic fudge
command as well.
.Pp
The stratum number of a reference clock is by default zero.
Since the
.Xr ntpd @NTPD_MS@
daemon adds one to the stratum of each
peer, a primary server ordinarily displays an external stratum of
one.
In order to provide engineered backups, it is often useful to
specify the reference clock stratum as greater than zero.
The
.Cm stratum
option is used for this purpose.
Also, in cases
involving both a reference clock and a pulse\-per\-second (PPS)
discipline signal, it is useful to specify the reference clock
identifier as other than the default, depending on the driver.
The
.Cm refid
option is used for this purpose.
Except where noted,
these options apply to all clock drivers.
.Ss Reference Clock Commands
.Bl -tag -width indent
.It Xo Ic server
.Sm off
.Li 127.127. Ar t . Ar u
.Sm on
.Op Cm prefer
.Op Cm mode Ar int
.Op Cm minpoll Ar int
.Op Cm maxpoll Ar int
.Xc
This command can be used to configure reference clocks in
special ways.
The options are interpreted as follows:
.Bl -tag -width indent
.It Cm prefer
Marks the reference clock as preferred.
All other things being
equal, this host will be chosen for synchronization among a set of
correctly operating hosts.
See the
.Qq Mitigation Rules and the prefer Keyword
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
for further information.
.It Cm mode Ar int
Specifies a mode number which is interpreted in a
device\-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.It Cm minpoll Ar int
.It Cm maxpoll Ar int
These options specify the minimum and maximum polling interval
for reference clock messages, as a power of 2 in seconds
For
most directly connected reference clocks, both
.Cm minpoll
and
.Cm maxpoll
default to 6 (64 s).
For modem reference clocks,
.Cm minpoll
defaults to 10 (17.1 m) and
.Cm maxpoll
defaults to 14 (4.5 h).
The allowable range is 4 (16 s) to 17 (36.4 h) inclusive.
.El
.It Xo Ic fudge
.Sm off
.Li 127.127. Ar t . Ar u
.Sm on
.Op Cm time1 Ar sec
.Op Cm time2 Ar sec
.Op Cm stratum Ar int
.Op Cm refid Ar string
.Op Cm mode Ar int
.Op Cm flag1 Cm 0 \&| Cm 1
.Op Cm flag2 Cm 0 \&| Cm 1
.Op Cm flag3 Cm 0 \&| Cm 1
.Op Cm flag4 Cm 0 \&| Cm 1
.Xc
This command can be used to configure reference clocks in
special ways.
It must immediately follow the
.Ic server
command which configures the driver.
Note that the same capability
is possible at run time using the
.Xr ntpdc @NTPDC_MS@
program.
The options are interpreted as
follows:
.Bl -tag -width indent
.It Cm time1 Ar sec
Specifies a constant to be added to the time offset produced by
the driver, a fixed\-point decimal number in seconds.
This is used
as a calibration constant to adjust the nominal time offset of a
particular clock to agree with an external standard, such as a
precision PPS signal.
It also provides a way to correct a
systematic error or bias due to serial port or operating system
latencies, different cable lengths or receiver internal delay.
The
specified offset is in addition to the propagation delay provided
by other means, such as internal DIPswitches.
Where a calibration
for an individual system and driver is available, an approximate
correction is noted in the driver documentation pages.
Note: in order to facilitate calibration when more than one
radio clock or PPS signal is supported, a special calibration
feature is available.
It takes the form of an argument to the
.Ic enable
command described in
.Sx Miscellaneous Options
page and operates as described in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
.It Cm time2 Ar secs
Specifies a fixed\-point decimal number in seconds, which is
interpreted in a driver\-dependent way.
See the descriptions of
specific drivers in the
.Qq Reference Clock Drivers
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ).
.It Cm stratum Ar int
Specifies the stratum number assigned to the driver, an integer
between 0 and 15.
This number overrides the default stratum number
ordinarily assigned by the driver itself, usually zero.
.It Cm refid Ar string
Specifies an ASCII string of from one to four characters which
defines the reference identifier used by the driver.
This string
overrides the default identifier ordinarily assigned by the driver
itself.
.It Cm mode Ar int
Specifies a mode number which is interpreted in a
device\-specific fashion.
For instance, it selects a dialing
protocol in the ACTS driver and a device subtype in the
parse
drivers.
.It Cm flag1 Cm 0 \&| Cm 1
.It Cm flag2 Cm 0 \&| Cm 1
.It Cm flag3 Cm 0 \&| Cm 1
.It Cm flag4 Cm 0 \&| Cm 1
These four flags are used for customizing the clock driver.
The
interpretation of these values, and whether they are used at all,
is a function of the particular clock driver.
However, by
convention
.Cm flag4
is used to enable recording monitoring
data to the
.Cm clockstats
file configured with the
.Ic filegen
command.
Further information on the
.Ic filegen
command can be found in
.Sx Monitoring Options .
.El
.El
.Sh Miscellaneous Options
.Bl -tag -width indent
.It Ic broadcastdelay Ar seconds
The broadcast and multicast modes require a special calibration
to determine the network delay between the local and remote
servers.
Ordinarily, this is done automatically by the initial
protocol exchanges between the client and server.
In some cases,
the calibration procedure may fail due to network or server access
controls, for example.
This command specifies the default delay to
be used under these circumstances.
Typically (for Ethernet), a
number between 0.003 and 0.007 seconds is appropriate.
The default
when this command is not used is 0.004 seconds.
.It Ic calldelay Ar delay
This option controls the delay in seconds between the first and second
packets sent in burst or iburst mode to allow additional time for a modem
or ISDN call to complete.
.It Ic driftfile Ar driftfile
This command specifies the complete path and name of the file used to
record the frequency of the local clock oscillator.
This is the same
operation as the
.Fl f
command line option.
If the file exists, it is read at
startup in order to set the initial frequency and then updated once per
hour with the current frequency computed by the daemon.
If the file name is
specified, but the file itself does not exist, the starts with an initial
frequency of zero and creates the file when writing it for the first time.
If this command is not given, the daemon will always start with an initial
frequency of zero.
.Pp
The file format consists of a single line containing a single
floating point number, which records the frequency offset measured
in parts\-per\-million (PPM).
The file is updated by first writing
the current drift value into a temporary file and then renaming
this file to replace the old version.
This implies that
.Xr ntpd @NTPD_MS@
must have write permission for the directory the
drift file is located in, and that file system links, symbolic or
otherwise, should be avoided.
.It Ic dscp Ar value
This option specifies the Differentiated Services Control Point (DSCP) value,
a 6\-bit code.
The default value is 46, signifying Expedited Forwarding.
.It Xo Ic enable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm mode7 | Cm monitor |
.Cm ntp | Cm stats |
.Cm peer_clear_digest_early |
.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
.Oc
.Xc
.It Xo Ic disable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm mode7 | Cm monitor |
.Cm ntp | Cm stats |
.Cm peer_clear_digest_early |
.Cm unpeer_crypto_early | Cm unpeer_crypto_nak_early | Cm unpeer_digest_early
.Oc
.Xc
Provides a way to enable or disable various server options.
Flags not mentioned are unaffected.
Note that all of these flags
can be controlled remotely using the
.Xr ntpdc @NTPDC_MS@
utility program.
.Bl -tag -width indent
.It Cm auth
Enables the server to synchronize with unconfigured peers only if the
peer has been correctly authenticated using either public key or
private key cryptography.
The default for this flag is
.Ic enable .
.It Cm bclient
Enables the server to listen for a message from a broadcast or
multicast server, as in the
.Ic multicastclient
command with default
address.
The default for this flag is
.Ic disable .
.It Cm calibrate
Enables the calibrate feature for reference clocks.
The default for
this flag is
.Ic disable .
.It Cm kernel
Enables the kernel time discipline, if available.
The default for this
flag is
.Ic enable
if support is available, otherwise
.Ic disable .
.It Cm mode7
Enables processing of NTP mode 7 implementation\-specific requests
which are used by the deprecated
.Xr ntpdc @NTPDC_MS@
program.
The default for this flag is disable.
This flag is excluded from runtime configuration using
.Xr ntpq @NTPQ_MS@ .
The
.Xr ntpq @NTPQ_MS@
program provides the same capabilities as
.Xr ntpdc @NTPDC_MS@
using standard mode 6 requests.
.It Cm monitor
Enables the monitoring facility.
See the
.Xr ntpdc @NTPDC_MS@
program
and the
.Ic monlist
command or further information.
The
default for this flag is
.Ic enable .
.It Cm ntp
Enables time and frequency discipline.
In effect, this switch opens and
closes the feedback loop, which is useful for testing.
The default for
this flag is
.Ic enable .
.It Cm peer_clear_digest_early
By default, if
.Xr ntpd @NTPD_MS@
is using autokey and it
receives a crypto\-NAK packet that
passes the duplicate packet and origin timestamp checks
the peer variables are immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto\-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm stats
Enables the statistics facility.
See the
.Sx Monitoring Options
section for further information.
The default for this flag is
.Ic disable .
.It Cm unpeer_crypto_early
By default, if
.Xr ntpd @NTPD_MS@
receives an autokey packet that fails TEST9,
a crypto failure,
the association is immediately cleared.
This is almost certainly a feature,
but if, in spite of the current recommendation of not using autokey,
you are
.B still
using autokey
.B and
you are seeing this sort of DoS attack
disabling this flag will delay
tearing down the association until the reachability counter
becomes zero.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm unpeer_crypto_nak_early
By default, if
.Xr ntpd @NTPD_MS@
receives a crypto\-NAK packet that
passes the duplicate packet and origin timestamp checks
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery if a server key has changed,
a properly forged and appropriately delivered crypto\-NAK packet
can be used in a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.It Cm unpeer_digest_early
By default, if
.Xr ntpd @NTPD_MS@
receives what should be an authenticated packet
that passes other packet sanity checks but
contains an invalid digest
the association is immediately cleared.
While this is generally a feature
as it allows for quick recovery,
if this type of packet is carefully forged and sent
during an appropriate window it can be used for a DoS attack.
If you have active noticable problems with this type of DoS attack
then you should consider
disabling this option.
You can check your
.Cm peerstats
file for evidence of any of these attacks.
The
default for this flag is
.Ic enable .
.El
.It Ic includefile Ar includefile
This command allows additional configuration commands
to be included from a separate file.
Include files may
be nested to a depth of five; upon reaching the end of any
include file, command processing resumes in the previous
configuration file.
This option is useful for sites that run
.Xr ntpd @NTPD_MS@
on multiple hosts, with (mostly) common options (e.g., a
restriction list).
.It Xo Ic interface
.Oo
.Cm listen | Cm ignore | Cm drop
.Oc
.Oo
.Cm all | Cm ipv4 | Cm ipv6 | Cm wildcard
.Ar name | Ar address
.Oo Cm / Ar prefixlen
.Oc
.Oc
.Xc
The
.Cm interface
directive controls which network addresses
.Xr ntpd @NTPD_MS@
opens, and whether input is dropped without processing.
The first parameter determines the action for addresses
which match the second parameter.
The second parameter specifies a class of addresses,
or a specific interface name,
or an address.
In the address case,
.Ar prefixlen
determines how many bits must match for this rule to apply.
.Cm ignore
prevents opening matching addresses,
.Cm drop
causes
.Xr ntpd @NTPD_MS@
to open the address and drop all received packets without examination.
Multiple
.Cm interface
directives can be used.
The last rule which matches a particular address determines the action for it.
.Cm interface
directives are disabled if any
.Fl I ,
.Fl \-interface ,
.Fl L ,
or
.Fl \-novirtualips
command\-line options are specified in the configuration file,
all available network addresses are opened.
The
.Cm nic
directive is an alias for
.Cm interface .
.It Ic leapfile Ar leapfile
This command loads the IERS leapseconds file and initializes the
leapsecond values for the next leapsecond event, leapfile expiration
time, and TAI offset.
The file can be obtained directly from the IERS at
.Li https://hpiers.obspm.fr/iers/bul/bulc/ntp/leap\-seconds.list
or
.Li ftp://hpiers.obspm.fr/iers/bul/bulc/ntp/leap\-seconds.list .
The
.Cm leapfile
is scanned when
.Xr ntpd @NTPD_MS@
processes the
.Cm leapfile directive or when
.Cm ntpd detects that the
.Ar leapfile
has changed.
.Cm ntpd
checks once a day to see if the
.Ar leapfile
has changed.
The
.Xr update\-leap 1update_leapmdoc
script can be run to see if the
.Ar leapfile
should be updated.
.It Ic leapsmearinterval Ar seconds
This EXPERIMENTAL option is only available if
.Xr ntpd @NTPD_MS@
was built with the
.Cm \-\-enable\-leap\-smear
option to the
.Cm configure
script.
It specifies the interval over which a leap second correction will be applied.
Recommended values for this option are between
7200 (2 hours) and 86400 (24 hours).
.Sy DO NOT USE THIS OPTION ON PUBLIC\-ACCESS SERVERS!
See http://bugs.ntp.org/2855 for more information.
.It Ic logconfig Ar configkeyword
This command controls the amount and type of output written to
the system
.Xr syslog 3
facility or the alternate
.Ic logfile
log file.
By default, all output is turned on.
All
.Ar configkeyword
keywords can be prefixed with
.Ql = ,
.Ql +
and
.Ql \- ,
where
.Ql =
sets the
.Xr syslog 3
priority mask,
.Ql +
adds and
.Ql \-
removes
messages.
.Xr syslog 3
messages can be controlled in four
classes
.Po
.Cm clock ,
.Cm peer ,
.Cm sys
and
.Cm sync
.Pc .
Within these classes four types of messages can be
controlled: informational messages
.Po
.Cm info
.Pc ,
event messages
.Po
.Cm events
.Pc ,
statistics messages
.Po
.Cm statistics
.Pc
and
status messages
.Po
.Cm status
.Pc .
.Pp
Configuration keywords are formed by concatenating the message class with
the event class.
The
.Cm all
prefix can be used instead of a message class.
A
message class may also be followed by the
.Cm all
keyword to enable/disable all
messages of the respective message class.
Thus, a minimal log configuration
could look like this:
.Bd -literal
logconfig =syncstatus +sysevents
.Ed
.Pp
This would just list the synchronizations state of
.Xr ntpd @NTPD_MS@
and the major system events.
For a simple reference server, the
following minimum message configuration could be useful:
.Bd -literal
logconfig =syncall +clockall
.Ed
.Pp
This configuration will list all clock information and
synchronization information.
All other events and messages about
peers, system events and so on is suppressed.
.It Ic logfile Ar logfile
This command specifies the location of an alternate log file to
be used instead of the default system
.Xr syslog 3
facility.
This is the same operation as the
.Fl l
command line option.
.It Xo Ic mru
.Oo
.Cm maxdepth Ar count | Cm maxmem Ar kilobytes |
.Cm mindepth Ar count | Cm maxage Ar seconds |
.Cm initialloc Ar count | Cm initmem Ar kilobytes |
.Cm incalloc Ar count | Cm incmem Ar kilobytes
.Oc
.Xc
Controls size limite of the monitoring facility's Most Recently Used
(MRU) list
of client addresses, which is also used by the
rate control facility.
.Bl -tag -width indent
.It Ic maxdepth Ar count
.It Ic maxmem Ar kilobytes
Equivalent upper limits on the size of the MRU list, in terms of entries or kilobytes.
The acutal limit will be up to
.Cm incalloc
entries or
.Cm incmem
kilobytes larger.
As with all of the
.Cm mru
options offered in units of entries or kilobytes, if both
.Cm maxdepth
and
.Cm maxmem are used, the last one used controls.
The default is 1024 kilobytes.
.It Cm mindepth Ar count
Lower limit on the MRU list size.
When the MRU list has fewer than
.Cm mindepth
entries, existing entries are never removed to make room for newer ones,
regardless of their age.
The default is 600 entries.
.It Cm maxage Ar seconds
Once the MRU list has
.Cm mindepth
entries and an additional client is to ba added to the list,
if the oldest entry was updated more than
.Cm maxage
seconds ago, that entry is removed and its storage is reused.
If the oldest entry was updated more recently the MRU list is grown,
subject to
.Cm maxdepth / moxmem .
The default is 64 seconds.
.It Cm initalloc Ar count
.It Cm initmem Ar kilobytes
Initial memory allocation at the time the monitoringfacility is first enabled,
in terms of the number of entries or kilobytes.
The default is 4 kilobytes.
.It Cm incalloc Ar count
.It Cm incmem Ar kilobytes
Size of additional memory allocations when growing the MRU list, in entries or kilobytes.
The default is 4 kilobytes.
.El
.It Ic nonvolatile Ar threshold
Specify the
.Ar threshold
delta in seconds before an hourly change to the
.Cm driftfile
(frequency file) will be written, with a default value of 1e\-7 (0.1 PPM).
The frequency file is inspected each hour.
If the difference between the current frequency and the last value written
exceeds the threshold, the file is written and the
.Cm threshold
becomes the new threshold value.
If the threshold is not exceeeded, it is reduced by half.
This is intended to reduce the number of file writes
for embedded systems with nonvolatile memory.
.It Ic phone Ar dial ...
This command is used in conjunction with
the ACTS modem driver (type 18)
or the JJY driver (type 40, mode 100 \- 180).
For the ACTS modem driver (type 18), the arguments consist of
a maximum of 10 telephone numbers used to dial USNO, NIST, or European
time service.
For the JJY driver (type 40 mode 100 \- 180), the argument is
one telephone number used to dial the telephone JJY service.
The Hayes command ATDT is normally prepended to the number.
The number can contain other modem control codes as well.
.It Xo Cm pollskewlist
.Oo
.Ar poll
.Ar early late
.Oc
.Ar ...
.Oo
.Cm default
.Ar early late
.Oc
.Xc
Enable skewing of our poll requests to our servers.
.Ar poll
is a number between 3 and 17 inclusive, identifying a specific poll interval.
A poll interval is 2^n seconds in duration,
so a poll value of 3 corresponds to 8 seconds
and
a poll interval of 17 corresponds to
131,072 seconds, or about a day and a half.
The next two numbers must be between 0 and one\-half of the poll interval,
inclusive.
Ar early
specifies how early the poll may start,
while
Ar late
specifies how late the poll may be delayed.
With no arguments, internally specified default values are chosen.
.It Xo Ic reset
.Oo
.Ic allpeers
.Oc
.Oo
.Ic auth
.Oc
.Oo
.Ic ctl
.Oc
.Oo
.Ic io
.Oc
.Oo
.Ic mem
.Oc
.Oo
.Ic sys
.Oc
.Oo
.Ic timer
.Oc
.Xc
Reset one or more groups of counters maintained by
.Cm ntpd
and exposed by
.Cm ntpq
and
.Cm ntpdc .
.It Xo Ic rlimit
.Oo
.Cm memlock Ar Nmegabytes |
.Cm stacksize Ar N4kPages
.Cm filenum Ar Nfiledescriptors
.Oc
.Xc
.Bl -tag -width indent
.It Cm memlock Ar Nmegabytes
Specify the number of megabytes of memory that should be
allocated and locked.
Probably only available under Linux, this option may be useful
when dropping root (the
.Fl i
option).
The default is 32 megabytes on non\-Linux machines, and \-1 under Linux.
-1 means "do not lock the process into memory".
0 means "lock whatever memory the process wants into memory".
.It Cm stacksize Ar N4kPages
Specifies the maximum size of the process stack on systems with the
.Fn mlockall
function.
Defaults to 50 4k pages (200 4k pages in OpenBSD).
.It Cm filenum Ar Nfiledescriptors
Specifies the maximum number of file descriptors ntpd may have open at once.
Defaults to the system default.
.El
.It Ic saveconfigdir Ar directory_path
Specify the directory in which to write configuration snapshots
requested with
.Cm ntpq 's
.Cm saveconfig
command.
If
.Cm saveconfigdir
does not appear in the configuration file,
.Cm saveconfig
requests are rejected by
.Cm ntpd .
.It Ic saveconfig Ar filename
Write the current configuration, including any runtime
modifications given with
.Cm :config
or
.Cm config\-from\-file
to the
.Cm ntpd
host's
.Ar filename
in the
.Cm saveconfigdir .
This command will be rejected unless the
.Cm saveconfigdir
directive appears in
.Cm ntpd 's
configuration file.
.Ar filename
can use
.Xr strftime 3
format directives to substitute the current date and time,
for example,
.Cm saveconfig\ ntp\-%Y%m%d\-%H%M%S.conf .
The filename used is stored in the system variable
.Cm savedconfig .
Authentication is required.
.It Ic setvar Ar variable Op Cm default
This command adds an additional system variable.
These
variables can be used to distribute additional information such as
the access policy.
If the variable of the form
.Sm off
.Va name = Ar value
.Sm on
is followed by the
.Cm default
keyword, the
variable will be listed as part of the default system variables
.Po
.Xr ntpq @NTPQ_MS@
.Ic rv
command
.Pc ) .
These additional variables serve
informational purposes only.
They are not related to the protocol
other that they can be listed.
The known protocol variables will
always override any variables defined via the
.Ic setvar
mechanism.
There are three special variables that contain the names
of all variable of the same group.
The
.Va sys_var_list
holds
the names of all system variables.
The
.Va peer_var_list
holds
the names of all peer variables and the
.Va clock_var_list
holds the names of the reference clock variables.
.It Cm sysinfo
Display operational summary.
.It Cm sysstats
Show statistics counters maintained in the protocol module.
.It Xo Ic tinker
.Oo
.Cm allan Ar allan |
.Cm dispersion Ar dispersion |
.Cm freq Ar freq |
.Cm huffpuff Ar huffpuff |
.Cm panic Ar panic |
.Cm step Ar step |
.Cm stepback Ar stepback |
.Cm stepfwd Ar stepfwd |
.Cm stepout Ar stepout
.Oc
.Xc
This command can be used to alter several system variables in
very exceptional circumstances.
It should occur in the
configuration file before any other configuration options.
The
default values of these variables have been carefully optimized for
a wide range of network speeds and reliability expectations.
In
general, they interact in intricate ways that are hard to predict
and some combinations can result in some very nasty behavior.
Very
rarely is it necessary to change the default values; but, some
folks cannot resist twisting the knobs anyway and this command is
for them.
Emphasis added: twisters are on their own and can expect
no help from the support group.
.Pp
The variables operate as follows:
.Bl -tag -width indent
.It Cm allan Ar allan
The argument becomes the new value for the minimum Allan
intercept, which is a parameter of the PLL/FLL clock discipline
algorithm.
The value in log2 seconds defaults to 7 (1024 s), which is also the lower
limit.
.It Cm dispersion Ar dispersion
The argument becomes the new value for the dispersion increase rate,
normally .000015 s/s.
.It Cm freq Ar freq
The argument becomes the initial value of the frequency offset in
parts\-per\-million.
This overrides the value in the frequency file, if
present, and avoids the initial training state if it is not.
.It Cm huffpuff Ar huffpuff
The argument becomes the new value for the experimental
huff\-n'\-puff filter span, which determines the most recent interval
the algorithm will search for a minimum delay.
The lower limit is
900 s (15 m), but a more reasonable value is 7200 (2 hours).
There
is no default, since the filter is not enabled unless this command
is given.
.It Cm panic Ar panic
The argument is the panic threshold, normally 1000 s.
If set to zero,
the panic sanity check is disabled and a clock offset of any value will
be accepted.
.It Cm step Ar step
The argument is the step threshold, which by default is 0.128 s.
It can
be set to any positive number in seconds.
If set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if the step threshold is set to zero or greater than the
default.
.It Cm stepback Ar stepback
The argument is the step threshold for the backward direction,
which by default is 0.128 s.
It can
be set to any positive number in seconds.
If both the forward and backward step thresholds are set to zero, step
adjustments will never occur.
Note: The kernel time discipline is
disabled if
each direction of step threshold are either
set to zero or greater than .5 second.
.It Cm stepfwd Ar stepfwd
As for stepback, but for the forward direction.
.It Cm stepout Ar stepout
The argument is the stepout timeout, which by default is 900 s.
It can
be set to any positive number in seconds.
If set to zero, the stepout
pulses will not be suppressed.
.El
.It Cm writevar Ar assocID\ name = value [,...]
Write (create or update) the specified variables.
If the
.Cm assocID
is zero, the variablea re from the
system variables
name space, otherwise they are from the
peer variables
name space.
The
.Cm assocID
is required, as the same name can occur in both name spaces.
.It Xo Ic trap Ar host_address
.Op Cm port Ar port_number
.Op Cm interface Ar interface_address
.Xc
This command configures a trap receiver at the given host
address and port number for sending messages with the specified
local interface address.
If the port number is unspecified, a value
of 18447 is used.
If the interface address is not specified, the
message is sent with a source address of the local interface the
message is sent through.
Note that on a multihomed host the
interface used may vary from time to time with routing changes.
.It Cm ttl Ar hop ...
This command specifies a list of TTL values in increasing order.
Up to 8 values can be specified.
In
.Cm manycast
mode these values are used in\-turn in an expanding\-ring search.
The default is eight multiples of 32 starting at 31.
.Pp
The trap receiver will generally log event messages and other
information from the server in a log file.
While such monitor
programs may also request their own trap dynamically, configuring a
trap receiver will ensure that no messages are lost when the server
is started.
.It Cm hop Ar ...
This command specifies a list of TTL values in increasing order, up to 8
values can be specified.
In manycast mode these values are used in turn in
an expanding\-ring search.
The default is eight multiples of 32 starting at
31.
.El
.Sh "OPTIONS"
.Bl -tag
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_CONF_<option\-name>\fP or \fBNTP_CONF\fP
.fi
.ad
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.drift -compact
.It Pa /etc/ntp.conf
the default name of the configuration file
.It Pa ntp.keys
private MD5 keys
.It Pa ntpkey
RSA private key
.It Pa ntpkey_ Ns Ar host
RSA public key
.It Pa ntp_dh
Diffie\-Hellman agreement parameters
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntpd @NTPD_MS@ ,
.Xr ntpdc @NTPDC_MS@ ,
.Xr ntpq @NTPQ_MS@
.Pp
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
.Li http://www.ntp.org/ .
A snapshot of this documentation is available in HTML format in
.Pa /usr/share/doc/ntp .
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 4)
.%O RFC5905
.Re
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The syntax checking is not picky; some combinations of
ridiculous and even hilarious options and modes may not be
detected.
.Pp
The
.Pa ntpkey_ Ns Ar host
files are really digital
certificates.
These should be obtained via secure directory
services when they become universally available.
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
This document was derived from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp.conf\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.keys.5man b/contrib/ntp/ntpd/ntp.keys.5man
index 57086242537c..24dbfcf034a9 100644
--- a/contrib/ntp/ntpd/ntp.keys.5man
+++ b/contrib/ntp/ntpd/ntp.keys.5man
@@ -1,189 +1,189 @@
-.TH ntp.keys 5man "31 May 2023" "4.2.8p16" "File Formats"
+.TH ntp.keys 5man "06 Jun 2023" "4.2.8p17" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:41 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:47 AM by AutoGen 5.18.16
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.\"
.SH NAME
ntp.keys \- NTP symmetric key file format configuration file
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
.SH SYNOPSIS
\f\*[B-Font]\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
"Authentication Support"
section of the
\fCntp.conf\f[]\fR(5)\f[]
page.
.sp \n(Ppu
.ne 2
\fCntpd\f[]\fR(8)\f[]
reads its keys from a file specified using the
\f\*[B-Font]\-k\f[]
command line option or the
\f\*[B-Font]keys\f[]
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
.sp \n(Ppu
.ne 2
The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
.sp \n(Ppu
.ne 2
.in +4
\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[] \f\*[I-Font]opt_IP_list\f[]
.in -4
.sp \n(Ppu
.ne 2
where
\f\*[I-Font]keyno\f[]
is a positive integer (between 1 and 65535),
\f\*[I-Font]type\f[]
is the message digest algorithm,
\f\*[I-Font]key\f[]
is the key itself, and
\f\*[I-Font]opt_IP_list\f[]
is an optional comma-separated list of IPs
where the
\f\*[I-Font]keyno\f[]
should be trusted.
that are allowed to serve time.
Each IP in
\f\*[I-Font]opt_IP_list\f[]
may contain an optional
\f\*[B-Font]/subnetbits\f[]
specification which identifies the number of bits for
the desired subnet of trust.
If
\f\*[I-Font]opt_IP_list\f[]
is empty,
any properly-authenticated message will be
accepted.
.sp \n(Ppu
.ne 2
The
\f\*[I-Font]key\f[]
may be given in a format
controlled by the
\f\*[I-Font]type\f[]
field.
The
\f\*[I-Font]type\f[]
\f[C]MD5\f[]
is always supported.
If
\f[C]ntpd\f[]
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140-2 is required the
\f\*[I-Font]type\f[]
must be either
\f[C]SHA\f[]
or
\f[C]SHA1\f[].
.sp \n(Ppu
.ne 2
What follows are some key types, and corresponding formats:
.sp \n(Ppu
.ne 2
.TP 7
.NOP \f[C]MD5\f[]
The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
\f[C]#\f[]
(which is the "start of comment" character).
.sp \n(Ppu
.ne 2
.br
.ns
.TP 7
.NOP \f[C]SHA\f[]
.br
.ns
.TP 7
.NOP \f[C]SHA1\f[]
.br
.ns
.TP 7
.NOP \f[C]RMD160\f[]
The key is a hex-encoded ASCII string of 40 characters,
which is truncated as necessary.
.PP
.sp \n(Ppu
.ne 2
Note that the keys used by the
\fCntpq\f[]\fR(8)\f[]
and
\fCntpdc\f[]\fR(8)\f[]
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
.SH FILES
.TP 14
.NOP \fI/etc/ntp.keys\f[]
the default name of the configuration file
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpd\f[]\fR(1ntpdmdoc)\f[],
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[],
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[],
\fCsntp\f[]\fR(1sntpmdoc)\f[]
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
This document was derived from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp.keys\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.keys.5mdoc b/contrib/ntp/ntpd/ntp.keys.5mdoc
index 3d8fe0d54070..100320fd2330 100644
--- a/contrib/ntp/ntpd/ntp.keys.5mdoc
+++ b/contrib/ntp/ntpd/ntp.keys.5mdoc
@@ -1,174 +1,174 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_KEYS 5mdoc File Formats
.Os FreeBSD 12.1-RELEASE_SI
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:28 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:34 AM by AutoGen 5.18.16
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
.Qq Authentication Support
section of the
.Xr ntp.conf 5
page.
.Pp
.Xr ntpd 8
reads its keys from a file specified using the
.Fl k
command line option or the
.Ic keys
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
.Pp
The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
.Pp
.D1 Ar keyno type key opt_IP_list
.Pp
where
.Ar keyno
is a positive integer (between 1 and 65535),
.Ar type
is the message digest algorithm,
.Ar key
is the key itself, and
.Ar opt_IP_list
is an optional comma\-separated list of IPs
where the
.Ar keyno
should be trusted.
that are allowed to serve time.
Each IP in
.Ar opt_IP_list
may contain an optional
.Cm /subnetbits
specification which identifies the number of bits for
the desired subnet of trust.
If
.Ar opt_IP_list
is empty,
any properly\-authenticated message will be
accepted.
.Pp
The
.Ar key
may be given in a format
controlled by the
.Ar type
field.
The
.Ar type
.Li MD5
is always supported.
If
.Li ntpd
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140\-2 is required the
.Ar type
must be either
.Li SHA
or
.Li SHA1 .
.Pp
What follows are some key types, and corresponding formats:
.Pp
.Bl -tag -width RMD160 -compact
.It Li MD5
The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
.Li #
(which is the "start of comment" character).
.Pp
.It Li SHA
.It Li SHA1
.It Li RMD160
The key is a hex\-encoded ASCII string of 40 characters,
which is truncated as necessary.
.El
.Pp
Note that the keys used by the
.Xr ntpq 8
and
.Xr ntpdc 8
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
.Sh "OPTIONS"
.Bl -tag
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_KEYS_<option\-name>\fP or \fBNTP_KEYS\fP
.fi
.ad
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.keys -compact
.It Pa /etc/ntp.keys
the default name of the configuration file
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpd 1ntpdmdoc ,
.Xr ntpdate 1ntpdatemdoc ,
.Xr ntpdc 1ntpdcmdoc ,
.Xr sntp 1sntpmdoc
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
This document was derived from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp.keys\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.keys.html b/contrib/ntp/ntpd/ntp.keys.html
index 43e3c2565200..2d53d91f4d40 100644
--- a/contrib/ntp/ntpd/ntp.keys.html
+++ b/contrib/ntp/ntpd/ntp.keys.html
@@ -1,247 +1,247 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>NTP Symmetric Key</title>
<meta name="description" content="NTP Symmetric Key">
<meta name="keywords" content="NTP Symmetric Key">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">NTP Symmetric Key</h1>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntp_002ekeys-Description" accesskey="n" rel="next">ntp.keys Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="NTP_0027s-Symmetric-Key-File-User-Manual"></span><h1 class="top">NTP&rsquo;s Symmetric Key File User Manual</h1>
<p>This document describes the symmetric key file for the NTP Project&rsquo;s
<code>ntpd</code> program.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntp.keys</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntp.keys</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-Description" accesskey="1">ntp.keys Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-Notes" accesskey="2">ntp.keys Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntp_002ekeys-Description"></span><div class="header">
<p>
Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>The name and location of the symmetric key file for <code>ntpd</code> can
be specified in a configuration file, by default <code>/etc/ntp.keys</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-Notes" accesskey="1">Notes about ntp.keys</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntp_002ekeys-Notes"></span><div class="header">
<p>
Previous: <a href="#ntp_002ekeys-See-Also" accesskey="p" rel="prev">ntp.keys See Also</a>, Up: <a href="#ntp_002ekeys-Description" accesskey="u" rel="up">ntp.keys Description</a> &nbsp; </p>
</div>
<span id="Notes-about-ntp_002ekeys"></span><h3 class="section">1.1 Notes about ntp.keys</h3>
<span id="index-ntp_002ekeys"></span>
<span id="index-NTP-symmetric-key-file-format"></span>
<p>This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
&quot;Authentication Support&quot;
section of the
<code>ntp.conf(5)</code>
page.
</p>
<p><code>ntpd(8)</code>
reads its keys from a file specified using the
<code>-k</code>
command line option or the
<code>keys</code>
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
</p>
<p>The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
</p>
<div class="example">
<pre class="example"><kbd>keyno</kbd> <kbd>type</kbd> <kbd>key</kbd> <kbd>opt_IP_list</kbd>
</pre></div>
<p>where
<kbd>keyno</kbd>
is a positive integer (between 1 and 65535),
<kbd>type</kbd>
is the message digest algorithm,
<kbd>key</kbd>
is the key itself, and
<kbd>opt_IP_list</kbd>
is an optional comma-separated list of IPs
where the
<kbd>keyno</kbd>
should be trusted.
that are allowed to serve time.
Each IP in
<kbd>opt_IP_list</kbd>
may contain an optional
<code>/subnetbits</code>
specification which identifies the number of bits for
the desired subnet of trust.
If
<kbd>opt_IP_list</kbd>
is empty,
any properly-authenticated message will be
accepted.
</p>
<p>The
<kbd>key</kbd>
may be given in a format
controlled by the
<kbd>type</kbd>
field.
The
<kbd>type</kbd>
<code>MD5</code>
is always supported.
If
<code>ntpd</code>
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140-2 is required the
<kbd>type</kbd>
must be either
<code>SHA</code>
or
<code>SHA1</code>.
</p>
<p>What follows are some key types, and corresponding formats:
</p>
<dl compact="compact">
<dt><code>MD5</code></dt>
<dd><p>The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
<code>#</code>
(which is the &quot;start of comment&quot; character).
</p>
</dd>
<dt><code>SHA</code></dt>
<dt><code>SHA1</code></dt>
<dt><code>RMD160</code></dt>
<dd><p>The key is a hex-encoded ASCII string of 40 characters,
which is truncated as necessary.
</p></dd>
</dl>
<p>Note that the keys used by the
<code>ntpq(8)</code>
and
<code>ntpdc(8)</code>
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp.keys</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-Files" accesskey="1">ntp.keys Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Files
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-See-Also" accesskey="2">ntp.keys See Also</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">See Also
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002ekeys-Notes" accesskey="3">ntp.keys Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notes
</td></tr>
</table>
<hr>
<span id="ntp_002ekeys-Files"></span><div class="header">
<p>
Next: <a href="#ntp_002ekeys-See-Also" accesskey="n" rel="next">ntp.keys See Also</a>, Up: <a href="#ntp_002ekeys-Notes" accesskey="u" rel="up">ntp.keys Notes</a> &nbsp; </p>
</div>
<span id="ntp_002ekeys-Files-1"></span><h4 class="subsection">1.1.1 ntp.keys Files</h4>
<dl compact="compact">
<dt><samp>/etc/ntp.keys</samp></dt>
<dd><p>the default name of the configuration file
</p></dd>
</dl>
<hr>
<span id="ntp_002ekeys-See-Also"></span><div class="header">
<p>
Previous: <a href="#ntp_002ekeys-Files" accesskey="p" rel="prev">ntp.keys Files</a>, Up: <a href="#ntp_002ekeys-Notes" accesskey="u" rel="up">ntp.keys Notes</a> &nbsp; </p>
</div>
<span id="ntp_002ekeys-See-Also-1"></span><h4 class="subsection">1.1.2 ntp.keys See Also</h4>
<p><code>ntp.conf(5)</code>,
<code>ntpd(1ntpdmdoc)</code>,
<code>ntpdate(1ntpdatemdoc)</code>,
<code>ntpdc(1ntpdcmdoc)</code>,
<code>sntp(1sntpmdoc)</code>
</p><hr>
<div class="header">
<p>
&nbsp; </p>
</div>
<span id="ntp_002ekeys-Notes-1"></span><h4 class="subsection">1.1.3 ntp.keys Notes</h4>
<p>This document was derived from FreeBSD.
</p><hr>
</body>
</html>
diff --git a/contrib/ntp/ntpd/ntp.keys.man.in b/contrib/ntp/ntpd/ntp.keys.man.in
index 1655a4bacbcd..c646bb11e776 100644
--- a/contrib/ntp/ntpd/ntp.keys.man.in
+++ b/contrib/ntp/ntpd/ntp.keys.man.in
@@ -1,189 +1,189 @@
-.TH ntp.keys 5 "31 May 2023" "4.2.8p16" "File Formats"
+.TH ntp.keys 5 "06 Jun 2023" "4.2.8p17" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:41 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:47 AM by AutoGen 5.18.16
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.\"
.SH NAME
ntp.keys \- NTP symmetric key file format configuration file
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
.SH SYNOPSIS
\f\*[B-Font]\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
"Authentication Support"
section of the
\fCntp.conf\f[]\fR(5)\f[]
page.
.sp \n(Ppu
.ne 2
\fCntpd\f[]\fR(8)\f[]
reads its keys from a file specified using the
\f\*[B-Font]\-k\f[]
command line option or the
\f\*[B-Font]keys\f[]
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
.sp \n(Ppu
.ne 2
The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
.sp \n(Ppu
.ne 2
.in +4
\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[] \f\*[I-Font]opt_IP_list\f[]
.in -4
.sp \n(Ppu
.ne 2
where
\f\*[I-Font]keyno\f[]
is a positive integer (between 1 and 65535),
\f\*[I-Font]type\f[]
is the message digest algorithm,
\f\*[I-Font]key\f[]
is the key itself, and
\f\*[I-Font]opt_IP_list\f[]
is an optional comma-separated list of IPs
where the
\f\*[I-Font]keyno\f[]
should be trusted.
that are allowed to serve time.
Each IP in
\f\*[I-Font]opt_IP_list\f[]
may contain an optional
\f\*[B-Font]/subnetbits\f[]
specification which identifies the number of bits for
the desired subnet of trust.
If
\f\*[I-Font]opt_IP_list\f[]
is empty,
any properly-authenticated message will be
accepted.
.sp \n(Ppu
.ne 2
The
\f\*[I-Font]key\f[]
may be given in a format
controlled by the
\f\*[I-Font]type\f[]
field.
The
\f\*[I-Font]type\f[]
\f[C]MD5\f[]
is always supported.
If
\f[C]ntpd\f[]
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140-2 is required the
\f\*[I-Font]type\f[]
must be either
\f[C]SHA\f[]
or
\f[C]SHA1\f[].
.sp \n(Ppu
.ne 2
What follows are some key types, and corresponding formats:
.sp \n(Ppu
.ne 2
.TP 7
.NOP \f[C]MD5\f[]
The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
\f[C]#\f[]
(which is the "start of comment" character).
.sp \n(Ppu
.ne 2
.br
.ns
.TP 7
.NOP \f[C]SHA\f[]
.br
.ns
.TP 7
.NOP \f[C]SHA1\f[]
.br
.ns
.TP 7
.NOP \f[C]RMD160\f[]
The key is a hex-encoded ASCII string of 40 characters,
which is truncated as necessary.
.PP
.sp \n(Ppu
.ne 2
Note that the keys used by the
\fCntpq\f[]\fR(8)\f[]
and
\fCntpdc\f[]\fR(8)\f[]
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
.SH FILES
.TP 14
.NOP \fI/etc/ntp.keys\f[]
the default name of the configuration file
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpd\f[]\fR(@NTPD_MS@)\f[],
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[],
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[],
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
This document was derived from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp.keys\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp.keys.mdoc.in b/contrib/ntp/ntpd/ntp.keys.mdoc.in
index 0a85da0b020e..fdeaeba4c938 100644
--- a/contrib/ntp/ntpd/ntp.keys.mdoc.in
+++ b/contrib/ntp/ntpd/ntp.keys.mdoc.in
@@ -1,174 +1,174 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_KEYS 5 File Formats
.Os FreeBSD 12.1-RELEASE_SI
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:28 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:34 AM by AutoGen 5.18.16
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.Sh NAME
.Nm ntp.keys
.Nd NTP symmetric key file format
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
This document describes the format of an NTP symmetric key file.
For a description of the use of this type of file, see the
.Qq Authentication Support
section of the
.Xr ntp.conf 5
page.
.Pp
.Xr ntpd 8
reads its keys from a file specified using the
.Fl k
command line option or the
.Ic keys
statement in the configuration file.
While key number 0 is fixed by the NTP standard
(as 56 zero bits)
and may not be changed,
one or more keys numbered between 1 and 65535
may be arbitrarily set in the keys file.
.Pp
The key file uses the same comment conventions
as the configuration file.
Key entries use a fixed format of the form
.Pp
.D1 Ar keyno type key opt_IP_list
.Pp
where
.Ar keyno
is a positive integer (between 1 and 65535),
.Ar type
is the message digest algorithm,
.Ar key
is the key itself, and
.Ar opt_IP_list
is an optional comma\-separated list of IPs
where the
.Ar keyno
should be trusted.
that are allowed to serve time.
Each IP in
.Ar opt_IP_list
may contain an optional
.Cm /subnetbits
specification which identifies the number of bits for
the desired subnet of trust.
If
.Ar opt_IP_list
is empty,
any properly\-authenticated message will be
accepted.
.Pp
The
.Ar key
may be given in a format
controlled by the
.Ar type
field.
The
.Ar type
.Li MD5
is always supported.
If
.Li ntpd
was built with the OpenSSL library
then any digest library supported by that library may be specified.
However, if compliance with FIPS 140\-2 is required the
.Ar type
must be either
.Li SHA
or
.Li SHA1 .
.Pp
What follows are some key types, and corresponding formats:
.Pp
.Bl -tag -width RMD160 -compact
.It Li MD5
The key is 1 to 16 printable characters terminated by
an EOL,
whitespace,
or
a
.Li #
(which is the "start of comment" character).
.Pp
.It Li SHA
.It Li SHA1
.It Li RMD160
The key is a hex\-encoded ASCII string of 40 characters,
which is truncated as necessary.
.El
.Pp
Note that the keys used by the
.Xr ntpq 8
and
.Xr ntpdc 8
programs are checked against passwords
requested by the programs and entered by hand,
so it is generally appropriate to specify these keys in ASCII format.
.Sh "OPTIONS"
.Bl -tag
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTP_KEYS_<option\-name>\fP or \fBNTP_KEYS\fP
.fi
.ad
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.keys -compact
.It Pa /etc/ntp.keys
the default name of the configuration file
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpd @NTPD_MS@ ,
.Xr ntpdate @NTPDATE_MS@ ,
.Xr ntpdc @NTPDC_MS@ ,
.Xr sntp @SNTP_MS@
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
This document was derived from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp.keys\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntp_config.c b/contrib/ntp/ntpd/ntp_config.c
index f7219b8ee560..d9a753ee3a1e 100644
--- a/contrib/ntp/ntpd/ntp_config.c
+++ b/contrib/ntp/ntpd/ntp_config.c
@@ -1,5893 +1,5911 @@
/* ntp_config.c
*
* This file contains the ntpd configuration code.
*
* Written By: Sachin Kamboj
* University of Delaware
* Newark, DE 19711
* Some parts borrowed from the older ntp_config.c
* Copyright (c) 2006
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef HAVE_NETINFO
# include <netinfo/ni.h>
#endif
#include <stdio.h>
#include <ctype.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#include <signal.h>
#ifndef SIGCHLD
# define SIGCHLD SIGCLD
#endif
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
#include <time.h>
#include <isc/net.h>
#include <isc/result.h>
#include "ntp.h"
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_unixtime.h"
#include "ntp_refclock.h"
#include "ntp_clockdev.h"
#include "ntp_filegen.h"
#include "ntp_stdlib.h"
#include "lib_strbuf.h"
#include "ntp_assert.h"
#include "ntp_random.h"
/*
* [Bug 467]: Some linux headers collide with CONFIG_PHONE and CONFIG_KEYS
* so #include these later.
*/
#include "ntp_config.h"
#include "ntp_cmdargs.h"
#include "ntp_scanner.h"
#include "ntp_parser.h"
#include "ntpd-opts.h"
#ifndef IGNORE_DNS_ERRORS
# define DNSFLAGS 0
#else
# define DNSFLAGS GAIR_F_IGNDNSERR
#endif
extern int yyparse(void);
/* Bug 2817 */
#if defined(HAVE_SYS_MMAN_H)
# include <sys/mman.h>
#endif
/* list of servers from command line for config_peers() */
int cmdline_server_count;
char ** cmdline_servers;
/* Current state of memory locking:
* -1: default
* 0: memory locking disabled
* 1: Memory locking enabled
*/
int cur_memlock = -1;
/*
* "logconfig" building blocks
*/
struct masks {
const char * const name;
const u_int32 mask;
};
static struct masks logcfg_class[] = {
{ "clock", NLOG_OCLOCK },
{ "peer", NLOG_OPEER },
{ "sync", NLOG_OSYNC },
{ "sys", NLOG_OSYS },
{ NULL, 0 }
};
/* logcfg_noclass_items[] masks are complete and must not be shifted */
static struct masks logcfg_noclass_items[] = {
{ "allall", NLOG_SYSMASK | NLOG_PEERMASK | NLOG_CLOCKMASK | NLOG_SYNCMASK },
{ "allinfo", NLOG_SYSINFO | NLOG_PEERINFO | NLOG_CLOCKINFO | NLOG_SYNCINFO },
{ "allevents", NLOG_SYSEVENT | NLOG_PEEREVENT | NLOG_CLOCKEVENT | NLOG_SYNCEVENT },
{ "allstatus", NLOG_SYSSTATUS | NLOG_PEERSTATUS | NLOG_CLOCKSTATUS | NLOG_SYNCSTATUS },
{ "allstatistics", NLOG_SYSSTATIST | NLOG_PEERSTATIST | NLOG_CLOCKSTATIST | NLOG_SYNCSTATIST },
/* the remainder are misspellings of clockall, peerall, sysall, and syncall. */
{ "allclock", (NLOG_INFO | NLOG_STATIST | NLOG_EVENT | NLOG_STATUS) << NLOG_OCLOCK },
{ "allpeer", (NLOG_INFO | NLOG_STATIST | NLOG_EVENT | NLOG_STATUS) << NLOG_OPEER },
{ "allsys", (NLOG_INFO | NLOG_STATIST | NLOG_EVENT | NLOG_STATUS) << NLOG_OSYS },
{ "allsync", (NLOG_INFO | NLOG_STATIST | NLOG_EVENT | NLOG_STATUS) << NLOG_OSYNC },
{ NULL, 0 }
};
/* logcfg_class_items[] masks are shiftable by NLOG_O* counts */
static struct masks logcfg_class_items[] = {
{ "all", NLOG_INFO | NLOG_EVENT | NLOG_STATUS | NLOG_STATIST },
{ "info", NLOG_INFO },
{ "events", NLOG_EVENT },
{ "status", NLOG_STATUS },
{ "statistics", NLOG_STATIST },
{ NULL, 0 }
};
typedef struct peer_resolved_ctx_tag {
int flags;
int host_mode; /* T_* token identifier */
u_short family;
keyid_t keyid;
u_char hmode; /* MODE_* */
u_char version;
u_char minpoll;
u_char maxpoll;
u_int32 ttl;
const char * group;
+ int was_initializing;
} peer_resolved_ctx;
/* Limits */
#define MAXPHONE 10 /* maximum number of phone strings */
#define MAXPPS 20 /* maximum length of PPS device string */
/*
* Poll Skew List
*/
static psl_item psl[17-3+1]; /* values for polls 3-17 */
/* To simplify the runtime code we */
/* don't want to have to special-case */
/* dealing with a default */
/*
* Miscellaneous macros
*/
#define ISEOL(c) ((c) == '#' || (c) == '\n' || (c) == '\0')
#define ISSPACE(c) ((c) == ' ' || (c) == '\t')
#define _UC(str) ((char *)(intptr_t)(str))
/*
* Definitions of things either imported from or exported to outside
*/
extern int yydebug; /* ntp_parser.c (.y) */
config_tree cfgt; /* Parser output stored here */
config_tree *cfg_tree_history; /* History of configs */
char * sys_phone[MAXPHONE] = {NULL}; /* ACTS phone numbers */
char default_keysdir[] = NTP_KEYSDIR;
char * keysdir = default_keysdir; /* crypto keys directory */
char * saveconfigdir;
#if defined(HAVE_SCHED_SETSCHEDULER)
int config_priority_override = 0;
int config_priority;
#endif
const char *config_file;
static char default_ntp_signd_socket[] =
#ifdef NTP_SIGND_PATH
NTP_SIGND_PATH;
#else
"";
#endif
char *ntp_signd_socket = default_ntp_signd_socket;
#ifdef HAVE_NETINFO
struct netinfo_config_state *config_netinfo = NULL;
int check_netinfo = 1;
#endif /* HAVE_NETINFO */
#ifdef SYS_WINNT
char *alt_config_file;
LPTSTR temp;
char config_file_storage[MAX_PATH];
char alt_config_file_storage[MAX_PATH];
#endif /* SYS_WINNT */
#ifdef HAVE_NETINFO
/*
* NetInfo configuration state
*/
struct netinfo_config_state {
void *domain; /* domain with config */
ni_id config_dir; /* ID config dir */
int prop_index; /* current property */
int val_index; /* current value */
char **val_list; /* value list */
};
#endif
struct REMOTE_CONFIG_INFO remote_config; /* Remote configuration buffer and
pointer info */
int old_config_style = 1; /* A boolean flag, which when set,
* indicates that the old configuration
* format with a newline at the end of
* every command is being used
*/
int cryptosw; /* crypto command called */
extern char *stats_drift_file; /* name of the driftfile */
#ifdef BC_LIST_FRAMEWORK_NOT_YET_USED
/*
* backwards compatibility flags
*/
bc_entry bc_list[] = {
{ T_Bc_bugXXXX, 1 } /* default enabled */
};
/*
* declare an int pointer for each flag for quick testing without
* walking bc_list. If the pointer is consumed by libntp rather
* than ntpd, declare it in a libntp source file pointing to storage
* initialized with the appropriate value for other libntp clients, and
* redirect it to point into bc_list during ntpd startup.
*/
int *p_bcXXXX_enabled = &bc_list[0].enabled;
#endif
/* FUNCTION PROTOTYPES */
static void init_syntax_tree(config_tree *);
static void apply_enable_disable(attr_val_fifo *q, int enable);
#ifdef FREE_CFG_T
static void free_auth_node(config_tree *);
static void free_all_config_trees(void);
static void free_config_access(config_tree *);
static void free_config_auth(config_tree *);
static void free_config_fudge(config_tree *);
static void free_config_device(config_tree *);
static void free_config_logconfig(config_tree *);
static void free_config_monitor(config_tree *);
static void free_config_nic_rules(config_tree *);
static void free_config_other_modes(config_tree *);
static void free_config_phone(config_tree *);
static void free_config_reset_counters(config_tree *);
static void free_config_rlimit(config_tree *);
static void free_config_setvar(config_tree *);
static void free_config_system_opts(config_tree *);
static void free_config_tinker(config_tree *);
static void free_config_tos(config_tree *);
static void free_config_trap(config_tree *);
static void free_config_ttl(config_tree *);
static void free_config_vars(config_tree *);
#ifdef SIM
static void free_config_sim(config_tree *);
#else /* !SIM follows */
static void free_config_peers(config_tree *);
static void free_config_unpeers(config_tree *);
static int is_sane_resolved_address(sockaddr_u *peeraddr, int hmode);
#endif /* !SIM */
static void destroy_address_fifo(address_fifo *);
#define FREE_ADDRESS_FIFO(pf) \
do { \
destroy_address_fifo(pf); \
(pf) = NULL; \
} while (0)
void free_all_config_trees(void); /* atexit() */
static void free_config_tree(config_tree *ptree);
#endif /* FREE_CFG_T */
static void destroy_restrict_node(restrict_node *my_node);
static void save_and_apply_config_tree(int/*BOOL*/ from_file);
static void destroy_int_fifo(int_fifo *);
#define FREE_INT_FIFO(pf) \
do { \
destroy_int_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_string_fifo(string_fifo *);
#define FREE_STRING_FIFO(pf) \
do { \
destroy_string_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_attr_val_fifo(attr_val_fifo *);
#define FREE_ATTR_VAL_FIFO(pf) \
do { \
destroy_attr_val_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_filegen_fifo(filegen_fifo *);
#define FREE_FILEGEN_FIFO(pf) \
do { \
destroy_filegen_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_restrict_fifo(restrict_fifo *);
#define FREE_RESTRICT_FIFO(pf) \
do { \
destroy_restrict_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_setvar_fifo(setvar_fifo *);
#define FREE_SETVAR_FIFO(pf) \
do { \
destroy_setvar_fifo(pf); \
(pf) = NULL; \
} while (0)
static void destroy_addr_opts_fifo(addr_opts_fifo *);
#define FREE_ADDR_OPTS_FIFO(pf) \
do { \
destroy_addr_opts_fifo(pf); \
(pf) = NULL; \
} while (0)
static void config_logconfig(config_tree *);
static void config_monitor(config_tree *);
static void config_rlimit(config_tree *);
static void config_system_opts(config_tree *);
static void config_tinker(config_tree *);
static void config_tos(config_tree *);
static void config_vars(config_tree *);
#ifdef SIM
static sockaddr_u *get_next_address(address_node *addr);
static void config_sim(config_tree *);
static void config_ntpdsim(config_tree *);
#else /* !SIM follows */
static void config_ntpd(config_tree *, int/*BOOL*/ input_from_file);
static void config_other_modes(config_tree *);
static void config_auth(config_tree *);
static void attrtopsl(int poll, attr_val *avp);
static void config_access(config_tree *);
static void config_mdnstries(config_tree *);
static void config_phone(config_tree *);
static void config_setvar(config_tree *);
static int config_tos_clock(config_tree *);
static void config_ttl(config_tree *);
static void config_trap(config_tree *);
static void config_fudge(config_tree *);
static void config_device(config_tree *);
static void config_peers(config_tree *);
static void config_unpeers(config_tree *);
static void config_nic_rules(config_tree *, int/*BOOL*/ input_from_file);
static void config_reset_counters(config_tree *);
static u_char get_correct_host_mode(int token);
static int peerflag_bits(peer_node *);
#ifdef WORKER
static void peer_name_resolved(int, int, void *, const char *, const char *,
const struct addrinfo *,
const struct addrinfo *);
static void unpeer_name_resolved(int, int, void *, const char *, const char *,
const struct addrinfo *,
const struct addrinfo *);
static void trap_name_resolved(int, int, void *, const char *, const char *,
const struct addrinfo *,
const struct addrinfo *);
#endif /* WORKER */
#endif /* !SIM */
enum gnn_type {
t_UNK, /* Unknown */
t_REF, /* Refclock */
t_MSK /* Network Mask */
};
static void ntpd_set_tod_using(const char *);
static char * normal_dtoa(double);
static u_int32 get_pfxmatch(const char **, struct masks *);
static u_int32 get_match(const char *, struct masks *);
static u_int32 get_logmask(const char *);
static int/*BOOL*/ is_refclk_addr(const address_node * addr);
static void appendstr(char *, size_t, const char *);
#ifndef SIM
static int getnetnum(const char *num, sockaddr_u *addr, int complain,
enum gnn_type a_type);
#endif
#if defined(__GNUC__) /* this covers CLANG, too */
static void __attribute__((__noreturn__,format(printf,1,2))) fatal_error(const char *fmt, ...)
#elif defined(_MSC_VER)
static void __declspec(noreturn) fatal_error(const char *fmt, ...)
#else
static void fatal_error(const char *fmt, ...)
#endif
{
va_list va;
va_start(va, fmt);
mvsyslog(LOG_EMERG, fmt, va);
va_end(va);
_exit(1);
}
/* FUNCTIONS FOR INITIALIZATION
* ----------------------------
*/
#ifdef FREE_CFG_T
static void
free_auth_node(
config_tree *ptree
)
{
if (ptree->auth.keys) {
free(ptree->auth.keys);
ptree->auth.keys = NULL;
}
if (ptree->auth.keysdir) {
free(ptree->auth.keysdir);
ptree->auth.keysdir = NULL;
}
if (ptree->auth.ntp_signd_socket) {
free(ptree->auth.ntp_signd_socket);
ptree->auth.ntp_signd_socket = NULL;
}
}
#endif /* DEBUG */
static void
init_syntax_tree(
config_tree *ptree
)
{
ZERO(*ptree);
ptree->mdnstries = 5;
}
#ifdef FREE_CFG_T
static void
free_all_config_trees(void)
{
config_tree *ptree;
config_tree *pnext;
ptree = cfg_tree_history;
while (ptree != NULL) {
pnext = ptree->link;
free_config_tree(ptree);
ptree = pnext;
}
}
static void
free_config_tree(
config_tree *ptree
)
{
#if defined(_MSC_VER) && defined (_DEBUG)
_CrtCheckMemory();
#endif
if (ptree->source.value.s != NULL)
free(ptree->source.value.s);
free_config_other_modes(ptree);
free_config_auth(ptree);
free_config_tos(ptree);
free_config_monitor(ptree);
free_config_access(ptree);
free_config_tinker(ptree);
free_config_rlimit(ptree);
free_config_system_opts(ptree);
free_config_logconfig(ptree);
free_config_phone(ptree);
free_config_setvar(ptree);
free_config_ttl(ptree);
free_config_trap(ptree);
free_config_fudge(ptree);
free_config_device(ptree);
free_config_vars(ptree);
free_config_nic_rules(ptree);
free_config_reset_counters(ptree);
#ifdef SIM
free_config_sim(ptree);
#else /* !SIM follows */
free_config_peers(ptree);
free_config_unpeers(ptree);
#endif /* !SIM */
free_auth_node(ptree);
free(ptree);
#if defined(_MSC_VER) && defined (_DEBUG)
_CrtCheckMemory();
#endif
}
#endif /* FREE_CFG_T */
#ifdef SAVECONFIG
/* Dump all trees */
int
dump_all_config_trees(
FILE *df,
int comment
)
{
config_tree * cfg_ptr;
int return_value;
time_t now = time(NULL);
struct tm tm = *localtime(&now);
fprintf(df, "#NTF:D %04d%02d%02d@%02d:%02d:%02d\n",
tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
tm.tm_hour, tm.tm_min, tm.tm_sec);
fprintf(df, "#NTF:V %s\n", Version);
return_value = 0;
for (cfg_ptr = cfg_tree_history;
cfg_ptr != NULL;
cfg_ptr = cfg_ptr->link)
return_value |= dump_config_tree(cfg_ptr, df, comment);
return return_value;
}
/* The config dumper */
int
dump_config_tree(
config_tree *ptree,
FILE *df,
int comment
)
{
peer_node *peern;
unpeer_node *unpeern;
attr_val *atrv;
address_node *addr;
address_node *peer_addr;
address_node *fudge_addr;
filegen_node *fgen_node;
restrict_node *rest_node;
addr_opts_node *addr_opts;
setvar_node *setv_node;
nic_rule_node *rule_node;
int_node *i_n;
int_node *counter_set;
string_node *str_node;
const char *s = NULL;
char *s1;
char *s2;
char timestamp[80];
int enable;
DPRINTF(1, ("dump_config_tree(%p)\n", ptree));
if (comment) {
if (!strftime(timestamp, sizeof(timestamp),
"%Y-%m-%d %H:%M:%S",
localtime(&ptree->timestamp)))
timestamp[0] = '\0';
fprintf(df, "# %s %s %s\n",
timestamp,
(CONF_SOURCE_NTPQ == ptree->source.attr)
? "ntpq remote config from"
: "startup configuration file",
ptree->source.value.s);
}
/*
* For options without documentation we just output the name
* and its data value
*/
atrv = HEAD_PFIFO(ptree->vars);
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->type) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown vars type %d (%s) for %s\n",
atrv->type, token_name(atrv->type),
token_name(atrv->attr));
break;
#endif
case T_Double:
fprintf(df, "%s %s\n", keyword(atrv->attr),
normal_dtoa(atrv->value.d));
break;
case T_Integer:
fprintf(df, "%s %d\n", keyword(atrv->attr),
atrv->value.i);
break;
case T_String:
fprintf(df, "%s \"%s\"", keyword(atrv->attr),
atrv->value.s);
if (T_Driftfile == atrv->attr &&
atrv->link != NULL &&
T_WanderThreshold == atrv->link->attr) {
atrv = atrv->link;
fprintf(df, " %s\n",
normal_dtoa(atrv->value.d));
} else if (T_Leapfile == atrv->attr) {
fputs((atrv->flag
? " checkhash\n"
: " ignorehash\n"),
df);
} else {
fprintf(df, "\n");
}
break;
}
}
atrv = HEAD_PFIFO(ptree->logconfig);
if (atrv != NULL) {
fprintf(df, "logconfig");
for ( ; atrv != NULL; atrv = atrv->link)
fprintf(df, " %c%s", atrv->attr, atrv->value.s);
fprintf(df, "\n");
}
if (ptree->stats_dir)
fprintf(df, "statsdir \"%s\"\n", ptree->stats_dir);
i_n = HEAD_PFIFO(ptree->stats_list);
if (i_n != NULL) {
fprintf(df, "statistics");
for ( ; i_n != NULL; i_n = i_n->link)
fprintf(df, " %s", keyword(i_n->i));
fprintf(df, "\n");
}
fgen_node = HEAD_PFIFO(ptree->filegen_opts);
for ( ; fgen_node != NULL; fgen_node = fgen_node->link) {
atrv = HEAD_PFIFO(fgen_node->options);
if (atrv != NULL) {
fprintf(df, "filegen %s",
keyword(fgen_node->filegen_token));
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->attr) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown filegen option token %s\n"
"filegen %s",
token_name(atrv->attr),
keyword(fgen_node->filegen_token));
break;
#endif
case T_File:
fprintf(df, " file %s",
atrv->value.s);
break;
case T_Type:
fprintf(df, " type %s",
keyword(atrv->value.i));
break;
case T_Flag:
fprintf(df, " %s",
keyword(atrv->value.i));
break;
}
}
fprintf(df, "\n");
}
}
atrv = HEAD_PFIFO(ptree->auth.crypto_cmd_list);
if (atrv != NULL) {
fprintf(df, "crypto");
for ( ; atrv != NULL; atrv = atrv->link) {
fprintf(df, " %s %s", keyword(atrv->attr),
atrv->value.s);
}
fprintf(df, "\n");
}
if (ptree->auth.revoke != 0)
fprintf(df, "revoke %d\n", ptree->auth.revoke);
if (ptree->auth.keysdir != NULL)
fprintf(df, "keysdir \"%s\"\n", ptree->auth.keysdir);
if (ptree->auth.keys != NULL)
fprintf(df, "keys \"%s\"\n", ptree->auth.keys);
atrv = HEAD_PFIFO(ptree->auth.trusted_key_list);
if (atrv != NULL) {
fprintf(df, "trustedkey");
for ( ; atrv != NULL; atrv = atrv->link) {
if (T_Integer == atrv->type)
fprintf(df, " %d", atrv->value.i);
else if (T_Intrange == atrv->type)
fprintf(df, " (%d ... %d)",
atrv->value.r.first,
atrv->value.r.last);
#ifdef DEBUG
else
fprintf(df, "\n# dump error:\n"
"# unknown trustedkey attr type %d\n"
"trustedkey", atrv->type);
#endif
}
fprintf(df, "\n");
}
if (ptree->auth.control_key)
fprintf(df, "controlkey %d\n", ptree->auth.control_key);
if (ptree->auth.request_key)
fprintf(df, "requestkey %d\n", ptree->auth.request_key);
/* dump enable list, then disable list */
for (enable = 1; enable >= 0; enable--) {
atrv = (enable)
? HEAD_PFIFO(ptree->enable_opts)
: HEAD_PFIFO(ptree->disable_opts);
if (atrv != NULL) {
fprintf(df, "%s", (enable)
? "enable"
: "disable");
for ( ; atrv != NULL; atrv = atrv->link)
fprintf(df, " %s",
keyword(atrv->value.i));
fprintf(df, "\n");
}
}
atrv = HEAD_PFIFO(ptree->orphan_cmds);
if (atrv != NULL) {
fprintf(df, "tos");
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->type) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown tos attr type %d %s\n"
"tos", atrv->type,
token_name(atrv->type));
break;
#endif
case T_Integer:
if (atrv->attr == T_Basedate) {
struct calendar jd;
ntpcal_rd_to_date(&jd, atrv->value.i + DAY_NTP_STARTS);
fprintf(df, " %s \"%04hu-%02hu-%02hu\"",
keyword(atrv->attr), jd.year,
(u_short)jd.month,
(u_short)jd.monthday);
} else {
fprintf(df, " %s %d",
keyword(atrv->attr),
atrv->value.i);
}
break;
case T_Double:
fprintf(df, " %s %s",
keyword(atrv->attr),
normal_dtoa(atrv->value.d));
break;
}
}
fprintf(df, "\n");
}
atrv = HEAD_PFIFO(ptree->rlimit);
if (atrv != NULL) {
fprintf(df, "rlimit");
for ( ; atrv != NULL; atrv = atrv->link) {
INSIST(T_Integer == atrv->type);
fprintf(df, " %s %d", keyword(atrv->attr),
atrv->value.i);
}
fprintf(df, "\n");
}
atrv = HEAD_PFIFO(ptree->tinker);
if (atrv != NULL) {
fprintf(df, "tinker");
for ( ; atrv != NULL; atrv = atrv->link) {
INSIST(T_Double == atrv->type);
fprintf(df, " %s %s", keyword(atrv->attr),
normal_dtoa(atrv->value.d));
}
fprintf(df, "\n");
}
if (ptree->broadcastclient)
fprintf(df, "broadcastclient\n");
peern = HEAD_PFIFO(ptree->peers);
for ( ; peern != NULL; peern = peern->link) {
addr = peern->addr;
fprintf(df, "%s", keyword(peern->host_mode));
switch (addr->type) {
#ifdef DEBUG
default:
fprintf(df, "# dump error:\n"
"# unknown peer family %d for:\n"
"%s", addr->type,
keyword(peern->host_mode));
break;
#endif
case AF_UNSPEC:
break;
case AF_INET:
fprintf(df, " -4");
break;
case AF_INET6:
fprintf(df, " -6");
break;
}
fprintf(df, " %s", addr->address);
if (peern->minpoll != 0)
fprintf(df, " minpoll %u", peern->minpoll);
if (peern->maxpoll != 0)
fprintf(df, " maxpoll %u", peern->maxpoll);
if (peern->ttl != 0) {
if (strlen(addr->address) > 8
&& !memcmp(addr->address, "127.127.", 8))
fprintf(df, " mode %u", peern->ttl);
else
fprintf(df, " ttl %u", peern->ttl);
}
if (peern->peerversion != NTP_VERSION)
fprintf(df, " version %u", peern->peerversion);
if (peern->peerkey != 0)
fprintf(df, " key %u", peern->peerkey);
if (peern->group != NULL)
fprintf(df, " ident \"%s\"", peern->group);
atrv = HEAD_PFIFO(peern->peerflags);
for ( ; atrv != NULL; atrv = atrv->link) {
INSIST(T_Flag == atrv->attr);
INSIST(T_Integer == atrv->type);
fprintf(df, " %s", keyword(atrv->value.i));
}
fprintf(df, "\n");
addr_opts = HEAD_PFIFO(ptree->fudge);
for ( ; addr_opts != NULL; addr_opts = addr_opts->link) {
peer_addr = peern->addr;
fudge_addr = addr_opts->addr;
s1 = peer_addr->address;
s2 = fudge_addr->address;
if (strcmp(s1, s2))
continue;
fprintf(df, "fudge %s", s1);
for (atrv = HEAD_PFIFO(addr_opts->options);
atrv != NULL;
atrv = atrv->link) {
switch (atrv->type) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown fudge atrv->type %d\n"
"fudge %s", atrv->type,
s1);
break;
#endif
case T_Double:
fprintf(df, " %s %s",
keyword(atrv->attr),
normal_dtoa(atrv->value.d));
break;
case T_Integer:
fprintf(df, " %s %d",
keyword(atrv->attr),
atrv->value.i);
break;
case T_String:
fprintf(df, " %s %s",
keyword(atrv->attr),
atrv->value.s);
break;
}
}
fprintf(df, "\n");
}
addr_opts = HEAD_PFIFO(ptree->device);
for ( ; addr_opts != NULL; addr_opts = addr_opts->link) {
peer_addr = peern->addr;
fudge_addr = addr_opts->addr;
s1 = peer_addr->address;
s2 = fudge_addr->address;
if (strcmp(s1, s2))
continue;
fprintf(df, "device %s", s1);
for (atrv = HEAD_PFIFO(addr_opts->options);
atrv != NULL;
atrv = atrv->link) {
switch (atrv->type) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown device atrv->type %d\n"
"device %s", atrv->type,
s1);
break;
#endif
case T_String:
fprintf(df, " %s %s",
keyword(atrv->attr),
atrv->value.s);
break;
}
}
fprintf(df, "\n");
}
}
addr = HEAD_PFIFO(ptree->manycastserver);
if (addr != NULL) {
fprintf(df, "manycastserver");
for ( ; addr != NULL; addr = addr->link)
fprintf(df, " %s", addr->address);
fprintf(df, "\n");
}
addr = HEAD_PFIFO(ptree->multicastclient);
if (addr != NULL) {
fprintf(df, "multicastclient");
for ( ; addr != NULL; addr = addr->link)
fprintf(df, " %s", addr->address);
fprintf(df, "\n");
}
for (unpeern = HEAD_PFIFO(ptree->unpeers);
unpeern != NULL;
unpeern = unpeern->link)
fprintf(df, "unpeer %s\n", unpeern->addr->address);
atrv = HEAD_PFIFO(ptree->mru_opts);
if (atrv != NULL) {
fprintf(df, "mru");
for ( ; atrv != NULL; atrv = atrv->link)
fprintf(df, " %s %d", keyword(atrv->attr),
atrv->value.i);
fprintf(df, "\n");
}
atrv = HEAD_PFIFO(ptree->discard_opts);
if (atrv != NULL) {
fprintf(df, "discard");
for ( ; atrv != NULL; atrv = atrv->link)
fprintf(df, " %s %d", keyword(atrv->attr),
atrv->value.i);
fprintf(df, "\n");
}
atrv = HEAD_PFIFO(ptree->pollskewlist);
if (atrv != NULL) {
fprintf(df, "pollskewlist");
for ( ; atrv != NULL; atrv = atrv->link) {
if (-1 == atrv->attr) {
fprintf(df, " default");
} else {
fprintf(df, " %d", atrv->attr);
}
fprintf(df, " %d|%d",
atrv->value.r.first, atrv->value.r.last);
}
fprintf(df, "\n");
}
for (rest_node = HEAD_PFIFO(ptree->restrict_opts);
rest_node != NULL;
rest_node = rest_node->link) {
int is_default = 0;
if (NULL == rest_node->addr) {
s = "default";
/* Don't need to set is_default=1 here */
atrv = HEAD_PFIFO(rest_node->flag_tok_fifo);
for ( ; atrv != NULL; atrv = atrv->link) {
if ( T_Integer == atrv->type
&& T_Source == atrv->attr) {
s = "source";
break;
}
}
} else {
const char *ap = rest_node->addr->address;
const char *mp = "";
if (rest_node->mask)
mp = rest_node->mask->address;
if ( rest_node->addr->type == AF_INET
&& !strcmp(ap, "0.0.0.0")
&& !strcmp(mp, "0.0.0.0")) {
is_default = 1;
s = "-4 default";
} else if ( rest_node->mask
&& rest_node->mask->type == AF_INET6
&& !strcmp(ap, "::")
&& !strcmp(mp, "::")) {
is_default = 1;
s = "-6 default";
} else {
s = ap;
}
}
fprintf(df, "restrict %s", s);
if (rest_node->mask != NULL && !is_default)
fprintf(df, " mask %s",
rest_node->mask->address);
fprintf(df, " ippeerlimit %d", rest_node->ippeerlimit);
atrv = HEAD_PFIFO(rest_node->flag_tok_fifo);
for ( ; atrv != NULL; atrv = atrv->link) {
if ( T_Integer == atrv->type
&& T_Source != atrv->attr) {
fprintf(df, " %s", keyword(atrv->attr));
}
}
fprintf(df, "\n");
/**/
#if 0
msyslog(LOG_INFO, "Dumping flag_tok_fifo:");
atrv = HEAD_PFIFO(rest_node->flag_tok_fifo);
for ( ; atrv != NULL; atrv = atrv->link) {
msyslog(LOG_INFO, "- flag_tok_fifo: flags: %08x", atrv->flag);
switch(atrv->type) {
case T_Integer:
msyslog(LOG_INFO, "- T_Integer: attr <%s>/%d, value %d",
keyword(atrv->attr), atrv->attr, atrv->value.i);
break;
default:
msyslog(LOG_INFO, "- Other: attr <%s>/%d, value ???",
keyword(atrv->attr), atrv->attr);
break;
}
}
#endif
/**/
}
rule_node = HEAD_PFIFO(ptree->nic_rules);
for ( ; rule_node != NULL; rule_node = rule_node->link) {
fprintf(df, "interface %s %s\n",
keyword(rule_node->action),
(rule_node->match_class)
? keyword(rule_node->match_class)
: rule_node->if_name);
}
str_node = HEAD_PFIFO(ptree->phone);
if (str_node != NULL) {
fprintf(df, "phone");
for ( ; str_node != NULL; str_node = str_node->link)
fprintf(df, " \"%s\"", str_node->s);
fprintf(df, "\n");
}
setv_node = HEAD_PFIFO(ptree->setvar);
for ( ; setv_node != NULL; setv_node = setv_node->link) {
s1 = quote_if_needed(setv_node->var);
s2 = quote_if_needed(setv_node->val);
fprintf(df, "setvar %s = %s", s1, s2);
free(s1);
free(s2);
if (setv_node->isdefault)
fprintf(df, " default");
fprintf(df, "\n");
}
i_n = HEAD_PFIFO(ptree->ttl);
if (i_n != NULL) {
fprintf(df, "ttl");
for( ; i_n != NULL; i_n = i_n->link)
fprintf(df, " %d", i_n->i);
fprintf(df, "\n");
}
addr_opts = HEAD_PFIFO(ptree->trap);
for ( ; addr_opts != NULL; addr_opts = addr_opts->link) {
addr = addr_opts->addr;
fprintf(df, "trap %s", addr->address);
atrv = HEAD_PFIFO(addr_opts->options);
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->attr) {
#ifdef DEBUG
default:
fprintf(df, "\n# dump error:\n"
"# unknown trap token %d\n"
"trap %s", atrv->attr,
addr->address);
break;
#endif
case T_Port:
fprintf(df, " port %d", atrv->value.i);
break;
case T_Interface:
fprintf(df, " interface %s",
atrv->value.s);
break;
}
}
fprintf(df, "\n");
}
counter_set = HEAD_PFIFO(ptree->reset_counters);
if (counter_set != NULL) {
fprintf(df, "reset");
for ( ; counter_set != NULL;
counter_set = counter_set->link)
fprintf(df, " %s", keyword(counter_set->i));
fprintf(df, "\n");
}
return 0;
}
#endif /* SAVECONFIG */
/* generic fifo routines for structs linked by 1st member */
void *
append_gen_fifo(
void *fifo,
void *entry
)
{
gen_fifo *pf;
gen_node *pe;
pf = fifo;
pe = entry;
if (NULL == pf)
pf = emalloc_zero(sizeof(*pf));
else
CHECK_FIFO_CONSISTENCY(*pf);
if (pe != NULL)
LINK_FIFO(*pf, pe, link);
CHECK_FIFO_CONSISTENCY(*pf);
return pf;
}
void *
concat_gen_fifos(
void *first,
void *second
)
{
gen_fifo *pf1;
gen_fifo *pf2;
pf1 = first;
pf2 = second;
if (NULL == pf1)
return pf2;
if (NULL == pf2)
return pf1;
CONCAT_FIFO(*pf1, *pf2, link);
free(pf2);
return pf1;
}
void*
destroy_gen_fifo(
void *fifo,
fifo_deleter func
)
{
any_node * np = NULL;
any_node_fifo * pf1 = fifo;
if (pf1 != NULL) {
if (!func)
func = free;
for (;;) {
UNLINK_FIFO(np, *pf1, link);
if (np == NULL)
break;
(*func)(np);
}
free(pf1);
}
return NULL;
}
/* FUNCTIONS FOR CREATING NODES ON THE SYNTAX TREE
* -----------------------------------------------
*/
void
destroy_attr_val(
attr_val * av
)
{
if (av) {
if (T_String == av->type)
free(av->value.s);
free(av);
}
}
attr_val *
create_attr_dval(
int attr,
double value
)
{
attr_val *my_val;
my_val = emalloc_zero(sizeof(*my_val));
my_val->attr = attr;
my_val->value.d = value;
my_val->type = T_Double;
return my_val;
}
attr_val *
create_attr_ival(
int attr,
int value
)
{
attr_val *my_val;
my_val = emalloc_zero(sizeof(*my_val));
my_val->attr = attr;
my_val->value.i = value;
my_val->type = T_Integer;
return my_val;
}
attr_val *
create_attr_uval(
int attr,
u_int value
)
{
attr_val *my_val;
my_val = emalloc_zero(sizeof(*my_val));
my_val->attr = attr;
my_val->value.u = value;
my_val->type = T_U_int;
return my_val;
}
attr_val *
create_attr_rval(
int attr,
int first,
int last
)
{
attr_val *my_val;
my_val = emalloc_zero(sizeof(*my_val));
my_val->attr = attr;
my_val->value.r.first = first;
my_val->value.r.last = last;
my_val->type = T_Intrange;
return my_val;
}
attr_val *
create_attr_sval(
int attr,
const char *s
)
{
attr_val *my_val;
my_val = emalloc_zero(sizeof(*my_val));
my_val->attr = attr;
if (NULL == s) /* free() hates NULL */
s = estrdup("");
my_val->value.s = _UC(s);
my_val->type = T_String;
return my_val;
}
int_node *
create_int_node(
int val
)
{
int_node *i_n;
i_n = emalloc_zero(sizeof(*i_n));
i_n->i = val;
return i_n;
}
string_node *
create_string_node(
char *str
)
{
string_node *sn;
sn = emalloc_zero(sizeof(*sn));
sn->s = str;
return sn;
}
address_node *
create_address_node(
char * addr,
int type
)
{
address_node *my_node;
REQUIRE(NULL != addr);
REQUIRE(AF_INET == type || AF_INET6 == type || AF_UNSPEC == type);
my_node = emalloc_zero(sizeof(*my_node));
my_node->address = addr;
my_node->type = (u_short)type;
return my_node;
}
void
destroy_address_node(
address_node *my_node
)
{
if (NULL == my_node)
return;
REQUIRE(NULL != my_node->address);
free(my_node->address);
free(my_node);
}
peer_node *
create_peer_node(
int hmode,
address_node * addr,
attr_val_fifo * options
)
{
peer_node *my_node;
attr_val *option;
int freenode;
int errflag = 0;
my_node = emalloc_zero(sizeof(*my_node));
/* Initialize node values to default */
my_node->peerversion = NTP_VERSION;
/* Now set the node to the read values */
my_node->host_mode = hmode;
my_node->addr = addr;
/*
* the options FIFO mixes items that will be saved in the
* peer_node as explicit members, such as minpoll, and
* those that are moved intact to the peer_node's peerflags
* FIFO. The options FIFO is consumed and reclaimed here.
*/
if (options != NULL)
CHECK_FIFO_CONSISTENCY(*options);
while (options != NULL) {
UNLINK_FIFO(option, *options, link);
if (NULL == option) {
free(options);
break;
}
freenode = 1;
/* Check the kind of option being set */
switch (option->attr) {
case T_Flag:
APPEND_G_FIFO(my_node->peerflags, option);
freenode = 0;
break;
case T_Minpoll:
if (option->value.i < NTP_MINPOLL ||
option->value.i > UCHAR_MAX) {
msyslog(LOG_INFO,
"minpoll: provided value (%d) is out of range [%d-%d])",
option->value.i, NTP_MINPOLL,
UCHAR_MAX);
my_node->minpoll = NTP_MINPOLL;
} else {
my_node->minpoll =
(u_char)option->value.u;
}
break;
case T_Maxpoll:
if (option->value.i < 0 ||
option->value.i > NTP_MAXPOLL) {
msyslog(LOG_INFO,
"maxpoll: provided value (%d) is out of range [0-%d])",
option->value.i, NTP_MAXPOLL);
my_node->maxpoll = NTP_MAXPOLL;
} else {
my_node->maxpoll =
(u_char)option->value.u;
}
break;
case T_Ttl:
if (is_refclk_addr(addr)) {
msyslog(LOG_ERR, "'ttl' does not apply for refclocks");
errflag = 1;
} else if (option->value.u >= MAX_TTL) {
msyslog(LOG_ERR, "ttl: invalid argument");
errflag = 1;
} else {
my_node->ttl = (u_char)option->value.u;
}
break;
case T_Mode:
if (is_refclk_addr(addr)) {
my_node->ttl = option->value.u;
} else {
msyslog(LOG_ERR, "'mode' does not apply for network peers");
errflag = 1;
}
break;
case T_Key:
if (option->value.u >= KEYID_T_MAX) {
msyslog(LOG_ERR, "key: invalid argument");
errflag = 1;
} else {
my_node->peerkey =
(keyid_t)option->value.u;
}
break;
case T_Version:
if (option->value.u >= UCHAR_MAX) {
msyslog(LOG_ERR, "version: invalid argument");
errflag = 1;
} else {
my_node->peerversion =
(u_char)option->value.u;
}
break;
case T_Ident:
my_node->group = option->value.s;
break;
default:
msyslog(LOG_ERR,
"Unknown peer/server option token %s",
token_name(option->attr));
errflag = 1;
}
if (freenode)
free(option);
}
/* Check if errors were reported. If yes, ignore the node */
if (errflag) {
free(my_node);
my_node = NULL;
}
return my_node;
}
unpeer_node *
create_unpeer_node(
address_node *addr
)
{
unpeer_node * my_node;
u_long u;
const u_char * pch;
my_node = emalloc_zero(sizeof(*my_node));
/*
* From the parser's perspective an association ID fits into
* its generic T_String definition of a name/address "address".
* We treat all valid 16-bit numbers as association IDs.
*/
for (u = 0, pch = (u_char*)addr->address; isdigit(*pch); ++pch) {
/* accumulate with overflow retention */
u = (10 * u + *pch - '0') | (u & 0xFF000000u);
}
if (!*pch && u <= ASSOCID_MAX) {
my_node->assocID = (associd_t)u;
my_node->addr = NULL;
destroy_address_node(addr);
} else {
my_node->assocID = 0;
my_node->addr = addr;
}
return my_node;
}
filegen_node *
create_filegen_node(
int filegen_token,
attr_val_fifo * options
)
{
filegen_node *my_node;
my_node = emalloc_zero(sizeof(*my_node));
my_node->filegen_token = filegen_token;
my_node->options = options;
return my_node;
}
restrict_node *
create_restrict_node(
address_node * addr,
address_node * mask,
short ippeerlimit,
attr_val_fifo * flag_tok_fifo,
int nline
)
{
restrict_node *my_node;
my_node = emalloc_zero(sizeof(*my_node));
my_node->addr = addr;
my_node->mask = mask;
my_node->ippeerlimit = ippeerlimit;
my_node->flag_tok_fifo = flag_tok_fifo;
my_node->line_no = nline;
return my_node;
}
static void
destroy_restrict_node(
restrict_node *my_node
)
{
/* With great care, free all the memory occupied by
* the restrict node
*/
destroy_address_node(my_node->addr);
destroy_address_node(my_node->mask);
destroy_attr_val_fifo(my_node->flag_tok_fifo);
free(my_node);
}
static void
destroy_int_fifo(
int_fifo * fifo
)
{
int_node * i_n;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(i_n, *fifo, link);
if (i_n == NULL)
break;
free(i_n);
}
free(fifo);
}
}
static void
destroy_string_fifo(
string_fifo * fifo
)
{
string_node * sn;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(sn, *fifo, link);
if (sn == NULL)
break;
free(sn->s);
free(sn);
}
free(fifo);
}
}
static void
destroy_attr_val_fifo(
attr_val_fifo * av_fifo
)
{
attr_val * av;
if (av_fifo != NULL) {
for (;;) {
UNLINK_FIFO(av, *av_fifo, link);
if (av == NULL)
break;
destroy_attr_val(av);
}
free(av_fifo);
}
}
static void
destroy_filegen_fifo(
filegen_fifo * fifo
)
{
filegen_node * fg;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(fg, *fifo, link);
if (fg == NULL)
break;
destroy_attr_val_fifo(fg->options);
free(fg);
}
free(fifo);
}
}
static void
destroy_restrict_fifo(
restrict_fifo * fifo
)
{
restrict_node * rn;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(rn, *fifo, link);
if (rn == NULL)
break;
destroy_restrict_node(rn);
}
free(fifo);
}
}
static void
destroy_setvar_fifo(
setvar_fifo * fifo
)
{
setvar_node * sv;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(sv, *fifo, link);
if (sv == NULL)
break;
free(sv->var);
free(sv->val);
free(sv);
}
free(fifo);
}
}
static void
destroy_addr_opts_fifo(
addr_opts_fifo * fifo
)
{
addr_opts_node * aon;
if (fifo != NULL) {
for (;;) {
UNLINK_FIFO(aon, *fifo, link);
if (aon == NULL)
break;
destroy_address_node(aon->addr);
destroy_attr_val_fifo(aon->options);
free(aon);
}
free(fifo);
}
}
setvar_node *
create_setvar_node(
char * var,
char * val,
int isdefault
)
{
setvar_node * my_node;
char * pch;
/* do not allow = in the variable name */
pch = strchr(var, '=');
if (NULL != pch)
*pch = '\0';
/* Now store the string into a setvar_node */
my_node = emalloc_zero(sizeof(*my_node));
my_node->var = var;
my_node->val = val;
my_node->isdefault = isdefault;
return my_node;
}
nic_rule_node *
create_nic_rule_node(
int match_class,
char *if_name, /* interface name or numeric address */
int action
)
{
nic_rule_node *my_node;
REQUIRE(match_class != 0 || if_name != NULL);
my_node = emalloc_zero(sizeof(*my_node));
my_node->match_class = match_class;
my_node->if_name = if_name;
my_node->action = action;
return my_node;
}
addr_opts_node *
create_addr_opts_node(
address_node * addr,
attr_val_fifo * options
)
{
addr_opts_node *my_node;
my_node = emalloc_zero(sizeof(*my_node));
my_node->addr = addr;
my_node->options = options;
return my_node;
}
#ifdef SIM
script_info *
create_sim_script_info(
double duration,
attr_val_fifo * script_queue
)
{
script_info *my_info;
attr_val *my_attr_val;
my_info = emalloc_zero(sizeof(*my_info));
/* Initialize Script Info with default values*/
my_info->duration = duration;
my_info->prop_delay = NET_DLY;
my_info->proc_delay = PROC_DLY;
/* Traverse the script_queue and fill out non-default values */
for (my_attr_val = HEAD_PFIFO(script_queue);
my_attr_val != NULL;
my_attr_val = my_attr_val->link) {
/* Set the desired value */
switch (my_attr_val->attr) {
case T_Freq_Offset:
my_info->freq_offset = my_attr_val->value.d;
break;
case T_Wander:
my_info->wander = my_attr_val->value.d;
break;
case T_Jitter:
my_info->jitter = my_attr_val->value.d;
break;
case T_Prop_Delay:
my_info->prop_delay = my_attr_val->value.d;
break;
case T_Proc_Delay:
my_info->proc_delay = my_attr_val->value.d;
break;
default:
msyslog(LOG_ERR, "Unknown script token %d",
my_attr_val->attr);
}
}
return my_info;
}
#endif /* SIM */
#ifdef SIM
static sockaddr_u *
get_next_address(
address_node *addr
)
{
const char addr_prefix[] = "192.168.0.";
static int curr_addr_num = 1;
#define ADDR_LENGTH 16 + 1 /* room for 192.168.1.255 */
char addr_string[ADDR_LENGTH];
sockaddr_u *final_addr;
struct addrinfo *ptr;
int gai_err;
final_addr = emalloc(sizeof(*final_addr));
if (addr->type == T_String) {
snprintf(addr_string, sizeof(addr_string), "%s%d",
addr_prefix, curr_addr_num++);
printf("Selecting ip address %s for hostname %s\n",
addr_string, addr->address);
gai_err = getaddrinfo(addr_string, "ntp", NULL, &ptr);
} else {
gai_err = getaddrinfo(addr->address, "ntp", NULL, &ptr);
}
if (gai_err) {
fprintf(stderr, "ERROR!! Could not get a new address\n");
exit(1);
}
memcpy(final_addr, ptr->ai_addr, ptr->ai_addrlen);
fprintf(stderr, "Successful in setting ip address of simulated server to: %s\n",
stoa(final_addr));
freeaddrinfo(ptr);
return final_addr;
}
#endif /* SIM */
#ifdef SIM
server_info *
create_sim_server(
address_node * addr,
double server_offset,
script_info_fifo * script
)
{
server_info *my_info;
my_info = emalloc_zero(sizeof(*my_info));
my_info->server_time = server_offset;
my_info->addr = get_next_address(addr);
my_info->script = script;
UNLINK_FIFO(my_info->curr_script, *my_info->script, link);
return my_info;
}
#endif /* SIM */
sim_node *
create_sim_node(
attr_val_fifo * init_opts,
server_info_fifo * servers
)
{
sim_node *my_node;
my_node = emalloc(sizeof(*my_node));
my_node->init_opts = init_opts;
my_node->servers = servers;
return my_node;
}
/* FUNCTIONS FOR PERFORMING THE CONFIGURATION
* ------------------------------------------
*/
#ifndef SIM
static void
config_other_modes(
config_tree * ptree
)
{
sockaddr_u addr_sock;
address_node * addr_node;
if (ptree->broadcastclient)
proto_config(PROTO_BROADCLIENT, ptree->broadcastclient,
0., NULL);
addr_node = HEAD_PFIFO(ptree->manycastserver);
while (addr_node != NULL) {
ZERO_SOCK(&addr_sock);
AF(&addr_sock) = addr_node->type;
if (1 == getnetnum(addr_node->address, &addr_sock, 1,
t_UNK)) {
proto_config(PROTO_MULTICAST_ADD,
0, 0., &addr_sock);
sys_manycastserver = 1;
}
addr_node = addr_node->link;
}
/* Configure the multicast clients */
addr_node = HEAD_PFIFO(ptree->multicastclient);
if (addr_node != NULL) {
do {
ZERO_SOCK(&addr_sock);
AF(&addr_sock) = addr_node->type;
if (1 == getnetnum(addr_node->address,
&addr_sock, 1, t_UNK)) {
proto_config(PROTO_MULTICAST_ADD, 0, 0.,
&addr_sock);
}
addr_node = addr_node->link;
} while (addr_node != NULL);
proto_config(PROTO_MULTICAST_ADD, 1, 0., NULL);
}
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
destroy_address_fifo(
address_fifo * pfifo
)
{
address_node * addr_node;
if (pfifo != NULL) {
for (;;) {
UNLINK_FIFO(addr_node, *pfifo, link);
if (addr_node == NULL)
break;
destroy_address_node(addr_node);
}
free(pfifo);
}
}
static void
free_config_other_modes(
config_tree *ptree
)
{
FREE_ADDRESS_FIFO(ptree->manycastserver);
FREE_ADDRESS_FIFO(ptree->multicastclient);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_auth(
config_tree *ptree
)
{
attr_val * my_val;
int first;
int last;
int i;
int count;
#ifdef AUTOKEY
int item;
#endif
/* Crypto Command */
#ifdef AUTOKEY
my_val = HEAD_PFIFO(ptree->auth.crypto_cmd_list);
for (; my_val != NULL; my_val = my_val->link) {
switch (my_val->attr) {
default:
fatal_error("config_auth: attr-token=%d", my_val->attr);
case T_Host:
item = CRYPTO_CONF_PRIV;
break;
case T_Ident:
item = CRYPTO_CONF_IDENT;
break;
case T_Pw:
item = CRYPTO_CONF_PW;
break;
case T_Randfile:
item = CRYPTO_CONF_RAND;
break;
case T_Digest:
item = CRYPTO_CONF_NID;
break;
}
crypto_config(item, my_val->value.s);
}
#endif /* AUTOKEY */
/* Keysdir Command */
if (ptree->auth.keysdir) {
if (keysdir != default_keysdir)
free(keysdir);
keysdir = estrdup(ptree->auth.keysdir);
}
/* ntp_signd_socket Command */
if (ptree->auth.ntp_signd_socket) {
if (ntp_signd_socket != default_ntp_signd_socket)
free(ntp_signd_socket);
ntp_signd_socket = estrdup(ptree->auth.ntp_signd_socket);
}
#ifdef AUTOKEY
if (ptree->auth.cryptosw && !cryptosw) {
crypto_setup();
cryptosw = 1;
}
#endif /* AUTOKEY */
/*
* Count the number of trusted keys to preallocate storage and
* size the hash table.
*/
count = 0;
my_val = HEAD_PFIFO(ptree->auth.trusted_key_list);
for (; my_val != NULL; my_val = my_val->link) {
if (T_Integer == my_val->type) {
first = my_val->value.i;
if (first > 1 && first <= NTP_MAXKEY)
count++;
} else {
REQUIRE(T_Intrange == my_val->type);
first = my_val->value.r.first;
last = my_val->value.r.last;
if (!(first > last || first < 1 ||
last > NTP_MAXKEY)) {
count += 1 + last - first;
}
}
}
auth_prealloc_symkeys(count);
/* Keys Command */
if (ptree->auth.keys)
getauthkeys(ptree->auth.keys);
/* Control Key Command */
if (ptree->auth.control_key)
ctl_auth_keyid = (keyid_t)ptree->auth.control_key;
/* Requested Key Command */
if (ptree->auth.request_key) {
DPRINTF(4, ("set info_auth_keyid to %08lx\n",
(u_long) ptree->auth.request_key));
info_auth_keyid = (keyid_t)ptree->auth.request_key;
}
/* Trusted Key Command */
my_val = HEAD_PFIFO(ptree->auth.trusted_key_list);
for (; my_val != NULL; my_val = my_val->link) {
if (T_Integer == my_val->type) {
first = my_val->value.i;
if (first >= 1 && first <= NTP_MAXKEY) {
authtrust(first, TRUE);
} else {
msyslog(LOG_NOTICE,
"Ignoring invalid trustedkey %d, min 1 max %d.",
first, NTP_MAXKEY);
}
} else {
first = my_val->value.r.first;
last = my_val->value.r.last;
if (first > last || first < 1 ||
last > NTP_MAXKEY) {
msyslog(LOG_NOTICE,
"Ignoring invalid trustedkey range %d ... %d, min 1 max %d.",
first, last, NTP_MAXKEY);
} else {
for (i = first; i <= last; i++) {
authtrust(i, TRUE);
}
}
}
}
#ifdef AUTOKEY
/* crypto revoke command */
if (ptree->auth.revoke > 2 && ptree->auth.revoke < 32)
sys_revoke = (u_char)ptree->auth.revoke;
else if (ptree->auth.revoke)
msyslog(LOG_ERR,
"'revoke' value %d ignored",
ptree->auth.revoke);
#endif /* AUTOKEY */
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_auth(
config_tree *ptree
)
{
destroy_attr_val_fifo(ptree->auth.crypto_cmd_list);
ptree->auth.crypto_cmd_list = NULL;
destroy_attr_val_fifo(ptree->auth.trusted_key_list);
ptree->auth.trusted_key_list = NULL;
}
#endif /* FREE_CFG_T */
#ifndef SIM
/* Configure low-level clock-related parameters. Return TRUE if the
* clock might need adjustment like era-checking after the call, FALSE
* otherwise.
*/
static int/*BOOL*/
config_tos_clock(
config_tree *ptree
)
{
int ret;
attr_val * tos;
ret = FALSE;
tos = HEAD_PFIFO(ptree->orphan_cmds);
for (; tos != NULL; tos = tos->link) {
switch(tos->attr) {
default:
break;
case T_Basedate:
basedate_set_day(tos->value.i);
ret = TRUE;
break;
}
}
if (basedate_get_day() <= NTP_TO_UNIX_DAYS)
basedate_set_day(basedate_eval_buildstamp() - 11);
return ret;
}
#endif /* SIM */
static void
config_tos(
config_tree *ptree
)
{
char const improper_operation_msg[] =
" - daemon will not operate properly!";
attr_val * tos;
int item;
double val;
/* [Bug 2896] For the daemon to work properly it is essential
* that minsane < minclock <= maxclock.
*
* If either constraint is violated, the daemon will be or might
* become dysfunctional. Fixing the values is too fragile here,
* since three variables with interdependecies are involved. We
* just log an error but do not stop: This might be caused by
* remote config, and it might be fixed by remote config, too.
*/
int l_maxclock = sys_maxclock;
int l_minclock = sys_minclock;
int l_minsane = sys_minsane;
int l_floor = sys_floor;
int l_ceiling = sys_ceiling;
/* -*- phase one: inspect / sanitize the values */
tos = HEAD_PFIFO(ptree->orphan_cmds);
for (; tos != NULL; tos = tos->link) {
/* not all attributes are doubles (any more), so loading
* 'val' in all cases is not a good idea: It should be
* done as needed in every case processed here.
*/
switch(tos->attr) {
default:
break;
case T_Bcpollbstep:
val = tos->value.d;
if (val > 4) {
msyslog(LOG_WARNING,
"Using maximum tos bcpollbstep %d, %d requested",
4, (int)val);
tos->value.d = 4;
} else if (val < 0) {
msyslog(LOG_WARNING,
"Using minimum tos bcpollbstep %d, %d requested",
0, (int)val);
tos->value.d = 0;
}
break;
case T_Floor:
l_floor = (int)tos->value.d;
if (l_floor > STRATUM_UNSPEC - 1) {
msyslog(LOG_WARNING,
"Using maximum tos floor %d, %d requested",
STRATUM_UNSPEC - 1, l_floor);
tos->value.d = STRATUM_UNSPEC - 1;
}
else if (l_floor < 0) {
msyslog(LOG_WARNING,
"Using minimum tos floor %d, %d requested",
0, l_floor);
tos->value.d = 0;
}
l_floor = (int)tos->value.d;
break;
case T_Ceiling:
l_ceiling = (int)tos->value.d;
if (l_ceiling > STRATUM_UNSPEC - 1) {
msyslog(LOG_WARNING,
"Using maximum tos ceiling %d, %d requested",
STRATUM_UNSPEC - 1, l_ceiling);
tos->value.d = STRATUM_UNSPEC - 1;
}
else if (l_ceiling < 0) {
msyslog(LOG_WARNING,
"Using minimum tos ceiling %d, %d requested",
0, l_ceiling);
tos->value.d = 0;
}
l_ceiling = (int)tos->value.d;
break;
case T_Minclock:
val = tos->value.d;
if ((int)tos->value.d < 1)
tos->value.d = 1;
l_minclock = (int)tos->value.d;
break;
case T_Maxclock:
val = tos->value.d;
if ((int)tos->value.d < 1)
tos->value.d = 1;
l_maxclock = (int)tos->value.d;
break;
case T_Minsane:
val = tos->value.d;
if ((int)tos->value.d < 0)
tos->value.d = 0;
l_minsane = (int)tos->value.d;
break;
}
}
if ( ! (l_minsane < l_minclock && l_minclock <= l_maxclock)) {
msyslog(LOG_ERR, "Must have tos "
"minsane (%d) < minclock (%d) <= maxclock (%d)%s",
l_minsane, l_minclock, l_maxclock,
improper_operation_msg);
}
if (l_floor > l_ceiling) {
msyslog(LOG_ERR, "Must have tos "
"floor (%d) <= ceiling (%d)%s",
l_floor, l_ceiling, improper_operation_msg);
}
/* -*- phase two: forward the values to the protocol machinery */
tos = HEAD_PFIFO(ptree->orphan_cmds);
for (; tos != NULL; tos = tos->link) {
switch(tos->attr) {
default:
fatal_error("config-tos: attr-token=%d", tos->attr);
case T_Bcpollbstep:
item = PROTO_BCPOLLBSTEP;
break;
case T_Ceiling:
item = PROTO_CEILING;
break;
case T_Floor:
item = PROTO_FLOOR;
break;
case T_Cohort:
item = PROTO_COHORT;
break;
case T_Orphan:
item = PROTO_ORPHAN;
break;
case T_Orphanwait:
item = PROTO_ORPHWAIT;
break;
case T_Mindist:
item = PROTO_MINDISP;
break;
case T_Maxdist:
item = PROTO_MAXDIST;
break;
case T_Minclock:
item = PROTO_MINCLOCK;
break;
case T_Maxclock:
item = PROTO_MAXCLOCK;
break;
case T_Minsane:
item = PROTO_MINSANE;
break;
case T_Beacon:
item = PROTO_BEACON;
break;
case T_Basedate:
continue; /* SKIP proto-config for this! */
}
proto_config(item, 0, tos->value.d, NULL);
}
}
#ifdef FREE_CFG_T
static void
free_config_tos(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->orphan_cmds);
}
#endif /* FREE_CFG_T */
static void
config_monitor(
config_tree *ptree
)
{
int_node *pfilegen_token;
const char *filegen_string;
const char *filegen_file;
FILEGEN *filegen;
filegen_node *my_node;
attr_val *my_opts;
int filegen_type;
int filegen_flag;
/* Set the statistics directory */
if (ptree->stats_dir)
stats_config(STATS_STATSDIR, ptree->stats_dir, 0);
/* NOTE:
* Calling filegen_get is brain dead. Doing a string
* comparison to find the relavant filegen structure is
* expensive.
*
* Through the parser, we already know which filegen is
* being specified. Hence, we should either store a
* pointer to the specified structure in the syntax tree
* or an index into a filegen array.
*
* Need to change the filegen code to reflect the above.
*/
/* Turn on the specified statistics */
pfilegen_token = HEAD_PFIFO(ptree->stats_list);
for (; pfilegen_token != NULL; pfilegen_token = pfilegen_token->link) {
filegen_string = keyword(pfilegen_token->i);
filegen = filegen_get(filegen_string);
if (NULL == filegen) {
msyslog(LOG_ERR,
"stats %s unrecognized",
filegen_string);
continue;
}
DPRINTF(4, ("enabling filegen for %s statistics '%s%s'\n",
filegen_string, filegen->dir,
filegen->fname));
filegen_flag = filegen->flag;
filegen_flag |= FGEN_FLAG_ENABLED;
filegen_config(filegen, statsdir, filegen_string,
filegen->type, filegen_flag);
}
/* Configure the statistics with the options */
my_node = HEAD_PFIFO(ptree->filegen_opts);
for (; my_node != NULL; my_node = my_node->link) {
filegen_string = keyword(my_node->filegen_token);
filegen = filegen_get(filegen_string);
if (NULL == filegen) {
msyslog(LOG_ERR,
"filegen category '%s' unrecognized",
filegen_string);
continue;
}
filegen_file = filegen_string;
/* Initialize the filegen variables to their pre-configuration states */
filegen_flag = filegen->flag;
filegen_type = filegen->type;
/* "filegen ... enabled" is the default (when filegen is used) */
filegen_flag |= FGEN_FLAG_ENABLED;
my_opts = HEAD_PFIFO(my_node->options);
for (; my_opts != NULL; my_opts = my_opts->link) {
switch (my_opts->attr) {
case T_File:
filegen_file = my_opts->value.s;
break;
case T_Type:
switch (my_opts->value.i) {
default:
fatal_error("config-monitor: type-token=%d", my_opts->value.i);
case T_None:
filegen_type = FILEGEN_NONE;
break;
case T_Pid:
filegen_type = FILEGEN_PID;
break;
case T_Day:
filegen_type = FILEGEN_DAY;
break;
case T_Week:
filegen_type = FILEGEN_WEEK;
break;
case T_Month:
filegen_type = FILEGEN_MONTH;
break;
case T_Year:
filegen_type = FILEGEN_YEAR;
break;
case T_Age:
filegen_type = FILEGEN_AGE;
break;
}
break;
case T_Flag:
switch (my_opts->value.i) {
case T_Link:
filegen_flag |= FGEN_FLAG_LINK;
break;
case T_Nolink:
filegen_flag &= ~FGEN_FLAG_LINK;
break;
case T_Enable:
filegen_flag |= FGEN_FLAG_ENABLED;
break;
case T_Disable:
filegen_flag &= ~FGEN_FLAG_ENABLED;
break;
default:
msyslog(LOG_ERR,
"Unknown filegen flag token %d",
my_opts->value.i);
exit(1);
}
break;
default:
msyslog(LOG_ERR,
"Unknown filegen option token %d",
my_opts->attr);
exit(1);
}
}
filegen_config(filegen, statsdir, filegen_file,
filegen_type, filegen_flag);
}
}
#ifdef FREE_CFG_T
static void
free_config_monitor(
config_tree *ptree
)
{
if (ptree->stats_dir) {
free(ptree->stats_dir);
ptree->stats_dir = NULL;
}
FREE_INT_FIFO(ptree->stats_list);
FREE_FILEGEN_FIFO(ptree->filegen_opts);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_access(
config_tree *ptree
)
{
static int warned_signd;
attr_val * my_opt;
restrict_node * my_node;
sockaddr_u addr;
sockaddr_u mask;
struct addrinfo hints;
struct addrinfo * ai_list;
struct addrinfo * pai;
int rc;
int restrict_default;
u_short rflags;
u_short mflags;
short ippeerlimit;
int range_err;
psl_item my_psl_item;
attr_val * atrv;
attr_val * dflt_psl_atr;
const char * signd_warning =
#ifdef HAVE_NTP_SIGND
"MS-SNTP signd operations currently block ntpd degrading service to all clients.";
#else
"mssntp restrict bit ignored, this ntpd was configured without --enable-ntp-signd.";
#endif
/* Configure the mru options */
my_opt = HEAD_PFIFO(ptree->mru_opts);
for (; my_opt != NULL; my_opt = my_opt->link) {
range_err = FALSE;
switch (my_opt->attr) {
case T_Incalloc:
if (0 <= my_opt->value.i)
mru_incalloc = my_opt->value.u;
else
range_err = TRUE;
break;
case T_Incmem:
if (0 <= my_opt->value.i)
mru_incalloc = (my_opt->value.u * 1024U)
/ sizeof(mon_entry);
else
range_err = TRUE;
break;
case T_Initalloc:
if (0 <= my_opt->value.i)
mru_initalloc = my_opt->value.u;
else
range_err = TRUE;
break;
case T_Initmem:
if (0 <= my_opt->value.i)
mru_initalloc = (my_opt->value.u * 1024U)
/ sizeof(mon_entry);
else
range_err = TRUE;
break;
case T_Mindepth:
if (0 <= my_opt->value.i)
mru_mindepth = my_opt->value.u;
else
range_err = TRUE;
break;
case T_Maxage:
mru_maxage = my_opt->value.i;
break;
case T_Maxdepth:
if (0 <= my_opt->value.i)
mru_maxdepth = my_opt->value.u;
else
mru_maxdepth = UINT_MAX;
break;
case T_Maxmem:
if (0 <= my_opt->value.i)
mru_maxdepth = (my_opt->value.u * 1024U) /
sizeof(mon_entry);
else
mru_maxdepth = UINT_MAX;
break;
default:
msyslog(LOG_ERR,
"Unknown mru option %s (%d)",
keyword(my_opt->attr), my_opt->attr);
exit(1);
}
if (range_err)
msyslog(LOG_ERR,
"mru %s %d out of range, ignored.",
keyword(my_opt->attr), my_opt->value.i);
}
/* Configure the discard options */
my_opt = HEAD_PFIFO(ptree->discard_opts);
for (; my_opt != NULL; my_opt = my_opt->link) {
switch (my_opt->attr) {
case T_Average:
if (0 <= my_opt->value.i &&
my_opt->value.i <= UCHAR_MAX)
ntp_minpoll = (u_char)my_opt->value.u;
else
msyslog(LOG_ERR,
"discard average %d out of range, ignored.",
my_opt->value.i);
break;
case T_Minimum:
ntp_minpkt = my_opt->value.i;
break;
case T_Monitor:
mon_age = my_opt->value.i;
break;
default:
msyslog(LOG_ERR,
"Unknown discard option %s (%d)",
keyword(my_opt->attr), my_opt->attr);
exit(1);
}
}
/* Configure each line of restrict options */
my_node = HEAD_PFIFO(ptree->restrict_opts);
for (; my_node != NULL; my_node = my_node->link) {
/* Grab the ippeerlmit */
ippeerlimit = my_node->ippeerlimit;
/* Parse the flags */
rflags = 0;
mflags = 0;
my_opt = HEAD_PFIFO(my_node->flag_tok_fifo);
for (; my_opt != NULL; my_opt = my_opt->link) {
switch (my_opt->attr) {
default:
fatal_error("config_access: Unknown flag-type-token=%s/%d", keyword(my_opt->attr), my_opt->attr);
case T_Ntpport:
mflags |= RESM_NTPONLY;
break;
case T_Source:
mflags |= RESM_SOURCE;
break;
case T_Flake:
rflags |= RES_FLAKE;
break;
case T_Ignore:
rflags |= RES_IGNORE;
break;
case T_Kod:
rflags |= RES_KOD;
break;
case T_Limited:
rflags |= RES_LIMITED;
break;
case T_Lowpriotrap:
rflags |= RES_LPTRAP;
break;
case T_Mssntp:
rflags |= RES_MSSNTP;
break;
case T_Nomodify:
rflags |= RES_NOMODIFY;
break;
case T_Nomrulist:
rflags |= RES_NOMRULIST;
break;
case T_Noepeer:
rflags |= RES_NOEPEER;
break;
case T_Nopeer:
rflags |= RES_NOPEER;
break;
case T_Noquery:
rflags |= RES_NOQUERY;
break;
case T_Noserve:
rflags |= RES_DONTSERVE;
break;
case T_Notrap:
rflags |= RES_NOTRAP;
break;
case T_Notrust:
rflags |= RES_DONTTRUST;
break;
case T_ServerresponseFuzz:
rflags |= RES_SRVRSPFUZ;
break;
case T_Version:
rflags |= RES_VERSION;
break;
}
}
if ((RES_MSSNTP & rflags) && !warned_signd) {
warned_signd = 1;
fprintf(stderr, "%s\n", signd_warning);
msyslog(LOG_WARNING, "%s", signd_warning);
}
/* It would be swell if we could identify the line number */
if ((RES_KOD & rflags) && !(RES_LIMITED & rflags)) {
const char *kod_where = (my_node->addr)
? my_node->addr->address
: (mflags & RESM_SOURCE)
? "source"
: "default";
const char *kod_warn = "KOD does nothing without LIMITED.";
fprintf(stderr, "restrict %s: %s\n", kod_where, kod_warn);
msyslog(LOG_WARNING, "restrict %s: %s", kod_where, kod_warn);
}
ZERO_SOCK(&addr);
ai_list = NULL;
pai = NULL;
restrict_default = 0;
if (NULL == my_node->addr) {
ZERO_SOCK(&mask);
if (!(RESM_SOURCE & mflags)) {
/*
* The user specified a default rule
* without a -4 / -6 qualifier, add to
* both lists
*/
restrict_default = 1;
} else {
/* apply "restrict source ..." */
DPRINTF(1, ("restrict source template ippeerlimit %d mflags %x rflags %x\n",
ippeerlimit, mflags, rflags));
hack_restrict(RESTRICT_FLAGS, NULL, NULL,
ippeerlimit, mflags, rflags, 0);
continue;
}
} else {
/* Resolve the specified address */
AF(&addr) = (u_short)my_node->addr->type;
if (getnetnum(my_node->addr->address,
&addr, 1, t_UNK) != 1) {
/*
* Attempt a blocking lookup. This
* is in violation of the nonblocking
* design of ntpd's mainline code. The
* alternative of running without the
* restriction until the name resolved
* seems worse.
* Ideally some scheme could be used for
* restrict directives in the startup
* ntp.conf to delay starting up the
* protocol machinery until after all
* restrict hosts have been resolved.
*/
ai_list = NULL;
ZERO(hints);
hints.ai_protocol = IPPROTO_UDP;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_family = my_node->addr->type;
rc = getaddrinfo(my_node->addr->address,
"ntp", &hints,
&ai_list);
if (rc) {
msyslog(LOG_ERR,
"restrict: ignoring line %d, address/host '%s' unusable.",
my_node->line_no,
my_node->addr->address);
continue;
}
INSIST(ai_list != NULL);
pai = ai_list;
INSIST(pai->ai_addr != NULL);
INSIST(sizeof(addr) >=
pai->ai_addrlen);
memcpy(&addr, pai->ai_addr,
pai->ai_addrlen);
INSIST(AF_INET == AF(&addr) ||
AF_INET6 == AF(&addr));
}
SET_HOSTMASK(&mask, AF(&addr));
/* Resolve the mask */
if (my_node->mask) {
ZERO_SOCK(&mask);
AF(&mask) = my_node->mask->type;
if (getnetnum(my_node->mask->address,
&mask, 1, t_MSK) != 1) {
msyslog(LOG_ERR,
"restrict: ignoring line %d, mask '%s' unusable.",
my_node->line_no,
my_node->mask->address);
continue;
}
}
}
/* Set the flags */
if (restrict_default) {
AF(&addr) = AF_INET;
AF(&mask) = AF_INET;
hack_restrict(RESTRICT_FLAGS, &addr, &mask,
ippeerlimit, mflags, rflags, 0);
AF(&addr) = AF_INET6;
AF(&mask) = AF_INET6;
}
do {
hack_restrict(RESTRICT_FLAGS, &addr, &mask,
ippeerlimit, mflags, rflags, 0);
if (pai != NULL &&
NULL != (pai = pai->ai_next)) {
INSIST(pai->ai_addr != NULL);
INSIST(sizeof(addr) >=
pai->ai_addrlen);
ZERO_SOCK(&addr);
memcpy(&addr, pai->ai_addr,
pai->ai_addrlen);
INSIST(AF_INET == AF(&addr) ||
AF_INET6 == AF(&addr));
SET_HOSTMASK(&mask, AF(&addr));
}
} while (pai != NULL);
if (ai_list != NULL)
freeaddrinfo(ai_list);
}
/* Deal with the Poll Skew List */
ZERO(psl);
ZERO(my_psl_item);
/*
* First, find the last default pollskewlist item.
* There should only be one of these with the current grammar,
* but better safe than sorry.
*/
dflt_psl_atr = NULL;
atrv = HEAD_PFIFO(ptree->pollskewlist);
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->attr) {
case -1: /* default */
dflt_psl_atr = atrv;
break;
case 3: /* Fall through */
case 4: /* Fall through */
case 5: /* Fall through */
case 6: /* Fall through */
case 7: /* Fall through */
case 8: /* Fall through */
case 9: /* Fall through */
case 10: /* Fall through */
case 11: /* Fall through */
case 12: /* Fall through */
case 13: /* Fall through */
case 14: /* Fall through */
case 15: /* Fall through */
case 16: /* Fall through */
case 17:
/* ignore */
break;
default:
msyslog(LOG_ERR,
"config_access: default PSL scan: ignoring unexpected poll value %d",
atrv->attr);
break;
}
}
/* If we have a nonzero default, initialize the PSL */
if ( dflt_psl_atr
&& ( 0 != dflt_psl_atr->value.r.first
|| 0 != dflt_psl_atr->value.r.last)) {
int i;
for (i = 3; i <= 17; ++i) {
attrtopsl(i, dflt_psl_atr);
}
}
/* Finally, update the PSL with any explicit entries */
atrv = HEAD_PFIFO(ptree->pollskewlist);
for ( ; atrv != NULL; atrv = atrv->link) {
switch (atrv->attr) {
case -1: /* default */
/* Ignore */
break;
case 3: /* Fall through */
case 4: /* Fall through */
case 5: /* Fall through */
case 6: /* Fall through */
case 7: /* Fall through */
case 8: /* Fall through */
case 9: /* Fall through */
case 10: /* Fall through */
case 11: /* Fall through */
case 12: /* Fall through */
case 13: /* Fall through */
case 14: /* Fall through */
case 15: /* Fall through */
case 16: /* Fall through */
case 17:
attrtopsl(atrv->attr, atrv);
break;
default:
break; /* Ignore - we reported this above */
}
}
#if 0
int p;
msyslog(LOG_INFO, "Dumping PSL:");
for (p = 3; p <= 17; ++p) {
psl_item psi;
if (0 == get_pollskew(p, &psi)) {
msyslog(LOG_INFO, "poll %d: sub %d, qty %d, msk %d",
p, psi.sub, psi.qty, psi.msk);
} else {
msyslog(LOG_ERR, "Dumping PSL: get_pollskew(%d) failed!", p);
}
}
#endif
}
void
attrtopsl(int poll, attr_val *avp)
{
DEBUG_INSIST((poll - 3) < sizeof psl);
if (poll < 3 || poll > 17) {
msyslog(LOG_ERR, "attrtopsl(%d, ...): Poll value is out of range - ignoring", poll);
} else {
int pao = poll - 3; /* poll array offset */
int lower = avp->value.r.first; /* a positive number */
int upper = avp->value.r.last;
int psmax = 1 << (poll - 1);
int qmsk;
if (lower > psmax) {
msyslog(LOG_WARNING, "attrtopsl: default: poll %d lower bound reduced from %d to %d",
poll, lower, psmax);
lower = psmax;
}
if (upper > psmax) {
msyslog(LOG_WARNING, "attrtopsl: default: poll %d upper bound reduced from %d to %d",
poll, upper, psmax);
upper = psmax;
}
psl[pao].sub = lower;
psl[pao].qty = lower + upper;
qmsk = 1;
while (qmsk < (lower + upper)) {
qmsk <<= 1;
qmsk |= 1;
};
psl[pao].msk = qmsk;
}
return;
}
#endif /* !SIM */
int
get_pollskew(
int p,
psl_item *rv
)
{
#ifdef DISABLE_BUG3767_FIX
DEBUG_INSIST(3 <= p && 17 >= p);
#endif
if (3 <= p && 17 >= p) {
*rv = psl[p - 3];
return 0;
} else {
msyslog(LOG_ERR, "get_pollskew(%d): poll is not between 3 and 17!", p);
return -1;
}
/* NOTREACHED */
}
#ifdef FREE_CFG_T
static void
free_config_access(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->mru_opts);
FREE_ATTR_VAL_FIFO(ptree->discard_opts);
FREE_RESTRICT_FIFO(ptree->restrict_opts);
}
#endif /* FREE_CFG_T */
static void
config_rlimit(
config_tree *ptree
)
{
attr_val * rlimit_av;
rlimit_av = HEAD_PFIFO(ptree->rlimit);
for (; rlimit_av != NULL; rlimit_av = rlimit_av->link) {
switch (rlimit_av->attr) {
default:
fatal_error("config-rlimit: value-token=%d", rlimit_av->attr);
case T_Memlock:
/* What if we HAVE_OPT(SAVECONFIGQUIT) ? */
if (HAVE_OPT( SAVECONFIGQUIT )) {
break;
}
if (rlimit_av->value.i == -1) {
# if defined(HAVE_MLOCKALL)
if (cur_memlock != 0) {
if (-1 == munlockall()) {
msyslog(LOG_ERR, "munlockall() failed: %m");
}
}
cur_memlock = 0;
# endif /* HAVE_MLOCKALL */
} else if (rlimit_av->value.i >= 0) {
#if defined(RLIMIT_MEMLOCK)
# if defined(HAVE_MLOCKALL)
if (cur_memlock != 1) {
if (-1 == mlockall(MCL_CURRENT|MCL_FUTURE)) {
msyslog(LOG_ERR, "mlockall() failed: %m");
}
}
# endif /* HAVE_MLOCKALL */
ntp_rlimit(RLIMIT_MEMLOCK,
(rlim_t)(rlimit_av->value.i * 1024 * 1024),
1024 * 1024,
"MB");
cur_memlock = 1;
#else
/* STDERR as well would be fine... */
msyslog(LOG_WARNING, "'rlimit memlock' specified but is not available on this system.");
#endif /* RLIMIT_MEMLOCK */
} else {
msyslog(LOG_WARNING, "'rlimit memlock' value of %d is unexpected!", rlimit_av->value.i);
}
break;
case T_Stacksize:
#if defined(RLIMIT_STACK)
ntp_rlimit(RLIMIT_STACK,
(rlim_t)(rlimit_av->value.i * 4096),
4096,
"4k");
#else
/* STDERR as well would be fine... */
msyslog(LOG_WARNING, "'rlimit stacksize' specified but is not available on this system.");
#endif /* RLIMIT_STACK */
break;
case T_Filenum:
#if defined(RLIMIT_NOFILE)
ntp_rlimit(RLIMIT_NOFILE,
(rlim_t)(rlimit_av->value.i),
1,
"");
#else
/* STDERR as well would be fine... */
msyslog(LOG_WARNING, "'rlimit filenum' specified but is not available on this system.");
#endif /* RLIMIT_NOFILE */
break;
}
}
}
static void
config_tinker(
config_tree *ptree
)
{
attr_val * tinker;
int item;
tinker = HEAD_PFIFO(ptree->tinker);
for (; tinker != NULL; tinker = tinker->link) {
switch (tinker->attr) {
default:
fatal_error("config_tinker: attr-token=%d", tinker->attr);
case T_Allan:
item = LOOP_ALLAN;
break;
case T_Dispersion:
item = LOOP_PHI;
break;
case T_Freq:
item = LOOP_FREQ;
break;
case T_Huffpuff:
item = LOOP_HUFFPUFF;
break;
case T_Panic:
item = LOOP_PANIC;
break;
case T_Step:
item = LOOP_MAX;
break;
case T_Stepback:
item = LOOP_MAX_BACK;
break;
case T_Stepfwd:
item = LOOP_MAX_FWD;
break;
case T_Stepout:
item = LOOP_MINSTEP;
break;
case T_Tick:
item = LOOP_TICK;
break;
}
loop_config(item, tinker->value.d);
}
}
#ifdef FREE_CFG_T
static void
free_config_rlimit(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->rlimit);
}
static void
free_config_tinker(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->tinker);
}
#endif /* FREE_CFG_T */
/*
* config_nic_rules - apply interface listen/ignore/drop items
*/
#ifndef SIM
static void
config_nic_rules(
config_tree *ptree,
int/*BOOL*/ input_from_file
)
{
nic_rule_node * curr_node;
sockaddr_u addr;
nic_rule_match match_type;
nic_rule_action action;
char * if_name;
char * pchSlash;
int prefixlen;
int addrbits;
curr_node = HEAD_PFIFO(ptree->nic_rules);
if (curr_node != NULL
&& (HAVE_OPT( NOVIRTUALIPS ) || HAVE_OPT( INTERFACE ))) {
msyslog(LOG_ERR,
"interface/nic rules are not allowed with --interface (-I) or --novirtualips (-L)%s",
(input_from_file) ? ", exiting" : "");
if (input_from_file)
exit(1);
else
return;
}
for (; curr_node != NULL; curr_node = curr_node->link) {
prefixlen = -1;
if_name = curr_node->if_name;
if (if_name != NULL)
if_name = estrdup(if_name);
switch (curr_node->match_class) {
default:
fatal_error("config_nic_rules: match-class-token=%d", curr_node->match_class);
case 0:
/*
* 0 is out of range for valid token T_...
* and in a nic_rules_node indicates the
* interface descriptor is either a name or
* address, stored in if_name in either case.
*/
INSIST(if_name != NULL);
pchSlash = strchr(if_name, '/');
if (pchSlash != NULL)
*pchSlash = '\0';
if (is_ip_address(if_name, AF_UNSPEC, &addr)) {
match_type = MATCH_IFADDR;
if (pchSlash != NULL
&& 1 == sscanf(pchSlash + 1, "%d",
&prefixlen)) {
addrbits = 8 *
SIZEOF_INADDR(AF(&addr));
prefixlen = max(-1, prefixlen);
prefixlen = min(prefixlen,
addrbits);
}
} else {
match_type = MATCH_IFNAME;
if (pchSlash != NULL)
*pchSlash = '/';
}
break;
case T_All:
match_type = MATCH_ALL;
break;
case T_Ipv4:
match_type = MATCH_IPV4;
break;
case T_Ipv6:
match_type = MATCH_IPV6;
break;
case T_Wildcard:
match_type = MATCH_WILDCARD;
break;
}
switch (curr_node->action) {
default:
fatal_error("config_nic_rules: action-token=%d", curr_node->action);
case T_Listen:
action = ACTION_LISTEN;
break;
case T_Ignore:
action = ACTION_IGNORE;
break;
case T_Drop:
action = ACTION_DROP;
break;
}
add_nic_rule(match_type, if_name, prefixlen,
action);
timer_interfacetimeout(current_time + 2);
if (if_name != NULL)
free(if_name);
}
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_nic_rules(
config_tree *ptree
)
{
nic_rule_node *curr_node;
if (ptree->nic_rules != NULL) {
for (;;) {
UNLINK_FIFO(curr_node, *ptree->nic_rules, link);
if (NULL == curr_node)
break;
free(curr_node->if_name);
free(curr_node);
}
free(ptree->nic_rules);
ptree->nic_rules = NULL;
}
}
#endif /* FREE_CFG_T */
static void
apply_enable_disable(
attr_val_fifo * fifo,
int enable
)
{
attr_val *curr_tok_fifo;
int option;
#ifdef BC_LIST_FRAMEWORK_NOT_YET_USED
bc_entry *pentry;
#endif
for (curr_tok_fifo = HEAD_PFIFO(fifo);
curr_tok_fifo != NULL;
curr_tok_fifo = curr_tok_fifo->link) {
option = curr_tok_fifo->value.i;
switch (option) {
default:
msyslog(LOG_ERR,
"can not apply enable/disable token %d, unknown",
option);
break;
case T_Auth:
proto_config(PROTO_AUTHENTICATE, enable, 0., NULL);
break;
case T_Bclient:
proto_config(PROTO_BROADCLIENT, enable, 0., NULL);
break;
case T_Calibrate:
proto_config(PROTO_CAL, enable, 0., NULL);
break;
case T_Kernel:
proto_config(PROTO_KERNEL, enable, 0., NULL);
break;
case T_Monitor:
proto_config(PROTO_MONITOR, enable, 0., NULL);
break;
case T_Mode7:
proto_config(PROTO_MODE7, enable, 0., NULL);
break;
case T_Ntp:
proto_config(PROTO_NTP, enable, 0., NULL);
break;
case T_PCEdigest:
proto_config(PROTO_PCEDIGEST, enable, 0., NULL);
break;
case T_Stats:
proto_config(PROTO_FILEGEN, enable, 0., NULL);
break;
case T_UEcrypto:
proto_config(PROTO_UECRYPTO, enable, 0., NULL);
break;
case T_UEcryptonak:
proto_config(PROTO_UECRYPTONAK, enable, 0., NULL);
break;
case T_UEdigest:
proto_config(PROTO_UEDIGEST, enable, 0., NULL);
break;
#ifdef BC_LIST_FRAMEWORK_NOT_YET_USED
case T_Bc_bugXXXX:
pentry = bc_list;
while (pentry->token) {
if (pentry->token == option)
break;
pentry++;
}
if (!pentry->token) {
msyslog(LOG_ERR,
"compat token %d not in bc_list[]",
option);
continue;
}
pentry->enabled = enable;
break;
#endif
}
}
}
static void
config_system_opts(
config_tree *ptree
)
{
apply_enable_disable(ptree->enable_opts, 1);
apply_enable_disable(ptree->disable_opts, 0);
}
#ifdef FREE_CFG_T
static void
free_config_system_opts(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->enable_opts);
FREE_ATTR_VAL_FIFO(ptree->disable_opts);
}
#endif /* FREE_CFG_T */
static void
config_logconfig(
config_tree *ptree
)
{
attr_val * my_lc;
my_lc = HEAD_PFIFO(ptree->logconfig);
for (; my_lc != NULL; my_lc = my_lc->link) {
switch (my_lc->attr) {
case '+':
ntp_syslogmask |= get_logmask(my_lc->value.s);
break;
case '-':
ntp_syslogmask &= ~get_logmask(my_lc->value.s);
break;
case '=':
ntp_syslogmask = get_logmask(my_lc->value.s);
break;
default:
fatal_error("config-logconfig: modifier='%c'", my_lc->attr);
}
}
}
#ifdef FREE_CFG_T
static void
free_config_logconfig(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->logconfig);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_phone(
config_tree *ptree
)
{
size_t i;
string_node * sn;
i = 0;
sn = HEAD_PFIFO(ptree->phone);
for (; sn != NULL; sn = sn->link) {
/* need to leave array entry for NULL terminator */
if (i < COUNTOF(sys_phone) - 1) {
sys_phone[i++] = estrdup(sn->s);
sys_phone[i] = NULL;
} else {
msyslog(LOG_INFO,
"phone: Number of phone entries exceeds %zu. Ignoring phone %s...",
(COUNTOF(sys_phone) - 1), sn->s);
}
}
}
static void
config_mdnstries(
config_tree *ptree
)
{
#ifdef HAVE_DNSREGISTRATION
extern int mdnstries;
mdnstries = ptree->mdnstries;
#endif /* HAVE_DNSREGISTRATION */
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_phone(
config_tree *ptree
)
{
FREE_STRING_FIFO(ptree->phone);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_setvar(
config_tree *ptree
)
{
setvar_node *my_node;
size_t varlen, vallen, octets;
char * str;
str = NULL;
my_node = HEAD_PFIFO(ptree->setvar);
for (; my_node != NULL; my_node = my_node->link) {
varlen = strlen(my_node->var);
vallen = strlen(my_node->val);
octets = varlen + vallen + 1 + 1;
str = erealloc(str, octets);
snprintf(str, octets, "%s=%s", my_node->var,
my_node->val);
set_sys_var(str, octets, (my_node->isdefault)
? DEF
: 0);
}
if (str != NULL)
free(str);
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_setvar(
config_tree *ptree
)
{
FREE_SETVAR_FIFO(ptree->setvar);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_ttl(
config_tree *ptree
)
{
size_t i = 0;
int_node *curr_ttl;
/* [Bug 3465] There is a built-in default for the TTLs. We must
* overwrite 'sys_ttlmax' if we change that preset, and leave it
* alone otherwise!
*/
curr_ttl = HEAD_PFIFO(ptree->ttl);
for (; curr_ttl != NULL; curr_ttl = curr_ttl->link) {
if (i < COUNTOF(sys_ttl))
sys_ttl[i++] = (u_char)curr_ttl->i;
else
msyslog(LOG_INFO,
"ttl: Number of TTL entries exceeds %zu. Ignoring TTL %d...",
COUNTOF(sys_ttl), curr_ttl->i);
}
if (0 != i) /* anything written back at all? */
sys_ttlmax = i - 1;
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_ttl(
config_tree *ptree
)
{
FREE_INT_FIFO(ptree->ttl);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_trap(
config_tree *ptree
)
{
addr_opts_node *curr_trap;
attr_val *curr_opt;
sockaddr_u addr_sock;
sockaddr_u peeraddr;
struct interface *localaddr;
struct addrinfo hints;
char port_text[8];
settrap_parms *pstp;
u_short port;
int err_flag;
int rc;
/* silence warning about addr_sock potentially uninitialized */
AF(&addr_sock) = AF_UNSPEC;
curr_trap = HEAD_PFIFO(ptree->trap);
for (; curr_trap != NULL; curr_trap = curr_trap->link) {
err_flag = 0;
port = 0;
localaddr = NULL;
curr_opt = HEAD_PFIFO(curr_trap->options);
for (; curr_opt != NULL; curr_opt = curr_opt->link) {
if (T_Port == curr_opt->attr) {
if (curr_opt->value.i < 1
|| curr_opt->value.i > USHRT_MAX) {
msyslog(LOG_ERR,
"invalid port number "
"%d, trap ignored",
curr_opt->value.i);
err_flag = 1;
}
port = (u_short)curr_opt->value.i;
}
else if (T_Interface == curr_opt->attr) {
/* Resolve the interface address */
ZERO_SOCK(&addr_sock);
if (getnetnum(curr_opt->value.s,
&addr_sock, 1, t_UNK) != 1) {
err_flag = 1;
break;
}
localaddr = findinterface(&addr_sock);
if (NULL == localaddr) {
msyslog(LOG_ERR,
"can't find interface with address %s",
stoa(&addr_sock));
err_flag = 1;
}
}
}
/* Now process the trap for the specified interface
* and port number
*/
if (!err_flag) {
if (!port)
port = TRAPPORT;
ZERO_SOCK(&peeraddr);
rc = getnetnum(curr_trap->addr->address,
&peeraddr, 1, t_UNK);
if (1 != rc) {
#ifndef WORKER
msyslog(LOG_ERR,
"trap: unable to use IP address %s.",
curr_trap->addr->address);
#else /* WORKER follows */
/*
* save context and hand it off
* for name resolution.
*/
ZERO(hints);
hints.ai_protocol = IPPROTO_UDP;
hints.ai_socktype = SOCK_DGRAM;
snprintf(port_text, sizeof(port_text),
"%u", port);
hints.ai_flags = Z_AI_NUMERICSERV;
pstp = emalloc_zero(sizeof(*pstp));
if (localaddr != NULL) {
hints.ai_family = localaddr->family;
pstp->ifaddr_nonnull = 1;
memcpy(&pstp->ifaddr,
&localaddr->sin,
sizeof(pstp->ifaddr));
}
rc = getaddrinfo_sometime(
curr_trap->addr->address,
port_text, &hints,
INITIAL_DNS_RETRY,
&trap_name_resolved,
pstp);
if (!rc)
msyslog(LOG_ERR,
"config_trap: getaddrinfo_sometime(%s,%s): %m",
curr_trap->addr->address,
port_text);
#endif /* WORKER */
continue;
}
/* port is at same location for v4 and v6 */
SET_PORT(&peeraddr, port);
if (NULL == localaddr)
localaddr = ANY_INTERFACE_CHOOSE(&peeraddr);
else
AF(&peeraddr) = AF(&addr_sock);
if (!ctlsettrap(&peeraddr, localaddr, 0,
NTP_VERSION))
msyslog(LOG_ERR,
"set trap %s -> %s failed.",
latoa(localaddr),
stoa(&peeraddr));
}
}
}
/*
* trap_name_resolved()
*
* Callback invoked when config_trap()'s DNS lookup completes.
*/
# ifdef WORKER
static void
trap_name_resolved(
int rescode,
int gai_errno,
void * context,
const char * name,
const char * service,
const struct addrinfo * hints,
const struct addrinfo * res
)
{
settrap_parms *pstp;
struct interface *localaddr;
sockaddr_u peeraddr;
(void)gai_errno;
(void)service;
(void)hints;
pstp = context;
if (rescode) {
msyslog(LOG_ERR,
"giving up resolving trap host %s: %s (%d)",
name, gai_strerror(rescode), rescode);
free(pstp);
return;
}
INSIST(sizeof(peeraddr) >= res->ai_addrlen);
ZERO(peeraddr);
memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
localaddr = NULL;
if (pstp->ifaddr_nonnull)
localaddr = findinterface(&pstp->ifaddr);
if (NULL == localaddr)
localaddr = ANY_INTERFACE_CHOOSE(&peeraddr);
if (!ctlsettrap(&peeraddr, localaddr, 0, NTP_VERSION))
msyslog(LOG_ERR, "set trap %s -> %s failed.",
latoa(localaddr), stoa(&peeraddr));
free(pstp);
}
# endif /* WORKER */
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_trap(
config_tree *ptree
)
{
FREE_ADDR_OPTS_FIFO(ptree->trap);
}
#endif /* FREE_CFG_T */
#ifndef SIM
static void
config_fudge(
config_tree *ptree
)
{
addr_opts_node *curr_fudge;
attr_val *curr_opt;
sockaddr_u addr_sock;
address_node *addr_node;
struct refclockstat clock_stat;
char refid_str[5];
int err_flag;
curr_fudge = HEAD_PFIFO(ptree->fudge);
for (; curr_fudge != NULL; curr_fudge = curr_fudge->link) {
err_flag = 0;
/* Get the reference clock address and
* ensure that it is sane
*/
addr_node = curr_fudge->addr;
ZERO_SOCK(&addr_sock);
if (getnetnum(addr_node->address, &addr_sock, 1, t_REF)
!= 1) {
err_flag = 1;
msyslog(LOG_ERR,
"unrecognized fudge reference clock address %s, line ignored",
addr_node->address);
} else if (!ISREFCLOCKADR(&addr_sock)) {
err_flag = 1;
msyslog(LOG_ERR,
"inappropriate address %s for the fudge command, line ignored",
stoa(&addr_sock));
}
/* Parse all the options to the fudge command */
ZERO(clock_stat);
/* some things are not necessarily cleared by ZERO...*/
clock_stat.fudgeminjitter = 0.0;
clock_stat.fudgetime1 = 0.0;
clock_stat.fudgetime2 = 0.0;
clock_stat.p_lastcode = NULL;
clock_stat.clockdesc = NULL;
clock_stat.kv_list = NULL;
curr_opt = HEAD_PFIFO(curr_fudge->options);
for (; curr_opt != NULL; curr_opt = curr_opt->link) {
switch (curr_opt->attr) {
case T_Time1:
clock_stat.haveflags |= CLK_HAVETIME1;
clock_stat.fudgetime1 = curr_opt->value.d;
break;
case T_Time2:
clock_stat.haveflags |= CLK_HAVETIME2;
clock_stat.fudgetime2 = curr_opt->value.d;
break;
case T_Stratum:
clock_stat.haveflags |= CLK_HAVEVAL1;
clock_stat.fudgeval1 = curr_opt->value.i;
break;
case T_Refid:
clock_stat.haveflags |= CLK_HAVEVAL2;
/* strncpy() does exactly what we want here: */
strncpy(refid_str, curr_opt->value.s,
sizeof refid_str - 1);
memcpy(&clock_stat.fudgeval2, refid_str,
sizeof clock_stat.fudgeval2);
break;
case T_Flag1:
clock_stat.haveflags |= CLK_HAVEFLAG1;
if (curr_opt->value.i)
clock_stat.flags |= CLK_FLAG1;
else
clock_stat.flags &= ~CLK_FLAG1;
break;
case T_Flag2:
clock_stat.haveflags |= CLK_HAVEFLAG2;
if (curr_opt->value.i)
clock_stat.flags |= CLK_FLAG2;
else
clock_stat.flags &= ~CLK_FLAG2;
break;
case T_Flag3:
clock_stat.haveflags |= CLK_HAVEFLAG3;
if (curr_opt->value.i)
clock_stat.flags |= CLK_FLAG3;
else
clock_stat.flags &= ~CLK_FLAG3;
break;
case T_Flag4:
clock_stat.haveflags |= CLK_HAVEFLAG4;
if (curr_opt->value.i)
clock_stat.flags |= CLK_FLAG4;
else
clock_stat.flags &= ~CLK_FLAG4;
break;
case T_Minjitter:
clock_stat.haveflags |= CLK_HAVEMINJIT;
clock_stat.fudgeminjitter = curr_opt->value.d;
break;
default:
msyslog(LOG_ERR,
"Unexpected fudge flag %s (%d) for %s",
token_name(curr_opt->attr),
curr_opt->attr, addr_node->address);
exit(curr_opt->attr ? curr_opt->attr : 1);
}
}
# ifdef REFCLOCK
if (!err_flag)
refclock_control(&addr_sock, &clock_stat, NULL);
# endif
}
}
#endif /* !SIM */
#ifndef SIM
static void
config_device(
config_tree *ptree
)
{
addr_opts_node *curr_device;
attr_val *curr_opt;
sockaddr_u addr_sock;
address_node *addr_node;
char *ttyName, *ppsName;
curr_device = HEAD_PFIFO(ptree->device);
for (; curr_device != NULL; curr_device = curr_device->link) {
/* Get the reference clock address and
* ensure that it is sane
*/
addr_node = curr_device->addr;
ZERO_SOCK(&addr_sock);
if (getnetnum(addr_node->address, &addr_sock, 1, t_REF)
!= 1) {
msyslog(LOG_ERR,
"unrecognized device reference clock address %s, line ignored",
addr_node->address);
continue;
}
if (!ISREFCLOCKADR(&addr_sock)) {
msyslog(LOG_ERR,
"inappropriate address %s for the device command, line ignored",
stoa(&addr_sock));
continue;
}
ppsName = ttyName = NULL;
curr_opt = HEAD_PFIFO(curr_device->options);
for (; curr_opt != NULL; curr_opt = curr_opt->link) {
switch (curr_opt->attr) {
case T_TimeData:
ttyName = curr_opt->value.s;
break;
case T_PpsData:
ppsName = curr_opt->value.s;
break;
default:
msyslog(LOG_ERR,
"Unexpected device spec %s (%d) for %s",
token_name(curr_opt->attr),
curr_opt->attr, addr_node->address);
exit(curr_opt->attr ? curr_opt->attr : 1);
}
}
# ifdef REFCLOCK
clockdev_update(&addr_sock, ttyName, ppsName);
# endif
}
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_fudge(
config_tree *ptree
)
{
FREE_ADDR_OPTS_FIFO(ptree->fudge);
}
static void
free_config_device(
config_tree *ptree
)
{
FREE_ADDR_OPTS_FIFO(ptree->device);
}
#endif /* FREE_CFG_T */
static void
config_vars(
config_tree *ptree
)
{
attr_val *curr_var;
int len;
curr_var = HEAD_PFIFO(ptree->vars);
for (; curr_var != NULL; curr_var = curr_var->link) {
/* Determine which variable to set and set it */
switch (curr_var->attr) {
case T_Broadcastdelay:
proto_config(PROTO_BROADDELAY, 0, curr_var->value.d, NULL);
break;
case T_Tick:
loop_config(LOOP_TICK, curr_var->value.d);
break;
case T_Driftfile:
if ('\0' == curr_var->value.s[0])
msyslog(LOG_INFO, "config: driftfile disabled");
stats_config(STATS_FREQ_FILE, curr_var->value.s, 0);
break;
case T_Dscp:
/* DSCP is in the upper 6 bits of the IP TOS/DS field */
qos = curr_var->value.i << 2;
break;
case T_Ident:
sys_ident = curr_var->value.s;
break;
case T_WanderThreshold: /* FALLTHROUGH */
case T_Nonvolatile:
wander_threshold = curr_var->value.d;
break;
case T_Leapfile:
stats_config(STATS_LEAP_FILE, curr_var->value.s, curr_var->flag);
break;
#ifdef LEAP_SMEAR
case T_Leapsmearinterval:
leap_smear_intv = curr_var->value.i;
msyslog(LOG_INFO, "config: leap smear interval %i s", leap_smear_intv);
break;
#endif
case T_Pidfile:
stats_config(STATS_PID_FILE, curr_var->value.s, 0);
break;
case T_Logfile:
if (-1 == change_logfile(curr_var->value.s, TRUE))
msyslog(LOG_ERR,
"Cannot open logfile %s: %m",
curr_var->value.s);
break;
case T_Saveconfigdir:
if (saveconfigdir != NULL)
free(saveconfigdir);
len = strlen(curr_var->value.s);
if (0 == len) {
saveconfigdir = NULL;
} else if (DIR_SEP != curr_var->value.s[len - 1]
#ifdef SYS_WINNT /* slash is also a dir. sep. on Windows */
&& '/' != curr_var->value.s[len - 1]
#endif
) {
len++;
saveconfigdir = emalloc(len + 1);
snprintf(saveconfigdir, len + 1,
"%s%c",
curr_var->value.s,
DIR_SEP);
} else {
saveconfigdir = estrdup(
curr_var->value.s);
}
break;
case T_Automax:
#ifdef AUTOKEY
if (curr_var->value.i > 2 && curr_var->value.i < 32)
sys_automax = (u_char)curr_var->value.i;
else
msyslog(LOG_ERR,
"'automax' value %d ignored",
curr_var->value.i);
#endif
break;
default:
msyslog(LOG_ERR,
"config_vars(): unexpected token %d",
curr_var->attr);
}
}
}
#ifdef FREE_CFG_T
static void
free_config_vars(
config_tree *ptree
)
{
FREE_ATTR_VAL_FIFO(ptree->vars);
}
#endif /* FREE_CFG_T */
#ifndef SIM
/* Define a function to check if a resolved address is sane.
* If yes, return 1, else return 0;
*/
static int
is_sane_resolved_address(
sockaddr_u * peeraddr,
int hmode
)
{
if (!ISREFCLOCKADR(peeraddr) && ISBADADR(peeraddr)) {
msyslog(LOG_ERR,
"attempt to configure invalid address %s",
stoa(peeraddr));
return 0;
}
/*
* Shouldn't be able to specify:
* - multicast address for server/peer!
* - unicast address for manycastclient!
*/
if ((T_Server == hmode || T_Peer == hmode || T_Pool == hmode)
&& IS_MCAST(peeraddr)) {
msyslog(LOG_ERR,
"attempt to configure invalid address %s",
stoa(peeraddr));
return 0;
}
if (T_Manycastclient == hmode && !IS_MCAST(peeraddr)) {
msyslog(LOG_ERR,
"attempt to configure invalid address %s",
stoa(peeraddr));
return 0;
}
if (IS_IPV6(peeraddr) && !ipv6_works)
return 0;
/* Ok, all tests succeeded, now we can return 1 */
return 1;
}
static u_char
get_correct_host_mode(
int token
)
{
switch (token) {
case T_Server:
case T_Pool:
case T_Manycastclient:
return MODE_CLIENT;
case T_Peer:
return MODE_ACTIVE;
case T_Broadcast:
return MODE_BROADCAST;
default:
return 0;
}
}
/*
* peerflag_bits() get config_peers() peerflags value from a
* peer_node's queue of flag attr_val entries.
*/
static int
peerflag_bits(
peer_node *pn
)
{
int peerflags;
attr_val *option;
int hmode;
DEBUG_INSIST(pn);
/* translate peerflags options to bits */
peerflags = 0;
hmode = pn->host_mode;
option = HEAD_PFIFO(pn->peerflags);
for (; option != NULL; option = option->link) {
switch (option->value.i) {
default:
fatal_error("peerflag_bits: option-token=%d", option->value.i);
case T_Autokey:
peerflags |= FLAG_SKEY;
break;
case T_Burst:
peerflags |= FLAG_BURST;
break;
case T_Iburst:
peerflags |= FLAG_IBURST;
break;
case T_Noselect:
peerflags |= FLAG_NOSELECT;
break;
case T_Preempt:
peerflags |= FLAG_PREEMPT;
break;
case T_Prefer:
peerflags |= FLAG_PREFER;
break;
case T_True:
peerflags |= FLAG_TRUE;
break;
case T_Xleave:
peerflags |= FLAG_XLEAVE;
break;
case T_Xmtnonce:
if ( MODE_CLIENT == hmode ) {
peerflags |= FLAG_LOOPNONCE;
}
break;
}
}
return peerflags;
}
static void
config_peers(
config_tree *ptree
)
{
sockaddr_u peeraddr;
struct addrinfo hints;
peer_node * curr_peer;
peer_resolved_ctx * ctx;
u_char hmode;
/* add servers named on the command line with iburst implied */
for (;
cmdline_server_count > 0;
cmdline_server_count--, cmdline_servers++) {
ZERO_SOCK(&peeraddr);
/*
* If we have a numeric address, we can safely
* proceed in the mainline with it. Otherwise, hand
* the hostname off to the blocking child.
*
* Note that if we're told to add the peer here, we
* do that regardless of ippeerlimit.
*/
if (is_ip_address(*cmdline_servers, AF_UNSPEC,
&peeraddr)) {
SET_PORT(&peeraddr, NTP_PORT);
if (is_sane_resolved_address(&peeraddr,
T_Server))
peer_config(
&peeraddr,
NULL,
NULL,
-1,
MODE_CLIENT,
NTP_VERSION,
0,
0,
FLAG_IBURST,
0,
0,
NULL);
} else {
/* we have a hostname to resolve */
# ifdef WORKER
ctx = emalloc_zero(sizeof(*ctx));
ctx->family = AF_UNSPEC;
ctx->host_mode = T_Server;
ctx->hmode = MODE_CLIENT;
ctx->version = NTP_VERSION;
ctx->flags = FLAG_IBURST;
+ ctx->was_initializing = initializing;
ZERO(hints);
hints.ai_family = (u_short)ctx->family;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
getaddrinfo_sometime_ex(*cmdline_servers,
"ntp", &hints,
INITIAL_DNS_RETRY,
&peer_name_resolved,
(void *)ctx, DNSFLAGS);
# else /* !WORKER follows */
msyslog(LOG_ERR,
"hostname %s can not be used, please use IP address instead.",
curr_peer->addr->address);
# endif
}
}
/* add associations from the configuration file */
curr_peer = HEAD_PFIFO(ptree->peers);
for (; curr_peer != NULL; curr_peer = curr_peer->link) {
ZERO_SOCK(&peeraddr);
/* Find the correct host-mode */
hmode = get_correct_host_mode(curr_peer->host_mode);
INSIST(hmode != 0);
if (T_Pool == curr_peer->host_mode) {
AF(&peeraddr) = curr_peer->addr->type;
peer_config(
&peeraddr,
curr_peer->addr->address,
NULL,
-1,
hmode,
curr_peer->peerversion,
curr_peer->minpoll,
curr_peer->maxpoll,
peerflag_bits(curr_peer),
curr_peer->ttl,
curr_peer->peerkey,
curr_peer->group);
/*
* If we have a numeric address, we can safely
* proceed in the mainline with it. Otherwise, hand
* the hostname off to the blocking child.
*/
} else if (is_ip_address(curr_peer->addr->address,
curr_peer->addr->type, &peeraddr)) {
SET_PORT(&peeraddr, NTP_PORT);
if (is_sane_resolved_address(&peeraddr,
curr_peer->host_mode))
peer_config(
&peeraddr,
NULL,
NULL,
-1,
hmode,
curr_peer->peerversion,
curr_peer->minpoll,
curr_peer->maxpoll,
peerflag_bits(curr_peer),
curr_peer->ttl,
curr_peer->peerkey,
curr_peer->group);
} else {
/* we have a hostname to resolve */
# ifdef WORKER
ctx = emalloc_zero(sizeof(*ctx));
ctx->family = curr_peer->addr->type;
ctx->host_mode = curr_peer->host_mode;
ctx->hmode = hmode;
ctx->version = curr_peer->peerversion;
ctx->minpoll = curr_peer->minpoll;
ctx->maxpoll = curr_peer->maxpoll;
ctx->flags = peerflag_bits(curr_peer);
ctx->ttl = curr_peer->ttl;
ctx->keyid = curr_peer->peerkey;
ctx->group = curr_peer->group;
+ ctx->was_initializing = initializing;
ZERO(hints);
hints.ai_family = ctx->family;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
getaddrinfo_sometime_ex(curr_peer->addr->address,
"ntp", &hints,
INITIAL_DNS_RETRY,
&peer_name_resolved, ctx,
DNSFLAGS);
# else /* !WORKER follows */
msyslog(LOG_ERR,
"hostname %s can not be used, please use IP address instead.",
curr_peer->addr->address);
# endif
}
}
}
/*
* peer_name_resolved()
*
* Callback invoked when config_peers()'s DNS lookup completes.
*/
#ifdef WORKER
static void
peer_name_resolved(
int rescode,
int gai_errno,
void * context,
const char * name,
const char * service,
const struct addrinfo * hints,
const struct addrinfo * res
)
{
sockaddr_u peeraddr;
peer_resolved_ctx * ctx;
u_short af;
const char * fam_spec;
(void)gai_errno;
(void)service;
(void)hints;
ctx = context;
DPRINTF(1, ("peer_name_resolved(%s) rescode %d\n", name, rescode));
if (rescode) {
free(ctx);
msyslog(LOG_ERR,
"giving up resolving host %s: %s (%d)",
name, gai_strerror(rescode), rescode);
return;
}
/* Loop to configure a single association */
for (; res != NULL; res = res->ai_next) {
memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
if (is_sane_resolved_address(&peeraddr,
ctx->host_mode)) {
NLOG(NLOG_SYSINFO) {
af = ctx->family;
fam_spec = (AF_INET6 == af)
? "(AAAA) "
: (AF_INET == af)
? "(A) "
: "";
msyslog(LOG_INFO, "DNS %s %s-> %s",
name, fam_spec,
stoa(&peeraddr));
}
+
+ /*
+ * peer_clear needs to know if this association was specified
+ * in the startup configuration file to set the next poll time.
+ */
+ if (ctx->was_initializing) {
+ INSIST(!initializing);
+ initializing = TRUE;
+ }
+
peer_config(
&peeraddr,
NULL,
NULL,
-1,
ctx->hmode,
ctx->version,
ctx->minpoll,
ctx->maxpoll,
ctx->flags,
ctx->ttl,
ctx->keyid,
ctx->group);
+
+ if (ctx->was_initializing) {
+ initializing = FALSE;
+ }
+
break;
}
}
free(ctx);
}
#endif /* WORKER */
#ifdef FREE_CFG_T
static void
free_config_peers(
config_tree *ptree
)
{
peer_node *curr_peer;
if (ptree->peers != NULL) {
for (;;) {
UNLINK_FIFO(curr_peer, *ptree->peers, link);
if (NULL == curr_peer)
break;
destroy_address_node(curr_peer->addr);
destroy_attr_val_fifo(curr_peer->peerflags);
free(curr_peer);
}
free(ptree->peers);
ptree->peers = NULL;
}
}
#endif /* FREE_CFG_T */
static void
config_unpeers(
config_tree *ptree
)
{
sockaddr_u peeraddr;
struct addrinfo hints;
unpeer_node * curr_unpeer;
struct peer * p;
const char * name;
int rc;
curr_unpeer = HEAD_PFIFO(ptree->unpeers);
for (; curr_unpeer != NULL; curr_unpeer = curr_unpeer->link) {
/*
* If we have no address attached, assume we have to
* unpeer by AssocID.
*/
if (!curr_unpeer->addr) {
p = findpeerbyassoc(curr_unpeer->assocID);
if (p != NULL) {
msyslog(LOG_NOTICE, "unpeered %s",
stoa(&p->srcadr));
peer_clear(p, "GONE");
unpeer(p);
}
continue;
}
ZERO(peeraddr);
AF(&peeraddr) = curr_unpeer->addr->type;
name = curr_unpeer->addr->address;
rc = getnetnum(name, &peeraddr, 0, t_UNK);
/* Do we have a numeric address? */
if (rc > 0) {
DPRINTF(1, ("unpeer: searching for %s\n",
stoa(&peeraddr)));
p = findexistingpeer(&peeraddr, NULL, NULL, -1, 0, NULL);
if (p != NULL) {
msyslog(LOG_NOTICE, "unpeered %s",
stoa(&peeraddr));
peer_clear(p, "GONE");
unpeer(p);
}
continue;
}
/*
* It's not a numeric IP address, it's a hostname.
* Check for associations with a matching hostname.
*/
for (p = peer_list; p != NULL; p = p->p_link)
if (p->hostname != NULL)
if (!strcasecmp(p->hostname, name))
break;
if (p != NULL) {
msyslog(LOG_NOTICE, "unpeered %s", name);
peer_clear(p, "GONE");
unpeer(p);
}
/* Resolve the hostname to address(es). */
# ifdef WORKER
ZERO(hints);
hints.ai_family = curr_unpeer->addr->type;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
getaddrinfo_sometime(name, "ntp", &hints,
INITIAL_DNS_RETRY,
&unpeer_name_resolved, NULL);
# else /* !WORKER follows */
msyslog(LOG_ERR,
"hostname %s can not be used, please use IP address instead.",
name);
# endif
}
}
/*
* unpeer_name_resolved()
*
* Callback invoked when config_unpeers()'s DNS lookup completes.
*/
#ifdef WORKER
static void
unpeer_name_resolved(
int rescode,
int gai_errno,
void * context,
const char * name,
const char * service,
const struct addrinfo * hints,
const struct addrinfo * res
)
{
sockaddr_u peeraddr;
struct peer * peer;
u_short af;
const char * fam_spec;
(void)context;
(void)hints;
DPRINTF(1, ("unpeer_name_resolved(%s) rescode %d\n", name, rescode));
if (rescode) {
msyslog(LOG_ERR, "giving up resolving unpeer %s: %s (%d)",
name, gai_strerror(rescode), rescode);
return;
}
/*
* Loop through the addresses found
*/
for (; res != NULL; res = res->ai_next) {
INSIST(res->ai_addrlen <= sizeof(peeraddr));
memcpy(&peeraddr, res->ai_addr, res->ai_addrlen);
DPRINTF(1, ("unpeer: searching for peer %s\n",
stoa(&peeraddr)));
peer = findexistingpeer(&peeraddr, NULL, NULL, -1, 0, NULL);
if (peer != NULL) {
af = AF(&peeraddr);
fam_spec = (AF_INET6 == af)
? "(AAAA) "
: (AF_INET == af)
? "(A) "
: "";
msyslog(LOG_NOTICE, "unpeered %s %s-> %s", name,
fam_spec, stoa(&peeraddr));
peer_clear(peer, "GONE");
unpeer(peer);
}
}
}
#endif /* WORKER */
#ifdef FREE_CFG_T
static void
free_config_unpeers(
config_tree *ptree
)
{
unpeer_node *curr_unpeer;
if (ptree->unpeers != NULL) {
for (;;) {
UNLINK_FIFO(curr_unpeer, *ptree->unpeers, link);
if (NULL == curr_unpeer)
break;
destroy_address_node(curr_unpeer->addr);
free(curr_unpeer);
}
free(ptree->unpeers);
}
}
#endif /* FREE_CFG_T */
#endif /* !SIM */
#ifndef SIM
static void
config_reset_counters(
config_tree *ptree
)
{
int_node *counter_set;
for (counter_set = HEAD_PFIFO(ptree->reset_counters);
counter_set != NULL;
counter_set = counter_set->link) {
switch (counter_set->i) {
default:
DPRINTF(1, ("config_reset_counters %s (%d) invalid\n",
keyword(counter_set->i), counter_set->i));
break;
case T_Allpeers:
peer_all_reset();
break;
case T_Auth:
reset_auth_stats();
break;
case T_Ctl:
ctl_clr_stats();
break;
case T_Io:
io_clr_stats();
break;
case T_Mem:
peer_clr_stats();
break;
case T_Sys:
proto_clr_stats();
break;
case T_Timer:
timer_clr_stats();
break;
}
}
}
#endif /* !SIM */
#ifdef FREE_CFG_T
static void
free_config_reset_counters(
config_tree *ptree
)
{
FREE_INT_FIFO(ptree->reset_counters);
}
#endif /* FREE_CFG_T */
#ifdef SIM
static void
config_sim(
config_tree *ptree
)
{
int i;
server_info *serv_info;
attr_val *init_stmt;
sim_node *sim_n;
/* Check if a simulate block was found in the configuration code.
* If not, return an error and exit
*/
sim_n = HEAD_PFIFO(ptree->sim_details);
if (NULL == sim_n) {
fprintf(stderr, "ERROR!! I couldn't find a \"simulate\" block for configuring the simulator.\n");
fprintf(stderr, "\tCheck your configuration file.\n");
exit(1);
}
/* Process the initialization statements
* -------------------------------------
*/
init_stmt = HEAD_PFIFO(sim_n->init_opts);
for (; init_stmt != NULL; init_stmt = init_stmt->link) {
switch(init_stmt->attr) {
case T_Beep_Delay:
simulation.beep_delay = init_stmt->value.d;
break;
case T_Sim_Duration:
simulation.end_time = init_stmt->value.d;
break;
default:
fprintf(stderr,
"Unknown simulator init token %d\n",
init_stmt->attr);
exit(1);
}
}
/* Process the server list
* -----------------------
*/
simulation.num_of_servers = 0;
serv_info = HEAD_PFIFO(sim_n->servers);
for (; serv_info != NULL; serv_info = serv_info->link)
simulation.num_of_servers++;
simulation.servers = eallocarray(simulation.num_of_servers,
sizeof(simulation.servers[0]));
i = 0;
serv_info = HEAD_PFIFO(sim_n->servers);
for (; serv_info != NULL; serv_info = serv_info->link) {
if (NULL == serv_info) {
fprintf(stderr, "Simulator server list is corrupt\n");
exit(1);
} else {
simulation.servers[i] = *serv_info;
simulation.servers[i].link = NULL;
i++;
}
}
printf("Creating server associations\n");
create_server_associations();
fprintf(stderr,"\tServer associations successfully created!!\n");
}
#ifdef FREE_CFG_T
static void
free_config_sim(
config_tree *ptree
)
{
sim_node *sim_n;
server_info *serv_n;
script_info *script_n;
if (NULL == ptree->sim_details)
return;
sim_n = HEAD_PFIFO(ptree->sim_details);
free(ptree->sim_details);
ptree->sim_details = NULL;
if (NULL == sim_n)
return;
FREE_ATTR_VAL_FIFO(sim_n->init_opts);
for (;;) {
UNLINK_FIFO(serv_n, *sim_n->servers, link);
if (NULL == serv_n)
break;
free(serv_n->curr_script);
if (serv_n->script != NULL) {
for (;;) {
UNLINK_FIFO(script_n, *serv_n->script,
link);
if (script_n == NULL)
break;
free(script_n);
}
free(serv_n->script);
}
free(serv_n);
}
free(sim_n);
}
#endif /* FREE_CFG_T */
#endif /* SIM */
/* Define two different config functions. One for the daemon and the other for
* the simulator. The simulator ignores a lot of the standard ntpd configuration
* options
*/
#ifndef SIM
static void
config_ntpd(
config_tree *ptree,
int/*BOOL*/ input_from_files
)
{
/* [Bug 3435] check and esure clock sanity if configured from
* file and clock sanity parameters (-> basedate) are given. Do
* this ASAP, so we don't disturb the closed loop controller.
*/
if (input_from_files) {
if (config_tos_clock(ptree))
clamp_systime();
}
config_nic_rules(ptree, input_from_files);
config_monitor(ptree);
config_auth(ptree);
config_tos(ptree);
config_access(ptree);
config_tinker(ptree);
config_rlimit(ptree);
config_system_opts(ptree);
config_logconfig(ptree);
config_phone(ptree);
config_mdnstries(ptree);
config_setvar(ptree);
config_ttl(ptree);
config_vars(ptree);
io_open_sockets(); /* [bug 2837] dep. on config_vars() */
config_trap(ptree); /* [bug 2923] dep. on io_open_sockets() */
config_other_modes(ptree);
config_device(ptree);
config_peers(ptree);
config_unpeers(ptree);
config_fudge(ptree);
config_reset_counters(ptree);
#ifdef DEBUG
if (debug > 1) {
dump_restricts();
}
#endif
#ifdef TEST_BLOCKING_WORKER
{
struct addrinfo hints;
ZERO(hints);
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
getaddrinfo_sometime("www.cnn.com", "ntp", &hints,
INITIAL_DNS_RETRY,
gai_test_callback, (void *)1);
hints.ai_family = AF_INET6;
getaddrinfo_sometime("ipv6.google.com", "ntp", &hints,
INITIAL_DNS_RETRY,
gai_test_callback, (void *)0x600);
}
#endif
}
#endif /* !SIM */
#ifdef SIM
static void
config_ntpdsim(
config_tree *ptree
)
{
printf("Configuring Simulator...\n");
printf("Some ntpd-specific commands in the configuration file will be ignored.\n");
config_tos(ptree);
config_monitor(ptree);
config_tinker(ptree);
if (0)
config_rlimit(ptree); /* not needed for the simulator */
config_system_opts(ptree);
config_logconfig(ptree);
config_vars(ptree);
config_sim(ptree);
}
#endif /* SIM */
/*
* config_remotely() - implements ntpd side of ntpq :config
*/
void
config_remotely(
sockaddr_u * remote_addr
)
{
char origin[128];
snprintf(origin, sizeof(origin), "remote config from %s",
stoa(remote_addr));
lex_init_stack(origin, NULL); /* no checking needed... */
init_syntax_tree(&cfgt);
yyparse();
lex_drop_stack();
cfgt.source.attr = CONF_SOURCE_NTPQ;
cfgt.timestamp = time(NULL);
cfgt.source.value.s = estrdup(stoa(remote_addr));
DPRINTF(1, ("Finished Parsing!!\n"));
save_and_apply_config_tree(FALSE);
}
/*
* getconfig() - process startup configuration file e.g /etc/ntp.conf
*/
void
getconfig(
int argc,
char ** argv
)
{
char line[256];
#ifdef DEBUG
atexit(free_all_config_trees);
#endif
#ifndef SYS_WINNT
config_file = CONFIG_FILE;
#else
temp = CONFIG_FILE;
if (!ExpandEnvironmentStringsA(temp, config_file_storage,
sizeof(config_file_storage))) {
msyslog(LOG_ERR, "ExpandEnvironmentStrings CONFIG_FILE failed: %m");
exit(1);
}
config_file = config_file_storage;
temp = ALT_CONFIG_FILE;
if (!ExpandEnvironmentStringsA(temp, alt_config_file_storage,
sizeof(alt_config_file_storage))) {
msyslog(LOG_ERR, "ExpandEnvironmentStrings ALT_CONFIG_FILE failed: %m");
exit(1);
}
alt_config_file = alt_config_file_storage;
#endif /* SYS_WINNT */
/*
* install a non default variable with this daemon version
*/
snprintf(line, sizeof(line), "daemon_version=\"%s\"", Version);
set_sys_var(line, strlen(line) + 1, RO);
/*
* Set up for the first time step to install a variable showing
* which syscall is being used to step.
*/
set_tod_using = &ntpd_set_tod_using;
getCmdOpts(argc, argv);
init_syntax_tree(&cfgt);
if (
!lex_init_stack(FindConfig(config_file), "r")
#ifdef HAVE_NETINFO
/* If there is no config_file, try NetInfo. */
&& check_netinfo && !(config_netinfo = get_netinfo_config())
#endif /* HAVE_NETINFO */
) {
msyslog(LOG_INFO, "getconfig: Couldn't open <%s>: %m", FindConfig(config_file));
#ifndef SYS_WINNT
io_open_sockets();
return;
#else
/* Under WinNT try alternate_config_file name, first NTP.CONF, then NTP.INI */
if (!lex_init_stack(FindConfig(alt_config_file), "r")) {
/*
* Broadcast clients can sometimes run without
* a configuration file.
*/
msyslog(LOG_INFO, "getconfig: Couldn't open <%s>: %m", FindConfig(alt_config_file));
io_open_sockets();
return;
}
cfgt.source.value.s = estrdup(alt_config_file);
#endif /* SYS_WINNT */
} else
cfgt.source.value.s = estrdup(config_file);
/*** BULK OF THE PARSER ***/
#ifdef DEBUG
yydebug = !!(debug >= 5);
#endif
yyparse();
lex_drop_stack();
DPRINTF(1, ("Finished Parsing!!\n"));
cfgt.source.attr = CONF_SOURCE_FILE;
cfgt.timestamp = time(NULL);
save_and_apply_config_tree(TRUE);
#ifdef HAVE_NETINFO
if (config_netinfo)
free_netinfo_config(config_netinfo);
#endif /* HAVE_NETINFO */
}
void
save_and_apply_config_tree(int/*BOOL*/ input_from_file)
{
config_tree *ptree;
#ifndef SAVECONFIG
config_tree *punlinked;
#endif
/*
* Keep all the configuration trees applied since startup in
* a list that can be used to dump the configuration back to
* a text file.
*/
ptree = emalloc(sizeof(*ptree));
memcpy(ptree, &cfgt, sizeof(*ptree));
ZERO(cfgt);
LINK_TAIL_SLIST(cfg_tree_history, ptree, link, config_tree);
#ifdef SAVECONFIG
if (HAVE_OPT( SAVECONFIGQUIT )) {
FILE *dumpfile;
int err;
int dumpfailed;
dumpfile = fopen(OPT_ARG( SAVECONFIGQUIT ), "w");
if (NULL == dumpfile) {
err = errno;
mfprintf(stderr,
"can not create save file %s, error %d %m\n",
OPT_ARG(SAVECONFIGQUIT), err);
exit(err);
}
dumpfailed = dump_all_config_trees(dumpfile, 0);
if (dumpfailed)
fprintf(stderr,
"--saveconfigquit %s error %d\n",
OPT_ARG( SAVECONFIGQUIT ),
dumpfailed);
else
fprintf(stderr,
"configuration saved to %s\n",
OPT_ARG( SAVECONFIGQUIT ));
exit(dumpfailed);
}
#endif /* SAVECONFIG */
/* The actual configuration done depends on whether we are configuring the
* simulator or the daemon. Perform a check and call the appropriate
* function as needed.
*/
#ifndef SIM
config_ntpd(ptree, input_from_file);
#else
config_ntpdsim(ptree);
#endif
/*
* With configure --disable-saveconfig, there's no use keeping
* the config tree around after application, so free it.
*/
#ifndef SAVECONFIG
UNLINK_SLIST(punlinked, cfg_tree_history, ptree, link,
config_tree);
INSIST(punlinked == ptree);
free_config_tree(ptree);
#endif
}
/* Hack to disambiguate 'server' statements for refclocks and network peers.
* Please note the qualification 'hack'. It's just that.
*/
static int/*BOOL*/
is_refclk_addr(
const address_node * addr
)
{
return addr && addr->address && !strncmp(addr->address, "127.127.", 8);
}
static void
ntpd_set_tod_using(
const char *which
)
{
char line[128];
snprintf(line, sizeof(line), "settimeofday=\"%s\"", which);
set_sys_var(line, strlen(line) + 1, RO);
}
static char *
normal_dtoa(
double d
)
{
char * buf;
char * pch_e;
char * pch_nz;
LIB_GETBUF(buf);
snprintf(buf, LIB_BUFLENGTH, "%g", d);
/* use lowercase 'e', strip any leading zeroes in exponent */
pch_e = strchr(buf, 'e');
if (NULL == pch_e) {
pch_e = strchr(buf, 'E');
if (NULL == pch_e)
return buf;
*pch_e = 'e';
}
pch_e++;
if ('-' == *pch_e)
pch_e++;
pch_nz = pch_e;
while ('0' == *pch_nz)
pch_nz++;
if (pch_nz == pch_e)
return buf;
strlcpy(pch_e, pch_nz, LIB_BUFLENGTH - (pch_e - buf));
return buf;
}
/* FUNCTIONS COPIED FROM THE OLDER ntp_config.c
* --------------------------------------------
*/
/*
* get_pfxmatch - find value for prefixmatch
* and update char * accordingly
*/
static u_int32
get_pfxmatch(
const char ** pstr,
struct masks * m
)
{
while (m->name != NULL) {
if (strncmp(*pstr, m->name, strlen(m->name)) == 0) {
*pstr += strlen(m->name);
return m->mask;
} else {
m++;
}
}
return 0;
}
/*
* get_match - find logmask value
*/
static u_int32
get_match(
const char * str,
struct masks * m
)
{
while (m->name != NULL) {
if (strcmp(str, m->name) == 0)
return m->mask;
else
m++;
}
return 0;
}
/*
* get_logmask - build bitmask for ntp_syslogmask
*/
static u_int32
get_logmask(
const char * str
)
{
const char * t;
u_int32 offset;
u_int32 mask;
mask = get_match(str, logcfg_noclass_items);
if (mask != 0)
return mask;
t = str;
offset = get_pfxmatch(&t, logcfg_class);
mask = get_match(t, logcfg_class_items);
if (mask)
return mask << offset;
else
msyslog(LOG_ERR, "logconfig: '%s' not recognized - ignored",
str);
return 0;
}
#ifdef HAVE_NETINFO
/*
* get_netinfo_config - find the nearest NetInfo domain with an ntp
* configuration and initialize the configuration state.
*/
static struct netinfo_config_state *
get_netinfo_config(void)
{
ni_status status;
void *domain;
ni_id config_dir;
struct netinfo_config_state *config;
if (ni_open(NULL, ".", &domain) != NI_OK) return NULL;
while ((status = ni_pathsearch(domain, &config_dir, NETINFO_CONFIG_DIR)) == NI_NODIR) {
void *next_domain;
if (ni_open(domain, "..", &next_domain) != NI_OK) {
ni_free(next_domain);
break;
}
ni_free(domain);
domain = next_domain;
}
if (status != NI_OK) {
ni_free(domain);
return NULL;
}
config = emalloc(sizeof(*config));
config->domain = domain;
config->config_dir = config_dir;
config->prop_index = 0;
config->val_index = 0;
config->val_list = NULL;
return config;
}
/*
* free_netinfo_config - release NetInfo configuration state
*/
static void
free_netinfo_config(
struct netinfo_config_state *config
)
{
ni_free(config->domain);
free(config);
}
/*
* gettokens_netinfo - return tokens from NetInfo
*/
static int
gettokens_netinfo (
struct netinfo_config_state *config,
char **tokenlist,
int *ntokens
)
{
int prop_index = config->prop_index;
int val_index = config->val_index;
char **val_list = config->val_list;
/*
* Iterate through each keyword and look for a property that matches it.
*/
again:
if (!val_list) {
for (; prop_index < COUNTOF(keywords); prop_index++)
{
ni_namelist namelist;
struct keyword current_prop = keywords[prop_index];
ni_index index;
/*
* For each value associated in the property, we're going to return
* a separate line. We squirrel away the values in the config state
* so the next time through, we don't need to do this lookup.
*/
NI_INIT(&namelist);
if (NI_OK == ni_lookupprop(config->domain,
&config->config_dir, current_prop.text,
&namelist)) {
/* Found the property, but it has no values */
if (namelist.ni_namelist_len == 0) continue;
config->val_list =
eallocarray(
(namelist.ni_namelist_len + 1),
sizeof(char*));
val_list = config->val_list;
for (index = 0;
index < namelist.ni_namelist_len;
index++) {
char *value;
value = namelist.ni_namelist_val[index];
val_list[index] = estrdup(value);
}
val_list[index] = NULL;
break;
}
ni_namelist_free(&namelist);
}
config->prop_index = prop_index;
}
/* No list; we're done here. */
if (!val_list)
return CONFIG_UNKNOWN;
/*
* We have a list of values for the current property.
* Iterate through them and return each in order.
*/
if (val_list[val_index]) {
int ntok = 1;
int quoted = 0;
char *tokens = val_list[val_index];
msyslog(LOG_INFO, "%s %s", keywords[prop_index].text, val_list[val_index]);
(const char*)tokenlist[0] = keywords[prop_index].text;
for (ntok = 1; ntok < MAXTOKENS; ntok++) {
tokenlist[ntok] = tokens;
while (!ISEOL(*tokens) && (!ISSPACE(*tokens) || quoted))
quoted ^= (*tokens++ == '"');
if (ISEOL(*tokens)) {
*tokens = '\0';
break;
} else { /* must be space */
*tokens++ = '\0';
while (ISSPACE(*tokens))
tokens++;
if (ISEOL(*tokens))
break;
}
}
if (ntok == MAXTOKENS) {
/* HMS: chomp it to lose the EOL? */
msyslog(LOG_ERR,
"gettokens_netinfo: too many tokens. Ignoring: %s",
tokens);
} else {
*ntokens = ntok + 1;
}
config->val_index++; /* HMS: Should this be in the 'else'? */
return keywords[prop_index].keytype;
}
/* We're done with the current property. */
prop_index = ++config->prop_index;
/* Free val_list and reset counters. */
for (val_index = 0; val_list[val_index]; val_index++)
free(val_list[val_index]);
free(val_list);
val_list = config->val_list = NULL;
val_index = config->val_index = 0;
goto again;
}
#endif /* HAVE_NETINFO */
/*
* getnetnum - return a net number (this is crude, but careful)
*
* returns 1 for success, and mysteriously, 0 for most failures, and
* -1 if the address found is IPv6 and we believe IPv6 isn't working.
*/
#ifndef SIM
static int
getnetnum(
const char *num,
sockaddr_u *addr,
int complain,
enum gnn_type a_type /* ignored */
)
{
REQUIRE(AF_UNSPEC == AF(addr) ||
AF_INET == AF(addr) ||
AF_INET6 == AF(addr));
if (!is_ip_address(num, AF(addr), addr))
return 0;
if (IS_IPV6(addr) && !ipv6_works)
return -1;
# ifdef ISC_PLATFORM_HAVESALEN
addr->sa.sa_len = SIZEOF_SOCKADDR(AF(addr));
# endif
SET_PORT(addr, NTP_PORT);
DPRINTF(2, ("getnetnum given %s, got %s\n", num, stoa(addr)));
return 1;
}
#endif /* !SIM */
#if defined(HAVE_SETRLIMIT)
void
ntp_rlimit(
int rl_what,
rlim_t rl_value,
int rl_scale,
const char * rl_sstr
)
{
struct rlimit rl;
switch (rl_what) {
# ifdef RLIMIT_MEMLOCK
case RLIMIT_MEMLOCK:
if (HAVE_OPT( SAVECONFIGQUIT )) {
break;
}
/*
* The default RLIMIT_MEMLOCK is very low on Linux systems.
* Unless we increase this limit malloc calls are likely to
* fail if we drop root privilege. To be useful the value
* has to be larger than the largest ntpd resident set size.
*/
DPRINTF(2, ("ntp_rlimit: MEMLOCK: %d %s\n",
(int)(rl_value / rl_scale), rl_sstr));
rl.rlim_cur = rl.rlim_max = rl_value;
if (setrlimit(RLIMIT_MEMLOCK, &rl) == -1)
msyslog(LOG_ERR, "Cannot set RLIMIT_MEMLOCK: %m");
break;
# endif /* RLIMIT_MEMLOCK */
# ifdef RLIMIT_NOFILE
case RLIMIT_NOFILE:
/*
* For large systems the default file descriptor limit may
* not be enough.
*/
DPRINTF(2, ("ntp_rlimit: NOFILE: %d %s\n",
(int)(rl_value / rl_scale), rl_sstr));
rl.rlim_cur = rl.rlim_max = rl_value;
if (setrlimit(RLIMIT_NOFILE, &rl) == -1)
msyslog(LOG_ERR, "Cannot set RLIMIT_NOFILE: %m");
break;
# endif /* RLIMIT_NOFILE */
# ifdef RLIMIT_STACK
case RLIMIT_STACK:
/*
* Provide a way to set the stack limit to something
* smaller, so that we don't lock a lot of unused
* stack memory.
*/
DPRINTF(2, ("ntp_rlimit: STACK: %d %s pages\n",
(int)(rl_value / rl_scale), rl_sstr));
if (-1 == getrlimit(RLIMIT_STACK, &rl)) {
msyslog(LOG_ERR, "getrlimit(RLIMIT_STACK) failed: %m");
} else {
if (rl_value > rl.rlim_max) {
msyslog(LOG_WARNING,
"ntp_rlimit: using maximum allowed stack limit %lu instead of %lu.",
(u_long)rl.rlim_max,
(u_long)rl_value);
rl_value = rl.rlim_max;
}
rl.rlim_cur = rl_value;
if (-1 == setrlimit(RLIMIT_STACK, &rl)) {
msyslog(LOG_ERR,
"ntp_rlimit: Cannot set RLIMIT_STACK: %m");
}
}
break;
# endif /* RLIMIT_STACK */
default:
fatal_error("ntp_rlimit: unexpected RLIMIT case: %d", rl_what);
}
}
#endif /* HAVE_SETRLIMIT */
char *
build_iflags(
u_int32 iflags
)
{
static char ifs[1024];
ifs[0] = '\0';
if (iflags & INT_UP) {
iflags &= ~INT_UP;
appendstr(ifs, sizeof ifs, "up");
}
if (iflags & INT_PPP) {
iflags &= ~INT_PPP;
appendstr(ifs, sizeof ifs, "ppp");
}
if (iflags & INT_LOOPBACK) {
iflags &= ~INT_LOOPBACK;
appendstr(ifs, sizeof ifs, "loopback");
}
if (iflags & INT_BROADCAST) {
iflags &= ~INT_BROADCAST;
appendstr(ifs, sizeof ifs, "broadcast");
}
if (iflags & INT_MULTICAST) {
iflags &= ~INT_MULTICAST;
appendstr(ifs, sizeof ifs, "multicast");
}
if (iflags & INT_BCASTOPEN) {
iflags &= ~INT_BCASTOPEN;
appendstr(ifs, sizeof ifs, "bcastopen");
}
if (iflags & INT_MCASTOPEN) {
iflags &= ~INT_MCASTOPEN;
appendstr(ifs, sizeof ifs, "mcastopen");
}
if (iflags & INT_WILDCARD) {
iflags &= ~INT_WILDCARD;
appendstr(ifs, sizeof ifs, "wildcard");
}
if (iflags & INT_MCASTIF) {
iflags &= ~INT_MCASTIF;
appendstr(ifs, sizeof ifs, "MCASTif");
}
if (iflags & INT_PRIVACY) {
iflags &= ~INT_PRIVACY;
appendstr(ifs, sizeof ifs, "IPv6privacy");
}
if (iflags & INT_BCASTXMIT) {
iflags &= ~INT_BCASTXMIT;
appendstr(ifs, sizeof ifs, "bcastxmit");
}
if (iflags) {
char string[10];
snprintf(string, sizeof string, "%0x", iflags);
appendstr(ifs, sizeof ifs, string);
}
return ifs;
}
char *
build_mflags(
u_short mflags
)
{
static char mfs[1024];
mfs[0] = '\0';
if (mflags & RESM_NTPONLY) {
mflags &= ~RESM_NTPONLY;
appendstr(mfs, sizeof mfs, "ntponly");
}
if (mflags & RESM_SOURCE) {
mflags &= ~RESM_SOURCE;
appendstr(mfs, sizeof mfs, "source");
}
if (mflags) {
char string[10];
snprintf(string, sizeof string, "%0x", mflags);
appendstr(mfs, sizeof mfs, string);
}
return mfs;
}
char *
build_rflags(
u_short rflags
)
{
static char rfs[1024];
rfs[0] = '\0';
if (rflags & RES_FLAKE) {
rflags &= ~RES_FLAKE;
appendstr(rfs, sizeof rfs, "flake");
}
if (rflags & RES_IGNORE) {
rflags &= ~RES_IGNORE;
appendstr(rfs, sizeof rfs, "ignore");
}
if (rflags & RES_KOD) {
rflags &= ~RES_KOD;
appendstr(rfs, sizeof rfs, "kod");
}
if (rflags & RES_MSSNTP) {
rflags &= ~RES_MSSNTP;
appendstr(rfs, sizeof rfs, "mssntp");
}
if (rflags & RES_LIMITED) {
rflags &= ~RES_LIMITED;
appendstr(rfs, sizeof rfs, "limited");
}
if (rflags & RES_LPTRAP) {
rflags &= ~RES_LPTRAP;
appendstr(rfs, sizeof rfs, "lptrap");
}
if (rflags & RES_NOMODIFY) {
rflags &= ~RES_NOMODIFY;
appendstr(rfs, sizeof rfs, "nomodify");
}
if (rflags & RES_NOMRULIST) {
rflags &= ~RES_NOMRULIST;
appendstr(rfs, sizeof rfs, "nomrulist");
}
if (rflags & RES_NOEPEER) {
rflags &= ~RES_NOEPEER;
appendstr(rfs, sizeof rfs, "noepeer");
}
if (rflags & RES_NOPEER) {
rflags &= ~RES_NOPEER;
appendstr(rfs, sizeof rfs, "nopeer");
}
if (rflags & RES_NOQUERY) {
rflags &= ~RES_NOQUERY;
appendstr(rfs, sizeof rfs, "noquery");
}
if (rflags & RES_DONTSERVE) {
rflags &= ~RES_DONTSERVE;
appendstr(rfs, sizeof rfs, "dontserve");
}
if (rflags & RES_NOTRAP) {
rflags &= ~RES_NOTRAP;
appendstr(rfs, sizeof rfs, "notrap");
}
if (rflags & RES_DONTTRUST) {
rflags &= ~RES_DONTTRUST;
appendstr(rfs, sizeof rfs, "notrust");
}
if (rflags & RES_SRVRSPFUZ) {
rflags &= ~RES_SRVRSPFUZ;
appendstr(rfs, sizeof rfs, "srvrspfuz");
}
if (rflags & RES_VERSION) {
rflags &= ~RES_VERSION;
appendstr(rfs, sizeof rfs, "version");
}
if (rflags) {
char string[10];
snprintf(string, sizeof string, "%0x", rflags);
appendstr(rfs, sizeof rfs, string);
}
if ('\0' == rfs[0]) {
appendstr(rfs, sizeof rfs, "(none)");
}
return rfs;
}
static void
appendstr(
char *string,
size_t s,
const char *new
)
{
if (*string != '\0') {
(void)strlcat(string, ",", s);
}
(void)strlcat(string, new, s);
return;
}
diff --git a/contrib/ntp/ntpd/ntp_control.c b/contrib/ntp/ntpd/ntp_control.c
index d1108c9d1456..0cc7fcb47ecd 100644
--- a/contrib/ntp/ntpd/ntp_control.c
+++ b/contrib/ntp/ntpd/ntp_control.c
@@ -1,5307 +1,5306 @@
/*
* ntp_control.c - respond to mode 6 control messages and send async
* traps. Provides service to ntpq and others.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdio.h>
#include <ctype.h>
#include <signal.h>
#include <sys/stat.h>
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#include <arpa/inet.h>
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_refclock.h"
#include "ntp_control.h"
#include "ntp_unixtime.h"
#include "ntp_stdlib.h"
#include "ntp_config.h"
#include "ntp_crypto.h"
#include "ntp_assert.h"
#include "ntp_leapsec.h"
-#include "ntp_md5.h" /* provides OpenSSL digest API */
#include "lib_strbuf.h"
#include "timexsup.h"
#include <rc_cmdlength.h>
#ifdef KERNEL_PLL
# include "ntp_syscall.h"
#endif
/*
* Structure to hold request procedure information
*/
struct ctl_proc {
short control_code; /* defined request code */
#define NO_REQUEST (-1)
u_short flags; /* flags word */
/* Only one flag. Authentication required or not. */
#define NOAUTH 0
#define AUTH 1
void (*handler) (struct recvbuf *, int); /* handle request */
};
/*
* Request processing routines
*/
static void ctl_error (u_char);
#ifdef REFCLOCK
static u_short ctlclkstatus (struct refclockstat *);
#endif
static void ctl_flushpkt (u_char);
static void ctl_putdata (const char *, unsigned int, int);
static void ctl_putstr (const char *, const char *, size_t);
static void ctl_putdblf (const char *, int, int, double);
#define ctl_putdbl(tag, d) ctl_putdblf(tag, 1, 3, d)
#define ctl_putdbl6(tag, d) ctl_putdblf(tag, 1, 6, d)
#define ctl_putsfp(tag, sfp) ctl_putdblf(tag, 0, -1, \
FPTOD(sfp))
static void ctl_putuint (const char *, u_long);
static void ctl_puthex (const char *, u_long);
static void ctl_putint (const char *, long);
static void ctl_putts (const char *, l_fp *);
static void ctl_putadr (const char *, u_int32,
sockaddr_u *);
static void ctl_putrefid (const char *, u_int32);
static void ctl_putarray (const char *, double *, int);
static void ctl_putsys (int);
static void ctl_putpeer (int, struct peer *);
static void ctl_putfs (const char *, tstamp_t);
static void ctl_printf (const char *, ...) NTP_PRINTF(1, 2);
#ifdef REFCLOCK
static void ctl_putclock (int, struct refclockstat *, int);
#endif /* REFCLOCK */
static const struct ctl_var *ctl_getitem(const struct ctl_var *,
char **);
static u_short count_var (const struct ctl_var *);
static void control_unspec (struct recvbuf *, int);
static void read_status (struct recvbuf *, int);
static void read_sysvars (void);
static void read_peervars (void);
static void read_variables (struct recvbuf *, int);
static void write_variables (struct recvbuf *, int);
static void read_clockstatus(struct recvbuf *, int);
static void write_clockstatus(struct recvbuf *, int);
static void set_trap (struct recvbuf *, int);
static void save_config (struct recvbuf *, int);
static void configure (struct recvbuf *, int);
static void send_mru_entry (mon_entry *, int);
static void send_random_tag_value(int);
static void read_mru_list (struct recvbuf *, int);
static void send_ifstats_entry(endpt *, u_int);
static void read_ifstats (struct recvbuf *);
static void sockaddrs_from_restrict_u(sockaddr_u *, sockaddr_u *,
restrict_u *, int);
static void send_restrict_entry(restrict_u *, int, u_int);
static void send_restrict_list(restrict_u *, int, u_int *);
static void read_addr_restrictions(struct recvbuf *);
static void read_ordlist (struct recvbuf *, int);
static u_int32 derive_nonce (sockaddr_u *, u_int32, u_int32);
static void generate_nonce (struct recvbuf *, char *, size_t);
static int validate_nonce (const char *, struct recvbuf *);
static void req_nonce (struct recvbuf *, int);
static void unset_trap (struct recvbuf *, int);
static struct ctl_trap *ctlfindtrap(sockaddr_u *,
struct interface *);
int/*BOOL*/ is_safe_filename(const char * name);
static const struct ctl_proc control_codes[] = {
{ CTL_OP_UNSPEC, NOAUTH, control_unspec },
{ CTL_OP_READSTAT, NOAUTH, read_status },
{ CTL_OP_READVAR, NOAUTH, read_variables },
{ CTL_OP_WRITEVAR, AUTH, write_variables },
{ CTL_OP_READCLOCK, NOAUTH, read_clockstatus },
{ CTL_OP_WRITECLOCK, AUTH, write_clockstatus },
{ CTL_OP_SETTRAP, AUTH, set_trap },
{ CTL_OP_CONFIGURE, AUTH, configure },
{ CTL_OP_SAVECONFIG, AUTH, save_config },
{ CTL_OP_READ_MRU, NOAUTH, read_mru_list },
{ CTL_OP_READ_ORDLIST_A, AUTH, read_ordlist },
{ CTL_OP_REQ_NONCE, NOAUTH, req_nonce },
{ CTL_OP_UNSETTRAP, AUTH, unset_trap },
{ NO_REQUEST, 0, NULL }
};
/*
* System variables we understand
*/
#define CS_LEAP 1
#define CS_STRATUM 2
#define CS_PRECISION 3
#define CS_ROOTDELAY 4
#define CS_ROOTDISPERSION 5
#define CS_REFID 6
#define CS_REFTIME 7
#define CS_POLL 8
#define CS_PEERID 9
#define CS_OFFSET 10
#define CS_DRIFT 11
#define CS_JITTER 12
#define CS_ERROR 13
#define CS_CLOCK 14
#define CS_PROCESSOR 15
#define CS_SYSTEM 16
#define CS_VERSION 17
#define CS_STABIL 18
#define CS_VARLIST 19
#define CS_TAI 20
#define CS_LEAPTAB 21
#define CS_LEAPEND 22
#define CS_RATE 23
#define CS_MRU_ENABLED 24
#define CS_MRU_DEPTH 25
#define CS_MRU_DEEPEST 26
#define CS_MRU_MINDEPTH 27
#define CS_MRU_MAXAGE 28
#define CS_MRU_MAXDEPTH 29
#define CS_MRU_MEM 30
#define CS_MRU_MAXMEM 31
#define CS_SS_UPTIME 32
#define CS_SS_RESET 33
#define CS_SS_RECEIVED 34
#define CS_SS_THISVER 35
#define CS_SS_OLDVER 36
#define CS_SS_BADFORMAT 37
#define CS_SS_BADAUTH 38
#define CS_SS_DECLINED 39
#define CS_SS_RESTRICTED 40
#define CS_SS_LIMITED 41
#define CS_SS_KODSENT 42
#define CS_SS_PROCESSED 43
#define CS_SS_LAMPORT 44
#define CS_SS_TSROUNDING 45
#define CS_PEERADR 46
#define CS_PEERMODE 47
#define CS_BCASTDELAY 48
#define CS_AUTHDELAY 49
#define CS_AUTHKEYS 50
#define CS_AUTHFREEK 51
#define CS_AUTHKLOOKUPS 52
#define CS_AUTHKNOTFOUND 53
#define CS_AUTHKUNCACHED 54
#define CS_AUTHKEXPIRED 55
#define CS_AUTHENCRYPTS 56
#define CS_AUTHDECRYPTS 57
#define CS_AUTHRESET 58
#define CS_K_OFFSET 59
#define CS_K_FREQ 60
#define CS_K_MAXERR 61
#define CS_K_ESTERR 62
#define CS_K_STFLAGS 63
#define CS_K_TIMECONST 64
#define CS_K_PRECISION 65
#define CS_K_FREQTOL 66
#define CS_K_PPS_FREQ 67
#define CS_K_PPS_STABIL 68
#define CS_K_PPS_JITTER 69
#define CS_K_PPS_CALIBDUR 70
#define CS_K_PPS_CALIBS 71
#define CS_K_PPS_CALIBERRS 72
#define CS_K_PPS_JITEXC 73
#define CS_K_PPS_STBEXC 74
#define CS_KERN_FIRST CS_K_OFFSET
#define CS_KERN_LAST CS_K_PPS_STBEXC
#define CS_IOSTATS_RESET 75
#define CS_TOTAL_RBUF 76
#define CS_FREE_RBUF 77
#define CS_USED_RBUF 78
#define CS_RBUF_LOWATER 79
#define CS_IO_DROPPED 80
#define CS_IO_IGNORED 81
#define CS_IO_RECEIVED 82
#define CS_IO_SENT 83
#define CS_IO_SENDFAILED 84
#define CS_IO_WAKEUPS 85
#define CS_IO_GOODWAKEUPS 86
#define CS_TIMERSTATS_RESET 87
#define CS_TIMER_OVERRUNS 88
#define CS_TIMER_XMTS 89
#define CS_FUZZ 90
#define CS_WANDER_THRESH 91
#define CS_LEAPSMEARINTV 92
#define CS_LEAPSMEAROFFS 93
#define CS_MAX_NOAUTOKEY CS_LEAPSMEAROFFS
#ifdef AUTOKEY
#define CS_FLAGS (1 + CS_MAX_NOAUTOKEY)
#define CS_HOST (2 + CS_MAX_NOAUTOKEY)
#define CS_PUBLIC (3 + CS_MAX_NOAUTOKEY)
#define CS_CERTIF (4 + CS_MAX_NOAUTOKEY)
#define CS_SIGNATURE (5 + CS_MAX_NOAUTOKEY)
#define CS_REVTIME (6 + CS_MAX_NOAUTOKEY)
#define CS_IDENT (7 + CS_MAX_NOAUTOKEY)
#define CS_DIGEST (8 + CS_MAX_NOAUTOKEY)
#define CS_MAXCODE CS_DIGEST
#else /* !AUTOKEY follows */
#define CS_MAXCODE CS_MAX_NOAUTOKEY
#endif /* !AUTOKEY */
/*
* Peer variables we understand
*/
#define CP_CONFIG 1
#define CP_AUTHENABLE 2
#define CP_AUTHENTIC 3
#define CP_SRCADR 4
#define CP_SRCPORT 5
#define CP_DSTADR 6
#define CP_DSTPORT 7
#define CP_LEAP 8
#define CP_HMODE 9
#define CP_STRATUM 10
#define CP_PPOLL 11
#define CP_HPOLL 12
#define CP_PRECISION 13
#define CP_ROOTDELAY 14
#define CP_ROOTDISPERSION 15
#define CP_REFID 16
#define CP_REFTIME 17
#define CP_ORG 18
#define CP_REC 19
#define CP_XMT 20
#define CP_REACH 21
#define CP_UNREACH 22
#define CP_TIMER 23
#define CP_DELAY 24
#define CP_OFFSET 25
#define CP_JITTER 26
#define CP_DISPERSION 27
#define CP_KEYID 28
#define CP_FILTDELAY 29
#define CP_FILTOFFSET 30
#define CP_PMODE 31
#define CP_RECEIVED 32
#define CP_SENT 33
#define CP_FILTERROR 34
#define CP_FLASH 35
#define CP_TTL 36
#define CP_VARLIST 37
#define CP_IN 38
#define CP_OUT 39
#define CP_RATE 40
#define CP_BIAS 41
#define CP_SRCHOST 42
#define CP_TIMEREC 43
#define CP_TIMEREACH 44
#define CP_BADAUTH 45
#define CP_BOGUSORG 46
#define CP_OLDPKT 47
#define CP_SELDISP 48
#define CP_SELBROKEN 49
#define CP_CANDIDATE 50
#define CP_MAX_NOAUTOKEY CP_CANDIDATE
#ifdef AUTOKEY
#define CP_FLAGS (1 + CP_MAX_NOAUTOKEY)
#define CP_HOST (2 + CP_MAX_NOAUTOKEY)
#define CP_VALID (3 + CP_MAX_NOAUTOKEY)
#define CP_INITSEQ (4 + CP_MAX_NOAUTOKEY)
#define CP_INITKEY (5 + CP_MAX_NOAUTOKEY)
#define CP_INITTSP (6 + CP_MAX_NOAUTOKEY)
#define CP_SIGNATURE (7 + CP_MAX_NOAUTOKEY)
#define CP_IDENT (8 + CP_MAX_NOAUTOKEY)
#define CP_MAXCODE CP_IDENT
#else /* !AUTOKEY follows */
#define CP_MAXCODE CP_MAX_NOAUTOKEY
#endif /* !AUTOKEY */
/*
* Clock variables we understand
*/
#define CC_TYPE 1
#define CC_TIMECODE 2
#define CC_POLL 3
#define CC_NOREPLY 4
#define CC_BADFORMAT 5
#define CC_BADDATA 6
#define CC_FUDGETIME1 7
#define CC_FUDGETIME2 8
#define CC_FUDGEVAL1 9
#define CC_FUDGEVAL2 10
#define CC_FLAGS 11
#define CC_DEVICE 12
#define CC_VARLIST 13
#define CC_FUDGEMINJIT 14
#define CC_MAXCODE CC_FUDGEMINJIT
/*
* System variable values. The array can be indexed by the variable
* index to find the textual name.
*/
static const struct ctl_var sys_var[] = {
{ 0, PADDING, "" }, /* 0 */
{ CS_LEAP, RW, "leap" }, /* 1 */
{ CS_STRATUM, RO, "stratum" }, /* 2 */
{ CS_PRECISION, RO, "precision" }, /* 3 */
{ CS_ROOTDELAY, RO, "rootdelay" }, /* 4 */
{ CS_ROOTDISPERSION, RO, "rootdisp" }, /* 5 */
{ CS_REFID, RO, "refid" }, /* 6 */
{ CS_REFTIME, RO, "reftime" }, /* 7 */
{ CS_POLL, RO, "tc" }, /* 8 */
{ CS_PEERID, RO, "peer" }, /* 9 */
{ CS_OFFSET, RO, "offset" }, /* 10 */
{ CS_DRIFT, RO, "frequency" }, /* 11 */
{ CS_JITTER, RO, "sys_jitter" }, /* 12 */
{ CS_ERROR, RO, "clk_jitter" }, /* 13 */
{ CS_CLOCK, RO, "clock" }, /* 14 */
{ CS_PROCESSOR, RO, "processor" }, /* 15 */
{ CS_SYSTEM, RO, "system" }, /* 16 */
{ CS_VERSION, RO, "version" }, /* 17 */
{ CS_STABIL, RO, "clk_wander" }, /* 18 */
{ CS_VARLIST, RO, "sys_var_list" }, /* 19 */
{ CS_TAI, RO, "tai" }, /* 20 */
{ CS_LEAPTAB, RO, "leapsec" }, /* 21 */
{ CS_LEAPEND, RO, "expire" }, /* 22 */
{ CS_RATE, RO, "mintc" }, /* 23 */
{ CS_MRU_ENABLED, RO, "mru_enabled" }, /* 24 */
{ CS_MRU_DEPTH, RO, "mru_depth" }, /* 25 */
{ CS_MRU_DEEPEST, RO, "mru_deepest" }, /* 26 */
{ CS_MRU_MINDEPTH, RO, "mru_mindepth" }, /* 27 */
{ CS_MRU_MAXAGE, RO, "mru_maxage" }, /* 28 */
{ CS_MRU_MAXDEPTH, RO, "mru_maxdepth" }, /* 29 */
{ CS_MRU_MEM, RO, "mru_mem" }, /* 30 */
{ CS_MRU_MAXMEM, RO, "mru_maxmem" }, /* 31 */
{ CS_SS_UPTIME, RO, "ss_uptime" }, /* 32 */
{ CS_SS_RESET, RO, "ss_reset" }, /* 33 */
{ CS_SS_RECEIVED, RO, "ss_received" }, /* 34 */
{ CS_SS_THISVER, RO, "ss_thisver" }, /* 35 */
{ CS_SS_OLDVER, RO, "ss_oldver" }, /* 36 */
{ CS_SS_BADFORMAT, RO, "ss_badformat" }, /* 37 */
{ CS_SS_BADAUTH, RO, "ss_badauth" }, /* 38 */
{ CS_SS_DECLINED, RO, "ss_declined" }, /* 39 */
{ CS_SS_RESTRICTED, RO, "ss_restricted" }, /* 40 */
{ CS_SS_LIMITED, RO, "ss_limited" }, /* 41 */
{ CS_SS_KODSENT, RO, "ss_kodsent" }, /* 42 */
{ CS_SS_PROCESSED, RO, "ss_processed" }, /* 43 */
{ CS_SS_LAMPORT, RO, "ss_lamport" }, /* 44 */
{ CS_SS_TSROUNDING, RO, "ss_tsrounding" }, /* 45 */
{ CS_PEERADR, RO, "peeradr" }, /* 46 */
{ CS_PEERMODE, RO, "peermode" }, /* 47 */
{ CS_BCASTDELAY, RO, "bcastdelay" }, /* 48 */
{ CS_AUTHDELAY, RO, "authdelay" }, /* 49 */
{ CS_AUTHKEYS, RO, "authkeys" }, /* 50 */
{ CS_AUTHFREEK, RO, "authfreek" }, /* 51 */
{ CS_AUTHKLOOKUPS, RO, "authklookups" }, /* 52 */
{ CS_AUTHKNOTFOUND, RO, "authknotfound" }, /* 53 */
{ CS_AUTHKUNCACHED, RO, "authkuncached" }, /* 54 */
{ CS_AUTHKEXPIRED, RO, "authkexpired" }, /* 55 */
{ CS_AUTHENCRYPTS, RO, "authencrypts" }, /* 56 */
{ CS_AUTHDECRYPTS, RO, "authdecrypts" }, /* 57 */
{ CS_AUTHRESET, RO, "authreset" }, /* 58 */
{ CS_K_OFFSET, RO, "koffset" }, /* 59 */
{ CS_K_FREQ, RO, "kfreq" }, /* 60 */
{ CS_K_MAXERR, RO, "kmaxerr" }, /* 61 */
{ CS_K_ESTERR, RO, "kesterr" }, /* 62 */
{ CS_K_STFLAGS, RO, "kstflags" }, /* 63 */
{ CS_K_TIMECONST, RO, "ktimeconst" }, /* 64 */
{ CS_K_PRECISION, RO, "kprecis" }, /* 65 */
{ CS_K_FREQTOL, RO, "kfreqtol" }, /* 66 */
{ CS_K_PPS_FREQ, RO, "kppsfreq" }, /* 67 */
{ CS_K_PPS_STABIL, RO, "kppsstab" }, /* 68 */
{ CS_K_PPS_JITTER, RO, "kppsjitter" }, /* 69 */
{ CS_K_PPS_CALIBDUR, RO, "kppscalibdur" }, /* 70 */
{ CS_K_PPS_CALIBS, RO, "kppscalibs" }, /* 71 */
{ CS_K_PPS_CALIBERRS, RO, "kppscaliberrs" }, /* 72 */
{ CS_K_PPS_JITEXC, RO, "kppsjitexc" }, /* 73 */
{ CS_K_PPS_STBEXC, RO, "kppsstbexc" }, /* 74 */
{ CS_IOSTATS_RESET, RO, "iostats_reset" }, /* 75 */
{ CS_TOTAL_RBUF, RO, "total_rbuf" }, /* 76 */
{ CS_FREE_RBUF, RO, "free_rbuf" }, /* 77 */
{ CS_USED_RBUF, RO, "used_rbuf" }, /* 78 */
{ CS_RBUF_LOWATER, RO, "rbuf_lowater" }, /* 79 */
{ CS_IO_DROPPED, RO, "io_dropped" }, /* 80 */
{ CS_IO_IGNORED, RO, "io_ignored" }, /* 81 */
{ CS_IO_RECEIVED, RO, "io_received" }, /* 82 */
{ CS_IO_SENT, RO, "io_sent" }, /* 83 */
{ CS_IO_SENDFAILED, RO, "io_sendfailed" }, /* 84 */
{ CS_IO_WAKEUPS, RO, "io_wakeups" }, /* 85 */
{ CS_IO_GOODWAKEUPS, RO, "io_goodwakeups" }, /* 86 */
{ CS_TIMERSTATS_RESET, RO, "timerstats_reset" },/* 87 */
{ CS_TIMER_OVERRUNS, RO, "timer_overruns" }, /* 88 */
{ CS_TIMER_XMTS, RO, "timer_xmts" }, /* 89 */
{ CS_FUZZ, RO, "fuzz" }, /* 90 */
{ CS_WANDER_THRESH, RO, "clk_wander_threshold" }, /* 91 */
{ CS_LEAPSMEARINTV, RO, "leapsmearinterval" }, /* 92 */
{ CS_LEAPSMEAROFFS, RO, "leapsmearoffset" }, /* 93 */
#ifdef AUTOKEY
{ CS_FLAGS, RO, "flags" }, /* 1 + CS_MAX_NOAUTOKEY */
{ CS_HOST, RO, "host" }, /* 2 + CS_MAX_NOAUTOKEY */
{ CS_PUBLIC, RO, "update" }, /* 3 + CS_MAX_NOAUTOKEY */
{ CS_CERTIF, RO, "cert" }, /* 4 + CS_MAX_NOAUTOKEY */
{ CS_SIGNATURE, RO, "signature" }, /* 5 + CS_MAX_NOAUTOKEY */
{ CS_REVTIME, RO, "until" }, /* 6 + CS_MAX_NOAUTOKEY */
{ CS_IDENT, RO, "ident" }, /* 7 + CS_MAX_NOAUTOKEY */
{ CS_DIGEST, RO, "digest" }, /* 8 + CS_MAX_NOAUTOKEY */
#endif /* AUTOKEY */
{ 0, EOV, "" } /* 94/102 */
};
static struct ctl_var *ext_sys_var = NULL;
/*
* System variables we print by default (in fuzzball order,
* more-or-less)
*/
static const u_char def_sys_var[] = {
CS_VERSION,
CS_PROCESSOR,
CS_SYSTEM,
CS_LEAP,
CS_STRATUM,
CS_PRECISION,
CS_ROOTDELAY,
CS_ROOTDISPERSION,
CS_REFID,
CS_REFTIME,
CS_CLOCK,
CS_PEERID,
CS_POLL,
CS_RATE,
CS_OFFSET,
CS_DRIFT,
CS_JITTER,
CS_ERROR,
CS_STABIL,
CS_TAI,
CS_LEAPTAB,
CS_LEAPEND,
CS_LEAPSMEARINTV,
CS_LEAPSMEAROFFS,
#ifdef AUTOKEY
CS_HOST,
CS_IDENT,
CS_FLAGS,
CS_DIGEST,
CS_SIGNATURE,
CS_PUBLIC,
CS_CERTIF,
#endif /* AUTOKEY */
0
};
/*
* Peer variable list
*/
static const struct ctl_var peer_var[] = {
{ 0, PADDING, "" }, /* 0 */
{ CP_CONFIG, RO, "config" }, /* 1 */
{ CP_AUTHENABLE, RO, "authenable" }, /* 2 */
{ CP_AUTHENTIC, RO, "authentic" }, /* 3 */
{ CP_SRCADR, RO, "srcadr" }, /* 4 */
{ CP_SRCPORT, RO, "srcport" }, /* 5 */
{ CP_DSTADR, RO, "dstadr" }, /* 6 */
{ CP_DSTPORT, RO, "dstport" }, /* 7 */
{ CP_LEAP, RO, "leap" }, /* 8 */
{ CP_HMODE, RO, "hmode" }, /* 9 */
{ CP_STRATUM, RO, "stratum" }, /* 10 */
{ CP_PPOLL, RO, "ppoll" }, /* 11 */
{ CP_HPOLL, RO, "hpoll" }, /* 12 */
{ CP_PRECISION, RO, "precision" }, /* 13 */
{ CP_ROOTDELAY, RO, "rootdelay" }, /* 14 */
{ CP_ROOTDISPERSION, RO, "rootdisp" }, /* 15 */
{ CP_REFID, RO, "refid" }, /* 16 */
{ CP_REFTIME, RO, "reftime" }, /* 17 */
{ CP_ORG, RO, "org" }, /* 18 */
{ CP_REC, RO, "rec" }, /* 19 */
{ CP_XMT, RO, "xleave" }, /* 20 */
{ CP_REACH, RO, "reach" }, /* 21 */
{ CP_UNREACH, RO, "unreach" }, /* 22 */
{ CP_TIMER, RO, "timer" }, /* 23 */
{ CP_DELAY, RO, "delay" }, /* 24 */
{ CP_OFFSET, RO, "offset" }, /* 25 */
{ CP_JITTER, RO, "jitter" }, /* 26 */
{ CP_DISPERSION, RO, "dispersion" }, /* 27 */
{ CP_KEYID, RO, "keyid" }, /* 28 */
{ CP_FILTDELAY, RO, "filtdelay" }, /* 29 */
{ CP_FILTOFFSET, RO, "filtoffset" }, /* 30 */
{ CP_PMODE, RO, "pmode" }, /* 31 */
{ CP_RECEIVED, RO, "received"}, /* 32 */
{ CP_SENT, RO, "sent" }, /* 33 */
{ CP_FILTERROR, RO, "filtdisp" }, /* 34 */
{ CP_FLASH, RO, "flash" }, /* 35 */
{ CP_TTL, RO, "ttl" }, /* 36 */
{ CP_VARLIST, RO, "peer_var_list" }, /* 37 */
{ CP_IN, RO, "in" }, /* 38 */
{ CP_OUT, RO, "out" }, /* 39 */
{ CP_RATE, RO, "headway" }, /* 40 */
{ CP_BIAS, RO, "bias" }, /* 41 */
{ CP_SRCHOST, RO, "srchost" }, /* 42 */
{ CP_TIMEREC, RO, "timerec" }, /* 43 */
{ CP_TIMEREACH, RO, "timereach" }, /* 44 */
{ CP_BADAUTH, RO, "badauth" }, /* 45 */
{ CP_BOGUSORG, RO, "bogusorg" }, /* 46 */
{ CP_OLDPKT, RO, "oldpkt" }, /* 47 */
{ CP_SELDISP, RO, "seldisp" }, /* 48 */
{ CP_SELBROKEN, RO, "selbroken" }, /* 49 */
{ CP_CANDIDATE, RO, "candidate" }, /* 50 */
#ifdef AUTOKEY
{ CP_FLAGS, RO, "flags" }, /* 1 + CP_MAX_NOAUTOKEY */
{ CP_HOST, RO, "host" }, /* 2 + CP_MAX_NOAUTOKEY */
{ CP_VALID, RO, "valid" }, /* 3 + CP_MAX_NOAUTOKEY */
{ CP_INITSEQ, RO, "initsequence" }, /* 4 + CP_MAX_NOAUTOKEY */
{ CP_INITKEY, RO, "initkey" }, /* 5 + CP_MAX_NOAUTOKEY */
{ CP_INITTSP, RO, "timestamp" }, /* 6 + CP_MAX_NOAUTOKEY */
{ CP_SIGNATURE, RO, "signature" }, /* 7 + CP_MAX_NOAUTOKEY */
{ CP_IDENT, RO, "ident" }, /* 8 + CP_MAX_NOAUTOKEY */
#endif /* AUTOKEY */
{ 0, EOV, "" } /* 50/58 */
};
/*
* Peer variables we print by default
*/
static const u_char def_peer_var[] = {
CP_SRCADR,
CP_SRCPORT,
CP_SRCHOST,
CP_DSTADR,
CP_DSTPORT,
CP_OUT,
CP_IN,
CP_LEAP,
CP_STRATUM,
CP_PRECISION,
CP_ROOTDELAY,
CP_ROOTDISPERSION,
CP_REFID,
CP_REFTIME,
CP_REC,
CP_REACH,
CP_UNREACH,
CP_HMODE,
CP_PMODE,
CP_HPOLL,
CP_PPOLL,
CP_RATE,
CP_FLASH,
CP_KEYID,
CP_TTL,
CP_OFFSET,
CP_DELAY,
CP_DISPERSION,
CP_JITTER,
CP_XMT,
CP_BIAS,
CP_FILTDELAY,
CP_FILTOFFSET,
CP_FILTERROR,
#ifdef AUTOKEY
CP_HOST,
CP_FLAGS,
CP_SIGNATURE,
CP_VALID,
CP_INITSEQ,
CP_IDENT,
#endif /* AUTOKEY */
0
};
#ifdef REFCLOCK
/*
* Clock variable list
*/
static const struct ctl_var clock_var[] = {
{ 0, PADDING, "" }, /* 0 */
{ CC_TYPE, RO, "type" }, /* 1 */
{ CC_TIMECODE, RO, "timecode" }, /* 2 */
{ CC_POLL, RO, "poll" }, /* 3 */
{ CC_NOREPLY, RO, "noreply" }, /* 4 */
{ CC_BADFORMAT, RO, "badformat" }, /* 5 */
{ CC_BADDATA, RO, "baddata" }, /* 6 */
{ CC_FUDGETIME1, RO, "fudgetime1" }, /* 7 */
{ CC_FUDGETIME2, RO, "fudgetime2" }, /* 8 */
{ CC_FUDGEVAL1, RO, "stratum" }, /* 9 */
{ CC_FUDGEVAL2, RO, "refid" }, /* 10 */
{ CC_FLAGS, RO, "flags" }, /* 11 */
{ CC_DEVICE, RO, "device" }, /* 12 */
{ CC_VARLIST, RO, "clock_var_list" }, /* 13 */
{ CC_FUDGEMINJIT, RO, "minjitter" }, /* 14 */
{ 0, EOV, "" } /* 15 */
};
/*
* Clock variables printed by default
*/
static const u_char def_clock_var[] = {
CC_DEVICE,
CC_TYPE, /* won't be output if device = known */
CC_TIMECODE,
CC_POLL,
CC_NOREPLY,
CC_BADFORMAT,
CC_BADDATA,
CC_FUDGEMINJIT,
CC_FUDGETIME1,
CC_FUDGETIME2,
CC_FUDGEVAL1,
CC_FUDGEVAL2,
CC_FLAGS,
0
};
#endif
/*
* MRU string constants shared by send_mru_entry() and read_mru_list().
*/
static const char addr_fmt[] = "addr.%d";
static const char last_fmt[] = "last.%d";
/*
* System and processor definitions.
*/
#ifndef HAVE_UNAME
# ifndef STR_SYSTEM
# define STR_SYSTEM "UNIX"
# endif
# ifndef STR_PROCESSOR
# define STR_PROCESSOR "unknown"
# endif
static const char str_system[] = STR_SYSTEM;
static const char str_processor[] = STR_PROCESSOR;
#else
# include <sys/utsname.h>
static struct utsname utsnamebuf;
#endif /* HAVE_UNAME */
/*
* Trap structures. We only allow a few of these, and send a copy of
* each async message to each live one. Traps time out after an hour, it
* is up to the trap receipient to keep resetting it to avoid being
* timed out.
*/
/* ntp_request.c */
struct ctl_trap ctl_traps[CTL_MAXTRAPS];
int num_ctl_traps;
/*
* Type bits, for ctlsettrap() call.
*/
#define TRAP_TYPE_CONFIG 0 /* used by configuration code */
#define TRAP_TYPE_PRIO 1 /* priority trap */
#define TRAP_TYPE_NONPRIO 2 /* nonpriority trap */
/*
* List relating reference clock types to control message time sources.
* Index by the reference clock type. This list will only be used iff
* the reference clock driver doesn't set peer->sstclktype to something
* different than CTL_SST_TS_UNSPEC.
*/
#ifdef REFCLOCK
static const u_char clocktypes[] = {
CTL_SST_TS_NTP, /* REFCLK_NONE (0) */
CTL_SST_TS_LOCAL, /* REFCLK_LOCALCLOCK (1) */
CTL_SST_TS_UHF, /* deprecated REFCLK_GPS_TRAK (2) */
CTL_SST_TS_HF, /* REFCLK_WWV_PST (3) */
CTL_SST_TS_LF, /* REFCLK_WWVB_SPECTRACOM (4) */
CTL_SST_TS_UHF, /* REFCLK_TRUETIME (5) */
CTL_SST_TS_UHF, /* REFCLK_IRIG_AUDIO (6) */
CTL_SST_TS_HF, /* REFCLK_CHU (7) */
CTL_SST_TS_LF, /* REFCLOCK_PARSE (default) (8) */
CTL_SST_TS_LF, /* REFCLK_GPS_MX4200 (9) */
CTL_SST_TS_UHF, /* REFCLK_GPS_AS2201 (10) */
CTL_SST_TS_UHF, /* REFCLK_GPS_ARBITER (11) */
CTL_SST_TS_UHF, /* REFCLK_IRIG_TPRO (12) */
CTL_SST_TS_ATOM, /* REFCLK_ATOM_LEITCH (13) */
CTL_SST_TS_LF, /* deprecated REFCLK_MSF_EES (14) */
CTL_SST_TS_NTP, /* not used (15) */
CTL_SST_TS_UHF, /* REFCLK_IRIG_BANCOMM (16) */
CTL_SST_TS_UHF, /* REFCLK_GPS_DATU (17) */
CTL_SST_TS_TELEPHONE, /* REFCLK_NIST_ACTS (18) */
CTL_SST_TS_HF, /* REFCLK_WWV_HEATH (19) */
CTL_SST_TS_UHF, /* REFCLK_GPS_NMEA (20) */
CTL_SST_TS_UHF, /* REFCLK_GPS_VME (21) */
CTL_SST_TS_ATOM, /* REFCLK_ATOM_PPS (22) */
CTL_SST_TS_NTP, /* not used (23) */
CTL_SST_TS_NTP, /* not used (24) */
CTL_SST_TS_NTP, /* not used (25) */
CTL_SST_TS_UHF, /* REFCLK_GPS_HP (26) */
CTL_SST_TS_LF, /* REFCLK_ARCRON_MSF (27) */
CTL_SST_TS_UHF, /* REFCLK_SHM (28) */
CTL_SST_TS_UHF, /* REFCLK_PALISADE (29) */
CTL_SST_TS_UHF, /* REFCLK_ONCORE (30) */
CTL_SST_TS_UHF, /* REFCLK_JUPITER (31) */
CTL_SST_TS_LF, /* REFCLK_CHRONOLOG (32) */
CTL_SST_TS_LF, /* REFCLK_DUMBCLOCK (33) */
CTL_SST_TS_LF, /* REFCLK_ULINK (34) */
CTL_SST_TS_LF, /* REFCLK_PCF (35) */
CTL_SST_TS_HF, /* REFCLK_WWV (36) */
CTL_SST_TS_LF, /* REFCLK_FG (37) */
CTL_SST_TS_UHF, /* REFCLK_HOPF_SERIAL (38) */
CTL_SST_TS_UHF, /* REFCLK_HOPF_PCI (39) */
CTL_SST_TS_LF, /* REFCLK_JJY (40) */
CTL_SST_TS_UHF, /* REFCLK_TT560 (41) */
CTL_SST_TS_UHF, /* REFCLK_ZYFER (42) */
CTL_SST_TS_UHF, /* REFCLK_RIPENCC (43) */
CTL_SST_TS_UHF, /* REFCLK_NEOCLOCK4X (44) */
CTL_SST_TS_UHF, /* REFCLK_TSYNCPCI (45) */
CTL_SST_TS_UHF /* REFCLK_GPSDJSON (46) */
};
#endif /* REFCLOCK */
/*
* Keyid used for authenticating write requests.
*/
keyid_t ctl_auth_keyid;
/*
* We keep track of the last error reported by the system internally
*/
static u_char ctl_sys_last_event;
static u_char ctl_sys_num_events;
/*
* Statistic counters to keep track of requests and responses.
*/
u_long ctltimereset; /* time stats reset */
u_long numctlreq; /* number of requests we've received */
u_long numctlbadpkts; /* number of bad control packets */
u_long numctlresponses; /* number of resp packets sent with data */
u_long numctlfrags; /* number of fragments sent */
u_long numctlerrors; /* number of error responses sent */
u_long numctltooshort; /* number of too short input packets */
u_long numctlinputresp; /* number of responses on input */
u_long numctlinputfrag; /* number of fragments on input */
u_long numctlinputerr; /* number of input pkts with err bit set */
u_long numctlbadoffset; /* number of input pkts with nonzero offset */
u_long numctlbadversion; /* number of input pkts with unknown version */
u_long numctldatatooshort; /* data too short for count */
u_long numctlbadop; /* bad op code found in packet */
u_long numasyncmsgs; /* number of async messages we've sent */
/*
* Response packet used by these routines. Also some state information
* so that we can handle packet formatting within a common set of
* subroutines. Note we try to enter data in place whenever possible,
* but the need to set the more bit correctly means we occasionally
* use the extra buffer and copy.
*/
static struct ntp_control rpkt;
static u_char res_version;
static u_char res_opcode;
static associd_t res_associd;
static u_short res_frags; /* datagrams in this response */
static int res_offset; /* offset of payload in response */
static u_char * datapt;
static u_char * dataend;
static int datalinelen;
static int datasent; /* flag to avoid initial ", " */
static int datanotbinflag;
static sockaddr_u *rmt_addr;
static struct interface *lcl_inter;
static u_char res_authenticate;
static u_char res_authokay;
static keyid_t res_keyid;
#define MAXDATALINELEN (72)
static u_char res_async; /* sending async trap response? */
/*
* Pointers for saving state when decoding request packets
*/
static char *reqpt;
static char *reqend;
/*
* init_control - initialize request data
*/
void
init_control(void)
{
size_t i;
#ifdef HAVE_UNAME
uname(&utsnamebuf);
#endif /* HAVE_UNAME */
ctl_clr_stats();
ctl_auth_keyid = 0;
ctl_sys_last_event = EVNT_UNSPEC;
ctl_sys_num_events = 0;
num_ctl_traps = 0;
for (i = 0; i < COUNTOF(ctl_traps); i++)
ctl_traps[i].tr_flags = 0;
}
/*
* ctl_error - send an error response for the current request
*/
static void
ctl_error(
u_char errcode
)
{
size_t maclen;
numctlerrors++;
DPRINTF(3, ("sending control error %u\n", errcode));
/*
* Fill in the fields. We assume rpkt.sequence and rpkt.associd
* have already been filled in.
*/
rpkt.r_m_e_op = (u_char)CTL_RESPONSE | CTL_ERROR |
(res_opcode & CTL_OP_MASK);
rpkt.status = htons((u_short)(errcode << 8) & 0xff00);
rpkt.count = 0;
/*
* send packet and bump counters
*/
if (res_authenticate && sys_authenticate) {
maclen = authencrypt(res_keyid, (u_int32 *)&rpkt,
CTL_HEADER_LEN);
sendpkt(rmt_addr, lcl_inter, -2, (void *)&rpkt,
CTL_HEADER_LEN + maclen);
} else
sendpkt(rmt_addr, lcl_inter, -3, (void *)&rpkt,
CTL_HEADER_LEN);
}
int/*BOOL*/
is_safe_filename(const char * name)
{
/* We need a strict validation of filenames we should write: The
* daemon might run with special permissions and is remote
* controllable, so we better take care what we allow as file
* name!
*
* The first character must be digit or a letter from the ASCII
* base plane or a '_' ([_A-Za-z0-9]), the following characters
* must be from [-._+A-Za-z0-9].
*
* We do not trust the character classification much here: Since
* the NTP protocol makes no provisions for UTF-8 or local code
* pages, we strictly require the 7bit ASCII code page.
*
* The following table is a packed bit field of 128 two-bit
* groups. The LSB in each group tells us if a character is
* acceptable at the first position, the MSB if the character is
* accepted at any other position.
*
* This does not ensure that the file name is syntactically
* correct (multiple dots will not work with VMS...) but it will
* exclude potential globbing bombs and directory traversal. It
* also rules out drive selection. (For systems that have this
* notion, like Windows or VMS.)
*/
static const uint32_t chclass[8] = {
0x00000000, 0x00000000,
0x28800000, 0x000FFFFF,
0xFFFFFFFC, 0xC03FFFFF,
0xFFFFFFFC, 0x003FFFFF
};
u_int widx, bidx, mask;
if ( ! (name && *name))
return FALSE;
mask = 1u;
while (0 != (widx = (u_char)*name++)) {
bidx = (widx & 15) << 1;
widx = widx >> 4;
if (widx >= sizeof(chclass)/sizeof(chclass[0]))
return FALSE;
if (0 == ((chclass[widx] >> bidx) & mask))
return FALSE;
mask = 2u;
}
return TRUE;
}
/*
* save_config - Implements ntpq -c "saveconfig <filename>"
* Writes current configuration including any runtime
* changes by ntpq's :config or config-from-file
*
* Note: There should be no buffer overflow or truncation in the
* processing of file names -- both cause security problems. This is bit
* painful to code but essential here.
*/
void
save_config(
struct recvbuf *rbufp,
int restrict_mask
)
{
/* block directory traversal by searching for characters that
* indicate directory components in a file path.
*
* Conceptually we should be searching for DIRSEP in filename,
* however Windows actually recognizes both forward and
* backslashes as equivalent directory separators at the API
* level. On POSIX systems we could allow '\\' but such
* filenames are tricky to manipulate from a shell, so just
* reject both types of slashes on all platforms.
*/
/* TALOS-CAN-0062: block directory traversal for VMS, too */
static const char * illegal_in_filename =
#if defined(VMS)
":[]" /* do not allow drive and path components here */
#elif defined(SYS_WINNT)
":\\/" /* path and drive separators */
#else
"\\/" /* separator and critical char for POSIX */
#endif
;
char reply[128];
#ifdef SAVECONFIG
static const char savedconfig_eq[] = "savedconfig=";
/* Build a safe open mode from the available mode flags. We want
* to create a new file and write it in text mode (when
* applicable -- only Windows does this...)
*/
static const int openmode = O_CREAT | O_TRUNC | O_WRONLY
# if defined(O_EXCL) /* posix, vms */
| O_EXCL
# elif defined(_O_EXCL) /* windows is alway very special... */
| _O_EXCL
# endif
# if defined(_O_TEXT) /* windows, again */
| _O_TEXT
#endif
;
char filespec[128];
char filename[128];
char fullpath[512];
char savedconfig[sizeof(savedconfig_eq) + sizeof(filename)];
time_t now;
int fd;
FILE *fptr;
int prc;
size_t reqlen;
#endif
if (RES_NOMODIFY & restrict_mask) {
ctl_printf("%s", "saveconfig prohibited by restrict ... nomodify");
ctl_flushpkt(0);
NLOG(NLOG_SYSINFO)
msyslog(LOG_NOTICE,
"saveconfig from %s rejected due to nomodify restriction",
stoa(&rbufp->recv_srcadr));
sys_restricted++;
return;
}
#ifdef SAVECONFIG
if (NULL == saveconfigdir) {
ctl_printf("%s", "saveconfig prohibited, no saveconfigdir configured");
ctl_flushpkt(0);
NLOG(NLOG_SYSINFO)
msyslog(LOG_NOTICE,
"saveconfig from %s rejected, no saveconfigdir",
stoa(&rbufp->recv_srcadr));
return;
}
/* The length checking stuff gets serious. Do not assume a NUL
* byte can be found, but if so, use it to calculate the needed
* buffer size. If the available buffer is too short, bail out;
* likewise if there is no file spec. (The latter will not
* happen when using NTPQ, but there are other ways to craft a
* network packet!)
*/
reqlen = (size_t)(reqend - reqpt);
if (0 != reqlen) {
char * nulpos = (char*)memchr(reqpt, 0, reqlen);
if (NULL != nulpos)
reqlen = (size_t)(nulpos - reqpt);
}
if (0 == reqlen)
return;
if (reqlen >= sizeof(filespec)) {
ctl_printf("saveconfig exceeded maximum raw name length (%u)",
(u_int)sizeof(filespec));
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"saveconfig exceeded maximum raw name length from %s",
stoa(&rbufp->recv_srcadr));
return;
}
/* copy data directly as we exactly know the size */
memcpy(filespec, reqpt, reqlen);
filespec[reqlen] = '\0';
/*
* allow timestamping of the saved config filename with
* strftime() format such as:
* ntpq -c "saveconfig ntp-%Y%m%d-%H%M%S.conf"
* XXX: Nice feature, but not too safe.
* YYY: The check for permitted characters in file names should
* weed out the worst. Let's hope 'strftime()' does not
* develop pathological problems.
*/
time(&now);
if (0 == strftime(filename, sizeof(filename), filespec,
localtime(&now)))
{
/*
* If we arrive here, 'strftime()' balked; most likely
* the buffer was too short. (Or it encounterd an empty
* format, or just a format that expands to an empty
* string.) We try to use the original name, though this
* is very likely to fail later if there are format
* specs in the string. Note that truncation cannot
* happen here as long as both buffers have the same
* size!
*/
strlcpy(filename, filespec, sizeof(filename));
}
/*
* Check the file name for sanity. This might/will rule out file
* names that would be legal but problematic, and it blocks
* directory traversal.
*/
if (!is_safe_filename(filename)) {
ctl_printf("saveconfig rejects unsafe file name '%s'",
filename);
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"saveconfig rejects unsafe file name from %s",
stoa(&rbufp->recv_srcadr));
return;
}
/*
* XXX: This next test may not be needed with is_safe_filename()
*/
/* block directory/drive traversal */
/* TALOS-CAN-0062: block directory traversal for VMS, too */
if (NULL != strpbrk(filename, illegal_in_filename)) {
snprintf(reply, sizeof(reply),
"saveconfig does not allow directory in filename");
ctl_putdata(reply, strlen(reply), 0);
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"saveconfig rejects unsafe file name from %s",
stoa(&rbufp->recv_srcadr));
return;
}
/* concatenation of directory and path can cause another
* truncation...
*/
prc = snprintf(fullpath, sizeof(fullpath), "%s%s",
saveconfigdir, filename);
if (prc < 0 || (size_t)prc >= sizeof(fullpath)) {
ctl_printf("saveconfig exceeded maximum path length (%u)",
(u_int)sizeof(fullpath));
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"saveconfig exceeded maximum path length from %s",
stoa(&rbufp->recv_srcadr));
return;
}
fd = open(fullpath, openmode, S_IRUSR | S_IWUSR);
if (-1 == fd)
fptr = NULL;
else
fptr = fdopen(fd, "w");
if (NULL == fptr || -1 == dump_all_config_trees(fptr, 1)) {
ctl_printf("Unable to save configuration to file '%s': %s",
filename, strerror(errno));
msyslog(LOG_ERR,
"saveconfig %s from %s failed", filename,
stoa(&rbufp->recv_srcadr));
} else {
ctl_printf("Configuration saved to '%s'", filename);
msyslog(LOG_NOTICE,
"Configuration saved to '%s' (requested by %s)",
fullpath, stoa(&rbufp->recv_srcadr));
/*
* save the output filename in system variable
* savedconfig, retrieved with:
* ntpq -c "rv 0 savedconfig"
* Note: the way 'savedconfig' is defined makes overflow
* checks unnecessary here.
*/
snprintf(savedconfig, sizeof(savedconfig), "%s%s",
savedconfig_eq, filename);
set_sys_var(savedconfig, strlen(savedconfig) + 1, RO);
}
if (NULL != fptr)
fclose(fptr);
#else /* !SAVECONFIG follows */
ctl_printf("%s",
"saveconfig unavailable, configured with --disable-saveconfig");
#endif
ctl_flushpkt(0);
}
/*
* process_control - process an incoming control message
*/
void
process_control(
struct recvbuf *rbufp,
int restrict_mask
)
{
struct ntp_control *pkt;
int req_count;
int req_data;
const struct ctl_proc *cc;
keyid_t *pkid;
int properlen;
size_t maclen;
DPRINTF(3, ("in process_control()\n"));
/*
* Save the addresses for error responses
*/
numctlreq++;
rmt_addr = &rbufp->recv_srcadr;
lcl_inter = rbufp->dstadr;
pkt = (struct ntp_control *)&rbufp->recv_pkt;
/*
* If the length is less than required for the header,
* ignore it.
*/
if (rbufp->recv_length < (int)CTL_HEADER_LEN) {
DPRINTF(1, ("Short control packet\n"));
numctltooshort++;
return;
}
/*
* If this packet is a response or a fragment, ignore it.
*/
if ( (CTL_RESPONSE | CTL_MORE | CTL_ERROR) & pkt->r_m_e_op
|| pkt->offset != 0) {
DPRINTF(1, ("invalid format in control packet\n"));
if (CTL_RESPONSE & pkt->r_m_e_op)
numctlinputresp++;
if (CTL_MORE & pkt->r_m_e_op)
numctlinputfrag++;
if (CTL_ERROR & pkt->r_m_e_op)
numctlinputerr++;
if (pkt->offset != 0)
numctlbadoffset++;
return;
}
res_version = PKT_VERSION(pkt->li_vn_mode);
if (res_version > NTP_VERSION || res_version < NTP_OLDVERSION) {
DPRINTF(1, ("unknown version %d in control packet\n",
res_version));
numctlbadversion++;
return;
}
/*
* Pull enough data from the packet to make intelligent
* responses
*/
rpkt.li_vn_mode = PKT_LI_VN_MODE(sys_leap, res_version,
MODE_CONTROL);
res_opcode = pkt->r_m_e_op;
rpkt.sequence = pkt->sequence;
rpkt.associd = pkt->associd;
rpkt.status = 0;
res_frags = 1;
res_offset = 0;
res_associd = htons(pkt->associd);
res_async = FALSE;
res_authenticate = FALSE;
res_keyid = 0;
res_authokay = FALSE;
req_count = (int)ntohs(pkt->count);
datanotbinflag = FALSE;
datalinelen = 0;
datasent = 0;
datapt = rpkt.u.data;
dataend = &rpkt.u.data[CTL_MAX_DATA_LEN];
if ((rbufp->recv_length & 0x3) != 0)
DPRINTF(3, ("Control packet length %d unrounded\n",
rbufp->recv_length));
/*
* We're set up now. Make sure we've got at least enough
* incoming data space to match the count.
*/
req_data = rbufp->recv_length - CTL_HEADER_LEN;
if (req_data < req_count || rbufp->recv_length & 0x3) {
ctl_error(CERR_BADFMT);
numctldatatooshort++;
return;
}
properlen = req_count + CTL_HEADER_LEN;
/* round up proper len to a 8 octet boundary */
properlen = (properlen + 7) & ~7;
maclen = rbufp->recv_length - properlen;
if ((rbufp->recv_length & 3) == 0 &&
maclen >= MIN_MAC_LEN && maclen <= MAX_MAC_LEN &&
sys_authenticate) {
res_authenticate = TRUE;
pkid = (void *)((char *)pkt + properlen);
res_keyid = ntohl(*pkid);
DPRINTF(3, ("recv_len %d, properlen %d, wants auth with keyid %08x, MAC length=%zu\n",
rbufp->recv_length, properlen, res_keyid,
maclen));
if (!authistrustedip(res_keyid, &rbufp->recv_srcadr))
DPRINTF(3, ("invalid keyid %08x\n", res_keyid));
else if (authdecrypt(res_keyid, (u_int32 *)pkt,
rbufp->recv_length - maclen,
maclen)) {
res_authokay = TRUE;
DPRINTF(3, ("authenticated okay\n"));
} else {
res_keyid = 0;
DPRINTF(3, ("authentication failed\n"));
}
}
/*
* Set up translate pointers
*/
reqpt = (char *)pkt->u.data;
reqend = reqpt + req_count;
/*
* Look for the opcode processor
*/
for (cc = control_codes; cc->control_code != NO_REQUEST; cc++) {
if (cc->control_code == res_opcode) {
DPRINTF(3, ("opcode %d, found command handler\n",
res_opcode));
if (cc->flags == AUTH
&& (!res_authokay
|| res_keyid != ctl_auth_keyid)) {
ctl_error(CERR_PERMISSION);
return;
}
(cc->handler)(rbufp, restrict_mask);
return;
}
}
/*
* Can't find this one, return an error.
*/
numctlbadop++;
ctl_error(CERR_BADOP);
return;
}
/*
* ctlpeerstatus - return a status word for this peer
*/
u_short
ctlpeerstatus(
register struct peer *p
)
{
u_short status;
status = p->status;
if (FLAG_CONFIG & p->flags)
status |= CTL_PST_CONFIG;
if (p->keyid)
status |= CTL_PST_AUTHENABLE;
if (FLAG_AUTHENTIC & p->flags)
status |= CTL_PST_AUTHENTIC;
if (p->reach)
status |= CTL_PST_REACH;
if (MDF_TXONLY_MASK & p->cast_flags)
status |= CTL_PST_BCAST;
return CTL_PEER_STATUS(status, p->num_events, p->last_event);
}
/*
* ctlclkstatus - return a status word for this clock
*/
#ifdef REFCLOCK
static u_short
ctlclkstatus(
struct refclockstat *pcs
)
{
return CTL_PEER_STATUS(0, pcs->lastevent, pcs->currentstatus);
}
#endif
/*
* ctlsysstatus - return the system status word
*/
u_short
ctlsysstatus(void)
{
register u_char this_clock;
this_clock = CTL_SST_TS_UNSPEC;
#ifdef REFCLOCK
if (sys_peer != NULL) {
if (CTL_SST_TS_UNSPEC != sys_peer->sstclktype)
this_clock = sys_peer->sstclktype;
else if (sys_peer->refclktype < COUNTOF(clocktypes))
this_clock = clocktypes[sys_peer->refclktype];
}
#else /* REFCLOCK */
if (sys_peer != 0)
this_clock = CTL_SST_TS_NTP;
#endif /* REFCLOCK */
return CTL_SYS_STATUS(sys_leap, this_clock, ctl_sys_num_events,
ctl_sys_last_event);
}
/*
* ctl_flushpkt - write out the current packet and prepare
* another if necessary.
*/
static void
ctl_flushpkt(
u_char more
)
{
size_t i;
size_t dlen;
size_t sendlen;
size_t maclen;
size_t totlen;
keyid_t keyid;
dlen = datapt - rpkt.u.data;
if (!more && datanotbinflag && dlen + 2 < CTL_MAX_DATA_LEN) {
/*
* Big hack, output a trailing \r\n
*/
*datapt++ = '\r';
*datapt++ = '\n';
dlen += 2;
}
sendlen = dlen + CTL_HEADER_LEN;
/*
* Pad to a multiple of 32 bits
*/
while (sendlen & 0x3) {
*datapt++ = '\0';
sendlen++;
}
/*
* Fill in the packet with the current info
*/
rpkt.r_m_e_op = CTL_RESPONSE | more |
(res_opcode & CTL_OP_MASK);
rpkt.count = htons((u_short)dlen);
rpkt.offset = htons((u_short)res_offset);
if (res_async) {
for (i = 0; i < COUNTOF(ctl_traps); i++) {
if (TRAP_INUSE & ctl_traps[i].tr_flags) {
rpkt.li_vn_mode =
PKT_LI_VN_MODE(
sys_leap,
ctl_traps[i].tr_version,
MODE_CONTROL);
rpkt.sequence =
htons(ctl_traps[i].tr_sequence);
sendpkt(&ctl_traps[i].tr_addr,
ctl_traps[i].tr_localaddr, -4,
(struct pkt *)&rpkt, sendlen);
if (!more)
ctl_traps[i].tr_sequence++;
numasyncmsgs++;
}
}
} else {
if (res_authenticate && sys_authenticate) {
totlen = sendlen;
/*
* If we are going to authenticate, then there
* is an additional requirement that the MAC
* begin on a 64 bit boundary.
*/
while (totlen & 7) {
*datapt++ = '\0';
totlen++;
}
keyid = htonl(res_keyid);
memcpy(datapt, &keyid, sizeof(keyid));
maclen = authencrypt(res_keyid,
(u_int32 *)&rpkt, totlen);
sendpkt(rmt_addr, lcl_inter, -5,
(struct pkt *)&rpkt, totlen + maclen);
} else {
sendpkt(rmt_addr, lcl_inter, -6,
(struct pkt *)&rpkt, sendlen);
}
if (more)
numctlfrags++;
else
numctlresponses++;
}
/*
* Set us up for another go around.
*/
res_frags++;
res_offset += dlen;
datapt = rpkt.u.data;
}
/* --------------------------------------------------------------------
* block transfer API -- stream string/data fragments into xmit buffer
* without additional copying
*/
/* buffer descriptor: address & size of fragment
* 'buf' may only be NULL when 'len' is zero!
*/
typedef struct {
const void *buf;
size_t len;
} CtlMemBufT;
/* put ctl data in a gather-style operation */
static void
ctl_putdata_ex(
const CtlMemBufT * argv,
size_t argc,
int/*BOOL*/ bin /* set to 1 when data is binary */
)
{
const char * src_ptr;
size_t src_len, cur_len, add_len, argi;
/* text / binary preprocessing, possibly create new linefeed */
if (bin) {
add_len = 0;
} else {
datanotbinflag = TRUE;
add_len = 3;
if (datasent) {
*datapt++ = ',';
datalinelen++;
/* sum up total length */
for (argi = 0, src_len = 0; argi < argc; ++argi)
src_len += argv[argi].len;
/* possibly start a new line, assume no size_t overflow */
if ((src_len + datalinelen + 1) >= MAXDATALINELEN) {
*datapt++ = '\r';
*datapt++ = '\n';
datalinelen = 0;
} else {
*datapt++ = ' ';
datalinelen++;
}
}
}
/* now stream out all buffers */
for (argi = 0; argi < argc; ++argi) {
src_ptr = argv[argi].buf;
src_len = argv[argi].len;
if ( ! (src_ptr && src_len))
continue;
cur_len = (size_t)(dataend - datapt);
while ((src_len + add_len) > cur_len) {
/* Not enough room in this one, flush it out. */
if (src_len < cur_len)
cur_len = src_len;
memcpy(datapt, src_ptr, cur_len);
datapt += cur_len;
datalinelen += cur_len;
src_ptr += cur_len;
src_len -= cur_len;
ctl_flushpkt(CTL_MORE);
cur_len = (size_t)(dataend - datapt);
}
memcpy(datapt, src_ptr, src_len);
datapt += src_len;
datalinelen += src_len;
datasent = TRUE;
}
}
/*
* ctl_putdata - write data into the packet, fragmenting and starting
* another if this one is full.
*/
static void
ctl_putdata(
const char *dp,
unsigned int dlen,
int bin /* set to 1 when data is binary */
)
{
CtlMemBufT args[1];
args[0].buf = dp;
args[0].len = dlen;
ctl_putdata_ex(args, 1, bin);
}
/*
* ctl_putstr - write a tagged string into the response packet
* in the form:
*
* tag="data"
*
* len is the data length excluding the NUL terminator,
* as in ctl_putstr("var", "value", strlen("value"));
*/
static void
ctl_putstr(
const char * tag,
const char * data,
size_t len
)
{
CtlMemBufT args[4];
args[0].buf = tag;
args[0].len = strlen(tag);
if (data && len) {
args[1].buf = "=\"";
args[1].len = 2;
args[2].buf = data;
args[2].len = len;
args[3].buf = "\"";
args[3].len = 1;
ctl_putdata_ex(args, 4, FALSE);
} else {
args[1].buf = "=\"\"";
args[1].len = 3;
ctl_putdata_ex(args, 2, FALSE);
}
}
/*
* ctl_putunqstr - write a tagged string into the response packet
* in the form:
*
* tag=data
*
* len is the data length excluding the NUL terminator.
* data must not contain a comma or whitespace.
*/
static void
ctl_putunqstr(
const char * tag,
const char * data,
size_t len
)
{
CtlMemBufT args[3];
args[0].buf = tag;
args[0].len = strlen(tag);
args[1].buf = "=";
args[1].len = 1;
if (data && len) {
args[2].buf = data;
args[2].len = len;
ctl_putdata_ex(args, 3, FALSE);
} else {
ctl_putdata_ex(args, 2, FALSE);
}
}
/*
* ctl_putdblf - write a tagged, signed double into the response packet
*/
static void
ctl_putdblf(
const char * tag,
int use_f,
int precision,
double d
)
{
char buffer[40];
int rc;
rc = snprintf(buffer, sizeof(buffer),
(use_f ? "%.*f" : "%.*g"),
precision, d);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_putuint - write a tagged unsigned integer into the response
*/
static void
ctl_putuint(
const char *tag,
u_long uval
)
{
char buffer[24]; /* needs to fit for 64 bits! */
int rc;
rc = snprintf(buffer, sizeof(buffer), "%lu", uval);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_putcal - write a decoded calendar data into the response.
* only used with AUTOKEY currently, so compiled conditional
*/
#ifdef AUTOKEY
static void
ctl_putcal(
const char *tag,
const struct calendar *pcal
)
{
char buffer[16];
int rc;
rc = snprintf(buffer, sizeof(buffer),
"%04d%02d%02d%02d%02d",
pcal->year, pcal->month, pcal->monthday,
pcal->hour, pcal->minute
);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
#endif
/*
* ctl_putfs - write a decoded filestamp into the response
*/
static void
ctl_putfs(
const char *tag,
tstamp_t uval
)
{
char buffer[16];
int rc;
time_t fstamp = (time_t)uval - JAN_1970;
struct tm *tm = gmtime(&fstamp);
if (NULL == tm)
return;
rc = snprintf(buffer, sizeof(buffer),
"%04d%02d%02d%02d%02d",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_puthex - write a tagged unsigned integer, in hex, into the
* response
*/
static void
ctl_puthex(
const char *tag,
u_long uval
)
{
char buffer[24]; /* must fit 64bit int! */
int rc;
rc = snprintf(buffer, sizeof(buffer), "0x%lx", uval);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_putint - write a tagged signed integer into the response
*/
static void
ctl_putint(
const char *tag,
long ival
)
{
char buffer[24]; /*must fit 64bit int */
int rc;
rc = snprintf(buffer, sizeof(buffer), "%ld", ival);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_putts - write a tagged timestamp, in hex, into the response
*/
static void
ctl_putts(
const char *tag,
l_fp *ts
)
{
char buffer[24];
int rc;
rc = snprintf(buffer, sizeof(buffer),
"0x%08lx.%08lx",
(u_long)ts->l_ui, (u_long)ts->l_uf);
INSIST(rc >= 0 && (size_t)rc < sizeof(buffer));
ctl_putunqstr(tag, buffer, rc);
}
/*
* ctl_putadr - write an IP address into the response
*/
static void
ctl_putadr(
const char *tag,
u_int32 addr32,
sockaddr_u *addr
)
{
const char *cq;
if (NULL == addr)
cq = numtoa(addr32);
else
cq = stoa(addr);
ctl_putunqstr(tag, cq, strlen(cq));
}
/*
* ctl_putrefid - send a u_int32 refid as printable text
*/
static void
ctl_putrefid(
const char * tag,
u_int32 refid
)
{
size_t nc;
union {
uint32_t w;
uint8_t b[sizeof(uint32_t)];
} bytes;
bytes.w = refid;
for (nc = 0; nc < sizeof(bytes.b) && bytes.b[nc]; ++nc)
if ( !isprint(bytes.b[nc])
|| isspace(bytes.b[nc])
|| bytes.b[nc] == ',' )
bytes.b[nc] = '.';
ctl_putunqstr(tag, (const char*)bytes.b, nc);
}
/*
* ctl_putarray - write a tagged eight element double array into the response
*/
static void
ctl_putarray(
const char *tag,
double *arr,
int start
)
{
char *cp, *ep;
char buffer[200];
int i, rc;
cp = buffer;
ep = buffer + sizeof(buffer);
i = start;
do {
if (i == 0)
i = NTP_SHIFT;
i--;
rc = snprintf(cp, (size_t)(ep - cp), " %.2f", arr[i] * 1e3);
INSIST(rc >= 0 && (size_t)rc < (size_t)(ep - cp));
cp += rc;
} while (i != start);
ctl_putunqstr(tag, buffer, (size_t)(cp - buffer));
}
/*
* ctl_printf - put a formatted string into the data buffer
*/
static void
ctl_printf(
const char * fmt,
...
)
{
static const char * ellipsis = "[...]";
va_list va;
char fmtbuf[128];
int rc;
va_start(va, fmt);
rc = vsnprintf(fmtbuf, sizeof(fmtbuf), fmt, va);
va_end(va);
if (rc < 0 || (size_t)rc >= sizeof(fmtbuf))
strcpy(fmtbuf + sizeof(fmtbuf) - strlen(ellipsis) - 1,
ellipsis);
ctl_putdata(fmtbuf, strlen(fmtbuf), 0);
}
/*
* ctl_putsys - output a system variable
*/
static void
ctl_putsys(
int varid
)
{
l_fp tmp;
char str[256];
u_int u;
double kb;
double dtemp;
const char *ss;
#ifdef AUTOKEY
struct cert_info *cp;
#endif /* AUTOKEY */
#ifdef KERNEL_PLL
static struct timex ntx;
static u_long ntp_adjtime_time;
/*
* CS_K_* variables depend on up-to-date output of ntp_adjtime()
*/
if (CS_KERN_FIRST <= varid && varid <= CS_KERN_LAST &&
current_time != ntp_adjtime_time) {
ZERO(ntx);
if (ntp_adjtime(&ntx) < 0)
msyslog(LOG_ERR, "ntp_adjtime() for mode 6 query failed: %m");
else
ntp_adjtime_time = current_time;
}
#endif /* KERNEL_PLL */
switch (varid) {
case CS_LEAP:
ctl_putuint(sys_var[CS_LEAP].text, sys_leap);
break;
case CS_STRATUM:
ctl_putuint(sys_var[CS_STRATUM].text, sys_stratum);
break;
case CS_PRECISION:
ctl_putint(sys_var[CS_PRECISION].text, sys_precision);
break;
case CS_ROOTDELAY:
ctl_putdbl(sys_var[CS_ROOTDELAY].text, sys_rootdelay *
1e3);
break;
case CS_ROOTDISPERSION:
ctl_putdbl(sys_var[CS_ROOTDISPERSION].text,
sys_rootdisp * 1e3);
break;
case CS_REFID:
if (REFID_ISTEXT(sys_stratum))
ctl_putrefid(sys_var[varid].text, sys_refid);
else
ctl_putadr(sys_var[varid].text, sys_refid, NULL);
break;
case CS_REFTIME:
ctl_putts(sys_var[CS_REFTIME].text, &sys_reftime);
break;
case CS_POLL:
ctl_putuint(sys_var[CS_POLL].text, sys_poll);
break;
case CS_PEERID:
if (sys_peer == NULL)
ctl_putuint(sys_var[CS_PEERID].text, 0);
else
ctl_putuint(sys_var[CS_PEERID].text,
sys_peer->associd);
break;
case CS_PEERADR:
if (sys_peer != NULL && sys_peer->dstadr != NULL)
ss = sptoa(&sys_peer->srcadr);
else
ss = "0.0.0.0:0";
ctl_putunqstr(sys_var[CS_PEERADR].text, ss, strlen(ss));
break;
case CS_PEERMODE:
u = (sys_peer != NULL)
? sys_peer->hmode
: MODE_UNSPEC;
ctl_putuint(sys_var[CS_PEERMODE].text, u);
break;
case CS_OFFSET:
ctl_putdbl6(sys_var[CS_OFFSET].text, last_offset * 1e3);
break;
case CS_DRIFT:
ctl_putdbl(sys_var[CS_DRIFT].text, drift_comp * 1e6);
break;
case CS_JITTER:
ctl_putdbl6(sys_var[CS_JITTER].text, sys_jitter * 1e3);
break;
case CS_ERROR:
ctl_putdbl(sys_var[CS_ERROR].text, clock_jitter * 1e3);
break;
case CS_CLOCK:
get_systime(&tmp);
ctl_putts(sys_var[CS_CLOCK].text, &tmp);
break;
case CS_PROCESSOR:
#ifndef HAVE_UNAME
ctl_putstr(sys_var[CS_PROCESSOR].text, str_processor,
sizeof(str_processor) - 1);
#else
ctl_putstr(sys_var[CS_PROCESSOR].text,
utsnamebuf.machine, strlen(utsnamebuf.machine));
#endif /* HAVE_UNAME */
break;
case CS_SYSTEM:
#ifndef HAVE_UNAME
ctl_putstr(sys_var[CS_SYSTEM].text, str_system,
sizeof(str_system) - 1);
#else
snprintf(str, sizeof(str), "%s/%s", utsnamebuf.sysname,
utsnamebuf.release);
ctl_putstr(sys_var[CS_SYSTEM].text, str, strlen(str));
#endif /* HAVE_UNAME */
break;
case CS_VERSION:
ctl_putstr(sys_var[CS_VERSION].text, Version,
strlen(Version));
break;
case CS_STABIL:
ctl_putdbl(sys_var[CS_STABIL].text, clock_stability *
1e6);
break;
case CS_VARLIST:
{
char buf[CTL_MAX_DATA_LEN];
//buffPointer, firstElementPointer, buffEndPointer
char *buffp, *buffend;
int firstVarName;
const char *ss1;
int len;
const struct ctl_var *k;
buffp = buf;
buffend = buf + sizeof(buf);
if (strlen(sys_var[CS_VARLIST].text) > (sizeof(buf) - 4))
break; /* really long var name */
snprintf(buffp, sizeof(buf), "%s=\"",sys_var[CS_VARLIST].text);
buffp += strlen(buffp);
firstVarName = TRUE;
for (k = sys_var; !(k->flags & EOV); k++) {
if (k->flags & PADDING)
continue;
len = strlen(k->text);
if (len + 1 >= buffend - buffp)
break;
if (!firstVarName)
*buffp++ = ',';
else
firstVarName = FALSE;
memcpy(buffp, k->text, len);
buffp += len;
}
for (k = ext_sys_var; k && !(k->flags & EOV); k++) {
if (k->flags & PADDING)
continue;
if (NULL == k->text)
continue;
ss1 = strchr(k->text, '=');
if (NULL == ss1)
len = strlen(k->text);
else
len = ss1 - k->text;
if (len + 1 >= buffend - buffp)
break;
if (firstVarName) {
*buffp++ = ',';
firstVarName = FALSE;
}
memcpy(buffp, k->text,(unsigned)len);
buffp += len;
}
if (2 >= buffend - buffp)
break;
*buffp++ = '"';
*buffp = '\0';
ctl_putdata(buf, (unsigned)( buffp - buf ), 0);
break;
}
case CS_TAI:
if (sys_tai > 0)
ctl_putuint(sys_var[CS_TAI].text, sys_tai);
break;
case CS_LEAPTAB:
{
leap_signature_t lsig;
leapsec_getsig(&lsig);
if (lsig.ttime > 0)
ctl_putfs(sys_var[CS_LEAPTAB].text, lsig.ttime);
break;
}
case CS_LEAPEND:
{
leap_signature_t lsig;
leapsec_getsig(&lsig);
if (lsig.etime > 0)
ctl_putfs(sys_var[CS_LEAPEND].text, lsig.etime);
break;
}
#ifdef LEAP_SMEAR
case CS_LEAPSMEARINTV:
if (leap_smear_intv > 0)
ctl_putuint(sys_var[CS_LEAPSMEARINTV].text, leap_smear_intv);
break;
case CS_LEAPSMEAROFFS:
if (leap_smear_intv > 0)
ctl_putdbl(sys_var[CS_LEAPSMEAROFFS].text,
leap_smear.doffset * 1e3);
break;
#endif /* LEAP_SMEAR */
case CS_RATE:
ctl_putuint(sys_var[CS_RATE].text, ntp_minpoll);
break;
case CS_MRU_ENABLED:
ctl_puthex(sys_var[varid].text, mon_enabled);
break;
case CS_MRU_DEPTH:
ctl_putuint(sys_var[varid].text, mru_entries);
break;
case CS_MRU_MEM:
kb = mru_entries * (sizeof(mon_entry) / 1024.);
u = (u_int)kb;
if (kb - u >= 0.5)
u++;
ctl_putuint(sys_var[varid].text, u);
break;
case CS_MRU_DEEPEST:
ctl_putuint(sys_var[varid].text, mru_peakentries);
break;
case CS_MRU_MINDEPTH:
ctl_putuint(sys_var[varid].text, mru_mindepth);
break;
case CS_MRU_MAXAGE:
ctl_putint(sys_var[varid].text, mru_maxage);
break;
case CS_MRU_MAXDEPTH:
ctl_putuint(sys_var[varid].text, mru_maxdepth);
break;
case CS_MRU_MAXMEM:
kb = mru_maxdepth * (sizeof(mon_entry) / 1024.);
u = (u_int)kb;
if (kb - u >= 0.5)
u++;
ctl_putuint(sys_var[varid].text, u);
break;
case CS_SS_UPTIME:
ctl_putuint(sys_var[varid].text, current_time);
break;
case CS_SS_RESET:
ctl_putuint(sys_var[varid].text,
current_time - sys_stattime);
break;
case CS_SS_RECEIVED:
ctl_putuint(sys_var[varid].text, sys_received);
break;
case CS_SS_THISVER:
ctl_putuint(sys_var[varid].text, sys_newversion);
break;
case CS_SS_OLDVER:
ctl_putuint(sys_var[varid].text, sys_oldversion);
break;
case CS_SS_BADFORMAT:
ctl_putuint(sys_var[varid].text, sys_badlength);
break;
case CS_SS_BADAUTH:
ctl_putuint(sys_var[varid].text, sys_badauth);
break;
case CS_SS_DECLINED:
ctl_putuint(sys_var[varid].text, sys_declined);
break;
case CS_SS_RESTRICTED:
ctl_putuint(sys_var[varid].text, sys_restricted);
break;
case CS_SS_LIMITED:
ctl_putuint(sys_var[varid].text, sys_limitrejected);
break;
case CS_SS_LAMPORT:
ctl_putuint(sys_var[varid].text, sys_lamport);
break;
case CS_SS_TSROUNDING:
ctl_putuint(sys_var[varid].text, sys_tsrounding);
break;
case CS_SS_KODSENT:
ctl_putuint(sys_var[varid].text, sys_kodsent);
break;
case CS_SS_PROCESSED:
ctl_putuint(sys_var[varid].text, sys_processed);
break;
case CS_BCASTDELAY:
ctl_putdbl(sys_var[varid].text, sys_bdelay * 1e3);
break;
case CS_AUTHDELAY:
LFPTOD(&sys_authdelay, dtemp);
ctl_putdbl(sys_var[varid].text, dtemp * 1e3);
break;
case CS_AUTHKEYS:
ctl_putuint(sys_var[varid].text, authnumkeys);
break;
case CS_AUTHFREEK:
ctl_putuint(sys_var[varid].text, authnumfreekeys);
break;
case CS_AUTHKLOOKUPS:
ctl_putuint(sys_var[varid].text, authkeylookups);
break;
case CS_AUTHKNOTFOUND:
ctl_putuint(sys_var[varid].text, authkeynotfound);
break;
case CS_AUTHKUNCACHED:
ctl_putuint(sys_var[varid].text, authkeyuncached);
break;
case CS_AUTHKEXPIRED:
ctl_putuint(sys_var[varid].text, authkeyexpired);
break;
case CS_AUTHENCRYPTS:
ctl_putuint(sys_var[varid].text, authencryptions);
break;
case CS_AUTHDECRYPTS:
ctl_putuint(sys_var[varid].text, authdecryptions);
break;
case CS_AUTHRESET:
ctl_putuint(sys_var[varid].text,
current_time - auth_timereset);
break;
/*
* CTL_IF_KERNLOOP() puts a zero if the kernel loop is
* unavailable, otherwise calls putfunc with args.
*/
#ifndef KERNEL_PLL
# define CTL_IF_KERNLOOP(putfunc, args) \
ctl_putint(sys_var[varid].text, 0)
#else
# define CTL_IF_KERNLOOP(putfunc, args) \
putfunc args
#endif
/*
* CTL_IF_KERNPPS() puts a zero if either the kernel
* loop is unavailable, or kernel hard PPS is not
* active, otherwise calls putfunc with args.
*/
#ifndef KERNEL_PLL
# define CTL_IF_KERNPPS(putfunc, args) \
ctl_putint(sys_var[varid].text, 0)
#else
# define CTL_IF_KERNPPS(putfunc, args) \
if (0 == ntx.shift) \
ctl_putint(sys_var[varid].text, 0); \
else \
putfunc args /* no trailing ; */
#endif
case CS_K_OFFSET:
CTL_IF_KERNLOOP(
ctl_putdblf,
(sys_var[varid].text, 0, -1,
1000 * dbl_from_var_long(ntx.offset, ntx.status))
);
break;
case CS_K_FREQ:
CTL_IF_KERNLOOP(
ctl_putsfp,
(sys_var[varid].text, ntx.freq)
);
break;
case CS_K_MAXERR:
CTL_IF_KERNLOOP(
ctl_putdblf,
(sys_var[varid].text, 0, 6,
1000 * dbl_from_usec_long(ntx.maxerror))
);
break;
case CS_K_ESTERR:
CTL_IF_KERNLOOP(
ctl_putdblf,
(sys_var[varid].text, 0, 6,
1000 * dbl_from_usec_long(ntx.esterror))
);
break;
case CS_K_STFLAGS:
#ifndef KERNEL_PLL
ss = "";
#else
ss = k_st_flags(ntx.status);
#endif
ctl_putstr(sys_var[varid].text, ss, strlen(ss));
break;
case CS_K_TIMECONST:
CTL_IF_KERNLOOP(
ctl_putint,
(sys_var[varid].text, ntx.constant)
);
break;
case CS_K_PRECISION:
CTL_IF_KERNLOOP(
ctl_putdblf,
(sys_var[varid].text, 0, 6,
1000 * dbl_from_var_long(ntx.precision, ntx.status))
);
break;
case CS_K_FREQTOL:
CTL_IF_KERNLOOP(
ctl_putsfp,
(sys_var[varid].text, ntx.tolerance)
);
break;
case CS_K_PPS_FREQ:
CTL_IF_KERNPPS(
ctl_putsfp,
(sys_var[varid].text, ntx.ppsfreq)
);
break;
case CS_K_PPS_STABIL:
CTL_IF_KERNPPS(
ctl_putsfp,
(sys_var[varid].text, ntx.stabil)
);
break;
case CS_K_PPS_JITTER:
CTL_IF_KERNPPS(
ctl_putdbl,
(sys_var[varid].text,
1000 * dbl_from_var_long(ntx.jitter, ntx.status))
);
break;
case CS_K_PPS_CALIBDUR:
CTL_IF_KERNPPS(
ctl_putint,
(sys_var[varid].text, 1 << ntx.shift)
);
break;
case CS_K_PPS_CALIBS:
CTL_IF_KERNPPS(
ctl_putint,
(sys_var[varid].text, ntx.calcnt)
);
break;
case CS_K_PPS_CALIBERRS:
CTL_IF_KERNPPS(
ctl_putint,
(sys_var[varid].text, ntx.errcnt)
);
break;
case CS_K_PPS_JITEXC:
CTL_IF_KERNPPS(
ctl_putint,
(sys_var[varid].text, ntx.jitcnt)
);
break;
case CS_K_PPS_STBEXC:
CTL_IF_KERNPPS(
ctl_putint,
(sys_var[varid].text, ntx.stbcnt)
);
break;
case CS_IOSTATS_RESET:
ctl_putuint(sys_var[varid].text,
current_time - io_timereset);
break;
case CS_TOTAL_RBUF:
ctl_putuint(sys_var[varid].text, total_recvbuffs());
break;
case CS_FREE_RBUF:
ctl_putuint(sys_var[varid].text, free_recvbuffs());
break;
case CS_USED_RBUF:
ctl_putuint(sys_var[varid].text, full_recvbuffs());
break;
case CS_RBUF_LOWATER:
ctl_putuint(sys_var[varid].text, lowater_additions());
break;
case CS_IO_DROPPED:
ctl_putuint(sys_var[varid].text, packets_dropped);
break;
case CS_IO_IGNORED:
ctl_putuint(sys_var[varid].text, packets_ignored);
break;
case CS_IO_RECEIVED:
ctl_putuint(sys_var[varid].text, packets_received);
break;
case CS_IO_SENT:
ctl_putuint(sys_var[varid].text, packets_sent);
break;
case CS_IO_SENDFAILED:
ctl_putuint(sys_var[varid].text, packets_notsent);
break;
case CS_IO_WAKEUPS:
ctl_putuint(sys_var[varid].text, handler_calls);
break;
case CS_IO_GOODWAKEUPS:
ctl_putuint(sys_var[varid].text, handler_pkts);
break;
case CS_TIMERSTATS_RESET:
ctl_putuint(sys_var[varid].text,
current_time - timer_timereset);
break;
case CS_TIMER_OVERRUNS:
ctl_putuint(sys_var[varid].text, alarm_overflow);
break;
case CS_TIMER_XMTS:
ctl_putuint(sys_var[varid].text, timer_xmtcalls);
break;
case CS_FUZZ:
ctl_putdbl(sys_var[varid].text, sys_fuzz * 1e3);
break;
case CS_WANDER_THRESH:
ctl_putdbl(sys_var[varid].text, wander_threshold * 1e6);
break;
#ifdef AUTOKEY
case CS_FLAGS:
if (crypto_flags)
ctl_puthex(sys_var[CS_FLAGS].text,
crypto_flags);
break;
case CS_DIGEST:
if (crypto_flags) {
strlcpy(str, OBJ_nid2ln(crypto_nid),
COUNTOF(str));
ctl_putstr(sys_var[CS_DIGEST].text, str,
strlen(str));
}
break;
case CS_SIGNATURE:
if (crypto_flags) {
const EVP_MD *dp;
dp = EVP_get_digestbynid(crypto_flags >> 16);
strlcpy(str, OBJ_nid2ln(EVP_MD_pkey_type(dp)),
COUNTOF(str));
ctl_putstr(sys_var[CS_SIGNATURE].text, str,
strlen(str));
}
break;
case CS_HOST:
if (hostval.ptr != NULL)
ctl_putstr(sys_var[CS_HOST].text, hostval.ptr,
strlen(hostval.ptr));
break;
case CS_IDENT:
if (sys_ident != NULL)
ctl_putstr(sys_var[CS_IDENT].text, sys_ident,
strlen(sys_ident));
break;
case CS_CERTIF:
for (cp = cinfo; cp != NULL; cp = cp->link) {
snprintf(str, sizeof(str), "%s %s 0x%x",
cp->subject, cp->issuer, cp->flags);
ctl_putstr(sys_var[CS_CERTIF].text, str,
strlen(str));
ctl_putcal(sys_var[CS_REVTIME].text, &(cp->last));
}
break;
case CS_PUBLIC:
if (hostval.tstamp != 0)
ctl_putfs(sys_var[CS_PUBLIC].text,
ntohl(hostval.tstamp));
break;
#endif /* AUTOKEY */
default:
break;
}
}
/*
* ctl_putpeer - output a peer variable
*/
static void
ctl_putpeer(
int id,
struct peer *p
)
{
char buf[CTL_MAX_DATA_LEN];
char *s;
char *t;
char *be;
int i;
const struct ctl_var *k;
#ifdef AUTOKEY
struct autokey *ap;
const EVP_MD *dp;
const char *str;
#endif /* AUTOKEY */
switch (id) {
case CP_CONFIG:
ctl_putuint(peer_var[id].text,
!(FLAG_PREEMPT & p->flags));
break;
case CP_AUTHENABLE:
ctl_putuint(peer_var[id].text, !(p->keyid));
break;
case CP_AUTHENTIC:
ctl_putuint(peer_var[id].text,
!!(FLAG_AUTHENTIC & p->flags));
break;
case CP_SRCADR:
ctl_putadr(peer_var[id].text, 0, &p->srcadr);
break;
case CP_SRCPORT:
ctl_putuint(peer_var[id].text, SRCPORT(&p->srcadr));
break;
case CP_SRCHOST:
if (p->hostname != NULL)
ctl_putstr(peer_var[id].text, p->hostname,
strlen(p->hostname));
break;
case CP_DSTADR:
ctl_putadr(peer_var[id].text, 0,
(p->dstadr != NULL)
? &p->dstadr->sin
: NULL);
break;
case CP_DSTPORT:
ctl_putuint(peer_var[id].text,
(p->dstadr != NULL)
? SRCPORT(&p->dstadr->sin)
: 0);
break;
case CP_IN:
if (p->r21 > 0.)
ctl_putdbl(peer_var[id].text, p->r21 / 1e3);
break;
case CP_OUT:
if (p->r34 > 0.)
ctl_putdbl(peer_var[id].text, p->r34 / 1e3);
break;
case CP_RATE:
ctl_putuint(peer_var[id].text, p->throttle);
break;
case CP_LEAP:
ctl_putuint(peer_var[id].text, p->leap);
break;
case CP_HMODE:
ctl_putuint(peer_var[id].text, p->hmode);
break;
case CP_STRATUM:
ctl_putuint(peer_var[id].text, p->stratum);
break;
case CP_PPOLL:
ctl_putuint(peer_var[id].text, p->ppoll);
break;
case CP_HPOLL:
ctl_putuint(peer_var[id].text, p->hpoll);
break;
case CP_PRECISION:
ctl_putint(peer_var[id].text, p->precision);
break;
case CP_ROOTDELAY:
ctl_putdbl(peer_var[id].text, p->rootdelay * 1e3);
break;
case CP_ROOTDISPERSION:
ctl_putdbl(peer_var[id].text, p->rootdisp * 1e3);
break;
case CP_REFID:
#ifdef REFCLOCK
if (p->flags & FLAG_REFCLOCK) {
ctl_putrefid(peer_var[id].text, p->refid);
break;
}
#endif
if (REFID_ISTEXT(p->stratum))
ctl_putrefid(peer_var[id].text, p->refid);
else
ctl_putadr(peer_var[id].text, p->refid, NULL);
break;
case CP_REFTIME:
ctl_putts(peer_var[id].text, &p->reftime);
break;
case CP_ORG:
ctl_putts(peer_var[id].text, &p->aorg);
break;
case CP_REC:
ctl_putts(peer_var[id].text, &p->dst);
break;
case CP_XMT:
if (p->xleave)
ctl_putdbl(peer_var[id].text, p->xleave * 1e3);
break;
case CP_BIAS:
if (p->bias != 0.)
ctl_putdbl(peer_var[id].text, p->bias * 1e3);
break;
case CP_REACH:
ctl_puthex(peer_var[id].text, p->reach);
break;
case CP_FLASH:
ctl_puthex(peer_var[id].text, p->flash);
break;
case CP_TTL:
#ifdef REFCLOCK
if (p->flags & FLAG_REFCLOCK) {
ctl_putuint(peer_var[id].text, p->ttl);
break;
}
#endif
if (p->ttl > 0 && p->ttl < COUNTOF(sys_ttl))
ctl_putint(peer_var[id].text,
sys_ttl[p->ttl]);
break;
case CP_UNREACH:
ctl_putuint(peer_var[id].text, p->unreach);
break;
case CP_TIMER:
ctl_putuint(peer_var[id].text,
p->nextdate - current_time);
break;
case CP_DELAY:
ctl_putdbl(peer_var[id].text, p->delay * 1e3);
break;
case CP_OFFSET:
ctl_putdbl(peer_var[id].text, p->offset * 1e3);
break;
case CP_JITTER:
ctl_putdbl(peer_var[id].text, p->jitter * 1e3);
break;
case CP_DISPERSION:
ctl_putdbl(peer_var[id].text, p->disp * 1e3);
break;
case CP_KEYID:
if (p->keyid > NTP_MAXKEY)
ctl_puthex(peer_var[id].text, p->keyid);
else
ctl_putuint(peer_var[id].text, p->keyid);
break;
case CP_FILTDELAY:
ctl_putarray(peer_var[id].text, p->filter_delay,
p->filter_nextpt);
break;
case CP_FILTOFFSET:
ctl_putarray(peer_var[id].text, p->filter_offset,
p->filter_nextpt);
break;
case CP_FILTERROR:
ctl_putarray(peer_var[id].text, p->filter_disp,
p->filter_nextpt);
break;
case CP_PMODE:
ctl_putuint(peer_var[id].text, p->pmode);
break;
case CP_RECEIVED:
ctl_putuint(peer_var[id].text, p->received);
break;
case CP_SENT:
ctl_putuint(peer_var[id].text, p->sent);
break;
case CP_VARLIST:
s = buf;
be = buf + sizeof(buf);
if (strlen(peer_var[id].text) + 4 > sizeof(buf))
break; /* really long var name */
snprintf(s, sizeof(buf), "%s=\"", peer_var[id].text);
s += strlen(s);
t = s;
for (k = peer_var; !(EOV & k->flags); k++) {
if (PADDING & k->flags)
continue;
i = strlen(k->text);
if (s + i + 1 >= be)
break;
if (s != t)
*s++ = ',';
memcpy(s, k->text, i);
s += i;
}
if (s + 2 < be) {
*s++ = '"';
*s = '\0';
ctl_putdata(buf, (u_int)(s - buf), 0);
}
break;
case CP_TIMEREC:
ctl_putuint(peer_var[id].text,
current_time - p->timereceived);
break;
case CP_TIMEREACH:
ctl_putuint(peer_var[id].text,
current_time - p->timereachable);
break;
case CP_BADAUTH:
ctl_putuint(peer_var[id].text, p->badauth);
break;
case CP_BOGUSORG:
ctl_putuint(peer_var[id].text, p->bogusorg);
break;
case CP_OLDPKT:
ctl_putuint(peer_var[id].text, p->oldpkt);
break;
case CP_SELDISP:
ctl_putuint(peer_var[id].text, p->seldisptoolarge);
break;
case CP_SELBROKEN:
ctl_putuint(peer_var[id].text, p->selbroken);
break;
case CP_CANDIDATE:
ctl_putuint(peer_var[id].text, p->status);
break;
#ifdef AUTOKEY
case CP_FLAGS:
if (p->crypto)
ctl_puthex(peer_var[id].text, p->crypto);
break;
case CP_SIGNATURE:
if (p->crypto) {
dp = EVP_get_digestbynid(p->crypto >> 16);
str = OBJ_nid2ln(EVP_MD_pkey_type(dp));
ctl_putstr(peer_var[id].text, str, strlen(str));
}
break;
case CP_HOST:
if (p->subject != NULL)
ctl_putstr(peer_var[id].text, p->subject,
strlen(p->subject));
break;
case CP_VALID: /* not used */
break;
case CP_INITSEQ:
if (NULL == (ap = p->recval.ptr))
break;
ctl_putint(peer_var[CP_INITSEQ].text, ap->seq);
ctl_puthex(peer_var[CP_INITKEY].text, ap->key);
ctl_putfs(peer_var[CP_INITTSP].text,
ntohl(p->recval.tstamp));
break;
case CP_IDENT:
if (p->ident != NULL)
ctl_putstr(peer_var[id].text, p->ident,
strlen(p->ident));
break;
#endif /* AUTOKEY */
}
}
#ifdef REFCLOCK
/*
* ctl_putclock - output clock variables
*/
static void
ctl_putclock(
int id,
struct refclockstat *pcs,
int mustput
)
{
char buf[CTL_MAX_DATA_LEN];
char *s, *t, *be;
const char *ss;
int i;
const struct ctl_var *k;
switch (id) {
case CC_TYPE:
if (mustput || pcs->clockdesc == NULL
|| *(pcs->clockdesc) == '\0') {
ctl_putuint(clock_var[id].text, pcs->type);
}
break;
case CC_TIMECODE:
ctl_putstr(clock_var[id].text,
pcs->p_lastcode,
(unsigned)pcs->lencode);
break;
case CC_POLL:
ctl_putuint(clock_var[id].text, pcs->polls);
break;
case CC_NOREPLY:
ctl_putuint(clock_var[id].text,
pcs->noresponse);
break;
case CC_BADFORMAT:
ctl_putuint(clock_var[id].text,
pcs->badformat);
break;
case CC_BADDATA:
ctl_putuint(clock_var[id].text,
pcs->baddata);
break;
case CC_FUDGETIME1:
if (mustput || (pcs->haveflags & CLK_HAVETIME1))
ctl_putdbl(clock_var[id].text,
pcs->fudgetime1 * 1e3);
break;
case CC_FUDGETIME2:
if (mustput || (pcs->haveflags & CLK_HAVETIME2))
ctl_putdbl(clock_var[id].text,
pcs->fudgetime2 * 1e3);
break;
case CC_FUDGEVAL1:
if (mustput || (pcs->haveflags & CLK_HAVEVAL1))
ctl_putint(clock_var[id].text,
pcs->fudgeval1);
break;
case CC_FUDGEVAL2:
/* RefID of clocks are always text even if stratum is fudged */
if (mustput || (pcs->haveflags & CLK_HAVEVAL2))
ctl_putrefid(clock_var[id].text, pcs->fudgeval2);
break;
case CC_FLAGS:
ctl_putuint(clock_var[id].text, pcs->flags);
break;
case CC_DEVICE:
if (pcs->clockdesc == NULL ||
*(pcs->clockdesc) == '\0') {
if (mustput)
ctl_putstr(clock_var[id].text,
"", 0);
} else {
ctl_putstr(clock_var[id].text,
pcs->clockdesc,
strlen(pcs->clockdesc));
}
break;
case CC_VARLIST:
s = buf;
be = buf + sizeof(buf);
if (strlen(clock_var[CC_VARLIST].text) + 4 >
sizeof(buf))
break; /* really long var name */
snprintf(s, sizeof(buf), "%s=\"",
clock_var[CC_VARLIST].text);
s += strlen(s);
t = s;
for (k = clock_var; !(EOV & k->flags); k++) {
if (PADDING & k->flags)
continue;
i = strlen(k->text);
if (s + i + 1 >= be)
break;
if (s != t)
*s++ = ',';
memcpy(s, k->text, i);
s += i;
}
for (k = pcs->kv_list; k && !(EOV & k->flags); k++) {
if (PADDING & k->flags)
continue;
ss = k->text;
if (NULL == ss)
continue;
while (*ss && *ss != '=')
ss++;
i = ss - k->text;
if (s + i + 1 >= be)
break;
if (s != t)
*s++ = ',';
memcpy(s, k->text, (unsigned)i);
s += i;
*s = '\0';
}
if (s + 2 >= be)
break;
*s++ = '"';
*s = '\0';
ctl_putdata(buf, (unsigned)(s - buf), 0);
break;
case CC_FUDGEMINJIT:
if (mustput || (pcs->haveflags & CLK_HAVEMINJIT))
ctl_putdbl(clock_var[id].text,
pcs->fudgeminjitter * 1e3);
break;
default:
break;
}
}
#endif
/*
* ctl_getitem - get the next data item from the incoming packet
*/
static const struct ctl_var *
ctl_getitem(
const struct ctl_var *var_list,
char **data
)
{
/* [Bug 3008] First check the packet data sanity, then search
* the key. This improves the consistency of result values: If
* the result is NULL once, it will never be EOV again for this
* packet; If it's EOV, it will never be NULL again until the
* variable is found and processed in a given 'var_list'. (That
* is, a result is returned that is neither NULL nor EOV).
*/
static const struct ctl_var eol = { 0, EOV, NULL };
static char buf[128];
static u_long quiet_until;
const struct ctl_var *v;
char *cp;
char *tp;
/*
* Part One: Validate the packet state
*/
/* Delete leading commas and white space */
while (reqpt < reqend && (*reqpt == ',' ||
isspace((unsigned char)*reqpt)))
reqpt++;
if (reqpt >= reqend)
return NULL;
/* Scan the string in the packet until we hit comma or
* EoB. Register position of first '=' on the fly. */
for (tp = NULL, cp = reqpt; cp != reqend; ++cp) {
if (*cp == '=' && tp == NULL)
tp = cp;
if (*cp == ',')
break;
}
/* Process payload, if any. */
*data = NULL;
if (NULL != tp) {
/* eventually strip white space from argument. */
const char *plhead = tp + 1; /* skip the '=' */
const char *pltail = cp;
size_t plsize;
while (plhead != pltail && isspace((u_char)plhead[0]))
++plhead;
while (plhead != pltail && isspace((u_char)pltail[-1]))
--pltail;
/* check payload size, terminate packet on overflow */
plsize = (size_t)(pltail - plhead);
if (plsize >= sizeof(buf))
goto badpacket;
/* copy data, NUL terminate, and set result data ptr */
memcpy(buf, plhead, plsize);
buf[plsize] = '\0';
*data = buf;
} else {
/* no payload, current end --> current name termination */
tp = cp;
}
/* Part Two
*
* Now we're sure that the packet data itself is sane. Scan the
* list now. Make sure a NULL list is properly treated by
* returning a synthetic End-Of-Values record. We must not
* return NULL pointers after this point, or the behaviour would
* become inconsistent if called several times with different
* variable lists after an EoV was returned. (Such a behavior
* actually caused Bug 3008.)
*/
if (NULL == var_list)
return &eol;
for (v = var_list; !(EOV & v->flags); ++v)
if (!(PADDING & v->flags)) {
/* Check if the var name matches the buffer. The
* name is bracketed by [reqpt..tp] and not NUL
* terminated, and it contains no '=' char. The
* lookup value IS NUL-terminated but might
* include a '='... We have to look out for
* that!
*/
const char *sp1 = reqpt;
const char *sp2 = v->text;
/* [Bug 3412] do not compare past NUL byte in name */
while ( (sp1 != tp)
&& ('\0' != *sp2) && (*sp1 == *sp2)) {
++sp1;
++sp2;
}
if (sp1 == tp && (*sp2 == '\0' || *sp2 == '='))
break;
}
/* See if we have found a valid entry or not. If found, advance
* the request pointer for the next round; if not, clear the
* data pointer so we have no dangling garbage here.
*/
if (EOV & v->flags)
*data = NULL;
else
reqpt = cp + (cp != reqend);
return v;
badpacket:
/*TODO? somehow indicate this packet was bad, apart from syslog? */
numctlbadpkts++;
NLOG(NLOG_SYSEVENT)
if (quiet_until <= current_time) {
quiet_until = current_time + 300;
msyslog(LOG_WARNING,
"Possible 'ntpdx' exploit from %s#%u (possibly spoofed)",
stoa(rmt_addr), SRCPORT(rmt_addr));
}
reqpt = reqend; /* never again for this packet! */
return NULL;
}
/*
* control_unspec - response to an unspecified op-code
*/
/*ARGSUSED*/
static void
control_unspec(
struct recvbuf *rbufp,
int restrict_mask
)
{
struct peer *peer;
/*
* What is an appropriate response to an unspecified op-code?
* I return no errors and no data, unless a specified assocation
* doesn't exist.
*/
if (res_associd) {
peer = findpeerbyassoc(res_associd);
if (NULL == peer) {
ctl_error(CERR_BADASSOC);
return;
}
rpkt.status = htons(ctlpeerstatus(peer));
} else
rpkt.status = htons(ctlsysstatus());
ctl_flushpkt(0);
}
/*
* read_status - return either a list of associd's, or a particular
* peer's status.
*/
/*ARGSUSED*/
static void
read_status(
struct recvbuf *rbufp,
int restrict_mask
)
{
struct peer *peer;
const u_char *cp;
size_t n;
/* a_st holds association ID, status pairs alternating */
u_short a_st[CTL_MAX_DATA_LEN / sizeof(u_short)];
#ifdef DEBUG
if (debug > 2)
printf("read_status: ID %d\n", res_associd);
#endif
/*
* Two choices here. If the specified association ID is
* zero we return all known assocation ID's. Otherwise
* we return a bunch of stuff about the particular peer.
*/
if (res_associd) {
peer = findpeerbyassoc(res_associd);
if (NULL == peer) {
ctl_error(CERR_BADASSOC);
return;
}
rpkt.status = htons(ctlpeerstatus(peer));
if (res_authokay)
peer->num_events = 0;
/*
* For now, output everything we know about the
* peer. May be more selective later.
*/
for (cp = def_peer_var; *cp != 0; cp++)
ctl_putpeer((int)*cp, peer);
ctl_flushpkt(0);
return;
}
n = 0;
rpkt.status = htons(ctlsysstatus());
for (peer = peer_list; peer != NULL; peer = peer->p_link) {
a_st[n++] = htons(peer->associd);
a_st[n++] = htons(ctlpeerstatus(peer));
/* two entries each loop iteration, so n + 1 */
if (n + 1 >= COUNTOF(a_st)) {
ctl_putdata((void *)a_st, n * sizeof(a_st[0]),
1);
n = 0;
}
}
if (n)
ctl_putdata((void *)a_st, n * sizeof(a_st[0]), 1);
ctl_flushpkt(0);
}
/*
* read_peervars - half of read_variables() implementation
*/
static void
read_peervars(void)
{
const struct ctl_var *v;
struct peer *peer;
const u_char *cp;
size_t i;
char * valuep;
u_char wants[CP_MAXCODE + 1];
u_int gotvar;
/*
* Wants info for a particular peer. See if we know
* the guy.
*/
peer = findpeerbyassoc(res_associd);
if (NULL == peer) {
ctl_error(CERR_BADASSOC);
return;
}
rpkt.status = htons(ctlpeerstatus(peer));
if (res_authokay)
peer->num_events = 0;
ZERO(wants);
gotvar = 0;
while (NULL != (v = ctl_getitem(peer_var, &valuep))) {
if (v->flags & EOV) {
ctl_error(CERR_UNKNOWNVAR);
return;
}
INSIST(v->code < COUNTOF(wants));
wants[v->code] = 1;
gotvar = 1;
}
if (gotvar) {
for (i = 1; i < COUNTOF(wants); i++)
if (wants[i])
ctl_putpeer(i, peer);
} else
for (cp = def_peer_var; *cp != 0; cp++)
ctl_putpeer((int)*cp, peer);
ctl_flushpkt(0);
}
/*
* read_sysvars - half of read_variables() implementation
*/
static void
read_sysvars(void)
{
const struct ctl_var *v;
struct ctl_var *kv;
u_int n;
u_int gotvar;
const u_char *cs;
char * valuep;
const char * pch;
u_char *wants;
size_t wants_count;
/*
* Wants system variables. Figure out which he wants
* and give them to him.
*/
rpkt.status = htons(ctlsysstatus());
if (res_authokay)
ctl_sys_num_events = 0;
wants_count = CS_MAXCODE + 1 + count_var(ext_sys_var);
wants = emalloc_zero(wants_count);
gotvar = 0;
while (NULL != (v = ctl_getitem(sys_var, &valuep))) {
if (!(EOV & v->flags)) {
INSIST(v->code < wants_count);
wants[v->code] = 1;
gotvar = 1;
} else {
v = ctl_getitem(ext_sys_var, &valuep);
if (NULL == v) {
ctl_error(CERR_BADVALUE);
free(wants);
return;
}
if (EOV & v->flags) {
ctl_error(CERR_UNKNOWNVAR);
free(wants);
return;
}
n = v->code + CS_MAXCODE + 1;
INSIST(n < wants_count);
wants[n] = 1;
gotvar = 1;
}
}
if (gotvar) {
for (n = 1; n <= CS_MAXCODE; n++)
if (wants[n])
ctl_putsys(n);
for (n = 0; n + CS_MAXCODE + 1 < wants_count; n++)
if (wants[n + CS_MAXCODE + 1]) {
pch = ext_sys_var[n].text;
ctl_putdata(pch, strlen(pch), 0);
}
} else {
for (cs = def_sys_var; *cs != 0; cs++)
ctl_putsys((int)*cs);
for (kv = ext_sys_var; kv && !(EOV & kv->flags); kv++)
if (DEF & kv->flags)
ctl_putdata(kv->text, strlen(kv->text),
0);
}
free(wants);
ctl_flushpkt(0);
}
/*
* read_variables - return the variables the caller asks for
*/
/*ARGSUSED*/
static void
read_variables(
struct recvbuf *rbufp,
int restrict_mask
)
{
if (res_associd)
read_peervars();
else
read_sysvars();
}
/*
* write_variables - write into variables. We only allow leap bit
* writing this way.
*/
/*ARGSUSED*/
static void
write_variables(
struct recvbuf *rbufp,
int restrict_mask
)
{
const struct ctl_var *v;
int ext_var;
char *valuep;
long val;
size_t octets;
char *vareqv;
const char *t;
char *tt;
val = 0;
/*
* If he's trying to write into a peer tell him no way
*/
if (res_associd != 0) {
ctl_error(CERR_PERMISSION);
return;
}
/*
* Set status
*/
rpkt.status = htons(ctlsysstatus());
/*
* Look through the variables. Dump out at the first sign of
* trouble.
*/
while ((v = ctl_getitem(sys_var, &valuep)) != NULL) {
ext_var = 0;
if (v->flags & EOV) {
v = ctl_getitem(ext_sys_var, &valuep);
if (v != NULL) {
if (v->flags & EOV) {
ctl_error(CERR_UNKNOWNVAR);
return;
}
ext_var = 1;
} else {
break;
}
}
if (!(v->flags & CAN_WRITE)) {
ctl_error(CERR_PERMISSION);
return;
}
/* [bug 3565] writing makes sense only if we *have* a
* value in the packet!
*/
if (valuep == NULL) {
ctl_error(CERR_BADFMT);
return;
}
if (!ext_var) {
if ( !(*valuep && atoint(valuep, &val))) {
ctl_error(CERR_BADFMT);
return;
}
if ((val & ~LEAP_NOTINSYNC) != 0) {
ctl_error(CERR_BADVALUE);
return;
}
}
if (ext_var) {
octets = strlen(v->text) + strlen(valuep) + 2;
vareqv = emalloc(octets);
tt = vareqv;
t = v->text;
while (*t && *t != '=')
*tt++ = *t++;
*tt++ = '=';
memcpy(tt, valuep, 1 + strlen(valuep));
set_sys_var(vareqv, 1 + strlen(vareqv), v->flags);
free(vareqv);
} else {
ctl_error(CERR_UNSPEC); /* really */
return;
}
}
/*
* If we got anything, do it. xxx nothing to do ***
*/
/*
if (leapind != ~0 || leapwarn != ~0) {
if (!leap_setleap((int)leapind, (int)leapwarn)) {
ctl_error(CERR_PERMISSION);
return;
}
}
*/
ctl_flushpkt(0);
}
/*
* configure() processes ntpq :config/config-from-file, allowing
* generic runtime reconfiguration.
*/
static void configure(
struct recvbuf *rbufp,
int restrict_mask
)
{
size_t data_count;
int retval;
/* I haven't yet implemented changes to an existing association.
* Hence check if the association id is 0
*/
if (res_associd != 0) {
ctl_error(CERR_BADVALUE);
return;
}
if (RES_NOMODIFY & restrict_mask) {
snprintf(remote_config.err_msg,
sizeof(remote_config.err_msg),
"runtime configuration prohibited by restrict ... nomodify");
ctl_putdata(remote_config.err_msg,
strlen(remote_config.err_msg), 0);
ctl_flushpkt(0);
NLOG(NLOG_SYSINFO)
msyslog(LOG_NOTICE,
"runtime config from %s rejected due to nomodify restriction",
stoa(&rbufp->recv_srcadr));
sys_restricted++;
return;
}
/* Initialize the remote config buffer */
data_count = remoteconfig_cmdlength(reqpt, reqend);
if (data_count > sizeof(remote_config.buffer) - 2) {
snprintf(remote_config.err_msg,
sizeof(remote_config.err_msg),
"runtime configuration failed: request too long");
ctl_putdata(remote_config.err_msg,
strlen(remote_config.err_msg), 0);
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"runtime config from %s rejected: request too long",
stoa(&rbufp->recv_srcadr));
return;
}
/* Bug 2853 -- check if all characters were acceptable */
if (data_count != (size_t)(reqend - reqpt)) {
snprintf(remote_config.err_msg,
sizeof(remote_config.err_msg),
"runtime configuration failed: request contains an unprintable character");
ctl_putdata(remote_config.err_msg,
strlen(remote_config.err_msg), 0);
ctl_flushpkt(0);
msyslog(LOG_NOTICE,
"runtime config from %s rejected: request contains an unprintable character: %0x",
stoa(&rbufp->recv_srcadr),
reqpt[data_count]);
return;
}
memcpy(remote_config.buffer, reqpt, data_count);
/* The buffer has no trailing linefeed or NUL right now. For
* logging, we do not want a newline, so we do that first after
* adding the necessary NUL byte.
*/
remote_config.buffer[data_count] = '\0';
DPRINTF(1, ("Got Remote Configuration Command: %s\n",
remote_config.buffer));
msyslog(LOG_NOTICE, "%s config: %s",
stoa(&rbufp->recv_srcadr),
remote_config.buffer);
/* Now we have to make sure there is a NL/NUL sequence at the
* end of the buffer before we parse it.
*/
remote_config.buffer[data_count++] = '\n';
remote_config.buffer[data_count] = '\0';
remote_config.pos = 0;
remote_config.err_pos = 0;
remote_config.no_errors = 0;
config_remotely(&rbufp->recv_srcadr);
/*
* Check if errors were reported. If not, output 'Config
* Succeeded'. Else output the error count. It would be nice
* to output any parser error messages.
*/
if (0 == remote_config.no_errors) {
retval = snprintf(remote_config.err_msg,
sizeof(remote_config.err_msg),
"Config Succeeded");
if (retval > 0)
remote_config.err_pos += retval;
}
ctl_putdata(remote_config.err_msg, remote_config.err_pos, 0);
ctl_flushpkt(0);
DPRINTF(1, ("Reply: %s\n", remote_config.err_msg));
if (remote_config.no_errors > 0)
msyslog(LOG_NOTICE, "%d error in %s config",
remote_config.no_errors,
stoa(&rbufp->recv_srcadr));
}
/*
* derive_nonce - generate client-address-specific nonce value
* associated with a given timestamp.
*/
static u_int32 derive_nonce(
sockaddr_u * addr,
u_int32 ts_i,
u_int32 ts_f
)
{
static u_int32 salt[4];
static u_long last_salt_update;
union d_tag {
u_char digest[EVP_MAX_MD_SIZE];
u_int32 extract;
} d;
EVP_MD_CTX *ctx;
u_int len;
int rc;
while (!salt[0] || current_time - last_salt_update >= 3600) {
salt[0] = ntp_random();
salt[1] = ntp_random();
salt[2] = ntp_random();
salt[3] = ntp_random();
last_salt_update = current_time;
}
ctx = EVP_MD_CTX_new();
# if defined(OPENSSL) && defined(EVP_MD_CTX_FLAG_NON_FIPS_ALLOW)
/* [Bug 3457] set flags and don't kill them again */
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
rc = EVP_DigestInit_ex(ctx, EVP_get_digestbynid(NID_md5), NULL);
# else
rc = EVP_DigestInit(ctx, EVP_get_digestbynid(NID_md5));
# endif
if (!rc) {
msyslog(LOG_ERR, "EVP_DigestInit failed in '%s'", __func__);
return (0);
}
EVP_DigestUpdate(ctx, salt, sizeof(salt));
EVP_DigestUpdate(ctx, &ts_i, sizeof(ts_i));
EVP_DigestUpdate(ctx, &ts_f, sizeof(ts_f));
if (IS_IPV4(addr))
EVP_DigestUpdate(ctx, &SOCK_ADDR4(addr),
sizeof(SOCK_ADDR4(addr)));
else
EVP_DigestUpdate(ctx, &SOCK_ADDR6(addr),
sizeof(SOCK_ADDR6(addr)));
EVP_DigestUpdate(ctx, &NSRCPORT(addr), sizeof(NSRCPORT(addr)));
EVP_DigestUpdate(ctx, salt, sizeof(salt));
EVP_DigestFinal(ctx, d.digest, &len);
EVP_MD_CTX_free(ctx);
return d.extract;
}
/*
* generate_nonce - generate client-address-specific nonce string.
*/
static void generate_nonce(
struct recvbuf * rbufp,
char * nonce,
size_t nonce_octets
)
{
u_int32 derived;
derived = derive_nonce(&rbufp->recv_srcadr,
rbufp->recv_time.l_ui,
rbufp->recv_time.l_uf);
snprintf(nonce, nonce_octets, "%08x%08x%08x",
rbufp->recv_time.l_ui, rbufp->recv_time.l_uf, derived);
}
/*
* validate_nonce - validate client-address-specific nonce string.
*
* Returns TRUE if the local calculation of the nonce matches the
* client-provided value and the timestamp is recent enough.
*/
static int validate_nonce(
const char * pnonce,
struct recvbuf * rbufp
)
{
u_int ts_i;
u_int ts_f;
l_fp ts;
l_fp now_delta;
u_int supposed;
u_int derived;
if (3 != sscanf(pnonce, "%08x%08x%08x", &ts_i, &ts_f, &supposed))
return FALSE;
ts.l_ui = (u_int32)ts_i;
ts.l_uf = (u_int32)ts_f;
derived = derive_nonce(&rbufp->recv_srcadr, ts.l_ui, ts.l_uf);
get_systime(&now_delta);
L_SUB(&now_delta, &ts);
return (supposed == derived && now_delta.l_ui < 16);
}
/*
* send_random_tag_value - send a randomly-generated three character
* tag prefix, a '.', an index, a '=' and a
* random integer value.
*
* To try to force clients to ignore unrecognized tags in mrulist,
* reslist, and ifstats responses, the first and last rows are spiced
* with randomly-generated tag names with correct .# index. Make it
* three characters knowing that none of the currently-used subscripted
* tags have that length, avoiding the need to test for
* tag collision.
*/
static void
send_random_tag_value(
int indx
)
{
int noise;
char buf[32];
noise = rand() ^ (rand() << 16);
buf[0] = 'a' + noise % 26;
noise >>= 5;
buf[1] = 'a' + noise % 26;
noise >>= 5;
buf[2] = 'a' + noise % 26;
noise >>= 5;
buf[3] = '.';
snprintf(&buf[4], sizeof(buf) - 4, "%d", indx);
ctl_putuint(buf, noise);
}
/*
* Send a MRU list entry in response to a "ntpq -c mrulist" operation.
*
* To keep clients honest about not depending on the order of values,
* and thereby avoid being locked into ugly workarounds to maintain
* backward compatibility later as new fields are added to the response,
* the order is random.
*/
static void
send_mru_entry(
mon_entry * mon,
int count
)
{
const char first_fmt[] = "first.%d";
const char ct_fmt[] = "ct.%d";
const char mv_fmt[] = "mv.%d";
const char rs_fmt[] = "rs.%d";
char tag[32];
u_char sent[6]; /* 6 tag=value pairs */
u_int32 noise;
u_int which;
u_int remaining;
const char * pch;
remaining = COUNTOF(sent);
ZERO(sent);
noise = (u_int32)(rand() ^ (rand() << 16));
while (remaining > 0) {
which = (noise & 7) % COUNTOF(sent);
noise >>= 3;
while (sent[which])
which = (which + 1) % COUNTOF(sent);
switch (which) {
case 0:
snprintf(tag, sizeof(tag), addr_fmt, count);
pch = sptoa(&mon->rmtadr);
ctl_putunqstr(tag, pch, strlen(pch));
break;
case 1:
snprintf(tag, sizeof(tag), last_fmt, count);
ctl_putts(tag, &mon->last);
break;
case 2:
snprintf(tag, sizeof(tag), first_fmt, count);
ctl_putts(tag, &mon->first);
break;
case 3:
snprintf(tag, sizeof(tag), ct_fmt, count);
ctl_putint(tag, mon->count);
break;
case 4:
snprintf(tag, sizeof(tag), mv_fmt, count);
ctl_putuint(tag, mon->vn_mode);
break;
case 5:
snprintf(tag, sizeof(tag), rs_fmt, count);
ctl_puthex(tag, mon->flags);
break;
}
sent[which] = TRUE;
remaining--;
}
}
/*
* read_mru_list - supports ntpq's mrulist command.
*
* The challenge here is to match ntpdc's monlist functionality without
* being limited to hundreds of entries returned total, and without
* requiring state on the server. If state were required, ntpq's
* mrulist command would require authentication.
*
* The approach was suggested by Ry Jones. A finite and variable number
* of entries are retrieved per request, to avoid having responses with
* such large numbers of packets that socket buffers are overflowed and
* packets lost. The entries are retrieved oldest-first, taking into
* account that the MRU list will be changing between each request. We
* can expect to see duplicate entries for addresses updated in the MRU
* list during the fetch operation. In the end, the client can assemble
* a close approximation of the MRU list at the point in time the last
* response was sent by ntpd. The only difference is it may be longer,
* containing some number of oldest entries which have since been
* reclaimed. If necessary, the protocol could be extended to zap those
* from the client snapshot at the end, but so far that doesn't seem
* useful.
*
* To accomodate the changing MRU list, the starting point for requests
* after the first request is supplied as a series of last seen
* timestamps and associated addresses, the newest ones the client has
* received. As long as at least one of those entries hasn't been
* bumped to the head of the MRU list, ntpd can pick up at that point.
* Otherwise, the request is failed and it is up to ntpq to back up and
* provide the next newest entry's timestamps and addresses, conceivably
* backing up all the way to the starting point.
*
* input parameters:
* nonce= Regurgitated nonce retrieved by the client
* previously using CTL_OP_REQ_NONCE, demonstrating
* ability to receive traffic sent to its address.
* frags= Limit on datagrams (fragments) in response. Used
* by newer ntpq versions instead of limit= when
* retrieving multiple entries.
* limit= Limit on MRU entries returned. One of frags= or
* limit= must be provided.
* limit=1 is a special case: Instead of fetching
* beginning with the supplied starting point's
* newer neighbor, fetch the supplied entry, and
* in that case the #.last timestamp can be zero.
* This enables fetching a single entry by IP
* address. When limit is not one and frags= is
* provided, the fragment limit controls.
* mincount= (decimal) Return entries with count >= mincount.
* laddr= Return entries associated with the server's IP
* address given. No port specification is needed,
* and any supplied is ignored.
* resall= 0x-prefixed hex restrict bits which must all be
* lit for an MRU entry to be included.
* Has precedence over any resany=.
* resany= 0x-prefixed hex restrict bits, at least one of
* which must be list for an MRU entry to be
* included.
* last.0= 0x-prefixed hex l_fp timestamp of newest entry
* which client previously received.
* addr.0= text of newest entry's IP address and port,
* IPv6 addresses in bracketed form: [::]:123
* last.1= timestamp of 2nd newest entry client has.
* addr.1= address of 2nd newest entry.
* [...]
*
* ntpq provides as many last/addr pairs as will fit in a single request
* packet, except for the first request in a MRU fetch operation.
*
* The response begins with a new nonce value to be used for any
* followup request. Following the nonce is the next newer entry than
* referred to by last.0 and addr.0, if the "0" entry has not been
* bumped to the front. If it has, the first entry returned will be the
* next entry newer than referred to by last.1 and addr.1, and so on.
* If none of the referenced entries remain unchanged, the request fails
* and ntpq backs up to the next earlier set of entries to resync.
*
* Except for the first response, the response begins with confirmation
* of the entry that precedes the first additional entry provided:
*
* last.older= hex l_fp timestamp matching one of the input
* .last timestamps, which entry now precedes the
* response 0. entry in the MRU list.
* addr.older= text of address corresponding to older.last.
*
* And in any case, a successful response contains sets of values
* comprising entries, with the oldest numbered 0 and incrementing from
* there:
*
* addr.# text of IPv4 or IPv6 address and port
* last.# hex l_fp timestamp of last receipt
* first.# hex l_fp timestamp of first receipt
* ct.# count of packets received
* mv.# mode and version
* rs.# restriction mask (RES_* bits)
*
* Note the code currently assumes there are no valid three letter
* tags sent with each row, and needs to be adjusted if that changes.
*
* The client should accept the values in any order, and ignore .#
* values which it does not understand, to allow a smooth path to
* future changes without requiring a new opcode. Clients can rely
* on all *.0 values preceding any *.1 values, that is all values for
* a given index number are together in the response.
*
* The end of the response list is noted with one or two tag=value
* pairs. Unconditionally:
*
* now= 0x-prefixed l_fp timestamp at the server marking
* the end of the operation.
*
* If any entries were returned, now= is followed by:
*
* last.newest= hex l_fp identical to last.# of the prior
* entry.
*/
static void read_mru_list(
struct recvbuf *rbufp,
int restrict_mask
)
{
static const char nulltxt[1] = { '\0' };
static const char nonce_text[] = "nonce";
static const char frags_text[] = "frags";
static const char limit_text[] = "limit";
static const char mincount_text[] = "mincount";
static const char resall_text[] = "resall";
static const char resany_text[] = "resany";
static const char maxlstint_text[] = "maxlstint";
static const char laddr_text[] = "laddr";
static const char resaxx_fmt[] = "0x%hx";
u_int limit;
u_short frags;
u_short resall;
u_short resany;
int mincount;
u_int maxlstint;
sockaddr_u laddr;
struct interface * lcladr;
u_int count;
u_int ui;
u_int uf;
l_fp last[16];
sockaddr_u addr[COUNTOF(last)];
char buf[128];
struct ctl_var * in_parms;
const struct ctl_var * v;
const char * val;
const char * pch;
char * pnonce;
int nonce_valid;
size_t i;
int priors;
u_short hash;
mon_entry * mon;
mon_entry * prior_mon;
l_fp now;
if (RES_NOMRULIST & restrict_mask) {
ctl_error(CERR_PERMISSION);
NLOG(NLOG_SYSINFO)
msyslog(LOG_NOTICE,
"mrulist from %s rejected due to nomrulist restriction",
stoa(&rbufp->recv_srcadr));
sys_restricted++;
return;
}
/*
* fill in_parms var list with all possible input parameters.
*/
in_parms = NULL;
set_var(&in_parms, nonce_text, sizeof(nonce_text), 0);
set_var(&in_parms, frags_text, sizeof(frags_text), 0);
set_var(&in_parms, limit_text, sizeof(limit_text), 0);
set_var(&in_parms, mincount_text, sizeof(mincount_text), 0);
set_var(&in_parms, resall_text, sizeof(resall_text), 0);
set_var(&in_parms, resany_text, sizeof(resany_text), 0);
set_var(&in_parms, maxlstint_text, sizeof(maxlstint_text), 0);
set_var(&in_parms, laddr_text, sizeof(laddr_text), 0);
for (i = 0; i < COUNTOF(last); i++) {
snprintf(buf, sizeof(buf), last_fmt, (int)i);
set_var(&in_parms, buf, strlen(buf) + 1, 0);
snprintf(buf, sizeof(buf), addr_fmt, (int)i);
set_var(&in_parms, buf, strlen(buf) + 1, 0);
}
/* decode input parms */
pnonce = NULL;
frags = 0;
limit = 0;
mincount = 0;
resall = 0;
resany = 0;
maxlstint = 0;
lcladr = NULL;
priors = 0;
ZERO(last);
ZERO(addr);
/* have to go through '(void*)' to drop 'const' property from pointer.
* ctl_getitem()' needs some cleanup, too.... perlinger@ntp.org
*/
while (NULL != (v = ctl_getitem(in_parms, (void*)&val)) &&
!(EOV & v->flags)) {
int si;
if (NULL == val)
val = nulltxt;
if (!strcmp(nonce_text, v->text)) {
free(pnonce);
pnonce = (*val) ? estrdup(val) : NULL;
} else if (!strcmp(frags_text, v->text)) {
if (1 != sscanf(val, "%hu", &frags))
goto blooper;
} else if (!strcmp(limit_text, v->text)) {
if (1 != sscanf(val, "%u", &limit))
goto blooper;
} else if (!strcmp(mincount_text, v->text)) {
if (1 != sscanf(val, "%d", &mincount))
goto blooper;
if (mincount < 0)
mincount = 0;
} else if (!strcmp(resall_text, v->text)) {
if (1 != sscanf(val, resaxx_fmt, &resall))
goto blooper;
} else if (!strcmp(resany_text, v->text)) {
if (1 != sscanf(val, resaxx_fmt, &resany))
goto blooper;
} else if (!strcmp(maxlstint_text, v->text)) {
if (1 != sscanf(val, "%u", &maxlstint))
goto blooper;
} else if (!strcmp(laddr_text, v->text)) {
if (!decodenetnum(val, &laddr))
goto blooper;
lcladr = getinterface(&laddr, 0);
} else if (1 == sscanf(v->text, last_fmt, &si) &&
(size_t)si < COUNTOF(last)) {
if (2 != sscanf(val, "0x%08x.%08x", &ui, &uf))
goto blooper;
last[si].l_ui = ui;
last[si].l_uf = uf;
if (!SOCK_UNSPEC(&addr[si]) && si == priors)
priors++;
} else if (1 == sscanf(v->text, addr_fmt, &si) &&
(size_t)si < COUNTOF(addr)) {
if (!decodenetnum(val, &addr[si]))
goto blooper;
if (last[si].l_ui && last[si].l_uf && si == priors)
priors++;
} else {
DPRINTF(1, ("read_mru_list: invalid key item: '%s' (ignored)\n",
v->text));
continue;
blooper:
DPRINTF(1, ("read_mru_list: invalid param for '%s': '%s' (bailing)\n",
v->text, val));
free(pnonce);
pnonce = NULL;
break;
}
}
free_varlist(in_parms);
in_parms = NULL;
/* return no responses until the nonce is validated */
if (NULL == pnonce)
return;
nonce_valid = validate_nonce(pnonce, rbufp);
free(pnonce);
if (!nonce_valid)
return;
if ((0 == frags && !(0 < limit && limit <= MRU_ROW_LIMIT)) ||
frags > MRU_FRAGS_LIMIT) {
ctl_error(CERR_BADVALUE);
return;
}
/*
* If either frags or limit is not given, use the max.
*/
if (0 != frags && 0 == limit)
limit = UINT_MAX;
else if (0 != limit && 0 == frags)
frags = MRU_FRAGS_LIMIT;
/*
* Find the starting point if one was provided.
*/
mon = NULL;
for (i = 0; i < (size_t)priors; i++) {
hash = MON_HASH(&addr[i]);
for (mon = mon_hash[hash];
mon != NULL;
mon = mon->hash_next)
if (ADDR_PORT_EQ(&mon->rmtadr, &addr[i]))
break;
if (mon != NULL) {
if (L_ISEQU(&mon->last, &last[i]))
break;
mon = NULL;
}
}
/* If a starting point was provided... */
if (priors) {
/* and none could be found unmodified... */
if (NULL == mon) {
/* tell ntpq to try again with older entries */
ctl_error(CERR_UNKNOWNVAR);
return;
}
/* confirm the prior entry used as starting point */
ctl_putts("last.older", &mon->last);
pch = sptoa(&mon->rmtadr);
ctl_putunqstr("addr.older", pch, strlen(pch));
/*
* Move on to the first entry the client doesn't have,
* except in the special case of a limit of one. In
* that case return the starting point entry.
*/
if (limit > 1)
mon = PREV_DLIST(mon_mru_list, mon, mru);
} else { /* start with the oldest */
mon = TAIL_DLIST(mon_mru_list, mru);
}
/*
* send up to limit= entries in up to frags= datagrams
*/
get_systime(&now);
generate_nonce(rbufp, buf, sizeof(buf));
ctl_putunqstr("nonce", buf, strlen(buf));
prior_mon = NULL;
for (count = 0;
mon != NULL && res_frags < frags && count < limit;
mon = PREV_DLIST(mon_mru_list, mon, mru)) {
if (mon->count < mincount)
continue;
if (resall && resall != (resall & mon->flags))
continue;
if (resany && !(resany & mon->flags))
continue;
if (maxlstint > 0 && now.l_ui - mon->last.l_ui >
maxlstint)
continue;
if (lcladr != NULL && mon->lcladr != lcladr)
continue;
send_mru_entry(mon, count);
if (!count)
send_random_tag_value(0);
count++;
prior_mon = mon;
}
/*
* If this batch completes the MRU list, say so explicitly with
* a now= l_fp timestamp.
*/
if (NULL == mon) {
if (count > 1)
send_random_tag_value(count - 1);
ctl_putts("now", &now);
/* if any entries were returned confirm the last */
if (prior_mon != NULL)
ctl_putts("last.newest", &prior_mon->last);
}
ctl_flushpkt(0);
}
/*
* Send a ifstats entry in response to a "ntpq -c ifstats" request.
*
* To keep clients honest about not depending on the order of values,
* and thereby avoid being locked into ugly workarounds to maintain
* backward compatibility later as new fields are added to the response,
* the order is random.
*/
static void
send_ifstats_entry(
endpt * la,
u_int ifnum
)
{
const char addr_fmtu[] = "addr.%u";
const char bcast_fmt[] = "bcast.%u";
const char en_fmt[] = "en.%u"; /* enabled */
const char name_fmt[] = "name.%u";
const char flags_fmt[] = "flags.%u";
const char tl_fmt[] = "tl.%u"; /* ttl */
const char mc_fmt[] = "mc.%u"; /* mcast count */
const char rx_fmt[] = "rx.%u";
const char tx_fmt[] = "tx.%u";
const char txerr_fmt[] = "txerr.%u";
const char pc_fmt[] = "pc.%u"; /* peer count */
const char up_fmt[] = "up.%u"; /* uptime */
char tag[32];
u_char sent[IFSTATS_FIELDS]; /* 12 tag=value pairs */
int noisebits;
u_int32 noise;
u_int which;
u_int remaining;
const char *pch;
remaining = COUNTOF(sent);
ZERO(sent);
noise = 0;
noisebits = 0;
while (remaining > 0) {
if (noisebits < 4) {
noise = rand() ^ (rand() << 16);
noisebits = 31;
}
which = (noise & 0xf) % COUNTOF(sent);
noise >>= 4;
noisebits -= 4;
while (sent[which])
which = (which + 1) % COUNTOF(sent);
switch (which) {
case 0:
snprintf(tag, sizeof(tag), addr_fmtu, ifnum);
pch = sptoa(&la->sin);
ctl_putunqstr(tag, pch, strlen(pch));
break;
case 1:
snprintf(tag, sizeof(tag), bcast_fmt, ifnum);
if (INT_BCASTOPEN & la->flags)
pch = sptoa(&la->bcast);
else
pch = "";
ctl_putunqstr(tag, pch, strlen(pch));
break;
case 2:
snprintf(tag, sizeof(tag), en_fmt, ifnum);
ctl_putint(tag, !la->ignore_packets);
break;
case 3:
snprintf(tag, sizeof(tag), name_fmt, ifnum);
ctl_putstr(tag, la->name, strlen(la->name));
break;
case 4:
snprintf(tag, sizeof(tag), flags_fmt, ifnum);
ctl_puthex(tag, (u_int)la->flags);
break;
case 5:
snprintf(tag, sizeof(tag), tl_fmt, ifnum);
ctl_putint(tag, la->last_ttl);
break;
case 6:
snprintf(tag, sizeof(tag), mc_fmt, ifnum);
ctl_putint(tag, la->num_mcast);
break;
case 7:
snprintf(tag, sizeof(tag), rx_fmt, ifnum);
ctl_putint(tag, la->received);
break;
case 8:
snprintf(tag, sizeof(tag), tx_fmt, ifnum);
ctl_putint(tag, la->sent);
break;
case 9:
snprintf(tag, sizeof(tag), txerr_fmt, ifnum);
ctl_putint(tag, la->notsent);
break;
case 10:
snprintf(tag, sizeof(tag), pc_fmt, ifnum);
ctl_putuint(tag, la->peercnt);
break;
case 11:
snprintf(tag, sizeof(tag), up_fmt, ifnum);
ctl_putuint(tag, current_time - la->starttime);
break;
}
sent[which] = TRUE;
remaining--;
}
send_random_tag_value((int)ifnum);
}
/*
* read_ifstats - send statistics for each local address, exposed by
* ntpq -c ifstats
*/
static void
read_ifstats(
struct recvbuf * rbufp
)
{
u_int ifidx;
endpt * la;
/*
* loop over [0..sys_ifnum] searching ep_list for each
* ifnum in turn.
*/
for (ifidx = 0; ifidx < sys_ifnum; ifidx++) {
for (la = ep_list; la != NULL; la = la->elink)
if (ifidx == la->ifnum)
break;
if (NULL == la)
continue;
/* return stats for one local address */
send_ifstats_entry(la, ifidx);
}
ctl_flushpkt(0);
}
static void
sockaddrs_from_restrict_u(
sockaddr_u * psaA,
sockaddr_u * psaM,
restrict_u * pres,
int ipv6
)
{
ZERO(*psaA);
ZERO(*psaM);
if (!ipv6) {
psaA->sa.sa_family = AF_INET;
psaA->sa4.sin_addr.s_addr = htonl(pres->u.v4.addr);
psaM->sa.sa_family = AF_INET;
psaM->sa4.sin_addr.s_addr = htonl(pres->u.v4.mask);
} else {
psaA->sa.sa_family = AF_INET6;
memcpy(&psaA->sa6.sin6_addr, &pres->u.v6.addr,
sizeof(psaA->sa6.sin6_addr));
psaM->sa.sa_family = AF_INET6;
memcpy(&psaM->sa6.sin6_addr, &pres->u.v6.mask,
sizeof(psaA->sa6.sin6_addr));
}
}
/*
* Send a restrict entry in response to a "ntpq -c reslist" request.
*
* To keep clients honest about not depending on the order of values,
* and thereby avoid being locked into ugly workarounds to maintain
* backward compatibility later as new fields are added to the response,
* the order is random.
*/
static void
send_restrict_entry(
restrict_u * pres,
int ipv6,
u_int idx
)
{
const char addr_fmtu[] = "addr.%u";
const char mask_fmtu[] = "mask.%u";
const char hits_fmt[] = "hits.%u";
const char flags_fmt[] = "flags.%u";
char tag[32];
u_char sent[RESLIST_FIELDS]; /* 4 tag=value pairs */
int noisebits;
u_int32 noise;
u_int which;
u_int remaining;
sockaddr_u addr;
sockaddr_u mask;
const char * pch;
char * buf;
const char * match_str;
const char * access_str;
sockaddrs_from_restrict_u(&addr, &mask, pres, ipv6);
remaining = COUNTOF(sent);
ZERO(sent);
noise = 0;
noisebits = 0;
while (remaining > 0) {
if (noisebits < 2) {
noise = rand() ^ (rand() << 16);
noisebits = 31;
}
which = (noise & 0x3) % COUNTOF(sent);
noise >>= 2;
noisebits -= 2;
while (sent[which])
which = (which + 1) % COUNTOF(sent);
/* XXX: Numbers? Really? */
switch (which) {
case 0:
snprintf(tag, sizeof(tag), addr_fmtu, idx);
pch = stoa(&addr);
ctl_putunqstr(tag, pch, strlen(pch));
break;
case 1:
snprintf(tag, sizeof(tag), mask_fmtu, idx);
pch = stoa(&mask);
ctl_putunqstr(tag, pch, strlen(pch));
break;
case 2:
snprintf(tag, sizeof(tag), hits_fmt, idx);
ctl_putuint(tag, pres->count);
break;
case 3:
snprintf(tag, sizeof(tag), flags_fmt, idx);
match_str = res_match_flags(pres->mflags);
access_str = res_access_flags(pres->rflags);
if ('\0' == match_str[0]) {
pch = access_str;
} else {
LIB_GETBUF(buf);
snprintf(buf, LIB_BUFLENGTH, "%s %s",
match_str, access_str);
pch = buf;
}
ctl_putunqstr(tag, pch, strlen(pch));
break;
}
sent[which] = TRUE;
remaining--;
}
send_random_tag_value((int)idx);
}
static void
send_restrict_list(
restrict_u * pres,
int ipv6,
u_int * pidx
)
{
for ( ; pres != NULL; pres = pres->link) {
send_restrict_entry(pres, ipv6, *pidx);
(*pidx)++;
}
}
/*
* read_addr_restrictions - returns IPv4 and IPv6 access control lists
*/
static void
read_addr_restrictions(
struct recvbuf * rbufp
)
{
u_int idx;
idx = 0;
send_restrict_list(restrictlist4, FALSE, &idx);
send_restrict_list(restrictlist6, TRUE, &idx);
ctl_flushpkt(0);
}
/*
* read_ordlist - CTL_OP_READ_ORDLIST_A for ntpq -c ifstats & reslist
*/
static void
read_ordlist(
struct recvbuf * rbufp,
int restrict_mask
)
{
const char ifstats_s[] = "ifstats";
const size_t ifstats_chars = COUNTOF(ifstats_s) - 1;
const char addr_rst_s[] = "addr_restrictions";
const size_t a_r_chars = COUNTOF(addr_rst_s) - 1;
struct ntp_control * cpkt;
u_short qdata_octets;
/*
* CTL_OP_READ_ORDLIST_A was first named CTL_OP_READ_IFSTATS and
* used only for ntpq -c ifstats. With the addition of reslist
* the same opcode was generalized to retrieve ordered lists
* which require authentication. The request data is empty or
* contains "ifstats" (not null terminated) to retrieve local
* addresses and associated stats. It is "addr_restrictions"
* to retrieve the IPv4 then IPv6 remote address restrictions,
* which are access control lists. Other request data return
* CERR_UNKNOWNVAR.
*/
cpkt = (struct ntp_control *)&rbufp->recv_pkt;
qdata_octets = ntohs(cpkt->count);
if (0 == qdata_octets || (ifstats_chars == qdata_octets &&
!memcmp(ifstats_s, cpkt->u.data, ifstats_chars))) {
read_ifstats(rbufp);
return;
}
if (a_r_chars == qdata_octets &&
!memcmp(addr_rst_s, cpkt->u.data, a_r_chars)) {
read_addr_restrictions(rbufp);
return;
}
ctl_error(CERR_UNKNOWNVAR);
}
/*
* req_nonce - CTL_OP_REQ_NONCE for ntpq -c mrulist prerequisite.
*/
static void req_nonce(
struct recvbuf * rbufp,
int restrict_mask
)
{
char buf[64];
generate_nonce(rbufp, buf, sizeof(buf));
ctl_putunqstr("nonce", buf, strlen(buf));
ctl_flushpkt(0);
}
/*
* read_clockstatus - return clock radio status
*/
/*ARGSUSED*/
static void
read_clockstatus(
struct recvbuf *rbufp,
int restrict_mask
)
{
#ifndef REFCLOCK
/*
* If no refclock support, no data to return
*/
ctl_error(CERR_BADASSOC);
#else
const struct ctl_var * v;
int i;
struct peer * peer;
char * valuep;
u_char * wants;
size_t wants_alloc;
int gotvar;
const u_char * cc;
struct ctl_var * kv;
struct refclockstat cs;
if (res_associd != 0) {
peer = findpeerbyassoc(res_associd);
} else {
/*
* Find a clock for this jerk. If the system peer
* is a clock use it, else search peer_list for one.
*/
if (sys_peer != NULL && (FLAG_REFCLOCK &
sys_peer->flags))
peer = sys_peer;
else
for (peer = peer_list;
peer != NULL;
peer = peer->p_link)
if (FLAG_REFCLOCK & peer->flags)
break;
}
if (NULL == peer || !(FLAG_REFCLOCK & peer->flags)) {
ctl_error(CERR_BADASSOC);
return;
}
/*
* If we got here we have a peer which is a clock. Get his
* status.
*/
cs.kv_list = NULL;
refclock_control(&peer->srcadr, NULL, &cs);
kv = cs.kv_list;
/*
* Look for variables in the packet.
*/
rpkt.status = htons(ctlclkstatus(&cs));
wants_alloc = CC_MAXCODE + 1 + count_var(kv);
wants = emalloc_zero(wants_alloc);
gotvar = FALSE;
while (NULL != (v = ctl_getitem(clock_var, &valuep))) {
if (!(EOV & v->flags)) {
wants[v->code] = TRUE;
gotvar = TRUE;
} else {
v = ctl_getitem(kv, &valuep);
if (NULL == v) {
ctl_error(CERR_BADVALUE);
free(wants);
free_varlist(cs.kv_list);
return;
}
if (EOV & v->flags) {
ctl_error(CERR_UNKNOWNVAR);
free(wants);
free_varlist(cs.kv_list);
return;
}
wants[CC_MAXCODE + 1 + v->code] = TRUE;
gotvar = TRUE;
}
}
if (gotvar) {
for (i = 1; i <= CC_MAXCODE; i++)
if (wants[i])
ctl_putclock(i, &cs, TRUE);
if (kv != NULL)
for (i = 0; !(EOV & kv[i].flags); i++)
if (wants[i + CC_MAXCODE + 1])
ctl_putdata(kv[i].text,
strlen(kv[i].text),
FALSE);
} else {
for (cc = def_clock_var; *cc != 0; cc++)
ctl_putclock((int)*cc, &cs, FALSE);
for ( ; kv != NULL && !(EOV & kv->flags); kv++)
if (DEF & kv->flags)
ctl_putdata(kv->text, strlen(kv->text),
FALSE);
}
free(wants);
free_varlist(cs.kv_list);
ctl_flushpkt(0);
#endif
}
/*
* write_clockstatus - we don't do this
*/
/*ARGSUSED*/
static void
write_clockstatus(
struct recvbuf *rbufp,
int restrict_mask
)
{
ctl_error(CERR_PERMISSION);
}
/*
* Trap support from here on down. We send async trap messages when the
* upper levels report trouble. Traps can by set either by control
* messages or by configuration.
*/
/*
* set_trap - set a trap in response to a control message
*/
static void
set_trap(
struct recvbuf *rbufp,
int restrict_mask
)
{
int traptype;
/*
* See if this guy is allowed
*/
if (restrict_mask & RES_NOTRAP) {
ctl_error(CERR_PERMISSION);
return;
}
/*
* Determine his allowed trap type.
*/
traptype = TRAP_TYPE_PRIO;
if (restrict_mask & RES_LPTRAP)
traptype = TRAP_TYPE_NONPRIO;
/*
* Call ctlsettrap() to do the work. Return
* an error if it can't assign the trap.
*/
if (!ctlsettrap(&rbufp->recv_srcadr, rbufp->dstadr, traptype,
(int)res_version))
ctl_error(CERR_NORESOURCE);
ctl_flushpkt(0);
}
/*
* unset_trap - unset a trap in response to a control message
*/
static void
unset_trap(
struct recvbuf *rbufp,
int restrict_mask
)
{
int traptype;
/*
* We don't prevent anyone from removing his own trap unless the
* trap is configured. Note we also must be aware of the
* possibility that restriction flags were changed since this
* guy last set his trap. Set the trap type based on this.
*/
traptype = TRAP_TYPE_PRIO;
if (restrict_mask & RES_LPTRAP)
traptype = TRAP_TYPE_NONPRIO;
/*
* Call ctlclrtrap() to clear this out.
*/
if (!ctlclrtrap(&rbufp->recv_srcadr, rbufp->dstadr, traptype))
ctl_error(CERR_BADASSOC);
ctl_flushpkt(0);
}
/*
* ctlsettrap - called to set a trap
*/
int
ctlsettrap(
sockaddr_u *raddr,
struct interface *linter,
int traptype,
int version
)
{
size_t n;
struct ctl_trap *tp;
struct ctl_trap *tptouse;
/*
* See if we can find this trap. If so, we only need update
* the flags and the time.
*/
if ((tp = ctlfindtrap(raddr, linter)) != NULL) {
switch (traptype) {
case TRAP_TYPE_CONFIG:
tp->tr_flags = TRAP_INUSE|TRAP_CONFIGURED;
break;
case TRAP_TYPE_PRIO:
if (tp->tr_flags & TRAP_CONFIGURED)
return (1); /* don't change anything */
tp->tr_flags = TRAP_INUSE;
break;
case TRAP_TYPE_NONPRIO:
if (tp->tr_flags & TRAP_CONFIGURED)
return (1); /* don't change anything */
tp->tr_flags = TRAP_INUSE|TRAP_NONPRIO;
break;
}
tp->tr_settime = current_time;
tp->tr_resets++;
return (1);
}
/*
* First we heard of this guy. Try to find a trap structure
* for him to use, clearing out lesser priority guys if we
* have to. Clear out anyone who's expired while we're at it.
*/
tptouse = NULL;
for (n = 0; n < COUNTOF(ctl_traps); n++) {
tp = &ctl_traps[n];
if ((TRAP_INUSE & tp->tr_flags) &&
!(TRAP_CONFIGURED & tp->tr_flags) &&
((tp->tr_settime + CTL_TRAPTIME) > current_time)) {
tp->tr_flags = 0;
num_ctl_traps--;
}
if (!(TRAP_INUSE & tp->tr_flags)) {
tptouse = tp;
} else if (!(TRAP_CONFIGURED & tp->tr_flags)) {
switch (traptype) {
case TRAP_TYPE_CONFIG:
if (tptouse == NULL) {
tptouse = tp;
break;
}
if ((TRAP_NONPRIO & tptouse->tr_flags) &&
!(TRAP_NONPRIO & tp->tr_flags))
break;
if (!(TRAP_NONPRIO & tptouse->tr_flags)
&& (TRAP_NONPRIO & tp->tr_flags)) {
tptouse = tp;
break;
}
if (tptouse->tr_origtime <
tp->tr_origtime)
tptouse = tp;
break;
case TRAP_TYPE_PRIO:
if ( TRAP_NONPRIO & tp->tr_flags) {
if (tptouse == NULL ||
((TRAP_INUSE &
tptouse->tr_flags) &&
tptouse->tr_origtime <
tp->tr_origtime))
tptouse = tp;
}
break;
case TRAP_TYPE_NONPRIO:
break;
}
}
}
/*
* If we don't have room for him return an error.
*/
if (tptouse == NULL)
return (0);
/*
* Set up this structure for him.
*/
tptouse->tr_settime = tptouse->tr_origtime = current_time;
tptouse->tr_count = tptouse->tr_resets = 0;
tptouse->tr_sequence = 1;
tptouse->tr_addr = *raddr;
tptouse->tr_localaddr = linter;
tptouse->tr_version = (u_char) version;
tptouse->tr_flags = TRAP_INUSE;
if (traptype == TRAP_TYPE_CONFIG)
tptouse->tr_flags |= TRAP_CONFIGURED;
else if (traptype == TRAP_TYPE_NONPRIO)
tptouse->tr_flags |= TRAP_NONPRIO;
num_ctl_traps++;
return (1);
}
/*
* ctlclrtrap - called to clear a trap
*/
int
ctlclrtrap(
sockaddr_u *raddr,
struct interface *linter,
int traptype
)
{
register struct ctl_trap *tp;
if ((tp = ctlfindtrap(raddr, linter)) == NULL)
return (0);
if (tp->tr_flags & TRAP_CONFIGURED
&& traptype != TRAP_TYPE_CONFIG)
return (0);
tp->tr_flags = 0;
num_ctl_traps--;
return (1);
}
/*
* ctlfindtrap - find a trap given the remote and local addresses
*/
static struct ctl_trap *
ctlfindtrap(
sockaddr_u *raddr,
struct interface *linter
)
{
size_t n;
for (n = 0; n < COUNTOF(ctl_traps); n++)
if ((ctl_traps[n].tr_flags & TRAP_INUSE)
&& ADDR_PORT_EQ(raddr, &ctl_traps[n].tr_addr)
&& (linter == ctl_traps[n].tr_localaddr))
return &ctl_traps[n];
return NULL;
}
/*
* report_event - report an event to the trappers
*/
void
report_event(
int err, /* error code */
struct peer *peer, /* peer structure pointer */
const char *str /* protostats string */
)
{
char statstr[NTP_MAXSTRLEN];
int i;
size_t len;
/*
* Report the error to the protostats file, system log and
* trappers.
*/
if (peer == NULL) {
/*
* Discard a system report if the number of reports of
* the same type exceeds the maximum.
*/
if (ctl_sys_last_event != (u_char)err)
ctl_sys_num_events= 0;
if (ctl_sys_num_events >= CTL_SYS_MAXEVENTS)
return;
ctl_sys_last_event = (u_char)err;
ctl_sys_num_events++;
snprintf(statstr, sizeof(statstr),
"0.0.0.0 %04x %02x %s",
ctlsysstatus(), err, eventstr(err));
if (str != NULL) {
len = strlen(statstr);
snprintf(statstr + len, sizeof(statstr) - len,
" %s", str);
}
NLOG(NLOG_SYSEVENT)
msyslog(LOG_INFO, "%s", statstr);
} else {
/*
* Discard a peer report if the number of reports of
* the same type exceeds the maximum for that peer.
*/
const char * src;
u_char errlast;
errlast = (u_char)err & ~PEER_EVENT;
if (peer->last_event != errlast)
peer->num_events = 0;
if (peer->num_events >= CTL_PEER_MAXEVENTS)
return;
peer->last_event = errlast;
peer->num_events++;
if (ISREFCLOCKADR(&peer->srcadr))
src = refnumtoa(&peer->srcadr);
else
src = stoa(&peer->srcadr);
snprintf(statstr, sizeof(statstr),
"%s %04x %02x %s", src,
ctlpeerstatus(peer), err, eventstr(err));
if (str != NULL) {
len = strlen(statstr);
snprintf(statstr + len, sizeof(statstr) - len,
" %s", str);
}
NLOG(NLOG_PEEREVENT)
msyslog(LOG_INFO, "%s", statstr);
}
record_proto_stats(statstr);
#if DEBUG
if (debug)
printf("event at %lu %s\n", current_time, statstr);
#endif
/*
* If no trappers, return.
*/
if (num_ctl_traps <= 0)
return;
/* [Bug 3119]
* Peer Events should be associated with a peer -- hence the
* name. But there are instances where this function is called
* *without* a valid peer. This happens e.g. with an unsolicited
* CryptoNAK, or when a leap second alarm is going off while
* currently without a system peer.
*
* The most sensible approach to this seems to bail out here if
* this happens. Avoiding to call this function would also
* bypass the log reporting in the first part of this function,
* and this is probably not the best of all options.
* -*-perlinger@ntp.org-*-
*/
if ((err & PEER_EVENT) && !peer)
return;
/*
* Set up the outgoing packet variables
*/
res_opcode = CTL_OP_ASYNCMSG;
res_offset = 0;
res_async = TRUE;
res_authenticate = FALSE;
datapt = rpkt.u.data;
dataend = &rpkt.u.data[CTL_MAX_DATA_LEN];
if (!(err & PEER_EVENT)) {
rpkt.associd = 0;
rpkt.status = htons(ctlsysstatus());
/* Include the core system variables and the list. */
for (i = 1; i <= CS_VARLIST; i++)
ctl_putsys(i);
} else if (NULL != peer) { /* paranoia -- skip output */
rpkt.associd = htons(peer->associd);
rpkt.status = htons(ctlpeerstatus(peer));
/* Dump it all. Later, maybe less. */
for (i = 1; i <= CP_MAX_NOAUTOKEY; i++)
ctl_putpeer(i, peer);
# ifdef REFCLOCK
/*
* for clock exception events: add clock variables to
* reflect info on exception
*/
if (err == PEVNT_CLOCK) {
struct refclockstat cs;
struct ctl_var *kv;
cs.kv_list = NULL;
refclock_control(&peer->srcadr, NULL, &cs);
ctl_puthex("refclockstatus",
ctlclkstatus(&cs));
for (i = 1; i <= CC_MAXCODE; i++)
ctl_putclock(i, &cs, FALSE);
for (kv = cs.kv_list;
kv != NULL && !(EOV & kv->flags);
kv++)
if (DEF & kv->flags)
ctl_putdata(kv->text,
strlen(kv->text),
FALSE);
free_varlist(cs.kv_list);
}
# endif /* REFCLOCK */
}
/*
* We're done, return.
*/
ctl_flushpkt(0);
}
/*
* mprintf_event - printf-style varargs variant of report_event()
*/
int
mprintf_event(
int evcode, /* event code */
struct peer * p, /* may be NULL */
const char * fmt, /* msnprintf format */
...
)
{
va_list ap;
int rc;
char msg[512];
va_start(ap, fmt);
rc = mvsnprintf(msg, sizeof(msg), fmt, ap);
va_end(ap);
report_event(evcode, p, msg);
return rc;
}
/*
* ctl_clr_stats - clear stat counters
*/
void
ctl_clr_stats(void)
{
ctltimereset = current_time;
numctlreq = 0;
numctlbadpkts = 0;
numctlresponses = 0;
numctlfrags = 0;
numctlerrors = 0;
numctlfrags = 0;
numctltooshort = 0;
numctlinputresp = 0;
numctlinputfrag = 0;
numctlinputerr = 0;
numctlbadoffset = 0;
numctlbadversion = 0;
numctldatatooshort = 0;
numctlbadop = 0;
numasyncmsgs = 0;
}
static u_short
count_var(
const struct ctl_var *k
)
{
u_int c;
if (NULL == k)
return 0;
c = 0;
while (!(EOV & (k++)->flags))
c++;
ENSURE(c <= USHRT_MAX);
return (u_short)c;
}
char *
add_var(
struct ctl_var **kv,
u_long size,
u_short def
)
{
u_short c;
struct ctl_var *k;
char * buf;
c = count_var(*kv);
*kv = erealloc(*kv, (c + 2) * sizeof(**kv));
k = *kv;
buf = emalloc(size);
k[c].code = c;
k[c].text = buf;
k[c].flags = def;
k[c + 1].code = 0;
k[c + 1].text = NULL;
k[c + 1].flags = EOV;
return buf;
}
void
set_var(
struct ctl_var **kv,
const char *data,
u_long size,
u_short def
)
{
struct ctl_var *k;
const char *s;
const char *t;
char *td;
if (NULL == data || !size)
return;
k = *kv;
if (k != NULL) {
while (!(EOV & k->flags)) {
if (NULL == k->text) {
td = emalloc(size);
memcpy(td, data, size);
k->text = td;
k->flags = def;
return;
} else {
s = data;
t = k->text;
while (*t != '=' && *s == *t) {
s++;
t++;
}
if (*s == *t && ((*t == '=') || !*t)) {
td = erealloc((void *)(intptr_t)k->text, size);
memcpy(td, data, size);
k->text = td;
k->flags = def;
return;
}
}
k++;
}
}
td = add_var(kv, size, def);
memcpy(td, data, size);
}
void
set_sys_var(
const char *data,
u_long size,
u_short def
)
{
set_var(&ext_sys_var, data, size, def);
}
/*
* get_ext_sys_var() retrieves the value of a user-defined variable or
* NULL if the variable has not been setvar'd.
*/
const char *
get_ext_sys_var(const char *tag)
{
struct ctl_var * v;
size_t c;
const char * val;
val = NULL;
c = strlen(tag);
for (v = ext_sys_var; !(EOV & v->flags); v++) {
if (NULL != v->text && !memcmp(tag, v->text, c)) {
if ('=' == v->text[c]) {
val = v->text + c + 1;
break;
} else if ('\0' == v->text[c]) {
val = "";
break;
}
}
}
return val;
}
void
free_varlist(
struct ctl_var *kv
)
{
struct ctl_var *k;
if (kv) {
for (k = kv; !(k->flags & EOV); k++)
free((void *)(intptr_t)k->text);
free((void *)kv);
}
}
diff --git a/contrib/ntp/ntpd/ntp_loopfilter.c b/contrib/ntp/ntpd/ntp_loopfilter.c
index 0499c363393d..e76e4dce0711 100644
--- a/contrib/ntp/ntpd/ntp_loopfilter.c
+++ b/contrib/ntp/ntpd/ntp_loopfilter.c
@@ -1,1405 +1,1402 @@
/*
* ntp_loopfilter.c - implements the NTP loop filter algorithm
*
* ATTENTION: Get approval from Dave Mills on all changes to this file!
*
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#ifdef USE_SNPRINTB
# include <util.h>
#endif
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_unixtime.h"
#include "ntp_stdlib.h"
#include "timexsup.h"
#include <limits.h>
#include <stdio.h>
#include <ctype.h>
#include <signal.h>
#include <setjmp.h>
#ifdef KERNEL_PLL
#include "ntp_syscall.h"
#endif /* KERNEL_PLL */
/*
* This is an implementation of the clock discipline algorithm described
* in UDel TR 97-4-3, as amended. It operates as an adaptive parameter,
* hybrid phase/frequency-lock loop. A number of sanity checks are
* included to protect against timewarps, timespikes and general mayhem.
* All units are in s and s/s, unless noted otherwise.
*/
#define CLOCK_MAX .128 /* default step threshold (s) */
#define CLOCK_MINSTEP 300. /* default stepout threshold (s) */
#define CLOCK_PANIC 1000. /* default panic threshold (s) */
#define CLOCK_PHI 15e-6 /* max frequency error (s/s) */
#define CLOCK_PLL 16. /* PLL loop gain (log2) */
#define CLOCK_AVG 8. /* parameter averaging constant */
#define CLOCK_FLL .25 /* FLL loop gain */
#define CLOCK_FLOOR .0005 /* startup offset floor (s) */
#define CLOCK_ALLAN 11 /* Allan intercept (log2 s) */
#define CLOCK_LIMIT 30 /* poll-adjust threshold */
#define CLOCK_PGATE 4. /* poll-adjust gate */
#define PPS_MAXAGE 120 /* kernel pps signal timeout (s) */
#define FREQTOD(x) ((x) / 65536e6) /* NTP to double */
#define DTOFREQ(x) ((int32)((x) * 65536e6)) /* double to NTP */
/*
* Clock discipline state machine. This is used to control the
* synchronization behavior during initialization and following a
* timewarp.
*
* State < step > step Comments
* ========================================================
* NSET FREQ step, FREQ freq not set
*
* FSET SYNC step, SYNC freq set
*
* FREQ if (mu < 900) if (mu < 900) set freq direct
* ignore ignore
* else else
* freq, SYNC freq, step, SYNC
*
* SYNC SYNC SPIK, ignore adjust phase/freq
*
* SPIK SYNC if (mu < 900) adjust phase/freq
* ignore
* step, SYNC
*/
/*
* Kernel PLL/PPS state machine. This is used with the kernel PLL
* modifications described in the documentation.
*
* If kernel support for the ntp_adjtime() system call is available, the
* ntp_control flag is set. The ntp_enable and kern_enable flags can be
* set at configuration time or run time using ntpdc. If ntp_enable is
* false, the discipline loop is unlocked and no corrections of any kind
* are made. If both ntp_control and kern_enable are set, the kernel
* support is used as described above; if false, the kernel is bypassed
* entirely and the daemon discipline used instead.
*
* There have been three versions of the kernel discipline code. The
* first (microkernel) now in Solaris discipilnes the microseconds. The
* second and third (nanokernel) disciplines the clock in nanoseconds.
* These versions are identifed if the symbol STA_PLL is present in the
* header file /usr/include/sys/timex.h. The third and current version
* includes TAI offset and is identified by the symbol NTP_API with
* value 4.
*
* Each PPS time/frequency discipline can be enabled by the atom driver
* or another driver. If enabled, the STA_PPSTIME and STA_FREQ bits are
* set in the kernel status word; otherwise, these bits are cleared.
* These bits are also cleard if the kernel reports an error.
*
* If an external clock is present, the clock driver sets STA_CLK in the
* status word. When the local clock driver sees this bit, it updates
* via this routine, which then calls ntp_adjtime() with the STA_PLL bit
* set to zero, in which case the system clock is not adjusted. This is
* also a signal for the external clock driver to discipline the system
* clock. Unless specified otherwise, all times are in seconds.
*/
/*
* Program variables that can be tinkered.
*/
double clock_max_back = CLOCK_MAX; /* step threshold */
double clock_max_fwd = CLOCK_MAX; /* step threshold */
double clock_minstep = CLOCK_MINSTEP; /* stepout threshold */
double clock_panic = CLOCK_PANIC; /* panic threshold */
double clock_phi = CLOCK_PHI; /* dispersion rate (s/s) */
u_char allan_xpt = CLOCK_ALLAN; /* Allan intercept (log2 s) */
/*
* Program variables
*/
static double clock_offset; /* offset */
double clock_jitter; /* offset jitter */
double drift_comp; /* frequency (s/s) */
static double init_drift_comp; /* initial frequency (PPM) */
double clock_stability; /* frequency stability (wander) (s/s) */
double clock_codec; /* audio codec frequency (samples/s) */
static u_long clock_epoch; /* last update */
u_int sys_tai; /* TAI offset from UTC */
static int loop_started; /* TRUE after LOOP_DRIFTINIT */
static void rstclock (int, double); /* transition function */
static double direct_freq(double); /* direct set frequency */
static void set_freq(double); /* set frequency */
-#ifndef PATH_MAX
-# define PATH_MAX MAX_PATH
-#endif
static char relative_path[PATH_MAX + 1]; /* relative path per recursive make */
static char *this_file = NULL;
#ifdef KERNEL_PLL
static struct timex ntv; /* ntp_adjtime() parameters */
int pll_status; /* last kernel status bits */
#if defined(STA_NANO) && NTP_API == 4
static u_int loop_tai; /* last TAI offset */
#endif /* STA_NANO */
static void start_kern_loop(void);
static void stop_kern_loop(void);
#endif /* KERNEL_PLL */
/*
* Clock state machine control flags
*/
int ntp_enable = TRUE; /* clock discipline enabled */
int pll_control; /* kernel support available */
int kern_enable = TRUE; /* kernel support enabled */
int hardpps_enable; /* kernel PPS discipline enabled */
int ext_enable; /* external clock enabled */
int pps_stratum; /* pps stratum */
int kernel_status; /* from ntp_adjtime */
int force_step_once = FALSE; /* always step time once at startup (-G) */
int mode_ntpdate = FALSE; /* exit on first clock set (-q) */
int freq_cnt; /* initial frequency clamp */
int freq_set; /* initial set frequency switch */
/*
* Clock state machine variables
*/
int state = 0; /* clock discipline state */
u_char sys_poll; /* time constant/poll (log2 s) */
int tc_counter; /* jiggle counter */
double last_offset; /* last offset (s) */
u_int tc_twinlo; /* TC step down not before this time */
u_int tc_twinhi; /* TC step up not before this time */
/*
* Huff-n'-puff filter variables
*/
static double *sys_huffpuff; /* huff-n'-puff filter */
static int sys_hufflen; /* huff-n'-puff filter stages */
static int sys_huffptr; /* huff-n'-puff filter pointer */
static double sys_mindly; /* huff-n'-puff filter min delay */
#if defined(KERNEL_PLL)
/* Emacs cc-mode goes nuts if we split the next line... */
#define MOD_BITS (MOD_OFFSET | MOD_MAXERROR | MOD_ESTERROR | \
MOD_STATUS | MOD_TIMECONST)
#ifdef SIGSYS
static void pll_trap (int); /* configuration trap */
static struct sigaction sigsys; /* current sigaction status */
static struct sigaction newsigsys; /* new sigaction status */
static sigjmp_buf env; /* environment var. for pll_trap() */
#endif /* SIGSYS */
#endif /* KERNEL_PLL */
static void
sync_status(const char *what, int ostatus, int nstatus)
{
char obuf[256], nbuf[256], tbuf[1024];
#if defined(USE_SNPRINTB) && defined (STA_FMT)
snprintb(obuf, sizeof(obuf), STA_FMT, ostatus);
snprintb(nbuf, sizeof(nbuf), STA_FMT, nstatus);
#else
snprintf(obuf, sizeof(obuf), "%04x", ostatus);
snprintf(nbuf, sizeof(nbuf), "%04x", nstatus);
#endif
snprintf(tbuf, sizeof(tbuf), "%s status: %s -> %s", what, obuf, nbuf);
report_event(EVNT_KERN, NULL, tbuf);
}
/*
* file_name - return pointer to non-relative portion of this C file pathname
*/
static char *file_name(void)
{
if (this_file == NULL) {
(void)strncpy(relative_path, __FILE__, PATH_MAX);
for (this_file=relative_path;
*this_file && ! isalnum((unsigned char)*this_file);
this_file++) ;
}
return this_file;
}
/*
* init_loopfilter - initialize loop filter data
*/
void
init_loopfilter(void)
{
/*
* Initialize state variables.
*/
sys_poll = ntp_minpoll;
clock_jitter = LOGTOD(sys_precision);
freq_cnt = (int)clock_minstep;
}
#ifdef KERNEL_PLL
/*
* ntp_adjtime_error_handler - process errors from ntp_adjtime
*/
static void
ntp_adjtime_error_handler(
const char *caller, /* name of calling function */
struct timex *ptimex, /* pointer to struct timex */
int ret, /* return value from ntp_adjtime */
int saved_errno, /* value of errno when ntp_adjtime returned */
int pps_call, /* ntp_adjtime call was PPS-related */
int tai_call, /* ntp_adjtime call was TAI-related */
int line /* line number of ntp_adjtime call */
)
{
char des[1024] = ""; /* Decoded Error Status */
char *dbp, *ebp;
dbp = des;
ebp = dbp + sizeof(des);
switch (ret) {
case -1:
switch (saved_errno) {
case EFAULT:
msyslog(LOG_ERR, "%s: %s line %d: invalid struct timex pointer: 0x%lx",
caller, file_name(), line,
(long)((void *)ptimex)
);
break;
case EINVAL:
msyslog(LOG_ERR, "%s: %s line %d: invalid struct timex \"constant\" element value: %ld",
caller, file_name(), line,
(long)(ptimex->constant)
);
break;
case EPERM:
if (tai_call) {
errno = saved_errno;
msyslog(LOG_ERR,
"%s: ntp_adjtime(TAI) failed: %m",
caller);
}
errno = saved_errno;
msyslog(LOG_ERR, "%s: %s line %d: ntp_adjtime: %m",
caller, file_name(), line
);
break;
default:
msyslog(LOG_NOTICE, "%s: %s line %d: unhandled errno value %d after failed ntp_adjtime call",
caller, file_name(), line,
saved_errno
);
break;
}
break;
#ifdef TIME_OK
case TIME_OK: /* 0: synchronized, no leap second warning */
/* msyslog(LOG_INFO, "kernel reports time is synchronized normally"); */
break;
#else
# warning TIME_OK is not defined
#endif
#ifdef TIME_INS
case TIME_INS: /* 1: positive leap second warning */
msyslog(LOG_INFO, "kernel reports leap second insertion scheduled");
break;
#else
# warning TIME_INS is not defined
#endif
#ifdef TIME_DEL
case TIME_DEL: /* 2: negative leap second warning */
msyslog(LOG_INFO, "kernel reports leap second deletion scheduled");
break;
#else
# warning TIME_DEL is not defined
#endif
#ifdef TIME_OOP
case TIME_OOP: /* 3: leap second in progress */
msyslog(LOG_INFO, "kernel reports leap second in progress");
break;
#else
# warning TIME_OOP is not defined
#endif
#ifdef TIME_WAIT
case TIME_WAIT: /* 4: leap second has occured */
msyslog(LOG_INFO, "kernel reports leap second has occurred");
break;
#else
# warning TIME_WAIT is not defined
#endif
#ifdef TIME_ERROR
#if 0
from the reference implementation of ntp_gettime():
// Hardware or software error
if ((time_status & (STA_UNSYNC | STA_CLOCKERR))
/*
* PPS signal lost when either time or frequency synchronization
* requested
*/
|| (time_status & (STA_PPSFREQ | STA_PPSTIME)
&& !(time_status & STA_PPSSIGNAL))
/*
* PPS jitter exceeded when time synchronization requested
*/
|| (time_status & STA_PPSTIME &&
time_status & STA_PPSJITTER)
/*
* PPS wander exceeded or calibration error when frequency
* synchronization requested
*/
|| (time_status & STA_PPSFREQ &&
time_status & (STA_PPSWANDER | STA_PPSERROR)))
return (TIME_ERROR);
or, from ntp_adjtime():
if ( (time_status & (STA_UNSYNC | STA_CLOCKERR))
|| (time_status & (STA_PPSFREQ | STA_PPSTIME)
&& !(time_status & STA_PPSSIGNAL))
|| (time_status & STA_PPSTIME
&& time_status & STA_PPSJITTER)
|| (time_status & STA_PPSFREQ
&& time_status & (STA_PPSWANDER | STA_PPSERROR))
)
return (TIME_ERROR);
#endif
case TIME_ERROR: /* 5: unsynchronized, or loss of synchronization */
/* error (see status word) */
if (ptimex->status & STA_UNSYNC)
xsbprintf(&dbp, ebp, "%sClock Unsynchronized",
(*des) ? "; " : "");
if (ptimex->status & STA_CLOCKERR)
xsbprintf(&dbp, ebp, "%sClock Error",
(*des) ? "; " : "");
if (!(ptimex->status & STA_PPSSIGNAL)
&& ptimex->status & STA_PPSFREQ)
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but no PPS",
(*des) ? "; " : "");
if (!(ptimex->status & STA_PPSSIGNAL)
&& ptimex->status & STA_PPSTIME)
xsbprintf(&dbp, ebp, "%sPPS Time Sync wanted but no PPS signal",
(*des) ? "; " : "");
if ( ptimex->status & STA_PPSTIME
&& ptimex->status & STA_PPSJITTER)
xsbprintf(&dbp, ebp, "%sPPS Time Sync wanted but PPS Jitter exceeded",
(*des) ? "; " : "");
if ( ptimex->status & STA_PPSFREQ
&& ptimex->status & STA_PPSWANDER)
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but PPS Wander exceeded",
(*des) ? "; " : "");
if ( ptimex->status & STA_PPSFREQ
&& ptimex->status & STA_PPSERROR)
xsbprintf(&dbp, ebp, "%sPPS Frequency Sync wanted but Calibration error detected",
(*des) ? "; " : "");
if (pps_call && !(ptimex->status & STA_PPSSIGNAL))
report_event(EVNT_KERN, NULL,
"no PPS signal");
DPRINTF(1, ("kernel loop status %#x (%s)\n",
ptimex->status, des));
/*
* This code may be returned when ntp_adjtime() has just
* been called for the first time, quite a while after
* startup, when ntpd just starts to discipline the kernel
* time. In this case the occurrence of this message
* can be pretty confusing.
*
* HMS: How about a message when we begin kernel processing:
* Determining kernel clock state...
* so an initial TIME_ERROR message is less confising,
* or skipping the first message (ugh),
* or ???
* msyslog(LOG_INFO, "kernel reports time synchronization lost");
*/
msyslog(LOG_INFO, "kernel reports TIME_ERROR: %#x: %s",
ptimex->status, des);
break;
#else
# warning TIME_ERROR is not defined
#endif
default:
msyslog(LOG_NOTICE, "%s: %s line %d: unhandled return value %d from ntp_adjtime() in %s at line %d",
caller, file_name(), line,
ret,
__func__, __LINE__
);
break;
}
return;
}
#endif
/*
* local_clock - the NTP logical clock loop filter.
*
* Return codes:
* -1 update ignored: exceeds panic threshold
* 0 update ignored: popcorn or exceeds step threshold
* 1 clock was slewed
* 2 clock was stepped
*
* LOCKCLOCK: The only thing this routine does is set the
* sys_rootdisp variable equal to the peer dispersion.
*/
int
local_clock(
struct peer *peer, /* synch source peer structure */
double fp_offset /* clock offset (s) */
)
{
int rval; /* return code */
int osys_poll; /* old system poll */
int ntp_adj_ret; /* returned by ntp_adjtime */
double mu; /* interval since last update */
double clock_frequency; /* clock frequency */
double dtemp, etemp; /* double temps */
char tbuf[80]; /* report buffer */
(void)ntp_adj_ret; /* not always used below... */
/*
* If the loop is opened or the NIST LOCKCLOCK is in use,
* monitor and record the offsets anyway in order to determine
* the open-loop response and then go home.
*/
#ifndef LOCKCLOCK
if (!ntp_enable)
#endif /* not LOCKCLOCK */
{
record_loop_stats(fp_offset, drift_comp, clock_jitter,
clock_stability, sys_poll);
return (0);
}
#ifndef LOCKCLOCK
/*
* If the clock is way off, panic is declared. The clock_panic
* defaults to 1000 s; if set to zero, the panic will never
* occur. The allow_panic defaults to FALSE, so the first panic
* will exit. It can be set TRUE by a command line option, in
* which case the clock will be set anyway and time marches on.
* But, allow_panic will be set FALSE when the update is less
* than the step threshold; so, subsequent panics will exit.
*/
if (fabs(fp_offset) > clock_panic && clock_panic > 0 &&
!allow_panic) {
snprintf(tbuf, sizeof(tbuf),
"%+.0f s; set clock manually within %.0f s.",
fp_offset, clock_panic);
report_event(EVNT_SYSFAULT, NULL, tbuf);
return (-1);
}
allow_panic = FALSE;
/*
* This section simulates ntpdate. If the offset exceeds the
* step threshold (128 ms), step the clock to that time and
* exit. Otherwise, slew the clock to that time and exit. Note
* that the slew will persist and eventually complete beyond the
* life of this program. Note that while ntpdate is active, the
* terminal does not detach, so the termination message prints
* directly to the terminal.
*/
if (mode_ntpdate) {
if ( ( fp_offset > clock_max_fwd && clock_max_fwd > 0)
|| (-fp_offset > clock_max_back && clock_max_back > 0)) {
step_systime(fp_offset);
msyslog(LOG_NOTICE, "ntpd: time set %+.6f s",
fp_offset);
printf("ntpd: time set %+.6fs\n", fp_offset);
} else {
adj_systime(fp_offset);
msyslog(LOG_NOTICE, "ntpd: time slew %+.6f s",
fp_offset);
printf("ntpd: time slew %+.6fs\n", fp_offset);
}
record_loop_stats(fp_offset, drift_comp, clock_jitter,
clock_stability, sys_poll);
exit (0);
}
/*
* The huff-n'-puff filter finds the lowest delay in the recent
* interval. This is used to correct the offset by one-half the
* difference between the sample delay and minimum delay. This
* is most effective if the delays are highly assymetric and
* clockhopping is avoided and the clock frequency wander is
* relatively small.
*/
if (sys_huffpuff != NULL) {
if (peer->delay < sys_huffpuff[sys_huffptr])
sys_huffpuff[sys_huffptr] = peer->delay;
if (peer->delay < sys_mindly)
sys_mindly = peer->delay;
if (fp_offset > 0)
dtemp = -(peer->delay - sys_mindly) / 2;
else
dtemp = (peer->delay - sys_mindly) / 2;
fp_offset += dtemp;
DPRINTF(1, ("local_clock: size %d mindly %.6f huffpuff %.6f\n",
sys_hufflen, sys_mindly, dtemp));
}
/*
* Clock state machine transition function which defines how the
* system reacts to large phase and frequency excursion. There
* are two main regimes: when the offset exceeds the step
* threshold (128 ms) and when it does not. Under certain
* conditions updates are suspended until the stepout theshold
* (900 s) is exceeded. See the documentation on how these
* thresholds interact with commands and command line options.
*
* Note the kernel is disabled if step is disabled or greater
* than 0.5 s or in ntpdate mode.
*/
osys_poll = sys_poll;
if (sys_poll < peer->minpoll)
sys_poll = peer->minpoll;
if (sys_poll > peer->maxpoll)
sys_poll = peer->maxpoll;
mu = current_time - clock_epoch;
clock_frequency = drift_comp;
rval = 1;
if ( ( fp_offset > clock_max_fwd && clock_max_fwd > 0)
|| (-fp_offset > clock_max_back && clock_max_back > 0)
|| force_step_once ) {
if (force_step_once) {
force_step_once = FALSE; /* we want this only once after startup */
msyslog(LOG_NOTICE, "Doing intital time step" );
}
switch (state) {
/*
* In SYNC state we ignore the first outlier and switch
* to SPIK state.
*/
case EVNT_SYNC:
snprintf(tbuf, sizeof(tbuf), "%+.6f s",
fp_offset);
report_event(EVNT_SPIK, NULL, tbuf);
state = EVNT_SPIK;
return (0);
/*
* In FREQ state we ignore outliers and inlyers. At the
* first outlier after the stepout threshold, compute
* the apparent frequency correction and step the phase.
*/
case EVNT_FREQ:
if (mu < clock_minstep)
return (0);
clock_frequency = direct_freq(fp_offset);
/* fall through to EVNT_SPIK */
/*
* In SPIK state we ignore succeeding outliers until
* either an inlyer is found or the stepout threshold is
* exceeded.
*/
case EVNT_SPIK:
if (mu < clock_minstep)
return (0);
/* fall through to default */
/*
* We get here by default in NSET and FSET states and
* from above in FREQ or SPIK states.
*
* In NSET state an initial frequency correction is not
* available, usually because the frequency file has not
* yet been written. Since the time is outside the step
* threshold, the clock is stepped. The frequency will
* be set directly following the stepout interval.
*
* In FSET state the initial frequency has been set from
* the frequency file. Since the time is outside the
* step threshold, the clock is stepped immediately,
* rather than after the stepout interval. Guys get
* nervous if it takes 15 minutes to set the clock for
* the first time.
*
* In FREQ and SPIK states the stepout threshold has
* expired and the phase is still above the step
* threshold. Note that a single spike greater than the
* step threshold is always suppressed, even with a
* long time constant.
*/
default:
snprintf(tbuf, sizeof(tbuf), "%+.6f s",
fp_offset);
report_event(EVNT_CLOCKRESET, NULL, tbuf);
step_systime(fp_offset);
reinit_timer();
tc_counter = 0;
clock_jitter = LOGTOD(sys_precision);
rval = 2;
if (state == EVNT_NSET) {
rstclock(EVNT_FREQ, 0);
return (rval);
}
break;
}
rstclock(EVNT_SYNC, 0);
} else {
/*
* The offset is less than the step threshold. Calculate
* the jitter as the exponentially weighted offset
* differences.
*/
etemp = SQUARE(clock_jitter);
dtemp = SQUARE(max(fabs(fp_offset - last_offset),
LOGTOD(sys_precision)));
clock_jitter = SQRT(etemp + (dtemp - etemp) /
CLOCK_AVG);
switch (state) {
/*
* In NSET state this is the first update received and
* the frequency has not been initialized. Adjust the
* phase, but do not adjust the frequency until after
* the stepout threshold.
*/
case EVNT_NSET:
adj_systime(fp_offset);
rstclock(EVNT_FREQ, fp_offset);
break;
/*
* In FREQ state ignore updates until the stepout
* threshold. After that, compute the new frequency, but
* do not adjust the frequency until the holdoff counter
* decrements to zero.
*/
case EVNT_FREQ:
if (mu < clock_minstep)
return (0);
clock_frequency = direct_freq(fp_offset);
/* fall through */
/*
* We get here by default in FSET, SPIK and SYNC states.
* Here compute the frequency update due to PLL and FLL
* contributions. Note, we avoid frequency discipline at
* startup until the initial transient has subsided.
*/
default:
if (freq_cnt == 0) {
/*
* The FLL and PLL frequency gain constants
* depend on the time constant and Allan
* intercept. The PLL is always used, but
* becomes ineffective above the Allan intercept
* where the FLL becomes effective.
*/
if (sys_poll >= allan_xpt)
clock_frequency +=
(fp_offset - clock_offset)
/ ( max(ULOGTOD(sys_poll), mu)
* CLOCK_FLL);
/*
* The PLL frequency gain (numerator) depends on
* the minimum of the update interval and Allan
* intercept. This reduces the PLL gain when the
* FLL becomes effective.
*/
etemp = min(ULOGTOD(allan_xpt), mu);
dtemp = 4 * CLOCK_PLL * ULOGTOD(sys_poll);
clock_frequency +=
fp_offset * etemp / (dtemp * dtemp);
}
rstclock(EVNT_SYNC, fp_offset);
if (fabs(fp_offset) < CLOCK_FLOOR)
freq_cnt = 0;
break;
}
}
#ifdef KERNEL_PLL
/*
* This code segment works when clock adjustments are made using
* precision time kernel support and the ntp_adjtime() system
* call. This support is available in Solaris 2.6 and later,
* Digital Unix 4.0 and later, FreeBSD, Linux and specially
* modified kernels for HP-UX 9 and Ultrix 4. In the case of the
* DECstation 5000/240 and Alpha AXP, additional kernel
* modifications provide a true microsecond clock and nanosecond
* clock, respectively.
*
* Important note: The kernel discipline is used only if the
* step threshold is less than 0.5 s, as anything higher can
* lead to overflow problems. This might occur if some misguided
* lad set the step threshold to something ridiculous.
*/
if (pll_control && kern_enable && freq_cnt == 0) {
/*
* We initialize the structure for the ntp_adjtime()
* system call. We have to convert everything to
* microseconds or nanoseconds first. Do not update the
* system variables if the ext_enable flag is set. In
* this case, the external clock driver will update the
* variables, which will be read later by the local
* clock driver. Afterwards, remember the time and
* frequency offsets for jitter and stability values and
* to update the frequency file.
*/
ZERO(ntv);
if (ext_enable) {
ntv.modes = MOD_STATUS;
} else {
ntv.modes = MOD_BITS;
ntv.offset = var_long_from_dbl(
clock_offset, &ntv.modes);
#ifdef STA_NANO
ntv.constant = sys_poll;
#else /* STA_NANO */
ntv.constant = sys_poll - 4;
#endif /* STA_NANO */
if (ntv.constant < 0)
ntv.constant = 0;
ntv.esterror = usec_long_from_dbl(
clock_jitter);
ntv.maxerror = usec_long_from_dbl(
sys_rootdelay / 2 + sys_rootdisp);
ntv.status = STA_PLL;
/*
* Enable/disable the PPS if requested.
*/
if (hardpps_enable) {
ntv.status |= (STA_PPSTIME | STA_PPSFREQ);
if (!(pll_status & STA_PPSTIME))
sync_status("PPS enabled",
pll_status,
ntv.status);
} else {
ntv.status &= ~(STA_PPSTIME | STA_PPSFREQ);
if (pll_status & STA_PPSTIME)
sync_status("PPS disabled",
pll_status,
ntv.status);
}
if (sys_leap == LEAP_ADDSECOND)
ntv.status |= STA_INS;
else if (sys_leap == LEAP_DELSECOND)
ntv.status |= STA_DEL;
}
/*
* Pass the stuff to the kernel. If it squeals, turn off
* the pps. In any case, fetch the kernel offset,
* frequency and jitter.
*/
ntp_adj_ret = ntp_adjtime(&ntv);
/*
* A squeal is a return status < 0, or a state change.
*/
if ((0 > ntp_adj_ret) || (ntp_adj_ret != kernel_status)) {
kernel_status = ntp_adj_ret;
ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, hardpps_enable, 0, __LINE__ - 1);
}
pll_status = ntv.status;
clock_offset = dbl_from_var_long(ntv.offset, ntv.status);
clock_frequency = FREQTOD(ntv.freq);
/*
* If the kernel PPS is lit, monitor its performance.
*/
if (ntv.status & STA_PPSTIME) {
clock_jitter = dbl_from_var_long(
ntv.jitter, ntv.status);
}
#if defined(STA_NANO) && NTP_API == 4
/*
* If the TAI changes, update the kernel TAI.
*/
if (loop_tai != sys_tai) {
loop_tai = sys_tai;
ntv.modes = MOD_TAI;
ntv.constant = sys_tai;
if ((ntp_adj_ret = ntp_adjtime(&ntv)) != 0) {
ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, 0, 1, __LINE__ - 1);
}
}
#endif /* STA_NANO */
}
#endif /* KERNEL_PLL */
/*
* Clamp the frequency within the tolerance range and calculate
* the frequency difference since the last update.
*/
if (fabs(clock_frequency) > NTP_MAXFREQ)
msyslog(LOG_NOTICE,
"frequency error %.0f PPM exceeds tolerance %.0f PPM",
clock_frequency * 1e6, NTP_MAXFREQ * 1e6);
dtemp = SQUARE(clock_frequency - drift_comp);
if (clock_frequency > NTP_MAXFREQ)
drift_comp = NTP_MAXFREQ;
else if (clock_frequency < -NTP_MAXFREQ)
drift_comp = -NTP_MAXFREQ;
else
drift_comp = clock_frequency;
/*
* Calculate the wander as the exponentially weighted RMS
* frequency differences. Record the change for the frequency
* file update.
*/
etemp = SQUARE(clock_stability);
clock_stability = SQRT(etemp + (dtemp - etemp) / CLOCK_AVG);
/*
* Here we adjust the time constant by comparing the current
* offset with the clock jitter. If the offset is less than the
* clock jitter times a constant, then the averaging interval is
* increased, otherwise it is decreased. A bit of hysteresis
* helps calm the dance. Works best using burst mode. Don't
* fiddle with the poll during the startup clamp period.
* [Bug 3615] also observe time gates to avoid eager stepping
*/
if (freq_cnt > 0) {
tc_counter = 0;
tc_twinlo = current_time;
tc_twinhi = current_time;
} else if (fabs(clock_offset) < CLOCK_PGATE * clock_jitter) {
tc_counter += sys_poll;
if (tc_counter > CLOCK_LIMIT) {
tc_counter = CLOCK_LIMIT;
if (sys_poll < peer->maxpoll)
sys_poll += (current_time >= tc_twinhi);
}
} else {
tc_counter -= sys_poll << 1;
if (tc_counter < -CLOCK_LIMIT) {
tc_counter = -CLOCK_LIMIT;
if (sys_poll > peer->minpoll)
sys_poll -= (current_time >= tc_twinlo);
}
}
/*
* If the time constant has changed, update the poll variables.
*
* [bug 3615] also set new time gates
* The time limit for stepping down will be half the TC interval
* or 60 secs from now, whatever is bigger, and the step up time
* limit will be half the TC interval after the step down limit.
*
* The 'sys_poll' value affects the servo loop gain, and
* overshooting sys_poll slows it down unnecessarily. Stepping
* down too fast also has bad effects.
*
* The 'tc_counter' dance itself is something that *should*
* happen *once* every (1 << sys_poll) seconds, I think, but
* that's not how it works right now, and adding time guards
* seems the least intrusive way to handle this.
*/
if (osys_poll != sys_poll) {
u_int deadband = 1u << (sys_poll - 1);
tc_counter = 0;
tc_twinlo = current_time + max(deadband, 60);
tc_twinhi = tc_twinlo + deadband;
poll_update(peer, sys_poll, 0);
}
/*
* Yibbidy, yibbbidy, yibbidy; that'h all folks.
*/
record_loop_stats(clock_offset, drift_comp, clock_jitter,
clock_stability, sys_poll);
DPRINTF(1, ("local_clock: offset %.9f jit %.9f freq %.3f stab %.3f poll %d\n",
clock_offset, clock_jitter, drift_comp * 1e6,
clock_stability * 1e6, sys_poll));
return (rval);
#endif /* not LOCKCLOCK */
}
/*
* adj_host_clock - Called once every second to update the local clock.
*
* LOCKCLOCK: The only thing this routine does is increment the
* sys_rootdisp variable.
*/
void
adj_host_clock(
void
)
{
double offset_adj;
double freq_adj;
/*
* Update the dispersion since the last update. In contrast to
* NTPv3, NTPv4 does not declare unsynchronized after one day,
* since the dispersion check serves this function. Also,
* since the poll interval can exceed one day, the old test
* would be counterproductive. During the startup clamp period, the
* time constant is clamped at 2.
*/
sys_rootdisp += clock_phi;
#ifndef LOCKCLOCK
if (!ntp_enable || mode_ntpdate)
return;
/*
* Determine the phase adjustment. The gain factor (denominator)
* increases with poll interval, so is dominated by the FLL
* above the Allan intercept. Note the reduced time constant at
* startup.
*/
if (state != EVNT_SYNC) {
offset_adj = 0.;
} else if (freq_cnt > 0) {
offset_adj = clock_offset / (CLOCK_PLL * ULOGTOD(1));
freq_cnt--;
#ifdef KERNEL_PLL
} else if (pll_control && kern_enable) {
offset_adj = 0.;
#endif /* KERNEL_PLL */
} else {
offset_adj = clock_offset / (CLOCK_PLL * ULOGTOD(sys_poll));
}
/*
* If the kernel discipline is enabled the frequency correction
* drift_comp has already been engaged via ntp_adjtime() in
* set_freq(). Otherwise it is a component of the adj_systime()
* offset.
*/
#ifdef KERNEL_PLL
if (pll_control && kern_enable)
freq_adj = 0.;
else
#endif /* KERNEL_PLL */
freq_adj = drift_comp;
/* Bound absolute value of total adjustment to NTP_MAXFREQ. */
if (offset_adj + freq_adj > NTP_MAXFREQ)
offset_adj = NTP_MAXFREQ - freq_adj;
else if (offset_adj + freq_adj < -NTP_MAXFREQ)
offset_adj = -NTP_MAXFREQ - freq_adj;
clock_offset -= offset_adj;
/*
* Windows port adj_systime() must be called each second,
* even if the argument is zero, to ease emulation of
* adjtime() using Windows' slew API which controls the rate
* but does not automatically stop slewing when an offset
* has decayed to zero.
*/
DEBUG_INSIST(enable_panic_check == TRUE);
enable_panic_check = FALSE;
adj_systime(offset_adj + freq_adj);
enable_panic_check = TRUE;
#endif /* LOCKCLOCK */
}
/*
* Clock state machine. Enter new state and set state variables.
*/
static void
rstclock(
int trans, /* new state */
double offset /* new offset */
)
{
DPRINTF(2, ("rstclock: mu %lu state %d poll %d count %d\n",
current_time - clock_epoch, trans, sys_poll,
tc_counter));
if (trans != state && trans != EVNT_FSET)
report_event(trans, NULL, NULL);
state = trans;
last_offset = clock_offset = offset;
clock_epoch = current_time;
}
/*
* calc_freq - calculate frequency directly
*
* This is very carefully done. When the offset is first computed at the
* first update, a residual frequency component results. Subsequently,
* updates are suppresed until the end of the measurement interval while
* the offset is amortized. At the end of the interval the frequency is
* calculated from the current offset, residual offset, length of the
* interval and residual frequency component. At the same time the
* frequenchy file is armed for update at the next hourly stats.
*/
static double
direct_freq(
double fp_offset
)
{
set_freq(fp_offset / (current_time - clock_epoch));
return drift_comp;
}
/*
* set_freq - set clock frequency correction
*
* Used to step the frequency correction at startup, possibly again once
* the frequency is measured (that is, transitioning from EVNT_NSET to
* EVNT_FSET), and finally to switch between daemon and kernel loop
* discipline at runtime.
*
* When the kernel loop discipline is available but the daemon loop is
* in use, the kernel frequency correction is disabled (set to 0) to
* ensure drift_comp is applied by only one of the loops.
*/
static void
set_freq(
double freq /* frequency update */
)
{
const char * loop_desc;
int ntp_adj_ret;
(void)ntp_adj_ret; /* not always used below... */
drift_comp = freq;
loop_desc = "ntpd";
#ifdef KERNEL_PLL
if (pll_control) {
ZERO(ntv);
ntv.modes = MOD_FREQUENCY;
if (kern_enable) {
loop_desc = "kernel";
ntv.freq = DTOFREQ(drift_comp);
}
if ((ntp_adj_ret = ntp_adjtime(&ntv)) != 0) {
ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, 0, 0, __LINE__ - 1);
}
}
#endif /* KERNEL_PLL */
mprintf_event(EVNT_FSET, NULL, "%s %.3f PPM", loop_desc,
drift_comp * 1e6);
}
#ifdef KERNEL_PLL
static void
start_kern_loop(void)
{
static int atexit_done;
int ntp_adj_ret;
pll_control = TRUE;
ZERO(ntv);
ntv.modes = MOD_BITS;
ntv.status = STA_PLL | STA_UNSYNC;
ntv.maxerror = MAXDISPERSE * 1.0e6;
ntv.esterror = MAXDISPERSE * 1.0e6;
ntv.constant = sys_poll;
/* ^^^^^^^^ why is it that here constant is
* unconditionally set to sys_poll, whereas elsewhere is is
* modified depending on nanosecond vs. microsecond kernel?
*/
/*[bug 3699] make sure kernel PLL sees our initial drift compensation */
if (freq_set) {
ntv.modes |= MOD_FREQUENCY;
ntv.freq = DTOFREQ(drift_comp);
}
#ifdef SIGSYS
/*
* Use sigsetjmp() to save state and then call ntp_adjtime(); if
* it fails, then pll_trap() will set pll_control FALSE before
* returning control using siglogjmp().
*/
newsigsys.sa_handler = pll_trap;
newsigsys.sa_flags = 0;
if (sigaction(SIGSYS, &newsigsys, &sigsys)) {
msyslog(LOG_ERR, "sigaction() trap SIGSYS: %m");
pll_control = FALSE;
} else {
if (sigsetjmp(env, 1) == 0) {
if ((ntp_adj_ret = ntp_adjtime(&ntv)) != 0) {
ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, 0, 0, __LINE__ - 1);
}
}
if (sigaction(SIGSYS, &sigsys, NULL)) {
msyslog(LOG_ERR,
"sigaction() restore SIGSYS: %m");
pll_control = FALSE;
}
}
#else /* SIGSYS */
if ((ntp_adj_ret = ntp_adjtime(&ntv)) != 0) {
ntp_adjtime_error_handler(__func__, &ntv, ntp_adj_ret, errno, 0, 0, __LINE__ - 1);
}
#endif /* SIGSYS */
/*
* Save the result status and light up an external clock
* if available.
*/
pll_status = ntv.status;
if (pll_control) {
if (!atexit_done) {
atexit_done = TRUE;
atexit(&stop_kern_loop);
}
#ifdef STA_NANO
if (pll_status & STA_CLK)
ext_enable = TRUE;
#endif /* STA_NANO */
report_event(EVNT_KERN, NULL,
"kernel time sync enabled");
}
}
#endif /* KERNEL_PLL */
#ifdef KERNEL_PLL
static void
stop_kern_loop(void)
{
if (pll_control && kern_enable)
report_event(EVNT_KERN, NULL,
"kernel time sync disabled");
}
#endif /* KERNEL_PLL */
/*
* select_loop() - choose kernel or daemon loop discipline.
*/
void
select_loop(
int use_kern_loop
)
{
if (kern_enable == use_kern_loop)
return;
#ifdef KERNEL_PLL
if (pll_control && !use_kern_loop)
stop_kern_loop();
#endif
kern_enable = use_kern_loop;
#ifdef KERNEL_PLL
if (pll_control && use_kern_loop)
start_kern_loop();
#endif
/*
* If this loop selection change occurs after initial startup,
* call set_freq() to switch the frequency compensation to or
* from the kernel loop.
*/
#ifdef KERNEL_PLL
if (pll_control && loop_started)
set_freq(drift_comp);
#endif
}
/*
* huff-n'-puff filter
*/
void
huffpuff(void)
{
int i;
if (sys_huffpuff == NULL)
return;
sys_huffptr = (sys_huffptr + 1) % sys_hufflen;
sys_huffpuff[sys_huffptr] = 1e9;
sys_mindly = 1e9;
for (i = 0; i < sys_hufflen; i++) {
if (sys_huffpuff[i] < sys_mindly)
sys_mindly = sys_huffpuff[i];
}
}
/*
* loop_config - configure the loop filter
*
* LOCKCLOCK: The LOOP_DRIFTINIT and LOOP_DRIFTCOMP cases are no-ops.
*/
void
loop_config(
int item,
double freq
)
{
int i;
double ftemp;
DPRINTF(2, ("loop_config: item %d freq %f\n", item, freq));
switch (item) {
/*
* We first assume the kernel supports the ntp_adjtime()
* syscall. If that syscall works, initialize the kernel time
* variables. Otherwise, continue leaving no harm behind.
*/
case LOOP_DRIFTINIT:
#ifndef LOCKCLOCK
#ifdef KERNEL_PLL
if (mode_ntpdate)
break;
start_kern_loop();
#endif /* KERNEL_PLL */
/*
* Initialize frequency if given; otherwise, begin frequency
* calibration phase.
*/
ftemp = init_drift_comp / 1e6;
if (ftemp > NTP_MAXFREQ)
ftemp = NTP_MAXFREQ;
else if (ftemp < -NTP_MAXFREQ)
ftemp = -NTP_MAXFREQ;
set_freq(ftemp);
if (freq_set)
rstclock(EVNT_FSET, 0);
else
rstclock(EVNT_NSET, 0);
loop_started = TRUE;
#endif /* LOCKCLOCK */
break;
case LOOP_KERN_CLEAR:
#if 0 /* XXX: needs more review, and how can we get here? */
#ifndef LOCKCLOCK
# ifdef KERNEL_PLL
if (pll_control && kern_enable) {
memset((char *)&ntv, 0, sizeof(ntv));
ntv.modes = MOD_STATUS;
ntv.status = STA_UNSYNC;
ntp_adjtime(&ntv);
sync_status("kernel time sync disabled",
pll_status,
ntv.status);
}
# endif /* KERNEL_PLL */
#endif /* LOCKCLOCK */
#endif
break;
/*
* Tinker command variables for Ulrich Windl. Very dangerous.
*/
case LOOP_ALLAN: /* Allan intercept (log2) (allan) */
allan_xpt = (u_char)freq;
break;
case LOOP_CODEC: /* audio codec frequency (codec) */
clock_codec = freq / 1e6;
break;
case LOOP_PHI: /* dispersion threshold (dispersion) */
clock_phi = freq / 1e6;
break;
case LOOP_FREQ: /* initial frequency (freq) */
init_drift_comp = freq;
freq_set = 1;
break;
case LOOP_NOFREQ: /* remove any initial drift comp spec */
init_drift_comp = 0;
freq_set = 0;
break;
case LOOP_HUFFPUFF: /* huff-n'-puff length (huffpuff) */
if (freq < HUFFPUFF)
freq = HUFFPUFF;
sys_hufflen = (int)(freq / HUFFPUFF);
sys_huffpuff = eallocarray(sys_hufflen, sizeof(sys_huffpuff[0]));
for (i = 0; i < sys_hufflen; i++)
sys_huffpuff[i] = 1e9;
sys_mindly = 1e9;
break;
case LOOP_PANIC: /* panic threshold (panic) */
clock_panic = freq;
break;
case LOOP_MAX: /* step threshold (step) */
clock_max_fwd = clock_max_back = freq;
if (freq == 0 || freq > 0.5)
select_loop(FALSE);
break;
case LOOP_MAX_BACK: /* step threshold (step) */
clock_max_back = freq;
/*
* Leave using the kernel discipline code unless both
* limits are massive. This assumes the reason to stop
* using it is that it's pointless, not that it goes wrong.
*/
if ( (clock_max_back == 0 || clock_max_back > 0.5)
|| (clock_max_fwd == 0 || clock_max_fwd > 0.5))
select_loop(FALSE);
break;
case LOOP_MAX_FWD: /* step threshold (step) */
clock_max_fwd = freq;
if ( (clock_max_back == 0 || clock_max_back > 0.5)
|| (clock_max_fwd == 0 || clock_max_fwd > 0.5))
select_loop(FALSE);
break;
case LOOP_MINSTEP: /* stepout threshold (stepout) */
if (freq < CLOCK_MINSTEP)
clock_minstep = CLOCK_MINSTEP;
else
clock_minstep = freq;
break;
case LOOP_TICK: /* tick increment (tick) */
set_sys_tick_precision(freq);
break;
case LOOP_LEAP: /* not used, fall through */
default:
msyslog(LOG_NOTICE,
"loop_config: unsupported option %d", item);
}
}
#if defined(KERNEL_PLL) && defined(SIGSYS)
/*
* _trap - trap processor for undefined syscalls
*
* This nugget is called by the kernel when the SYS_ntp_adjtime()
* syscall bombs because the silly thing has not been implemented in
* the kernel. In this case the phase-lock loop is emulated by
* the stock adjtime() syscall and a lot of indelicate abuse.
*/
static RETSIGTYPE
pll_trap(
int arg
)
{
pll_control = FALSE;
siglongjmp(env, 1);
}
#endif /* KERNEL_PLL && SIGSYS */
diff --git a/contrib/ntp/ntpd/ntp_proto.c b/contrib/ntp/ntpd/ntp_proto.c
index ea72dd3d37ae..f2c59238432a 100644
--- a/contrib/ntp/ntpd/ntp_proto.c
+++ b/contrib/ntp/ntpd/ntp_proto.c
@@ -1,5464 +1,5465 @@
/*
* ntp_proto.c - NTP version 4 protocol machinery
*
* ATTENTION: Get approval from Harlan on all changes to this file!
* (Harlan will be discussing these changes with Dave Mills.)
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "ntpd.h"
#include "ntp_stdlib.h"
#include "ntp_unixtime.h"
#include "ntp_control.h"
#include "ntp_string.h"
#include "ntp_leapsec.h"
#include "ntp_psl.h"
#include "refidsmear.h"
#include "lib_strbuf.h"
#include <stdio.h>
#ifdef HAVE_LIBSCF_H
#include <libscf.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
/* [Bug 3031] define automatic broadcastdelay cutoff preset */
#ifndef BDELAY_DEFAULT
# define BDELAY_DEFAULT (-0.050)
#endif
#define SRVFUZ_SHIFT 6 /* 64 seconds */
#define SRVRSP_FUZZ(x) \
do { \
x.l_uf &= 0; \
x.l_ui &= ~((1 << SRVFUZ_SHIFT) - 1U); \
} while(0)
/*
* This macro defines the authentication state. If x is 1 authentication
* is required; otherwise it is optional.
*/
#define AUTH(x, y) ((x) ? (y) == AUTH_OK \
: (y) == AUTH_OK || (y) == AUTH_NONE)
typedef enum
auth_state {
AUTH_UNKNOWN = -1, /* Unknown */
AUTH_NONE, /* authentication not required */
AUTH_OK, /* authentication OK */
AUTH_ERROR, /* authentication error */
AUTH_CRYPTO /* crypto_NAK */
} auth_code;
/*
* Set up Kiss Code values
*/
typedef enum
kiss_codes {
NOKISS, /* No Kiss Code */
RATEKISS, /* Rate limit Kiss Code */
DENYKISS, /* Deny Kiss */
RSTRKISS, /* Restricted Kiss */
XKISS /* Experimental Kiss */
} kiss_code;
typedef enum
nak_error_codes {
NONAK, /* No NAK seen */
INVALIDNAK, /* NAK cannot be used */
VALIDNAK /* NAK is valid */
} nak_code;
/*
* traffic shaping parameters
*/
#define NTP_IBURST 6 /* packets in iburst */
#define RESP_DELAY 1 /* refclock burst delay (s) */
/*
* pool soliciting restriction duration (s)
*/
#define POOL_SOLICIT_WINDOW 8
/*
* flag bits propagated from pool/manycast to individual peers
*/
#define POOL_FLAG_PMASK (FLAG_IBURST | FLAG_NOSELECT)
/*
* peer_select groups statistics for a peer used by clock_select() and
* clock_cluster().
*/
typedef struct peer_select_tag {
struct peer * peer;
double synch; /* sync distance */
double error; /* jitter */
double seljit; /* selection jitter */
} peer_select;
/*
* System variables are declared here. Unless specified otherwise, all
* times are in seconds.
*/
u_char sys_leap; /* system leap indicator, use set_sys_leap() to change this */
u_char xmt_leap; /* leap indicator sent in client requests, set up by set_sys_leap() */
u_char sys_stratum; /* system stratum */
s_char sys_precision; /* local clock precision (log2 s) */
double sys_rootdelay; /* roundtrip delay to root (primary source) */
double sys_rootdisp; /* dispersion to root (primary source) */
double prev_rootdisp; /* previous root dispersion */
double p2_rootdisp; /* previous previous root dispersion */
u_int32 sys_refid; /* reference id (network byte order) */
l_fp sys_reftime; /* last update time */
l_fp prev_reftime; /* previous sys_reftime */
l_fp p2_reftime; /* previous previous sys_reftime */
u_long prev_time; /* "current_time" when saved prev_time */
u_long p2_time; /* previous prev_time */
struct peer *sys_peer; /* current peer */
#ifdef LEAP_SMEAR
struct leap_smear_info leap_smear;
#endif
int leap_sec_in_progress;
/*
* Rate controls. Leaky buckets are used to throttle the packet
* transmission rates in order to protect busy servers such as at NIST
* and USNO. There is a counter for each association and another for KoD
* packets. The association counter decrements each second, but not
* below zero. Each time a packet is sent the counter is incremented by
* a configurable value representing the average interval between
* packets. A packet is delayed as long as the counter is greater than
* zero. Note this does not affect the time value computations.
*/
/*
* Nonspecified system state variables
*/
int sys_bclient; /* broadcast client enable */
int sys_mclient; /* multicast client enable */
double sys_bdelay; /* broadcast client default delay */
int sys_authenticate; /* requre authentication for config */
l_fp sys_authdelay; /* authentication delay */
double sys_offset; /* current local clock offset */
double sys_mindisp = MINDISPERSE; /* minimum distance (s) */
double sys_maxdist = MAXDISTANCE; /* selection threshold */
double sys_jitter; /* system jitter */
u_long sys_epoch; /* last clock update time */
static double sys_clockhop; /* clockhop threshold */
static int leap_vote_ins; /* leap consensus for insert */
static int leap_vote_del; /* leap consensus for delete */
keyid_t sys_private; /* private value for session seed */
int sys_manycastserver; /* respond to manycast client pkts */
int ntp_mode7; /* respond to ntpdc (mode7) */
int peer_ntpdate; /* active peers in ntpdate mode */
int sys_survivors; /* truest of the truechimers */
char *sys_ident = NULL; /* identity scheme */
/*
* TOS and multicast mapping stuff
*/
int sys_floor = 0; /* cluster stratum floor */
u_char sys_bcpollbstep = 0; /* Broadcast Poll backstep gate */
int sys_ceiling = STRATUM_UNSPEC - 1; /* cluster stratum ceiling */
int sys_minsane = 1; /* minimum candidates */
int sys_minclock = NTP_MINCLOCK; /* minimum candidates */
int sys_maxclock = NTP_MAXCLOCK; /* maximum candidates */
int sys_cohort = 0; /* cohort switch */
int sys_orphan = STRATUM_UNSPEC + 1; /* orphan stratum */
int sys_orphwait = NTP_ORPHWAIT; /* orphan wait */
int sys_beacon = BEACON; /* manycast beacon interval */
u_int sys_ttlmax; /* max ttl mapping vector index */
u_char sys_ttl[MAX_TTL]; /* ttl mapping vector */
/*
* Statistics counters - first the good, then the bad
*/
u_long sys_stattime; /* elapsed time */
u_long sys_received; /* packets received */
u_long sys_processed; /* packets for this host */
u_long sys_newversion; /* current version */
u_long sys_oldversion; /* old version */
u_long sys_restricted; /* access denied */
u_long sys_badlength; /* bad length or format */
u_long sys_badauth; /* bad authentication */
u_long sys_declined; /* declined */
u_long sys_limitrejected; /* rate exceeded */
u_long sys_kodsent; /* KoD sent */
/*
* Mechanism knobs: how soon do we peer_clear() or unpeer()?
*
* The default way is "on-receipt". If this was a packet from a
* well-behaved source, on-receipt will offer the fastest recovery.
* If this was from a DoS attack, the default way makes it easier
* for a bad-guy to DoS us. So look and see what bites you harder
* and choose according to your environment.
*/
int peer_clear_digest_early = 1; /* bad digest (TEST5) and Autokey */
int unpeer_crypto_early = 1; /* bad crypto (TEST9) */
int unpeer_crypto_nak_early = 1; /* crypto_NAK (TEST5) */
int unpeer_digest_early = 1; /* bad digest (TEST5) */
int dynamic_interleave = DYNAMIC_INTERLEAVE; /* Bug 2978 mitigation */
int kiss_code_check(u_char hisleap, u_char hisstratum, u_char hismode, u_int32 refid);
nak_code valid_NAK (struct peer *peer, struct recvbuf *rbufp, u_char hismode);
static double root_distance (struct peer *);
static void clock_combine (peer_select *, int, int);
static void peer_xmit (struct peer *);
static void fast_xmit (struct recvbuf *, int, keyid_t, int);
static void pool_xmit (struct peer *);
static void clock_update (struct peer *);
static void measure_precision(void);
static double measure_tick_fuzz(void);
static int local_refid (struct peer *);
static int peer_unfit (struct peer *);
#ifdef AUTOKEY
static int group_test (char *, char *);
#endif /* AUTOKEY */
#ifdef WORKER
void pool_name_resolved (int, int, void *, const char *,
const char *, const struct addrinfo *,
const struct addrinfo *);
#endif /* WORKER */
const char * amtoa (int am);
void
set_sys_leap(
u_char new_sys_leap
)
{
sys_leap = new_sys_leap;
xmt_leap = sys_leap;
/*
* Under certain conditions we send faked leap bits to clients, so
* eventually change xmt_leap below, but never change LEAP_NOTINSYNC.
*/
if (xmt_leap != LEAP_NOTINSYNC) {
if (leap_sec_in_progress) {
/* always send "not sync" */
xmt_leap = LEAP_NOTINSYNC;
}
#ifdef LEAP_SMEAR
else {
/*
* If leap smear is enabled in general we must
* never send a leap second warning to clients,
* so make sure we only send "in sync".
*/
if (leap_smear.enabled)
xmt_leap = LEAP_NOWARNING;
}
#endif /* LEAP_SMEAR */
}
}
/*
* Kiss Code check
*/
int
kiss_code_check(
u_char hisleap,
u_char hisstratum,
u_char hismode,
u_int32 refid
)
{
if ( hismode == MODE_SERVER
&& hisleap == LEAP_NOTINSYNC
&& hisstratum == STRATUM_UNSPEC) {
if(memcmp(&refid,"RATE", 4) == 0) {
return (RATEKISS);
} else if(memcmp(&refid,"DENY", 4) == 0) {
return (DENYKISS);
} else if(memcmp(&refid,"RSTR", 4) == 0) {
return (RSTRKISS);
} else if(memcmp(&refid,"X", 1) == 0) {
return (XKISS);
}
}
return (NOKISS);
}
/*
* Check that NAK is valid
*/
nak_code
valid_NAK(
struct peer *peer,
struct recvbuf *rbufp,
u_char hismode
)
{
int base_packet_length = MIN_V4_PKT_LEN;
int remainder_size;
struct pkt * rpkt;
int keyid;
l_fp p_org; /* origin timestamp */
const l_fp * myorg; /* selected peer origin */
/*
* Check to see if there is something beyond the basic packet
*/
if (rbufp->recv_length == base_packet_length) {
return NONAK;
}
remainder_size = rbufp->recv_length - base_packet_length;
/*
* Is this a potential NAK?
*/
if (remainder_size != 4) {
return NONAK;
}
/*
* Only server responses can contain NAK's
*/
if (hismode != MODE_SERVER &&
hismode != MODE_ACTIVE &&
hismode != MODE_PASSIVE
) {
return INVALIDNAK;
}
/*
* Make sure that the extra field in the packet is all zeros
*/
rpkt = &rbufp->recv_pkt;
keyid = ntohl(((u_int32 *)rpkt)[base_packet_length / 4]);
if (keyid != 0) {
return INVALIDNAK;
}
/*
* During the first few packets of the autokey dance there will
* not (yet) be a keyid, but in this case FLAG_SKEY is set.
* So the NAK is invalid if either there's no peer, or
* if the keyid is 0 and FLAG_SKEY is not set.
*/
if (!peer || (!peer->keyid && !(peer->flags & FLAG_SKEY))) {
return INVALIDNAK;
}
/*
* The ORIGIN must match, or this cannot be a valid NAK, either.
*/
if (FLAG_LOOPNONCE & peer->flags) {
myorg = &peer->nonce;
} else {
if (peer->flip > 0) {
myorg = &peer->borg;
} else {
myorg = &peer->aorg;
}
}
NTOHL_FP(&rpkt->org, &p_org);
if (L_ISZERO(&p_org) ||
L_ISZERO( myorg) ||
!L_ISEQU(&p_org, myorg)) {
return INVALIDNAK;
}
/* If we ever passed all that checks, we should be safe. Well,
* as safe as we can ever be with an unauthenticated crypto-nak.
*/
return VALIDNAK;
}
/*
* transmit - transmit procedure called by poll timeout
*/
void
transmit(
struct peer *peer /* peer structure pointer */
)
{
u_char hpoll;
/*
* The polling state machine. There are two kinds of machines,
* those that never expect a reply (broadcast and manycast
* server modes) and those that do (all other modes). The dance
* is intricate...
*/
hpoll = peer->hpoll;
/*
* If we haven't received anything (even if unsync) since last
* send, reset ppoll.
*/
if (peer->outdate > peer->timelastrec && !peer->reach)
peer->ppoll = peer->maxpoll;
/*
* In broadcast mode the poll interval is never changed from
* minpoll.
*/
if (peer->cast_flags & (MDF_BCAST | MDF_MCAST)) {
peer->outdate = current_time;
poll_update(peer, hpoll, 0);
if (sys_leap != LEAP_NOTINSYNC)
peer_xmit(peer);
return;
}
/*
* In manycast mode we start with unity ttl. The ttl is
* increased by one for each poll until either sys_maxclock
* servers have been found or the maximum ttl is reached. When
* sys_maxclock servers are found we stop polling until one or
* more servers have timed out or until less than sys_minclock
* associations turn up. In this case additional better servers
* are dragged in and preempt the existing ones. Once every
* sys_beacon seconds we are to transmit unconditionally, but
* this code is not quite right -- peer->unreach counts polls
* and is being compared with sys_beacon, so the beacons happen
* every sys_beacon polls.
*/
if (peer->cast_flags & MDF_ACAST) {
peer->outdate = current_time;
poll_update(peer, hpoll, 0);
if (peer->unreach > sys_beacon) {
peer->unreach = 0;
peer->ttl = 0;
peer_xmit(peer);
} else if ( sys_survivors < sys_minclock
|| peer_associations < sys_maxclock) {
if (peer->ttl < sys_ttlmax)
peer->ttl++;
peer_xmit(peer);
}
peer->unreach++;
return;
}
/*
* Pool associations transmit unicast solicitations when there
* are less than a hard limit of 2 * sys_maxclock associations,
* and either less than sys_minclock survivors or less than
* sys_maxclock associations. The hard limit prevents unbounded
* growth in associations if the system clock or network quality
* result in survivor count dipping below sys_minclock often.
* This was observed testing with pool, where sys_maxclock == 12
* resulted in 60 associations without the hard limit. A
* similar hard limit on manycastclient ephemeral associations
* may be appropriate.
*/
if (peer->cast_flags & MDF_POOL) {
peer->outdate = current_time;
poll_update(peer, hpoll, 0);
if ( (peer_associations <= 2 * sys_maxclock)
&& ( peer_associations < sys_maxclock
|| sys_survivors < sys_minclock))
pool_xmit(peer);
return;
}
/*
* In unicast modes the dance is much more intricate. It is
* designed to back off whenever possible to minimize network
* traffic.
*/
if (peer->burst == 0) {
u_char oreach;
/*
* Update the reachability status. If not heard for
* three consecutive polls, stuff infinity in the clock
* filter.
*/
oreach = peer->reach;
peer->outdate = current_time;
peer->unreach++;
peer->reach <<= 1;
if (!peer->reach) {
/*
* Here the peer is unreachable. If it was
* previously reachable raise a trap. Send a
* burst if enabled.
*/
clock_filter(peer, 0., 0., MAXDISPERSE);
if (oreach) {
peer_unfit(peer);
report_event(PEVNT_UNREACH, peer, NULL);
}
if ( (peer->flags & FLAG_IBURST)
&& peer->retry == 0)
peer->retry = NTP_RETRY;
} else {
/*
* Here the peer is reachable. Send a burst if
* enabled and the peer is fit. Reset unreach
* for persistent and ephemeral associations.
* Unreach is also reset for survivors in
* clock_select().
*/
hpoll = sys_poll;
if (!(peer->flags & FLAG_PREEMPT))
peer->unreach = 0;
if ( (peer->flags & FLAG_BURST)
&& peer->retry == 0
&& !peer_unfit(peer))
peer->retry = NTP_RETRY;
}
/*
* Watch for timeout. If ephemeral, toss the rascal;
* otherwise, bump the poll interval. Note the
* poll_update() routine will clamp it to maxpoll.
* If preemptible and we have more peers than maxclock,
* and this peer has the minimum score of preemptibles,
* demobilize.
*/
if (peer->unreach >= NTP_UNREACH) {
hpoll++;
/* ephemeral: no FLAG_CONFIG nor FLAG_PREEMPT */
if (!(peer->flags & (FLAG_CONFIG | FLAG_PREEMPT))) {
report_event(PEVNT_RESTART, peer, "timeout");
peer_clear(peer, "TIME");
unpeer(peer);
return;
}
if ( (peer->flags & FLAG_PREEMPT)
&& (peer_associations > sys_maxclock)
&& score_all(peer)) {
report_event(PEVNT_RESTART, peer, "timeout");
peer_clear(peer, "TIME");
unpeer(peer);
return;
}
}
} else {
peer->burst--;
if (peer->burst == 0) {
/*
* If ntpdate mode and the clock has not been
* set and all peers have completed the burst,
* we declare a successful failure.
*/
if (mode_ntpdate) {
peer_ntpdate--;
if (peer_ntpdate == 0) {
msyslog(LOG_NOTICE,
"ntpd: no servers found");
if (!msyslog_term)
printf(
"ntpd: no servers found\n");
exit (0);
}
}
}
}
if (peer->retry > 0)
peer->retry--;
/*
* Do not transmit if in broadcast client mode.
*/
poll_update(peer, hpoll, (peer->hmode == MODE_CLIENT));
if (peer->hmode != MODE_BCLIENT)
peer_xmit(peer);
return;
}
const char *
amtoa(
int am
)
{
char *bp;
switch(am) {
case AM_ERR: return "AM_ERR";
case AM_NOMATCH: return "AM_NOMATCH";
case AM_PROCPKT: return "AM_PROCPKT";
case AM_BCST: return "AM_BCST";
case AM_FXMIT: return "AM_FXMIT";
case AM_MANYCAST: return "AM_MANYCAST";
case AM_NEWPASS: return "AM_NEWPASS";
case AM_NEWBCL: return "AM_NEWBCL";
case AM_POSSBCL: return "AM_POSSBCL";
default:
LIB_GETBUF(bp);
snprintf(bp, LIB_BUFLENGTH, "AM_#%d", am);
return bp;
}
}
/*
* receive - receive procedure called for each packet received
*/
void
receive(
struct recvbuf *rbufp
)
{
register struct peer *peer; /* peer structure pointer */
register struct pkt *pkt; /* receive packet pointer */
u_char hisversion; /* packet version */
u_char hisleap; /* packet leap indicator */
u_char hismode; /* packet mode */
u_char hisstratum; /* packet stratum */
r4addr r4a; /* address restrictions */
u_short restrict_mask; /* restrict bits */
const char *hm_str; /* hismode string */
const char *am_str; /* association match string */
int kissCode = NOKISS; /* Kiss Code */
int has_mac; /* length of MAC field */
int authlen; /* offset of MAC field */
auth_code is_authentic = AUTH_UNKNOWN; /* Was AUTH_NONE */
nak_code crypto_nak_test; /* result of crypto-NAK check */
int retcode = AM_NOMATCH; /* match code */
keyid_t skeyid = 0; /* key IDs */
u_int32 opcode = 0; /* extension field opcode */
sockaddr_u *dstadr_sin; /* active runway */
struct peer *peer2; /* aux peer structure pointer */
endpt *match_ep; /* newpeer() local address */
l_fp p_org; /* origin timestamp */
l_fp p_rec; /* receive timestamp */
l_fp p_xmt; /* transmit timestamp */
#ifdef AUTOKEY
char hostname[NTP_MAXSTRLEN + 1];
char *groupname = NULL;
struct autokey *ap; /* autokey structure pointer */
int rval; /* cookie snatcher */
keyid_t pkeyid = 0, tkeyid = 0; /* key IDs */
#endif /* AUTOKEY */
#ifdef HAVE_NTP_SIGND
static unsigned char zero_key[16];
#endif /* HAVE_NTP_SIGND */
/*
* Note that there are many places we do not call record_raw_stats().
*
* We only want to call it *after* we've sent a response, or perhaps
* when we've decided to drop a packet.
*/
/*
* Monitor the packet and get restrictions. Note that the packet
* length for control and private mode packets must be checked
* by the service routines. Some restrictions have to be handled
* later in order to generate a kiss-o'-death packet.
*/
/*
* Bogus port check is before anything, since it probably
* reveals a clogging attack. Likewise the mimimum packet size
* of 2 bytes (for mode 6/7) must be checked first.
*/
sys_received++;
if (0 == SRCPORT(&rbufp->recv_srcadr) || rbufp->recv_length < 2) {
sys_badlength++;
return; /* bogus port / length */
}
restrictions(&rbufp->recv_srcadr, &r4a);
restrict_mask = r4a.rflags;
pkt = &rbufp->recv_pkt;
hisversion = PKT_VERSION(pkt->li_vn_mode);
hismode = (int)PKT_MODE(pkt->li_vn_mode);
if (restrict_mask & RES_IGNORE) {
DPRINTF(2, ("receive: drop: RES_IGNORE\n"));
sys_restricted++;
return; /* ignore everything */
}
if (hismode == MODE_PRIVATE) {
if (!ntp_mode7 || (restrict_mask & RES_NOQUERY)) {
DPRINTF(2, ("receive: drop: RES_NOQUERY\n"));
sys_restricted++;
return; /* no query private */
}
process_private(rbufp, ((restrict_mask &
RES_NOMODIFY) == 0));
return;
}
if (hismode == MODE_CONTROL) {
if (restrict_mask & RES_NOQUERY) {
DPRINTF(2, ("receive: drop: RES_NOQUERY\n"));
sys_restricted++;
return; /* no query control */
}
process_control(rbufp, restrict_mask);
return;
}
if (restrict_mask & RES_DONTSERVE) {
DPRINTF(2, ("receive: drop: RES_DONTSERVE\n"));
sys_restricted++;
return; /* no time serve */
}
/* If we arrive here, we should have a standard NTP packet. We
* check that the minimum size is available and fetch some more
* items from the packet once we can be sure they are indeed
* there.
*/
if (rbufp->recv_length < LEN_PKT_NOMAC) {
sys_badlength++;
return; /* bogus length */
}
hisleap = PKT_LEAP(pkt->li_vn_mode);
hisstratum = PKT_TO_STRATUM(pkt->stratum);
INSIST(0 != hisstratum); /* paranoia check PKT_TO_STRATUM result */
DPRINTF(1, ("receive: at %ld %s<-%s ippeerlimit %d mode %d iflags %s "
"restrict %s org %#010x.%08x xmt %#010x.%08x\n",
current_time, stoa(&rbufp->dstadr->sin),
stoa(&rbufp->recv_srcadr), r4a.ippeerlimit, hismode,
build_iflags(rbufp->dstadr->flags),
build_rflags(restrict_mask),
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf)));
/*
* This is for testing. If restricted drop ten percent of
* surviving packets.
*/
if (restrict_mask & RES_FLAKE) {
if (ntp_uurandom() < .1) {
DPRINTF(2, ("receive: drop: RES_FLAKE\n"));
sys_restricted++;
return; /* no flakeway */
}
}
/*
** Format Layer Checks
**
** Validate the packet format. The packet size, packet header,
** and any extension field lengths are checked. We identify
** the beginning of the MAC, to identify the upper limit of
** of the hash computation.
**
** In case of a format layer check violation, the packet is
** discarded with no further processing.
*/
/*
* Version check must be after the query packets, since they
* intentionally use an early version.
*/
if (hisversion == NTP_VERSION) {
sys_newversion++; /* new version */
} else if ( !(restrict_mask & RES_VERSION)
&& hisversion >= NTP_OLDVERSION) {
sys_oldversion++; /* previous version */
} else {
DPRINTF(2, ("receive: drop: RES_VERSION\n"));
sys_badlength++;
return; /* old version */
}
/*
* Figure out his mode and validate the packet. This has some
* legacy raunch that probably should be removed. In very early
* NTP versions mode 0 was equivalent to what later versions
* would interpret as client mode.
*/
if (hismode == MODE_UNSPEC) {
if (hisversion == NTP_OLDVERSION) {
hismode = MODE_CLIENT;
} else {
DPRINTF(2, ("receive: drop: MODE_UNSPEC\n"));
sys_badlength++;
return; /* invalid mode */
}
}
/*
* Validate the poll interval in the packet.
* 0 probably indicates a data-minimized packet.
* A valid poll interval is required for RATEKISS, where
* a value of 0 is not allowed. We check for this below.
*
* There might be arguments against this check. If you have
* any of these arguments, please let us know.
*
* At this point, the packet cannot be a mode[67] packet.
*/
if ( pkt->ppoll
&& ( (NTP_MINPOLL > pkt->ppoll)
|| (NTP_MAXPOLL < pkt->ppoll)
)
) {
DPRINTF(2, ("receive: drop: Invalid ppoll (%d) from %s\n",
pkt->ppoll, stoa(&rbufp->recv_srcadr)));
sys_badlength++;
return; /* invalid packet poll */
}
/*
* Parse the extension field if present. We figure out whether
* an extension field is present by measuring the MAC size. If
* the number of words following the packet header is 0, no MAC
* is present and the packet is not authenticated. If 1, the
* packet is a crypto-NAK; if 3, the packet is authenticated
* with DES; if 5, the packet is authenticated with MD5; if 6,
* the packet is authenticated with SHA. If 2 or * 4, the packet
* is a runt and discarded forthwith. If greater than 6, an
* extension field is present, so we subtract the length of the
* field and go around again.
*
* Note the above description is lame. We should/could also check
* the two bytes that make up the EF type and subtype, and then
* check the two bytes that tell us the EF length. A legacy MAC
* has a 4 byte keyID, and for conforming symmetric keys its value
* must be <= 64k, meaning the top two bytes will always be zero.
* Since the EF Type of 0 is reserved/unused, there's no way a
* conforming legacy MAC could ever be misinterpreted as an EF.
*
* There is more, but this isn't the place to document it.
*/
authlen = LEN_PKT_NOMAC;
has_mac = rbufp->recv_length - authlen;
while (has_mac > 0) {
u_int32 len;
#ifdef AUTOKEY
u_int32 hostlen;
struct exten *ep;
#endif /*AUTOKEY */
if (has_mac % 4 != 0 || has_mac < (int)MIN_MAC_LEN) {
DPRINTF(2, ("receive: drop: bad post-packet length\n"));
sys_badlength++;
return; /* bad length */
}
/*
* This next test is clearly wrong - it needlessly
* prohibits short EFs (which don't yet exist)
*/
if (has_mac <= (int)MAX_MAC_LEN) {
skeyid = ntohl(((u_int32 *)pkt)[authlen / 4]);
break;
} else {
opcode = ntohl(((u_int32 *)pkt)[authlen / 4]);
len = opcode & 0xffff;
if ( len % 4 != 0
|| len < 4
|| (int)len + authlen > rbufp->recv_length) {
DPRINTF(2, ("receive: drop: bad EF length\n"));
sys_badlength++;
return; /* bad length */
}
#ifdef AUTOKEY
/*
* Extract calling group name for later. If
* sys_groupname is non-NULL, there must be
* a group name provided to elicit a response.
*/
if ( (opcode & 0x3fff0000) == CRYPTO_ASSOC
&& sys_groupname != NULL) {
ep = (struct exten *)&((u_int32 *)pkt)[authlen / 4];
hostlen = ntohl(ep->vallen);
if ( hostlen >= sizeof(hostname)
|| hostlen > len -
offsetof(struct exten, pkt)) {
DPRINTF(2, ("receive: drop: bad autokey hostname length\n"));
sys_badlength++;
return; /* bad length */
}
memcpy(hostname, &ep->pkt, hostlen);
hostname[hostlen] = '\0';
groupname = strchr(hostname, '@');
if (groupname == NULL) {
DPRINTF(2, ("receive: drop: empty autokey groupname\n"));
sys_declined++;
return;
}
groupname++;
}
#endif /* AUTOKEY */
authlen += len;
has_mac -= len;
}
}
/*
* If has_mac is < 0 we had a malformed packet.
*/
if (has_mac < 0) {
DPRINTF(2, ("receive: drop: post-packet under-read\n"));
sys_badlength++;
return; /* bad length */
}
/*
** Packet Data Verification Layer
**
** This layer verifies the packet data content. If
** authentication is required, a MAC must be present.
** If a MAC is present, it must validate.
** Crypto-NAK? Look - a shiny thing!
**
** If authentication fails, we're done.
*/
/*
* If authentication is explicitly required, a MAC must be present.
*/
if (restrict_mask & RES_DONTTRUST && has_mac == 0) {
DPRINTF(2, ("receive: drop: RES_DONTTRUST\n"));
sys_restricted++;
return; /* access denied */
}
/*
* Update the MRU list and finger the cloggers. It can be a
* little expensive, so turn it off for production use.
* RES_LIMITED and RES_KOD will be cleared in the returned
* restrict_mask unless one or both actions are warranted.
*/
restrict_mask = ntp_monitor(rbufp, restrict_mask);
if (restrict_mask & RES_LIMITED) {
sys_limitrejected++;
if ( !(restrict_mask & RES_KOD)
|| MODE_BROADCAST == hismode
|| MODE_SERVER == hismode) {
if (MODE_SERVER == hismode) {
DPRINTF(1, ("Possibly self-induced rate limiting of MODE_SERVER from %s\n",
stoa(&rbufp->recv_srcadr)));
} else {
DPRINTF(2, ("receive: drop: RES_KOD\n"));
}
return; /* rate exceeded */
}
if (hismode == MODE_CLIENT) {
fast_xmit(rbufp, MODE_SERVER, skeyid,
restrict_mask);
} else {
fast_xmit(rbufp, MODE_ACTIVE, skeyid,
restrict_mask);
}
return; /* rate exceeded */
}
restrict_mask &= ~RES_KOD;
/*
* We have tossed out as many buggy packets as possible early in
* the game to reduce the exposure to a clogging attack. Now we
* have to burn some cycles to find the association and
* authenticate the packet if required. Note that we burn only
* digest cycles, again to reduce exposure. There may be no
* matching association and that's okay.
*
* More on the autokey mambo. Normally the local interface is
* found when the association was mobilized with respect to a
* designated remote address. We assume packets arriving from
* the remote address arrive via this interface and the local
* address used to construct the autokey is the unicast address
* of the interface. However, if the sender is a broadcaster,
* the interface broadcast address is used instead.
* Notwithstanding this technobabble, if the sender is a
* multicaster, the broadcast address is null, so we use the
* unicast address anyway. Don't ask.
*/
peer = findpeer(rbufp, hismode, &retcode);
dstadr_sin = &rbufp->dstadr->sin;
NTOHL_FP(&pkt->org, &p_org);
NTOHL_FP(&pkt->rec, &p_rec);
NTOHL_FP(&pkt->xmt, &p_xmt);
hm_str = modetoa(hismode);
am_str = amtoa(retcode);
/*
* Authentication is conditioned by three switches:
*
* NOPEER (RES_NOPEER) do not mobilize an association unless
* authenticated
* NOTRUST (RES_DONTTRUST) do not allow access unless
* authenticated (implies NOPEER)
* enable (sys_authenticate) master NOPEER switch, by default
* on
*
* The NOPEER and NOTRUST can be specified on a per-client basis
* using the restrict command. The enable switch if on implies
* NOPEER for all clients. There are four outcomes:
*
* NONE The packet has no MAC.
* OK the packet has a MAC and authentication succeeds
* ERROR the packet has a MAC and authentication fails
* CRYPTO crypto-NAK. The MAC has four octets only.
*
* Note: The AUTH(x, y) macro is used to filter outcomes. If x
* is zero, acceptable outcomes of y are NONE and OK. If x is
* one, the only acceptable outcome of y is OK.
*/
crypto_nak_test = valid_NAK(peer, rbufp, hismode);
/*
* Drop any invalid crypto-NAKs
*/
if (crypto_nak_test == INVALIDNAK) {
report_event(PEVNT_AUTH, peer, "Invalid_NAK");
if (0 != peer) {
peer->badNAK++;
}
msyslog(LOG_ERR, "Invalid-NAK error at %ld %s<-%s",
current_time, stoa(dstadr_sin), stoa(&rbufp->recv_srcadr));
return;
}
if (has_mac == 0) {
restrict_mask &= ~RES_MSSNTP;
is_authentic = AUTH_NONE; /* not required */
DPRINTF(1, ("receive: at %ld %s<-%s mode %d/%s:%s len %d org %#010x.%08x xmt %#010x.%08x NOMAC\n",
current_time, stoa(dstadr_sin),
stoa(&rbufp->recv_srcadr), hismode, hm_str, am_str,
authlen,
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf)));
} else if (crypto_nak_test == VALIDNAK) {
restrict_mask &= ~RES_MSSNTP;
is_authentic = AUTH_CRYPTO; /* crypto-NAK */
DPRINTF(1, ("receive: at %ld %s<-%s mode %d/%s:%s keyid %08x len %d auth %d org %#010x.%08x xmt %#010x.%08x CRYPTONAK\n",
current_time, stoa(dstadr_sin),
stoa(&rbufp->recv_srcadr), hismode, hm_str, am_str,
skeyid, authlen + has_mac, is_authentic,
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf)));
#ifdef HAVE_NTP_SIGND
/*
* If the signature is 20 bytes long, the last 16 of
* which are zero, then this is a Microsoft client
* wanting AD-style authentication of the server's
* reply.
*
* This is described in Microsoft's WSPP docs, in MS-SNTP:
* http://msdn.microsoft.com/en-us/library/cc212930.aspx
*/
} else if ( has_mac == MAX_MD5_LEN
&& (restrict_mask & RES_MSSNTP)
&& (retcode == AM_FXMIT || retcode == AM_NEWPASS)
&& (memcmp(zero_key, (char *)pkt + authlen + 4,
MAX_MD5_LEN - 4) == 0)) {
is_authentic = AUTH_NONE;
DPRINTF(1, ("receive: at %ld %s<-%s mode %d/%s:%s len %d org %#010x.%08x xmt %#010x.%08x SIGND\n",
current_time, stoa(dstadr_sin),
stoa(&rbufp->recv_srcadr), hismode, hm_str, am_str,
authlen,
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf)));
#endif /* HAVE_NTP_SIGND */
} else {
/*
* has_mac is not 0
* Not a VALID_NAK
* Not an MS-SNTP SIGND packet
*
* So there is a MAC here.
*/
restrict_mask &= ~RES_MSSNTP;
#ifdef AUTOKEY
/*
* For autokey modes, generate the session key
* and install in the key cache. Use the socket
* broadcast or unicast address as appropriate.
*/
if (crypto_flags && skeyid > NTP_MAXKEY) {
/*
* More on the autokey dance (AKD). A cookie is
* constructed from public and private values.
* For broadcast packets, the cookie is public
* (zero). For packets that match no
* association, the cookie is hashed from the
* addresses and private value. For server
* packets, the cookie was previously obtained
* from the server. For symmetric modes, the
* cookie was previously constructed using an
* agreement protocol; however, should PKI be
* unavailable, we construct a fake agreement as
* the EXOR of the peer and host cookies.
*
* hismode ephemeral persistent
* =======================================
* active 0 cookie#
* passive 0% cookie#
* client sys cookie 0%
* server 0% sys cookie
* broadcast 0 0
*
* # if unsync, 0
* % can't happen
*/
if (has_mac < (int)MAX_MD5_LEN) {
DPRINTF(2, ("receive: drop: MD5 digest too short\n"));
sys_badauth++;
return;
}
if (hismode == MODE_BROADCAST) {
/*
* For broadcaster, use the interface
* broadcast address when available;
* otherwise, use the unicast address
* found when the association was
* mobilized. However, if this is from
* the wildcard interface, game over.
*/
if ( crypto_flags
&& rbufp->dstadr ==
ANY_INTERFACE_CHOOSE(&rbufp->recv_srcadr)) {
DPRINTF(2, ("receive: drop: BCAST from wildcard\n"));
sys_restricted++;
return; /* no wildcard */
}
pkeyid = 0;
if (!SOCK_UNSPEC(&rbufp->dstadr->bcast))
dstadr_sin =
&rbufp->dstadr->bcast;
} else if (peer == NULL) {
pkeyid = session_key(
&rbufp->recv_srcadr, dstadr_sin, 0,
sys_private, 0);
} else {
pkeyid = peer->pcookie;
}
/*
* The session key includes both the public
* values and cookie. In case of an extension
* field, the cookie used for authentication
* purposes is zero. Note the hash is saved for
* use later in the autokey mambo.
*/
if (authlen > (int)LEN_PKT_NOMAC && pkeyid != 0) {
session_key(&rbufp->recv_srcadr,
dstadr_sin, skeyid, 0, 2);
tkeyid = session_key(
&rbufp->recv_srcadr, dstadr_sin,
skeyid, pkeyid, 0);
} else {
tkeyid = session_key(
&rbufp->recv_srcadr, dstadr_sin,
skeyid, pkeyid, 2);
}
}
#endif /* AUTOKEY */
/*
* Compute the cryptosum. Note a clogging attack may
* succeed in bloating the key cache. If an autokey,
* purge it immediately, since we won't be needing it
* again. If the packet is authentic, it can mobilize an
* association. Note that there is no key zero.
*/
if (!authdecrypt(skeyid, (u_int32 *)pkt, authlen,
has_mac))
is_authentic = AUTH_ERROR;
else
is_authentic = AUTH_OK;
#ifdef AUTOKEY
if (crypto_flags && skeyid > NTP_MAXKEY)
authtrust(skeyid, 0);
#endif /* AUTOKEY */
DPRINTF(1, ("receive: at %ld %s<-%s mode %d/%s:%s keyid %08x len %d auth %d org %#010x.%08x xmt %#010x.%08x MAC\n",
current_time, stoa(dstadr_sin),
stoa(&rbufp->recv_srcadr), hismode, hm_str, am_str,
skeyid, authlen + has_mac, is_authentic,
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf)));
}
/*
* Bug 3454:
*
* Now come at this from a different perspective:
* - If we expect a MAC and it's not there, we drop it.
* - If we expect one keyID and get another, we drop it.
* - If we have a MAC ahd it hasn't been validated yet, try.
* - if the provided MAC doesn't validate, we drop it.
*
* There might be more to this.
*/
if (0 != peer && 0 != peer->keyid) {
/* Should we msyslog() any of these? */
/*
* This should catch:
* - no keyID where one is expected,
* - different keyID than what we expect.
*/
if (peer->keyid != skeyid) {
DPRINTF(2, ("receive: drop: Wanted keyID %d, got %d from %s\n",
peer->keyid, skeyid,
stoa(&rbufp->recv_srcadr)));
sys_restricted++;
return; /* drop: access denied */
}
/*
* if has_mac != 0 ...
* - If it has not yet been validated, do so.
* (under what circumstances might that happen?)
* - if missing or bad MAC, log and drop.
*/
if (0 != has_mac) {
if (is_authentic == AUTH_UNKNOWN) {
/* How can this happen? */
DPRINTF(2, ("receive: 3454 check: AUTH_UNKNOWN from %s\n",
stoa(&rbufp->recv_srcadr)));
if (!authdecrypt(skeyid, (u_int32 *)pkt, authlen,
has_mac)) {
/* MAC invalid or not found */
is_authentic = AUTH_ERROR;
} else {
is_authentic = AUTH_OK;
}
}
if (is_authentic != AUTH_OK) {
DPRINTF(2, ("receive: drop: missing or bad MAC from %s\n",
stoa(&rbufp->recv_srcadr)));
sys_restricted++;
return; /* drop: access denied */
}
}
}
/**/
/*
** On-Wire Protocol Layer
**
** Verify protocol operations consistent with the on-wire protocol.
** The protocol discards bogus and duplicate packets as well as
** minimizes disruptions doe to protocol restarts and dropped
** packets. The operations are controlled by two timestamps:
** the transmit timestamp saved in the client state variables,
** and the origin timestamp in the server packet header. The
** comparison of these two timestamps is called the loopback test.
** The transmit timestamp functions as a nonce to verify that the
** response corresponds to the original request. The transmit
** timestamp also serves to discard replays of the most recent
** packet. Upon failure of either test, the packet is discarded
** with no further action.
*/
/*
* The association matching rules are implemented by a set of
* routines and an association table. A packet matching an
* association is processed by the peer process for that
* association. If there are no errors, an ephemeral association
* is mobilized: a broadcast packet mobilizes a broadcast client
* aassociation; a manycast server packet mobilizes a manycast
* client association; a symmetric active packet mobilizes a
* symmetric passive association.
*/
DPRINTF(1, ("receive: MATCH_ASSOC dispatch: mode %d/%s:%s \n",
hismode, hm_str, am_str));
switch (retcode) {
/*
* This is a client mode packet not matching any association. If
* an ordinary client, simply toss a server mode packet back
* over the fence. If a manycast client, we have to work a
* little harder.
*
* There are cases here where we do not call record_raw_stats().
*/
case AM_FXMIT:
/*
* If authentication OK, send a server reply; otherwise,
* send a crypto-NAK.
*/
if (!(rbufp->dstadr->flags & INT_MCASTOPEN)) {
/* HMS: would be nice to log FAST_XMIT|BADAUTH|RESTRICTED */
record_raw_stats(&rbufp->recv_srcadr,
&rbufp->dstadr->sin,
&p_org, &p_rec, &p_xmt, &rbufp->recv_time,
PKT_LEAP(pkt->li_vn_mode),
PKT_VERSION(pkt->li_vn_mode),
PKT_MODE(pkt->li_vn_mode),
PKT_TO_STRATUM(pkt->stratum),
pkt->ppoll,
pkt->precision,
FPTOD(NTOHS_FP(pkt->rootdelay)),
FPTOD(NTOHS_FP(pkt->rootdisp)),
pkt->refid,
rbufp->recv_length - MIN_V4_PKT_LEN, (u_char *)&pkt->exten);
if (AUTH(restrict_mask & RES_DONTTRUST,
is_authentic)) {
/* Bug 3596: Do we want to fuzz the reftime? */
fast_xmit(rbufp, MODE_SERVER, skeyid,
restrict_mask);
} else if (is_authentic == AUTH_ERROR) {
/* Bug 3596: Do we want to fuzz the reftime? */
fast_xmit(rbufp, MODE_SERVER, 0,
restrict_mask);
sys_badauth++;
} else {
DPRINTF(2, ("receive: AM_FXMIT drop: !mcast restricted\n"));
sys_restricted++;
}
return; /* hooray */
}
/*
* This must be manycast. Do not respond if not
* configured as a manycast server.
*/
if (!sys_manycastserver) {
DPRINTF(2, ("receive: AM_FXMIT drop: Not manycastserver\n"));
sys_restricted++;
return; /* not enabled */
}
#ifdef AUTOKEY
/*
* Do not respond if not the same group.
*/
if (group_test(groupname, NULL)) {
DPRINTF(2, ("receive: AM_FXMIT drop: empty groupname\n"));
sys_declined++;
return;
}
#endif /* AUTOKEY */
/*
* Do not respond if we are not synchronized or our
* stratum is greater than the manycaster or the
* manycaster has already synchronized to us.
*/
if ( sys_leap == LEAP_NOTINSYNC
|| sys_stratum >= hisstratum
|| (!sys_cohort && sys_stratum == hisstratum + 1)
|| rbufp->dstadr->addr_refid == pkt->refid) {
DPRINTF(2, ("receive: sys leap: %0x, sys_stratum %d > hisstratum+1 %d, !sys_cohort %d && sys_stratum == hisstratum+1, loop refid %#x == pkt refid %#x\n", sys_leap, sys_stratum, hisstratum + 1, !sys_cohort, rbufp->dstadr->addr_refid, pkt->refid));
DPRINTF(2, ("receive: AM_FXMIT drop: LEAP_NOTINSYNC || stratum || loop\n"));
sys_declined++;
return; /* no help */
}
/*
* Respond only if authentication succeeds. Don't do a
* crypto-NAK, as that would not be useful.
*/
if (AUTH(restrict_mask & RES_DONTTRUST, is_authentic)) {
record_raw_stats(&rbufp->recv_srcadr,
&rbufp->dstadr->sin,
&p_org, &p_rec, &p_xmt, &rbufp->recv_time,
PKT_LEAP(pkt->li_vn_mode),
PKT_VERSION(pkt->li_vn_mode),
PKT_MODE(pkt->li_vn_mode),
PKT_TO_STRATUM(pkt->stratum),
pkt->ppoll,
pkt->precision,
FPTOD(NTOHS_FP(pkt->rootdelay)),
FPTOD(NTOHS_FP(pkt->rootdisp)),
pkt->refid,
rbufp->recv_length - MIN_V4_PKT_LEN, (u_char *)&pkt->exten);
/* Bug 3596: Do we want to fuzz the reftime? */
fast_xmit(rbufp, MODE_SERVER, skeyid,
restrict_mask);
}
return; /* hooray */
/*
* This is a server mode packet returned in response to a client
* mode packet sent to a multicast group address (for
* manycastclient) or to a unicast address (for pool). The
* origin timestamp is a good nonce to reliably associate the
* reply with what was sent. If there is no match, that's
* curious and could be an intruder attempting to clog, so we
* just ignore it.
*
* If the packet is authentic and the manycastclient or pool
* association is found, we mobilize a client association and
* copy pertinent variables from the manycastclient or pool
* association to the new client association. If not, just
* ignore the packet.
*
* There is an implosion hazard at the manycast client, since
* the manycast servers send the server packet immediately. If
* the guy is already here, don't fire up a duplicate.
*
* There are cases here where we do not call record_raw_stats().
*/
case AM_MANYCAST:
#ifdef AUTOKEY
/*
* Do not respond if not the same group.
*/
if (group_test(groupname, NULL)) {
DPRINTF(2, ("receive: AM_MANYCAST drop: empty groupname\n"));
sys_declined++;
return;
}
#endif /* AUTOKEY */
if ((peer2 = findmanycastpeer(rbufp)) == NULL) {
DPRINTF(2, ("receive: AM_MANYCAST drop: No manycast peer\n"));
sys_restricted++;
return; /* not enabled */
}
if (!AUTH( (!(peer2->cast_flags & MDF_POOL)
&& sys_authenticate)
|| (restrict_mask & (RES_NOPEER |
RES_DONTTRUST)), is_authentic)
/* MC: RES_NOEPEER? */
) {
DPRINTF(2, ("receive: AM_MANYCAST drop: bad auth || (NOPEER|DONTTRUST)\n"));
sys_restricted++;
return; /* access denied */
}
/*
* Do not respond if unsynchronized or stratum is below
* the floor or at or above the ceiling.
*/
if ( hisleap == LEAP_NOTINSYNC
|| hisstratum < sys_floor
|| hisstratum >= sys_ceiling) {
DPRINTF(2, ("receive: AM_MANYCAST drop: unsync/stratum\n"));
sys_declined++;
return; /* no help */
}
peer = newpeer(&rbufp->recv_srcadr, NULL, rbufp->dstadr,
r4a.ippeerlimit, MODE_CLIENT, hisversion,
peer2->minpoll, peer2->maxpoll,
(FLAG_PREEMPT | (POOL_FLAG_PMASK & peer2->flags)),
(MDF_UCAST | MDF_UCLNT), 0, skeyid, sys_ident);
if (NULL == peer) {
DPRINTF(2, ("receive: AM_MANYCAST drop: duplicate\n"));
sys_declined++;
return; /* ignore duplicate */
}
/*
* After each ephemeral pool association is spun,
* accelerate the next poll for the pool solicitor so
* the pool will fill promptly.
*/
if (peer2->cast_flags & MDF_POOL)
peer2->nextdate = current_time + 1;
/*
* Further processing of the solicitation response would
* simply detect its origin timestamp as bogus for the
* brand-new association (it matches the prototype
* association) and tinker with peer->nextdate delaying
* first sync.
*/
return; /* solicitation response handled */
/*
* This is the first packet received from a broadcast server. If
* the packet is authentic and we are enabled as broadcast
* client, mobilize a broadcast client association. We don't
* kiss any frogs here.
*
* There are cases here where we do not call record_raw_stats().
*/
case AM_NEWBCL:
#ifdef AUTOKEY
/*
* Do not respond if not the same group.
*/
if (group_test(groupname, sys_ident)) {
DPRINTF(2, ("receive: AM_NEWBCL drop: groupname mismatch\n"));
sys_declined++;
return;
}
#endif /* AUTOKEY */
if (!sys_bclient && !sys_mclient) {
DPRINTF(2, ("receive: AM_NEWBCL drop: not a bclient/mclient\n"));
sys_restricted++;
return; /* not enabled */
}
if (!AUTH(sys_authenticate | (restrict_mask &
(RES_NOPEER | RES_DONTTRUST)), is_authentic)
/* NEWBCL: RES_NOEPEER? */
) {
DPRINTF(2, ("receive: AM_NEWBCL drop: AUTH failed\n"));
sys_restricted++;
return; /* access denied */
}
/*
* Do not respond if unsynchronized or stratum is below
* the floor or at or above the ceiling.
*/
if ( hisleap == LEAP_NOTINSYNC
|| hisstratum < sys_floor
|| hisstratum >= sys_ceiling) {
DPRINTF(2, ("receive: AM_NEWBCL drop: Unsync or bad stratum\n"));
sys_declined++;
return; /* no help */
}
#ifdef AUTOKEY
/*
* Do not respond if Autokey and the opcode is not a
* CRYPTO_ASSOC response with association ID.
*/
if ( crypto_flags && skeyid > NTP_MAXKEY
&& (opcode & 0xffff0000) != (CRYPTO_ASSOC | CRYPTO_RESP)) {
DPRINTF(2, ("receive: AM_NEWBCL drop: Autokey but not CRYPTO_ASSOC\n"));
sys_declined++;
return; /* protocol error */
}
#endif /* AUTOKEY */
/*
* Broadcasts received via a multicast address may
* arrive after a unicast volley has begun
* with the same remote address. newpeer() will not
* find duplicate associations on other local endpoints
* if a non-NULL endpoint is supplied. multicastclient
* ephemeral associations are unique across all local
* endpoints.
*/
if (!(INT_MCASTOPEN & rbufp->dstadr->flags))
match_ep = rbufp->dstadr;
else
match_ep = NULL;
/*
* Determine whether to execute the initial volley.
*/
if (sys_bdelay > 0.0) {
#ifdef AUTOKEY
/*
* If a two-way exchange is not possible,
* neither is Autokey.
*/
if (crypto_flags && skeyid > NTP_MAXKEY) {
sys_restricted++;
DPRINTF(2, ("receive: AM_NEWBCL drop: Autokey but not 2-way\n"));
return; /* no autokey */
}
#endif /* AUTOKEY */
/*
* Do not execute the volley. Start out in
* broadcast client mode.
*/
peer = newpeer(&rbufp->recv_srcadr, NULL, match_ep,
r4a.ippeerlimit, MODE_BCLIENT, hisversion,
pkt->ppoll, pkt->ppoll,
FLAG_PREEMPT, MDF_BCLNT, 0, skeyid, sys_ident);
if (NULL == peer) {
DPRINTF(2, ("receive: AM_NEWBCL drop: duplicate\n"));
sys_restricted++;
return; /* ignore duplicate */
} else {
peer->delay = sys_bdelay;
peer->bxmt = p_xmt;
}
break;
}
/*
* Execute the initial volley in order to calibrate the
* propagation delay and run the Autokey protocol.
*
* Note that the minpoll is taken from the broadcast
* packet, normally 6 (64 s) and that the poll interval
* is fixed at this value.
*/
peer = newpeer(&rbufp->recv_srcadr, NULL, match_ep,
r4a.ippeerlimit, MODE_CLIENT, hisversion,
pkt->ppoll, pkt->ppoll,
FLAG_BC_VOL | FLAG_IBURST | FLAG_PREEMPT, MDF_BCLNT,
0, skeyid, sys_ident);
if (NULL == peer) {
DPRINTF(2, ("receive: AM_NEWBCL drop: empty newpeer() failed\n"));
sys_restricted++;
return; /* ignore duplicate */
}
peer->bxmt = p_xmt;
#ifdef AUTOKEY
if (skeyid > NTP_MAXKEY)
crypto_recv(peer, rbufp);
#endif /* AUTOKEY */
return; /* hooray */
/*
* This is the first packet received from a potential ephemeral
* symmetric active peer. First, deal with broken Windows clients.
* Then, if NOEPEER is enabled, drop it. If the packet meets our
* authenticty requirements and is the first he sent, mobilize
* a passive association.
* Otherwise, kiss the frog.
*
* There are cases here where we do not call record_raw_stats().
*/
case AM_NEWPASS:
DEBUG_REQUIRE(MODE_ACTIVE == hismode);
#ifdef AUTOKEY
/*
* Do not respond if not the same group.
*/
if (group_test(groupname, sys_ident)) {
DPRINTF(2, ("receive: AM_NEWPASS drop: Autokey group mismatch\n"));
sys_declined++;
return;
}
#endif /* AUTOKEY */
if (!AUTH(sys_authenticate | (restrict_mask &
(RES_NOPEER | RES_DONTTRUST)), is_authentic)
) {
/*
* If authenticated but cannot mobilize an
* association, send a symmetric passive
* response without mobilizing an association.
* This is for drat broken Windows clients. See
* Microsoft KB 875424 for preferred workaround.
*/
if (AUTH(restrict_mask & RES_DONTTRUST,
is_authentic)) {
fast_xmit(rbufp, MODE_PASSIVE, skeyid,
restrict_mask);
return; /* hooray */
}
/* HMS: Why is this next set of lines a feature? */
if (is_authentic == AUTH_ERROR) {
fast_xmit(rbufp, MODE_PASSIVE, 0,
restrict_mask);
sys_restricted++;
return;
}
if (restrict_mask & RES_NOEPEER) {
DPRINTF(2, ("receive: AM_NEWPASS drop: NOEPEER\n"));
sys_declined++;
return;
}
/* [Bug 2941]
* If we got here, the packet isn't part of an
* existing association, either isn't correctly
* authenticated or it is but we are refusing
* ephemeral peer requests, and it didn't meet
* either of the previous two special cases so we
* should just drop it on the floor. For example,
* crypto-NAKs (is_authentic == AUTH_CRYPTO)
* will make it this far. This is just
* debug-printed and not logged to avoid log
* flooding.
*/
DPRINTF(2, ("receive: at %ld refusing to mobilize passive association"
" with unknown peer %s mode %d/%s:%s keyid %08x len %d auth %d\n",
current_time, stoa(&rbufp->recv_srcadr),
hismode, hm_str, am_str, skeyid,
(authlen + has_mac), is_authentic));
sys_declined++;
return;
}
if (restrict_mask & RES_NOEPEER) {
DPRINTF(2, ("receive: AM_NEWPASS drop: NOEPEER\n"));
sys_declined++;
return;
}
/*
* Do not respond if synchronized and if stratum is
* below the floor or at or above the ceiling. Note,
* this allows an unsynchronized peer to synchronize to
* us. It would be very strange if he did and then was
* nipped, but that could only happen if we were
* operating at the top end of the range. It also means
* we will spin an ephemeral association in response to
* MODE_ACTIVE KoDs, which will time out eventually.
*/
if ( hisleap != LEAP_NOTINSYNC
&& (hisstratum < sys_floor || hisstratum >= sys_ceiling)) {
DPRINTF(2, ("receive: AM_NEWPASS drop: Remote stratum (%d) out of range\n",
hisstratum));
sys_declined++;
return; /* no help */
}
/*
* The message is correctly authenticated and allowed.
* Mobilize a symmetric passive association, if we won't
* exceed the ippeerlimit.
*/
if ((peer = newpeer(&rbufp->recv_srcadr, NULL, rbufp->dstadr,
r4a.ippeerlimit, MODE_PASSIVE, hisversion,
pkt->ppoll, NTP_MAXDPOLL, 0, MDF_UCAST, 0,
skeyid, sys_ident)) == NULL) {
DPRINTF(2, ("receive: AM_NEWPASS drop: newpeer() failed\n"));
sys_declined++;
return; /* ignore duplicate */
}
break;
/*
* Process regular packet. Nothing special.
*
* There are cases here where we do not call record_raw_stats().
*/
case AM_PROCPKT:
#ifdef AUTOKEY
/*
* Do not respond if not the same group.
*/
if (group_test(groupname, peer->ident)) {
DPRINTF(2, ("receive: AM_PROCPKT drop: Autokey group mismatch\n"));
sys_declined++;
return;
}
#endif /* AUTOKEY */
if (MODE_BROADCAST == hismode) {
int bail = 0;
l_fp tdiff;
u_long deadband;
DPRINTF(2, ("receive: PROCPKT/BROADCAST: prev pkt %ld seconds ago, ppoll: %d, %d secs\n",
(current_time - peer->timelastrec),
peer->ppoll, (1 << peer->ppoll)
));
/* Things we can check:
*
* Did the poll interval change?
* Is the poll interval in the packet in-range?
* Did this packet arrive too soon?
* Is the timestamp in this packet monotonic
* with respect to the previous packet?
*/
/* This is noteworthy, not error-worthy */
if (pkt->ppoll != peer->ppoll) {
msyslog(LOG_INFO, "receive: broadcast poll from %s changed from %u to %u",
stoa(&rbufp->recv_srcadr),
peer->ppoll, pkt->ppoll);
}
/* This is error-worthy */
if ( pkt->ppoll < peer->minpoll
|| pkt->ppoll > peer->maxpoll) {
msyslog(LOG_INFO, "receive: broadcast poll of %u from %s is out-of-range (%d to %d)!",
pkt->ppoll, stoa(&rbufp->recv_srcadr),
peer->minpoll, peer->maxpoll);
++bail;
}
/* too early? worth an error, too!
*
* [Bug 3113] Ensure that at least one poll
* interval has elapsed since the last **clean**
* packet was received. We limit the check to
* **clean** packets to prevent replayed packets
* and incorrectly authenticated packets, which
* we'll discard, from being used to create a
* denial of service condition.
*/
deadband = (1u << pkt->ppoll);
if (FLAG_BC_VOL & peer->flags)
deadband -= 3; /* allow greater fuzz after volley */
if ((current_time - peer->timereceived) < deadband) {
msyslog(LOG_INFO, "receive: broadcast packet from %s arrived after %lu, not %lu seconds!",
stoa(&rbufp->recv_srcadr),
(current_time - peer->timereceived),
deadband);
++bail;
}
/* Alert if time from the server is non-monotonic.
*
* [Bug 3114] is about Broadcast mode replay DoS.
*
* Broadcast mode *assumes* a trusted network.
* Even so, it's nice to be robust in the face
* of attacks.
*
* If we get an authenticated broadcast packet
* with an "earlier" timestamp, it means one of
* two things:
*
* - the broadcast server had a backward step.
*
* - somebody is trying a replay attack.
*
* deadband: By default, we assume the broadcast
* network is trustable, so we take our accepted
* broadcast packets as we receive them. But
* some folks might want to take additional poll
* delays before believing a backward step.
*/
if (sys_bcpollbstep) {
/* pkt->ppoll or peer->ppoll ? */
deadband = (1u << pkt->ppoll)
* sys_bcpollbstep + 2;
} else {
deadband = 0;
}
if (L_ISZERO(&peer->bxmt)) {
tdiff.l_ui = tdiff.l_uf = 0;
} else {
tdiff = p_xmt;
L_SUB(&tdiff, &peer->bxmt);
}
if ( tdiff.l_i < 0
&& (current_time - peer->timereceived) < deadband)
{
msyslog(LOG_INFO, "receive: broadcast packet from %s contains non-monotonic timestamp: %#010x.%08x -> %#010x.%08x",
stoa(&rbufp->recv_srcadr),
peer->bxmt.l_ui, peer->bxmt.l_uf,
p_xmt.l_ui, p_xmt.l_uf
);
++bail;
}
if (bail) {
DPRINTF(2, ("receive: AM_PROCPKT drop: bail\n"));
peer->timelastrec = current_time;
sys_declined++;
return;
}
}
break;
/*
* A passive packet matches a passive association. This is
* usually the result of reconfiguring a client on the fly. As
* this association might be legitimate and this packet an
* attempt to deny service, just ignore it.
*/
case AM_ERR:
DPRINTF(2, ("receive: AM_ERR drop.\n"));
sys_declined++;
return;
/*
* For everything else there is the bit bucket.
*/
default:
DPRINTF(2, ("receive: default drop.\n"));
sys_declined++;
return;
}
#ifdef AUTOKEY
/*
* If the association is configured for Autokey, the packet must
* have a public key ID; if not, the packet must have a
* symmetric key ID.
*/
if ( is_authentic != AUTH_CRYPTO
&& ( ((peer->flags & FLAG_SKEY) && skeyid <= NTP_MAXKEY)
|| (!(peer->flags & FLAG_SKEY) && skeyid > NTP_MAXKEY))) {
DPRINTF(2, ("receive: drop: Autokey but wrong/bad auth\n"));
sys_badauth++;
return;
}
#endif /* AUTOKEY */
peer->received++;
peer->flash &= ~PKT_TEST_MASK;
if (peer->flags & FLAG_XBOGUS) {
peer->flags &= ~FLAG_XBOGUS;
peer->flash |= TEST3;
}
/*
* Next comes a rigorous schedule of timestamp checking. If the
* transmit timestamp is zero, the server has not initialized in
* interleaved modes or is horribly broken.
*
* A KoD packet we pay attention to cannot have a 0 transmit
* timestamp.
*/
kissCode = kiss_code_check(hisleap, hisstratum, hismode, pkt->refid);
if (L_ISZERO(&p_xmt)) {
peer->flash |= TEST3; /* unsynch */
if (kissCode != NOKISS) { /* KoD packet */
peer->bogusorg++; /* for TEST2 or TEST3 */
msyslog(LOG_INFO,
"receive: Unexpected zero transmit timestamp in KoD from %s",
ntoa(&peer->srcadr));
return;
}
/*
* If the transmit timestamp duplicates our previous one, the
* packet is a replay. This prevents the bad guys from replaying
* the most recent packet, authenticated or not.
*/
} else if ( ((FLAG_LOOPNONCE & peer->flags) && L_ISEQU(&peer->nonce, &p_xmt))
|| (!(FLAG_LOOPNONCE & peer->flags) && L_ISEQU(&peer->xmt, &p_xmt))
) {
DPRINTF(2, ("receive: drop: Duplicate xmit\n"));
peer->flash |= TEST1; /* duplicate */
peer->oldpkt++;
return;
/*
* If this is a broadcast mode packet, make sure hisstratum
* is appropriate. Don't do anything else here - we wait to
* see if this is an interleave broadcast packet until after
* we've validated the MAC that SHOULD be provided.
*
* hisstratum cannot be 0 - see assertion above.
* If hisstratum is 15, then we'll advertise as UNSPEC but
* at least we'll be able to sync with the broadcast server.
*/
} else if (hismode == MODE_BROADCAST) {
/* 0 is unexpected too, and impossible */
if (STRATUM_UNSPEC <= hisstratum) {
/* Is this a ++sys_declined or ??? */
msyslog(LOG_INFO,
"receive: Unexpected stratum (%d) in broadcast from %s",
hisstratum, ntoa(&peer->srcadr));
return;
}
/*
* Basic KoD validation checking:
*
* KoD packets are a mixed-blessing. Forged KoD packets
* are DoS attacks. There are rare situations where we might
* get a valid KoD response, though. Since KoD packets are
* a special case that complicate the checks we do next, we
* handle the basic KoD checks here.
*
* Note that we expect the incoming KoD packet to have its
* (nonzero) org, rec, and xmt timestamps set to the xmt timestamp
* that we have previously sent out. Watch interleave mode.
*/
} else if (kissCode != NOKISS) {
DEBUG_INSIST(!L_ISZERO(&p_xmt));
if ( L_ISZERO(&p_org) /* We checked p_xmt above */
|| L_ISZERO(&p_rec)) {
peer->bogusorg++;
msyslog(LOG_INFO,
"receive: KoD packet from %s has a zero org or rec timestamp. Ignoring.",
ntoa(&peer->srcadr));
return;
}
if ( !L_ISEQU(&p_xmt, &p_org)
|| !L_ISEQU(&p_xmt, &p_rec)) {
peer->bogusorg++;
msyslog(LOG_INFO,
"receive: KoD packet from %s has inconsistent xmt/org/rec timestamps. Ignoring.",
ntoa(&peer->srcadr));
return;
}
/* Be conservative */
if (peer->flip == 0 && !L_ISEQU(&p_org, &peer->aorg)) {
peer->bogusorg++;
msyslog(LOG_INFO,
"receive: flip 0 KoD origin timestamp %#010x.%08x from %s does not match %#010x.%08x - ignoring.",
p_org.l_ui, p_org.l_uf,
ntoa(&peer->srcadr),
peer->aorg.l_ui, peer->aorg.l_uf);
return;
} else if (peer->flip == 1 && !L_ISEQU(&p_org, &peer->borg)) {
peer->bogusorg++;
msyslog(LOG_INFO,
"receive: flip 1 KoD origin timestamp %#010x.%08x from %s does not match interleave %#010x.%08x - ignoring.",
p_org.l_ui, p_org.l_uf,
ntoa(&peer->srcadr),
peer->borg.l_ui, peer->borg.l_uf);
return;
}
/*
* Basic mode checks:
*
* If there is no origin timestamp, it's either an initial
* packet or we've already received a response to our query.
* Of course, should 'aorg' be all-zero because this really
* was the original transmit timestamp, we'll ignore this
* reply. There is a window of one nanosecond once every
* 136 years' time where this is possible. We currently
* ignore this situation, as a completely zero timestamp
* is (quietly?) disallowed.
*
* Otherwise, check for bogus packet in basic mode.
* If it is bogus, switch to interleaved mode and
* resynchronize, but only after confirming the packet is
* not bogus in symmetric interleaved mode.
*
* This could also mean somebody is forging packets claiming
* to be from us, attempting to cause our server to KoD us.
*
* We have earlier asserted that hisstratum cannot be 0.
* If hisstratum is STRATUM_UNSPEC, it means he's not sync'd.
*/
/* XXX: FLAG_LOOPNONCE */
DEBUG_INSIST(0 == (FLAG_LOOPNONCE & peer->flags));
msyslog(LOG_INFO,
"receive: Got KoD %s from %s",
refid_str(pkt->refid, hisstratum), ntoa(&peer->srcadr));
} else if (peer->flip == 0) {
if (0) {
} else if (L_ISZERO(&p_org)) {
const char *action;
#ifdef BUG3361
msyslog(LOG_INFO,
"receive: BUG 3361: Clearing peer->aorg ");
L_CLR(&peer->aorg);
/* Clear peer->nonce, too? */
#endif
/**/
switch (hismode) {
/* We allow 0org for: */
case UCHAR_MAX:
action = "Allow";
break;
/* We disallow 0org for: */
case MODE_UNSPEC:
case MODE_ACTIVE:
case MODE_PASSIVE:
case MODE_CLIENT:
case MODE_SERVER:
case MODE_BROADCAST:
action = "Drop";
peer->bogusorg++;
peer->flash |= TEST2; /* bogus */
break;
default:
action = ""; /* for cranky compilers / MSVC */
INSIST(!"receive(): impossible hismode");
break;
}
/**/
msyslog(LOG_INFO,
"receive: %s 0 origin timestamp from %s@%s xmt %#010x.%08x",
action, hm_str, ntoa(&peer->srcadr),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf));
} else if (!L_ISEQU(&p_org, &peer->aorg)) {
/* are there cases here where we should bail? */
/* Should we set TEST2 if we decide to try xleave? */
peer->bogusorg++;
peer->flash |= TEST2; /* bogus */
msyslog(LOG_INFO,
"receive: Unexpected origin timestamp %#010x.%08x does not match aorg %#010x.%08x from %s@%s xmt %#010x.%08x",
ntohl(pkt->org.l_ui), ntohl(pkt->org.l_uf),
peer->aorg.l_ui, peer->aorg.l_uf,
hm_str, ntoa(&peer->srcadr),
ntohl(pkt->xmt.l_ui), ntohl(pkt->xmt.l_uf));
if ( !L_ISZERO(&peer->dst)
&& L_ISEQU(&p_org, &peer->dst)) {
/* Might be the start of an interleave */
if (dynamic_interleave) {
peer->flip = 1;
report_event(PEVNT_XLEAVE, peer, NULL);
} else {
msyslog(LOG_INFO,
"receive: Dynamic interleave from %s@%s denied",
hm_str, ntoa(&peer->srcadr));
}
}
} else {
L_CLR(&peer->aorg);
/* XXX: FLAG_LOOPNONCE */
}
/*
* Check for valid nonzero timestamp fields.
*/
} else if ( L_ISZERO(&p_org)
|| L_ISZERO(&p_rec)
|| L_ISZERO(&peer->dst)) {
peer->flash |= TEST3; /* unsynch */
/*
* Check for bogus packet in interleaved symmetric mode. This
* can happen if a packet is lost, duplicated or crossed. If
* found, flip and resynchronize.
*/
} else if ( !L_ISZERO(&peer->dst)
&& !L_ISEQU(&p_org, &peer->dst)) {
DPRINTF(2, ("receive: drop: Bogus packet in interleaved symmetric mode\n"));
peer->bogusorg++;
peer->flags |= FLAG_XBOGUS;
peer->flash |= TEST2; /* bogus */
#ifdef BUG3453
return; /* Bogus packet, we are done */
#endif
}
/**/
/*
* If this is a crypto_NAK, the server cannot authenticate a
* client packet. The server might have just changed keys. Clear
* the association and restart the protocol.
*/
if (crypto_nak_test == VALIDNAK) {
report_event(PEVNT_AUTH, peer, "crypto_NAK");
peer->flash |= TEST5; /* bad auth */
peer->badauth++;
if (peer->flags & FLAG_PREEMPT) {
if (unpeer_crypto_nak_early) {
unpeer(peer);
}
DPRINTF(2, ("receive: drop: PREEMPT crypto_NAK\n"));
return;
}
#ifdef AUTOKEY
if (peer->crypto) {
peer_clear(peer, "AUTH");
}
#endif /* AUTOKEY */
DPRINTF(2, ("receive: drop: crypto_NAK\n"));
return;
/*
* If the digest fails or it's missing for authenticated
* associations, the client cannot authenticate a server
* reply to a client packet previously sent. The loopback check
* is designed to avoid a bait-and-switch attack, which was
* possible in past versions. If symmetric modes, return a
* crypto-NAK. The peer should restart the protocol.
*/
} else if (!AUTH(peer->keyid || has_mac ||
(restrict_mask & RES_DONTTRUST), is_authentic)) {
if (peer->flash & PKT_TEST_MASK) {
msyslog(LOG_INFO,
"receive: Bad auth in packet with bad timestamps from %s denied - spoof?",
ntoa(&peer->srcadr));
return;
}
report_event(PEVNT_AUTH, peer, "digest");
peer->flash |= TEST5; /* bad auth */
peer->badauth++;
if ( has_mac
&& ( hismode == MODE_ACTIVE
|| hismode == MODE_PASSIVE))
fast_xmit(rbufp, MODE_ACTIVE, 0, restrict_mask);
if (peer->flags & FLAG_PREEMPT) {
if (unpeer_digest_early) {
unpeer(peer);
}
}
#ifdef AUTOKEY
else if (peer_clear_digest_early && peer->crypto) {
peer_clear(peer, "AUTH");
}
#endif /* AUTOKEY */
DPRINTF(2, ("receive: drop: Bad or missing AUTH\n"));
return;
}
/*
* For broadcast packets:
*
* HMS: This next line never made much sense to me, even
* when it was up higher:
* If an initial volley, bail out now and let the
* client do its stuff.
*
* If the packet has not failed authentication, then
* - if the origin timestamp is nonzero this is an
* interleaved broadcast, so restart the protocol.
* - else, this is not an interleaved broadcast packet.
*/
if (hismode == MODE_BROADCAST) {
if ( is_authentic == AUTH_OK
|| is_authentic == AUTH_NONE) {
if (!L_ISZERO(&p_org)) {
if (!(peer->flags & FLAG_XB)) {
msyslog(LOG_INFO,
"receive: Broadcast server at %s is in interleave mode",
ntoa(&peer->srcadr));
peer->flags |= FLAG_XB;
peer->aorg = p_xmt;
peer->borg = rbufp->recv_time;
report_event(PEVNT_XLEAVE, peer, NULL);
return;
}
} else if (peer->flags & FLAG_XB) {
msyslog(LOG_INFO,
"receive: Broadcast server at %s is no longer in interleave mode",
ntoa(&peer->srcadr));
peer->flags &= ~FLAG_XB;
}
} else {
msyslog(LOG_INFO,
"receive: Bad broadcast auth (%d) from %s",
is_authentic, ntoa(&peer->srcadr));
}
/*
* Now that we know the packet is correctly authenticated,
* update peer->bxmt.
*/
peer->bxmt = p_xmt;
}
/*
** Update the state variables.
*/
if (peer->flip == 0) {
if (hismode != MODE_BROADCAST)
peer->rec = p_xmt;
peer->dst = rbufp->recv_time;
}
peer->xmt = p_xmt;
/*
* Set the peer ppoll to the maximum of the packet ppoll and the
* peer minpoll. If a kiss-o'-death, set the peer minpoll to
* this maximum and advance the headway to give the sender some
* headroom. Very intricate.
*/
/*
* Check for any kiss codes. Note this is only used when a server
* responds to a packet request.
*/
/*
* Check to see if this is a RATE Kiss Code
* Currently this kiss code will accept whatever valid poll
* rate that the server sends
*/
if ( (NTP_MINPOLL > pkt->ppoll)
|| (NTP_MAXPOLL < pkt->ppoll)
) {
DPRINTF(2, ("RATEKISS: Invalid ppoll (%d) from %s\n",
pkt->ppoll, stoa(&rbufp->recv_srcadr)));
sys_badlength++;
return; /* invalid packet poll */
}
peer->ppoll = max(peer->minpoll, pkt->ppoll);
if (kissCode == RATEKISS) {
peer->selbroken++; /* Increment the KoD count */
report_event(PEVNT_RATE, peer, NULL);
if (pkt->ppoll > peer->minpoll)
peer->minpoll = peer->ppoll;
peer->burst = peer->retry = 0;
peer->throttle = (NTP_SHIFT + 1) * (1 << peer->minpoll);
poll_update(peer, pkt->ppoll, 0);
return; /* kiss-o'-death */
}
if (kissCode != NOKISS) {
peer->selbroken++; /* Increment the KoD count */
return; /* Drop any other kiss code packets */
}
/*
* XXX
*/
/*
* If:
* - this is a *cast (uni-, broad-, or m-) server packet
* - and it's symmetric-key authenticated
* then see if the sender's IP is trusted for this keyid.
* If it is, great - nothing special to do here.
* Otherwise, we should report and bail.
*
* Autokey-authenticated packets are accepted.
*/
switch (hismode) {
case MODE_SERVER: /* server mode */
case MODE_BROADCAST: /* broadcast mode */
case MODE_ACTIVE: /* symmetric active mode */
case MODE_PASSIVE: /* symmetric passive mode */
if ( is_authentic == AUTH_OK
&& skeyid
&& skeyid <= NTP_MAXKEY
&& !authistrustedip(skeyid, &peer->srcadr)) {
report_event(PEVNT_AUTH, peer, "authIP");
peer->badauth++;
return;
}
break;
case MODE_CLIENT: /* client mode */
#if 0 /* At this point, MODE_CONTROL is overloaded by MODE_BCLIENT */
case MODE_CONTROL: /* control mode */
#endif
case MODE_PRIVATE: /* private mode */
case MODE_BCLIENT: /* broadcast client mode */
break;
case MODE_UNSPEC: /* unspecified (old version) */
default:
msyslog(LOG_INFO,
"receive: Unexpected mode (%d) in packet from %s",
hismode, ntoa(&peer->srcadr));
break;
}
/*
* That was hard and I am sweaty, but the packet is squeaky
* clean. Get on with real work.
*/
peer->timereceived = current_time;
peer->timelastrec = current_time;
if (is_authentic == AUTH_OK)
peer->flags |= FLAG_AUTHENTIC;
else
peer->flags &= ~FLAG_AUTHENTIC;
#ifdef AUTOKEY
/*
* More autokey dance. The rules of the cha-cha are as follows:
*
* 1. If there is no key or the key is not auto, do nothing.
*
* 2. If this packet is in response to the one just previously
* sent or from a broadcast server, do the extension fields.
* Otherwise, assume bogosity and bail out.
*
* 3. If an extension field contains a verified signature, it is
* self-authenticated and we sit the dance.
*
* 4. If this is a server reply, check only to see that the
* transmitted key ID matches the received key ID.
*
* 5. Check to see that one or more hashes of the current key ID
* matches the previous key ID or ultimate original key ID
* obtained from the broadcaster or symmetric peer. If no
* match, sit the dance and call for new autokey values.
*
* In case of crypto error, fire the orchestra, stop dancing and
* restart the protocol.
*/
if (peer->flags & FLAG_SKEY) {
/*
* Decrement remaining autokey hashes. This isn't
* perfect if a packet is lost, but results in no harm.
*/
ap = (struct autokey *)peer->recval.ptr;
if (ap != NULL) {
if (ap->seq > 0)
ap->seq--;
}
peer->flash |= TEST8;
rval = crypto_recv(peer, rbufp);
if (rval == XEVNT_OK) {
peer->unreach = 0;
} else {
if (rval == XEVNT_ERR) {
report_event(PEVNT_RESTART, peer,
"crypto error");
peer_clear(peer, "CRYP");
peer->flash |= TEST9; /* bad crypt */
if (peer->flags & FLAG_PREEMPT) {
if (unpeer_crypto_early) {
unpeer(peer);
}
}
}
return;
}
/*
* If server mode, verify the receive key ID matches
* the transmit key ID.
*/
if (hismode == MODE_SERVER) {
if (skeyid == peer->keyid)
peer->flash &= ~TEST8;
/*
* If an extension field is present, verify only that it
* has been correctly signed. We don't need a sequence
* check here, but the sequence continues.
*/
} else if (!(peer->flash & TEST8)) {
peer->pkeyid = skeyid;
/*
* Now the fun part. Here, skeyid is the current ID in
* the packet, pkeyid is the ID in the last packet and
* tkeyid is the hash of skeyid. If the autokey values
* have not been received, this is an automatic error.
* If so, check that the tkeyid matches pkeyid. If not,
* hash tkeyid and try again. If the number of hashes
* exceeds the number remaining in the sequence, declare
* a successful failure and refresh the autokey values.
*/
} else if (ap != NULL) {
int i;
for (i = 0; ; i++) {
if ( tkeyid == peer->pkeyid
|| tkeyid == ap->key) {
peer->flash &= ~TEST8;
peer->pkeyid = skeyid;
ap->seq -= i;
break;
}
if (i > ap->seq) {
peer->crypto &=
~CRYPTO_FLAG_AUTO;
break;
}
tkeyid = session_key(
&rbufp->recv_srcadr, dstadr_sin,
tkeyid, pkeyid, 0);
}
if (peer->flash & TEST8)
report_event(PEVNT_AUTH, peer, "keylist");
}
if (!(peer->crypto & CRYPTO_FLAG_PROV)) /* test 9 */
peer->flash |= TEST8; /* bad autokey */
/*
* The maximum lifetime of the protocol is about one
* week before restarting the Autokey protocol to
* refresh certificates and leapseconds values.
*/
if (current_time > peer->refresh) {
report_event(PEVNT_RESTART, peer,
"crypto refresh");
peer_clear(peer, "TIME");
return;
}
}
#endif /* AUTOKEY */
/*
* The dance is complete and the flash bits have been lit. Toss
* the packet over the fence for processing, which may light up
* more flashers. Leave if the packet is not good.
*/
process_packet(peer, pkt, rbufp->recv_length);
if (peer->flash & PKT_TEST_MASK)
return;
/* [bug 3592] Update poll. Ideally this should not happen in a
* receive branch, but too much is going on here... at least we
* do it only if the packet was good!
*/
poll_update(peer, peer->hpoll, (peer->hmode == MODE_CLIENT));
/*
* In interleaved mode update the state variables. Also adjust the
* transmit phase to avoid crossover.
*/
if (peer->flip != 0) {
peer->rec = p_rec;
peer->dst = rbufp->recv_time;
if (peer->nextdate - current_time < (1U << min(peer->ppoll,
peer->hpoll)) / 2)
peer->nextdate++;
else
peer->nextdate--;
}
}
/*
* process_packet - Packet Procedure, a la Section 3.4.4 of RFC-1305
* Or almost, at least. If we're in here we have a reasonable
* expectation that we will be having a long term
* relationship with this host.
*/
void
process_packet(
register struct peer *peer,
register struct pkt *pkt,
u_int len
)
{
double t34, t21;
double p_offset, p_del, p_disp;
l_fp p_rec, p_xmt, p_org, p_reftime, ci;
u_char pmode, pleap, pversion, pstratum;
char statstr[NTP_MAXSTRLEN];
#ifdef ASSYM
int itemp;
double etemp, ftemp, td;
#endif /* ASSYM */
p_del = FPTOD(NTOHS_FP(pkt->rootdelay));
p_offset = 0;
p_disp = FPTOD(NTOHS_FP(pkt->rootdisp));
NTOHL_FP(&pkt->reftime, &p_reftime);
NTOHL_FP(&pkt->org, &p_org);
NTOHL_FP(&pkt->rec, &p_rec);
NTOHL_FP(&pkt->xmt, &p_xmt);
pmode = PKT_MODE(pkt->li_vn_mode);
pleap = PKT_LEAP(pkt->li_vn_mode);
pversion = PKT_VERSION(pkt->li_vn_mode);
pstratum = PKT_TO_STRATUM(pkt->stratum);
/*
* Verify the server is synchronized; that is, the leap bits,
* stratum and root distance are valid.
*/
if ( pleap == LEAP_NOTINSYNC /* test 6 */
|| pstratum < sys_floor || pstratum >= sys_ceiling)
peer->flash |= TEST6; /* bad synch or strat */
if (p_del / 2 + p_disp >= MAXDISPERSE) /* test 7 */
peer->flash |= TEST7; /* bad header */
/*
* If any tests fail at this point, the packet is discarded.
* Note that some flashers may have already been set in the
* receive() routine.
*/
if (peer->flash & PKT_TEST_MASK) {
peer->seldisptoolarge++;
DPRINTF(1, ("packet: flash header %04x\n",
peer->flash));
/* [Bug 3592] do *not* update poll on bad packets! */
return;
}
/*
* update stats, now that we really handle this packet:
*/
sys_processed++;
peer->processed++;
/*
* Capture the header values in the client/peer association..
*/
record_raw_stats(&peer->srcadr,
peer->dstadr ? &peer->dstadr->sin : NULL,
&p_org, &p_rec, &p_xmt, &peer->dst,
pleap, pversion, pmode, pstratum, pkt->ppoll, pkt->precision,
p_del, p_disp, pkt->refid,
len - MIN_V4_PKT_LEN, (u_char *)&pkt->exten);
peer->leap = pleap;
peer->stratum = min(pstratum, STRATUM_UNSPEC);
peer->pmode = pmode;
peer->precision = pkt->precision;
peer->rootdelay = p_del;
peer->rootdisp = p_disp;
peer->refid = pkt->refid; /* network byte order */
peer->reftime = p_reftime;
/*
* First, if either burst mode is armed, enable the burst.
* Compute the headway for the next packet and delay if
* necessary to avoid exceeding the threshold.
*/
if (peer->retry > 0) {
peer->retry = 0;
if (peer->reach)
peer->burst = min(1 << (peer->hpoll -
peer->minpoll), NTP_SHIFT) - 1;
else
peer->burst = NTP_IBURST - 1;
if (peer->burst > 0)
peer->nextdate = current_time;
}
/*
* If the peer was previously unreachable, raise a trap. In any
* case, mark it reachable.
*/
if (!peer->reach) {
report_event(PEVNT_REACH, peer, NULL);
peer->timereachable = current_time;
}
peer->reach |= 1;
/*
* For a client/server association, calculate the clock offset,
* roundtrip delay and dispersion. The equations are reordered
* from the spec for more efficient use of temporaries. For a
* broadcast association, offset the last measurement by the
* computed delay during the client/server volley. Note the
* computation of dispersion includes the system precision plus
* that due to the frequency error since the origin time.
*
* It is very important to respect the hazards of overflow. The
* only permitted operation on raw timestamps is subtraction,
* where the result is a signed quantity spanning from 68 years
* in the past to 68 years in the future. To avoid loss of
* precision, these calculations are done using 64-bit integer
* arithmetic. However, the offset and delay calculations are
* sums and differences of these first-order differences, which
* if done using 64-bit integer arithmetic, would be valid over
* only half that span. Since the typical first-order
* differences are usually very small, they are converted to 64-
* bit doubles and all remaining calculations done in floating-
* double arithmetic. This preserves the accuracy while
* retaining the 68-year span.
*
* There are three interleaving schemes, basic, interleaved
* symmetric and interleaved broadcast. The timestamps are
* idioscyncratically different. See the onwire briefing/white
* paper at www.eecis.udel.edu/~mills for details.
*
* Interleaved symmetric mode
* t1 = peer->aorg/borg, t2 = peer->rec, t3 = p_xmt,
* t4 = peer->dst
*/
if (peer->flip != 0) {
ci = p_xmt; /* t3 - t4 */
L_SUB(&ci, &peer->dst);
LFPTOD(&ci, t34);
ci = p_rec; /* t2 - t1 */
if (peer->flip > 0)
L_SUB(&ci, &peer->borg);
else
L_SUB(&ci, &peer->aorg);
LFPTOD(&ci, t21);
p_del = t21 - t34;
p_offset = (t21 + t34) / 2.;
if (p_del < 0 || p_del > 1.) {
snprintf(statstr, sizeof(statstr),
"t21 %.6f t34 %.6f", t21, t34);
report_event(PEVNT_XERR, peer, statstr);
return;
}
/*
* Broadcast modes
*/
} else if (peer->pmode == MODE_BROADCAST) {
/*
* Interleaved broadcast mode. Use interleaved timestamps.
* t1 = peer->borg, t2 = p_org, t3 = p_org, t4 = aorg
*/
if (peer->flags & FLAG_XB) {
ci = p_org; /* delay */
L_SUB(&ci, &peer->aorg);
LFPTOD(&ci, t34);
ci = p_org; /* t2 - t1 */
L_SUB(&ci, &peer->borg);
LFPTOD(&ci, t21);
peer->aorg = p_xmt;
peer->borg = peer->dst;
if (t34 < 0 || t34 > 1.) {
/* drop all if in the initial volley */
if (FLAG_BC_VOL & peer->flags)
goto bcc_init_volley_fail;
snprintf(statstr, sizeof(statstr),
"offset %.6f delay %.6f", t21, t34);
report_event(PEVNT_XERR, peer, statstr);
return;
}
p_offset = t21;
peer->xleave = t34;
/*
* Basic broadcast - use direct timestamps.
* t3 = p_xmt, t4 = peer->dst
*/
} else {
ci = p_xmt; /* t3 - t4 */
L_SUB(&ci, &peer->dst);
LFPTOD(&ci, t34);
p_offset = t34;
}
/*
* When calibration is complete and the clock is
* synchronized, the bias is calculated as the difference
* between the unicast timestamp and the broadcast
* timestamp. This works for both basic and interleaved
* modes.
* [Bug 3031] Don't keep this peer when the delay
* calculation gives reason to suspect clock steps.
* This is assumed for delays > 50ms.
*/
if (FLAG_BC_VOL & peer->flags) {
peer->flags &= ~FLAG_BC_VOL;
peer->delay = fabs(peer->offset - p_offset) * 2;
DPRINTF(2, ("broadcast volley: initial delay=%.6f\n",
peer->delay));
if (peer->delay > fabs(sys_bdelay)) {
bcc_init_volley_fail:
DPRINTF(2, ("%s", "broadcast volley: initial delay exceeds limit\n"));
unpeer(peer);
return;
}
}
peer->nextdate = current_time + (1u << peer->ppoll) - 2u;
p_del = peer->delay;
p_offset += p_del / 2;
/*
* Basic mode, otherwise known as the old fashioned way.
*
* t1 = p_org, t2 = p_rec, t3 = p_xmt, t4 = peer->dst
*/
} else {
ci = p_xmt; /* t3 - t4 */
L_SUB(&ci, &peer->dst);
LFPTOD(&ci, t34);
ci = p_rec; /* t2 - t1 */
L_SUB(&ci, &p_org);
LFPTOD(&ci, t21);
p_del = fabs(t21 - t34);
p_offset = (t21 + t34) / 2.;
}
p_del = max(p_del, LOGTOD(sys_precision));
p_disp = LOGTOD(sys_precision) + LOGTOD(peer->precision) +
clock_phi * p_del;
#if ASSYM
/*
* This code calculates the outbound and inbound data rates by
* measuring the differences between timestamps at different
* packet lengths. This is helpful in cases of large asymmetric
* delays commonly experienced on deep space communication
* links.
*/
if (peer->t21_last > 0 && peer->t34_bytes > 0) {
itemp = peer->t21_bytes - peer->t21_last;
if (itemp > 25) {
etemp = t21 - peer->t21;
if (fabs(etemp) > 1e-6) {
ftemp = itemp / etemp;
if (ftemp > 1000.)
peer->r21 = ftemp;
}
}
itemp = len - peer->t34_bytes;
if (itemp > 25) {
etemp = -t34 - peer->t34;
if (fabs(etemp) > 1e-6) {
ftemp = itemp / etemp;
if (ftemp > 1000.)
peer->r34 = ftemp;
}
}
}
/*
* The following section compensates for different data rates on
* the outbound (d21) and inbound (t34) directions. To do this,
* it finds t such that r21 * t - r34 * (d - t) = 0, where d is
* the roundtrip delay. Then it calculates the correction as a
* fraction of d.
*/
peer->t21 = t21;
peer->t21_last = peer->t21_bytes;
peer->t34 = -t34;
peer->t34_bytes = len;
DPRINTF(2, ("packet: t21 %.9lf %d t34 %.9lf %d\n", peer->t21,
peer->t21_bytes, peer->t34, peer->t34_bytes));
if (peer->r21 > 0 && peer->r34 > 0 && p_del > 0) {
if (peer->pmode != MODE_BROADCAST)
td = (peer->r34 / (peer->r21 + peer->r34) -
.5) * p_del;
else
td = 0;
/*
* Unfortunately, in many cases the errors are
* unacceptable, so for the present the rates are not
* used. In future, we might find conditions where the
* calculations are useful, so this should be considered
* a work in progress.
*/
t21 -= td;
t34 -= td;
DPRINTF(2, ("packet: del %.6lf r21 %.1lf r34 %.1lf %.6lf\n",
p_del, peer->r21 / 1e3, peer->r34 / 1e3,
td));
}
#endif /* ASSYM */
/*
* That was awesome. Now hand off to the clock filter.
*/
clock_filter(peer, p_offset + peer->bias, p_del, p_disp);
/*
* If we are in broadcast calibrate mode, return to broadcast
* client mode when the client is fit and the autokey dance is
* complete.
*/
if ( (FLAG_BC_VOL & peer->flags)
&& MODE_CLIENT == peer->hmode
&& !(TEST11 & peer_unfit(peer))) { /* distance exceeded */
#ifdef AUTOKEY
if (peer->flags & FLAG_SKEY) {
if (!(~peer->crypto & CRYPTO_FLAG_ALL))
peer->hmode = MODE_BCLIENT;
} else {
peer->hmode = MODE_BCLIENT;
}
#else /* !AUTOKEY follows */
peer->hmode = MODE_BCLIENT;
#endif /* !AUTOKEY */
}
}
/*
* clock_update - Called at system process update intervals.
*/
static void
clock_update(
struct peer *peer /* peer structure pointer */
)
{
double dtemp;
l_fp now;
#ifdef HAVE_LIBSCF_H
char *fmri;
#endif /* HAVE_LIBSCF_H */
/*
* Update the system state variables. We do this very carefully,
* as the poll interval might need to be clamped differently.
*/
sys_peer = peer;
sys_epoch = peer->epoch;
if (sys_poll < peer->minpoll)
sys_poll = peer->minpoll;
if (sys_poll > peer->maxpoll)
sys_poll = peer->maxpoll;
poll_update(peer, sys_poll, 0);
sys_stratum = min(peer->stratum + 1, STRATUM_UNSPEC);
if ( peer->stratum == STRATUM_REFCLOCK
|| peer->stratum == STRATUM_UNSPEC)
sys_refid = peer->refid;
else
sys_refid = addr2refid(&peer->srcadr);
/*
* Root Dispersion (E) is defined (in RFC 5905) as:
*
* E = p.epsilon_r + p.epsilon + p.psi + PHI*(s.t - p.t) + |THETA|
*
* where:
* p.epsilon_r is the PollProc's root dispersion
* p.epsilon is the PollProc's dispersion
* p.psi is the PollProc's jitter
* THETA is the combined offset
*
* NB: Think Hard about where these numbers come from and
* what they mean. When did peer->update happen? Has anything
* interesting happened since then? What values are the most
* defensible? Why?
*
* DLM thinks this equation is probably the best of all worse choices.
*/
dtemp = peer->rootdisp
+ peer->disp
+ sys_jitter
+ clock_phi * (current_time - peer->update)
+ fabs(sys_offset);
p2_rootdisp = prev_rootdisp;
prev_rootdisp = sys_rootdisp;
if (dtemp > sys_mindisp)
sys_rootdisp = dtemp;
else
sys_rootdisp = sys_mindisp;
sys_rootdelay = peer->delay + peer->rootdelay;
p2_reftime = prev_reftime;
p2_time = prev_time;
prev_reftime = sys_reftime;
prev_time = current_time + 64 + (rand() & 0x3f); /* 64-127 s */
sys_reftime = peer->dst;
DPRINTF(1, ("clock_update: at %lu sample %lu associd %d\n",
current_time, peer->epoch, peer->associd));
/*
* Comes now the moment of truth. Crank the clock discipline and
* see what comes out.
*/
switch (local_clock(peer, sys_offset)) {
/*
* Clock exceeds panic threshold. Life as we know it ends.
*/
case -1:
msyslog(LOG_ERR, "Clock offset exceeds panic threshold.");
#ifdef HAVE_LIBSCF_H
/*
* For Solaris enter the maintenance mode.
*/
if ((fmri = getenv("SMF_FMRI")) != NULL) {
if (smf_maintain_instance(fmri, 0) < 0) {
msyslog(LOG_ERR, "smf_maintain_instance: %s",
scf_strerror(scf_error()));
exit(1);
}
/*
* Sleep until SMF kills us.
*/
msyslog(LOG_ERR, "%s placed into maintenance. "
"Set system clock by hand before clearing.",
fmri);
for (;;)
pause();
}
#endif /* HAVE_LIBSCF_H */
msyslog(LOG_ERR, "Set system clock by hand.");
exit (-1);
/* not reached */
/*
* Clock was stepped. Flush all time values of all peers.
*/
case 2:
clear_all();
set_sys_leap(LEAP_NOTINSYNC);
sys_stratum = STRATUM_UNSPEC;
memcpy(&sys_refid, "STEP", 4);
sys_rootdelay = 0;
p2_rootdisp = 0;
prev_rootdisp = 0;
sys_rootdisp = 0;
L_CLR(&p2_reftime); /* Should we clear p2_reftime? */
L_CLR(&prev_reftime); /* Should we clear prev_reftime? */
L_CLR(&sys_reftime);
sys_jitter = LOGTOD(sys_precision);
leapsec_reset_frame();
break;
/*
* Clock was slewed. Handle the leapsecond stuff.
*/
case 1:
/*
* If this is the first time the clock is set, reset the
* leap bits. If crypto, the timer will goose the setup
* process.
*/
if (sys_leap == LEAP_NOTINSYNC) {
set_sys_leap(LEAP_NOWARNING);
#ifdef AUTOKEY
if (crypto_flags)
crypto_update();
#endif /* AUTOKEY */
/*
* If our parent process is waiting for the
* first clock sync, send them home satisfied.
*/
#ifdef HAVE_WORKING_FORK
if (daemon_pipe[1] != -1) {
- if (2 != write(daemon_pipe[1], "S\n", 2))
- msyslog(LOG_ERR, "ntpd: daemon failed to notify parent!");
+ if (2 != write(daemon_pipe[1], "S\n", 2)) {
+ msyslog(LOG_ERR, "daemon failed to notify parent ntpd (--wait-sync)");
+ }
close(daemon_pipe[1]);
daemon_pipe[1] = -1;
DPRINTF(1, ("notified parent --wait-sync is done\n"));
}
#endif /* HAVE_WORKING_FORK */
}
/*
* If there is no leap second pending and the number of
* survivor leap bits is greater than half the number of
* survivors, try to schedule a leap for the end of the
* current month. (This only works if no leap second for
* that range is in the table, so doing this more than
* once is mostly harmless.)
*/
if (leapsec == LSPROX_NOWARN) {
if ( leap_vote_ins > leap_vote_del
&& leap_vote_ins > sys_survivors / 2) {
get_systime(&now);
leapsec_add_dyn(TRUE, now.l_ui, NULL);
}
if ( leap_vote_del > leap_vote_ins
&& leap_vote_del > sys_survivors / 2) {
get_systime(&now);
leapsec_add_dyn(FALSE, now.l_ui, NULL);
}
}
break;
/*
* Popcorn spike or step threshold exceeded. Pretend it never
* happened.
*/
default:
break;
}
}
/*
* poll_update - update peer poll interval
*/
void
poll_update(
struct peer *peer, /* peer structure pointer */
u_char mpoll,
u_char skewpoll
)
{
u_long next, utemp, limit;
u_char hpoll;
/*
* This routine figures out when the next poll should be sent.
* That turns out to be wickedly complicated. One problem is
* that sometimes the time for the next poll is in the past when
* the poll interval is reduced. We watch out for races here
* between the receive process and the poll process.
*
* Clamp the poll interval between minpoll and maxpoll.
*/
hpoll = max(min(peer->maxpoll, mpoll), peer->minpoll);
#ifdef AUTOKEY
/*
* If during the crypto protocol the poll interval has changed,
* the lifetimes in the key list are probably bogus. Purge the
* the key list and regenerate it later.
*/
if ((peer->flags & FLAG_SKEY) && hpoll != peer->hpoll)
key_expire(peer);
#endif /* AUTOKEY */
peer->hpoll = hpoll;
/*
* There are three variables important for poll scheduling, the
* current time (current_time), next scheduled time (nextdate)
* and the earliest time (utemp). The earliest time is 2 s
* seconds, but could be more due to rate management. When
* sending in a burst, use the earliest time. When not in a
* burst but with a reply pending, send at the earliest time
* unless the next scheduled time has not advanced. This can
* only happen if multiple replies are pending in the same
* response interval. Otherwise, send at the later of the next
* scheduled time and the earliest time.
*
* Now we figure out if there is an override. If a burst is in
* progress and we get called from the receive process, just
* slink away. If called from the poll process, delay 1 s for a
* reference clock, otherwise 2 s.
*/
utemp = current_time + max(peer->throttle - (NTP_SHIFT - 1) *
(1 << peer->minpoll), ntp_minpkt);
/*[Bug 3592] avoid unlimited postpone of next poll */
limit = (2u << hpoll);
if (limit > 64)
limit -= (limit >> 2);
limit += peer->outdate;
if (limit < current_time)
limit = current_time;
if (peer->burst > 0) {
if (peer->nextdate > current_time)
return;
#ifdef REFCLOCK
else if (peer->flags & FLAG_REFCLOCK)
peer->nextdate = current_time + RESP_DELAY;
#endif /* REFCLOCK */
else
peer->nextdate = utemp;
#ifdef AUTOKEY
/*
* If a burst is not in progress and a crypto response message
* is pending, delay 2 s, but only if this is a new interval.
*/
} else if (peer->cmmd != NULL) {
if (peer->nextdate > current_time) {
if (peer->nextdate + ntp_minpkt != utemp)
peer->nextdate = utemp;
} else {
peer->nextdate = utemp;
}
#endif /* AUTOKEY */
/*
* The ordinary case. If a retry, use minpoll; if unreachable,
* use host poll; otherwise, use the minimum of host and peer
* polls; In other words, oversampling is okay but
* understampling is evil. Use the maximum of this value and the
* headway. If the average headway is greater than the headway
* threshold, increase the headway by the minimum interval.
*/
} else {
if (peer->retry > 0)
hpoll = peer->minpoll;
else
hpoll = min(peer->ppoll, peer->hpoll);
#ifdef REFCLOCK
if (peer->flags & FLAG_REFCLOCK)
next = 1 << hpoll;
else
#endif /* REFCLOCK */
next = ((0x1000UL | (ntp_random() & 0x0ff)) <<
hpoll) >> 12;
next += peer->outdate;
/* XXX: bug3596: Deal with poll skew list? */
if (skewpoll) {
psl_item psi;
if (0 == get_pollskew(hpoll, &psi)) {
int sub = psi.sub;
int qty = psi.qty;
int msk = psi.msk;
int val;
if ( 0 != sub
|| 0 != qty) {
do {
val = ntp_random() & msk;
} while (val > qty);
next -= sub;
next += val;
}
} else {
/* get_pollskew() already logged this */
}
}
if (next > utemp)
peer->nextdate = next;
else
peer->nextdate = utemp;
if (peer->throttle > (1 << peer->minpoll))
peer->nextdate += ntp_minpkt;
}
/*[Bug 3592] avoid unlimited postpone of next poll */
if (peer->nextdate > limit) {
DPRINTF(1, ("poll_update: clamp reached; limit %lu next %lu\n",
limit, peer->nextdate));
peer->nextdate = limit;
}
DPRINTF(2, ("poll_update: at %lu %s poll %d burst %d retry %d head %d early %lu next %lu\n",
current_time, ntoa(&peer->srcadr), peer->hpoll,
peer->burst, peer->retry, peer->throttle,
utemp - current_time, peer->nextdate -
current_time));
}
/*
* peer_clear - clear peer filter registers. See Section 3.4.8 of the
* spec.
*/
void
peer_clear(
struct peer *peer, /* peer structure */
const char *ident /* tally lights */
)
{
u_char u;
l_fp bxmt = peer->bxmt; /* bcast clients retain this! */
#ifdef AUTOKEY
/*
* If cryptographic credentials have been acquired, toss them to
* Valhalla. Note that autokeys are ephemeral, in that they are
* tossed immediately upon use. Therefore, the keylist can be
* purged anytime without needing to preserve random keys. Note
* that, if the peer is purged, the cryptographic variables are
* purged, too. This makes it much harder to sneak in some
* unauthenticated data in the clock filter.
*/
key_expire(peer);
if (peer->iffval != NULL)
BN_free(peer->iffval);
value_free(&peer->cookval);
value_free(&peer->recval);
value_free(&peer->encrypt);
value_free(&peer->sndval);
if (peer->cmmd != NULL)
free(peer->cmmd);
if (peer->subject != NULL)
free(peer->subject);
if (peer->issuer != NULL)
free(peer->issuer);
#endif /* AUTOKEY */
/*
* Clear all values, including the optional crypto values above.
*/
memset(CLEAR_TO_ZERO(peer), 0, LEN_CLEAR_TO_ZERO(peer));
peer->ppoll = peer->maxpoll;
peer->hpoll = peer->minpoll;
peer->disp = MAXDISPERSE;
peer->flash = peer_unfit(peer);
peer->jitter = LOGTOD(sys_precision);
/* Don't throw away our broadcast replay protection */
if (peer->hmode == MODE_BCLIENT)
peer->bxmt = bxmt;
/*
* If interleave mode, initialize the alternate origin switch.
*/
if (peer->flags & FLAG_XLEAVE)
peer->flip = 1;
for (u = 0; u < NTP_SHIFT; u++) {
peer->filter_order[u] = u;
peer->filter_disp[u] = MAXDISPERSE;
}
#ifdef REFCLOCK
if (!(peer->flags & FLAG_REFCLOCK)) {
#endif
peer->leap = LEAP_NOTINSYNC;
peer->stratum = STRATUM_UNSPEC;
memcpy(&peer->refid, ident, 4);
#ifdef REFCLOCK
} else {
/* Clear refclock sample filter */
peer->procptr->codeproc = 0;
peer->procptr->coderecv = 0;
}
#endif
/*
* During initialization use the association count to spread out
* the polls at one-second intervals. Unconfigured associations'
* first poll is delayed by the "discard minimum" plus 1 to avoid
* rate limiting. Other post-startup new or cleared associations
* randomize the first poll over the minimum poll interval to
* avoid implosion.
*/
peer->nextdate = peer->update = peer->outdate = current_time;
if (initializing) {
peer->nextdate += peer_associations;
} else if (!(FLAG_CONFIG & peer->flags)) {
peer->nextdate += ntp_minpkt + 1;
} else {
peer->nextdate += ntp_random() % (1 << peer->minpoll);
}
#ifdef AUTOKEY
peer->refresh = current_time + (1 << NTP_REFRESH);
#endif /* AUTOKEY */
DPRINTF(1, ("peer_clear: at %ld next %ld associd %d refid %s\n",
current_time, peer->nextdate, peer->associd,
ident));
}
/*
* clock_filter - add incoming clock sample to filter register and run
* the filter procedure to find the best sample.
*/
void
clock_filter(
struct peer *peer, /* peer structure pointer */
double sample_offset, /* clock offset */
double sample_delay, /* roundtrip delay */
double sample_disp /* dispersion */
)
{
double dst[NTP_SHIFT]; /* distance vector */
int ord[NTP_SHIFT]; /* index vector */
int i, j, k, m;
double dtemp, etemp;
char tbuf[80];
/*
* A sample consists of the offset, delay, dispersion and epoch
* of arrival. The offset and delay are determined by the on-
* wire protocol. The dispersion grows from the last outbound
* packet to the arrival of this one increased by the sum of the
* peer precision and the system precision as required by the
* error budget. First, shift the new arrival into the shift
* register discarding the oldest one.
*/
j = peer->filter_nextpt;
peer->filter_offset[j] = sample_offset;
peer->filter_delay[j] = sample_delay;
peer->filter_disp[j] = sample_disp;
peer->filter_epoch[j] = current_time;
j = (j + 1) % NTP_SHIFT;
peer->filter_nextpt = j;
/*
* Update dispersions since the last update and at the same
* time initialize the distance and index lists. Since samples
* become increasingly uncorrelated beyond the Allan intercept,
* only under exceptional cases will an older sample be used.
* Therefore, the distance list uses a compound metric. If the
* dispersion is greater than the maximum dispersion, clamp the
* distance at that value. If the time since the last update is
* less than the Allan intercept use the delay; otherwise, use
* the sum of the delay and dispersion.
*/
dtemp = clock_phi * (current_time - peer->update);
peer->update = current_time;
for (i = NTP_SHIFT - 1; i >= 0; i--) {
if (i != 0)
peer->filter_disp[j] += dtemp;
if (peer->filter_disp[j] >= MAXDISPERSE) {
peer->filter_disp[j] = MAXDISPERSE;
dst[i] = MAXDISPERSE;
} else if (peer->update - peer->filter_epoch[j] >
(u_long)ULOGTOD(allan_xpt)) {
dst[i] = peer->filter_delay[j] +
peer->filter_disp[j];
} else {
dst[i] = peer->filter_delay[j];
}
ord[i] = j;
j = (j + 1) % NTP_SHIFT;
}
/*
* If the clock has stabilized, sort the samples by distance.
*/
if (freq_cnt == 0) {
for (i = 1; i < NTP_SHIFT; i++) {
for (j = 0; j < i; j++) {
if (dst[j] > dst[i]) {
k = ord[j];
ord[j] = ord[i];
ord[i] = k;
etemp = dst[j];
dst[j] = dst[i];
dst[i] = etemp;
}
}
}
}
/*
* Copy the index list to the association structure so ntpq
* can see it later. Prune the distance list to leave only
* samples less than the maximum dispersion, which disfavors
* uncorrelated samples older than the Allan intercept. To
* further improve the jitter estimate, of the remainder leave
* only samples less than the maximum distance, but keep at
* least two samples for jitter calculation.
*/
m = 0;
for (i = 0; i < NTP_SHIFT; i++) {
peer->filter_order[i] = (u_char) ord[i];
if ( dst[i] >= MAXDISPERSE
|| (m >= 2 && dst[i] >= sys_maxdist))
continue;
m++;
}
/*
* Compute the dispersion and jitter. The dispersion is weighted
* exponentially by NTP_FWEIGHT (0.5) so it is normalized close
* to 1.0. The jitter is the RMS differences relative to the
* lowest delay sample.
*/
peer->disp = peer->jitter = 0;
k = ord[0];
for (i = NTP_SHIFT - 1; i >= 0; i--) {
j = ord[i];
peer->disp = NTP_FWEIGHT * (peer->disp +
peer->filter_disp[j]);
if (i < m)
peer->jitter += DIFF(peer->filter_offset[j],
peer->filter_offset[k]);
}
/*
* If no acceptable samples remain in the shift register,
* quietly tiptoe home leaving only the dispersion. Otherwise,
* save the offset, delay and jitter. Note the jitter must not
* be less than the precision.
*/
if (m == 0) {
clock_select();
return;
}
etemp = fabs(peer->offset - peer->filter_offset[k]);
peer->offset = peer->filter_offset[k];
peer->delay = peer->filter_delay[k];
if (m > 1)
peer->jitter /= m - 1;
peer->jitter = max(SQRT(peer->jitter), LOGTOD(sys_precision));
/*
* If the the new sample and the current sample are both valid
* and the difference between their offsets exceeds CLOCK_SGATE
* (3) times the jitter and the interval between them is less
* than twice the host poll interval, consider the new sample
* a popcorn spike and ignore it.
*/
if ( peer->disp < sys_maxdist
&& peer->filter_disp[k] < sys_maxdist
&& etemp > CLOCK_SGATE * peer->jitter
&& peer->filter_epoch[k] - peer->epoch
< 2. * ULOGTOD(peer->hpoll)) {
snprintf(tbuf, sizeof(tbuf), "%.6f s", etemp);
report_event(PEVNT_POPCORN, peer, tbuf);
return;
}
/*
* A new minimum sample is useful only if it is later than the
* last one used. In this design the maximum lifetime of any
* sample is not greater than eight times the poll interval, so
* the maximum interval between minimum samples is eight
* packets.
*/
if (peer->filter_epoch[k] <= peer->epoch) {
DPRINTF(2, ("clock_filter: old sample %lu\n", current_time -
peer->filter_epoch[k]));
return;
}
peer->epoch = peer->filter_epoch[k];
/*
* The mitigated sample statistics are saved for later
* processing. If not synchronized or not in a burst, tickle the
* clock select algorithm.
*/
record_peer_stats(&peer->srcadr, ctlpeerstatus(peer),
peer->offset, peer->delay, peer->disp, peer->jitter);
DPRINTF(1, ("clock_filter: n %d off %.6f del %.6f dsp %.6f jit %.6f\n",
m, peer->offset, peer->delay, peer->disp,
peer->jitter));
if (peer->burst == 0 || sys_leap == LEAP_NOTINSYNC)
clock_select();
}
/*
* clock_select - find the pick-of-the-litter clock
*
* LOCKCLOCK: (1) If the local clock is the prefer peer, it will always
* be enabled, even if declared falseticker, (2) only the prefer peer
* can be selected as the system peer, (3) if the external source is
* down, the system leap bits are set to 11 and the stratum set to
* infinity.
*/
void
clock_select(void)
{
struct peer *peer;
int i, j, k, n;
int nlist, nl2;
int allow;
int speer;
double d, e, f, g;
double high, low;
double speermet;
double lastresort_dist = MAXDISPERSE;
double orphmet = 2.0 * U_INT32_MAX; /* 2x is greater than */
struct endpoint endp;
struct peer *osys_peer;
struct peer *sys_prefer = NULL; /* prefer peer */
struct peer *typesystem = NULL;
struct peer *typelastresort = NULL;
struct peer *typeorphan = NULL;
#ifdef REFCLOCK
struct peer *typeacts = NULL;
struct peer *typelocal = NULL;
struct peer *typepps = NULL;
#endif /* REFCLOCK */
static struct endpoint *endpoint = NULL;
static int *indx = NULL;
static peer_select *peers = NULL;
static u_int endpoint_size = 0;
static u_int peers_size = 0;
static u_int indx_size = 0;
size_t octets;
/*
* Initialize and create endpoint, index and peer lists big
* enough to handle all associations.
*/
osys_peer = sys_peer;
sys_survivors = 0;
#ifdef LOCKCLOCK
set_sys_leap(LEAP_NOTINSYNC);
sys_stratum = STRATUM_UNSPEC;
memcpy(&sys_refid, "DOWN", 4);
#endif /* LOCKCLOCK */
/*
* Allocate dynamic space depending on the number of
* associations.
*/
nlist = 1;
for (peer = peer_list; peer != NULL; peer = peer->p_link)
nlist++;
endpoint_size = ALIGNED_SIZE(nlist * 2 * sizeof(*endpoint));
peers_size = ALIGNED_SIZE(nlist * sizeof(*peers));
indx_size = ALIGNED_SIZE(nlist * 2 * sizeof(*indx));
octets = endpoint_size + peers_size + indx_size;
endpoint = erealloc(endpoint, octets);
peers = INC_ALIGNED_PTR(endpoint, endpoint_size);
indx = INC_ALIGNED_PTR(peers, peers_size);
/*
* Initially, we populate the island with all the rifraff peers
* that happen to be lying around. Those with seriously
* defective clocks are immediately booted off the island. Then,
* the falsetickers are culled and put to sea. The truechimers
* remaining are subject to repeated rounds where the most
* unpopular at each round is kicked off. When the population
* has dwindled to sys_minclock, the survivors split a million
* bucks and collectively crank the chimes.
*/
nlist = nl2 = 0; /* none yet */
for (peer = peer_list; peer != NULL; peer = peer->p_link) {
peer->new_status = CTL_PST_SEL_REJECT;
/*
* Leave the island immediately if the peer is
* unfit to synchronize.
*/
if (peer_unfit(peer)) {
continue;
}
/*
* If we have never been synchronised, look for any peer
* which has ever been synchronised and pick the one which
* has the lowest root distance. This can be used as a last
* resort if all else fails. Once we get an initial sync
* with this peer, sys_reftime gets set and so this
* function becomes disabled.
*/
if (L_ISZERO(&sys_reftime)) {
d = root_distance(peer);
if (!L_ISZERO(&peer->reftime) && d < lastresort_dist) {
typelastresort = peer;
lastresort_dist = d;
}
}
/*
* If this peer is an orphan parent, elect the
* one with the lowest metric defined as the
* IPv4 address or the first 64 bits of the
* hashed IPv6 address. To ensure convergence
* on the same selected orphan, consider as
* well that this system may have the lowest
* metric and be the orphan parent. If this
* system wins, sys_peer will be NULL to trigger
* orphan mode in timer().
*/
if (peer->stratum == sys_orphan) {
u_int32 localmet;
u_int32 peermet;
if (peer->dstadr != NULL)
localmet = ntohl(peer->dstadr->addr_refid);
else
localmet = U_INT32_MAX;
peermet = ntohl(addr2refid(&peer->srcadr));
if (peermet < localmet && peermet < orphmet) {
typeorphan = peer;
orphmet = peermet;
}
continue;
}
/*
* If this peer could have the orphan parent
* as a synchronization ancestor, exclude it
* from selection to avoid forming a
* synchronization loop within the orphan mesh,
* triggering stratum climb to infinity
* instability. Peers at stratum higher than
* the orphan stratum could have the orphan
* parent in ancestry so are excluded.
* See http://bugs.ntp.org/2050
*/
if (peer->stratum > sys_orphan) {
continue;
}
#ifdef REFCLOCK
/*
* The following are special cases. We deal
* with them later.
*/
if (!(peer->flags & FLAG_PREFER)) {
switch (peer->refclktype) {
case REFCLK_LOCALCLOCK:
if ( current_time > orphwait
&& typelocal == NULL)
typelocal = peer;
continue;
case REFCLK_ACTS:
if ( current_time > orphwait
&& typeacts == NULL)
typeacts = peer;
continue;
}
}
#endif /* REFCLOCK */
/*
* If we get this far, the peer can stay on the
* island, but does not yet have the immunity
* idol.
*/
peer->new_status = CTL_PST_SEL_SANE;
f = root_distance(peer);
peers[nlist].peer = peer;
peers[nlist].error = peer->jitter;
peers[nlist].synch = f;
nlist++;
/*
* Insert each interval endpoint on the unsorted
* endpoint[] list.
*/
e = peer->offset;
endpoint[nl2].type = -1; /* lower end */
endpoint[nl2].val = e - f;
nl2++;
endpoint[nl2].type = 1; /* upper end */
endpoint[nl2].val = e + f;
nl2++;
}
/*
* Construct sorted indx[] of endpoint[] indexes ordered by
* offset.
*/
for (i = 0; i < nl2; i++)
indx[i] = i;
for (i = 0; i < nl2; i++) {
endp = endpoint[indx[i]];
e = endp.val;
k = i;
for (j = i + 1; j < nl2; j++) {
endp = endpoint[indx[j]];
if (endp.val < e) {
e = endp.val;
k = j;
}
}
if (k != i) {
j = indx[k];
indx[k] = indx[i];
indx[i] = j;
}
}
for (i = 0; i < nl2; i++)
DPRINTF(3, ("select: endpoint %2d %.6f\n",
endpoint[indx[i]].type, endpoint[indx[i]].val));
/*
* This is the actual algorithm that cleaves the truechimers
* from the falsetickers. The original algorithm was described
* in Keith Marzullo's dissertation, but has been modified for
* better accuracy.
*
* Briefly put, we first assume there are no falsetickers, then
* scan the candidate list first from the low end upwards and
* then from the high end downwards. The scans stop when the
* number of intersections equals the number of candidates less
* the number of falsetickers. If this doesn't happen for a
* given number of falsetickers, we bump the number of
* falsetickers and try again. If the number of falsetickers
* becomes equal to or greater than half the number of
* candidates, the Albanians have won the Byzantine wars and
* correct synchronization is not possible.
*
* Here, nlist is the number of candidates and allow is the
* number of falsetickers. Upon exit, the truechimers are the
* survivors with offsets not less than low and not greater than
* high. There may be none of them.
*/
low = 1e9;
high = -1e9;
for (allow = 0; 2 * allow < nlist; allow++) {
/*
* Bound the interval (low, high) as the smallest
* interval containing points from the most sources.
*/
n = 0;
for (i = 0; i < nl2; i++) {
low = endpoint[indx[i]].val;
n -= endpoint[indx[i]].type;
if (n >= nlist - allow)
break;
}
n = 0;
for (j = nl2 - 1; j >= 0; j--) {
high = endpoint[indx[j]].val;
n += endpoint[indx[j]].type;
if (n >= nlist - allow)
break;
}
/*
* If an interval containing truechimers is found, stop.
* If not, increase the number of falsetickers and go
* around again.
*/
if (high > low)
break;
}
/*
* Clustering algorithm. Whittle candidate list of falsetickers,
* who leave the island immediately. The TRUE peer is always a
* truechimer. We must leave at least one peer to collect the
* million bucks.
*
* We assert the correct time is contained in the interval, but
* the best offset estimate for the interval might not be
* contained in the interval. For this purpose, a truechimer is
* defined as the midpoint of an interval that overlaps the
* intersection interval.
*/
j = 0;
for (i = 0; i < nlist; i++) {
double h;
peer = peers[i].peer;
h = peers[i].synch;
if (( high <= low
|| peer->offset + h < low
|| peer->offset - h > high
) && !(peer->flags & FLAG_TRUE))
continue;
#ifdef REFCLOCK
/*
* Eligible PPS peers must survive the intersection
* algorithm. Use the first one found, but don't
* include any of them in the cluster population.
*/
if (peer->flags & FLAG_PPS) {
if (typepps == NULL)
typepps = peer;
if (!(peer->flags & FLAG_TSTAMP_PPS))
continue;
}
#endif /* REFCLOCK */
if (j != i)
peers[j] = peers[i];
j++;
}
nlist = j;
/*
* If no survivors remain at this point, check if the modem
* driver, local driver or orphan parent in that order. If so,
* nominate the first one found as the only survivor.
* Otherwise, give up and leave the island to the rats.
*/
if (nlist == 0) {
peers[0].error = 0;
peers[0].synch = sys_mindisp;
#ifdef REFCLOCK
if (typeacts != NULL) {
peers[0].peer = typeacts;
nlist = 1;
} else if (typelocal != NULL) {
peers[0].peer = typelocal;
nlist = 1;
} else
#endif /* REFCLOCK */
if (typeorphan != NULL) {
peers[0].peer = typeorphan;
nlist = 1;
} else if (typelastresort != NULL) {
peers[0].peer = typelastresort;
nlist = 1;
}
}
/*
* Mark the candidates at this point as truechimers.
*/
for (i = 0; i < nlist; i++) {
peers[i].peer->new_status = CTL_PST_SEL_SELCAND;
DPRINTF(2, ("select: survivor %s %f\n",
stoa(&peers[i].peer->srcadr), peers[i].synch));
}
/*
* Now, vote outliers off the island by select jitter weighted
* by root distance. Continue voting as long as there are more
* than sys_minclock survivors and the select jitter of the peer
* with the worst metric is greater than the minimum peer
* jitter. Stop if we are about to discard a TRUE or PREFER
* peer, who of course have the immunity idol.
*/
while (1) {
d = 1e9;
e = -1e9;
g = 0;
k = 0;
for (i = 0; i < nlist; i++) {
if (peers[i].error < d)
d = peers[i].error;
peers[i].seljit = 0;
if (nlist > 1) {
f = 0;
for (j = 0; j < nlist; j++)
f += DIFF(peers[j].peer->offset,
peers[i].peer->offset);
peers[i].seljit = SQRT(f / (nlist - 1));
}
if (peers[i].seljit * peers[i].synch > e) {
g = peers[i].seljit;
e = peers[i].seljit * peers[i].synch;
k = i;
}
}
g = max(g, LOGTOD(sys_precision));
if ( nlist <= max(1, sys_minclock)
|| g <= d
|| ((FLAG_TRUE | FLAG_PREFER) & peers[k].peer->flags))
break;
DPRINTF(3, ("select: drop %s seljit %.6f jit %.6f\n",
ntoa(&peers[k].peer->srcadr), g, d));
if (nlist > sys_maxclock)
peers[k].peer->new_status = CTL_PST_SEL_EXCESS;
for (j = k + 1; j < nlist; j++)
peers[j - 1] = peers[j];
nlist--;
}
/*
* What remains is a list usually not greater than sys_minclock
* peers. Note that unsynchronized peers cannot survive this
* far. Count and mark these survivors.
*
* While at it, count the number of leap warning bits found.
* This will be used later to vote the system leap warning bit.
* If a leap warning bit is found on a reference clock, the vote
* is always won.
*
* Choose the system peer using a hybrid metric composed of the
* selection jitter scaled by the root distance augmented by
* stratum scaled by sys_mindisp (.001 by default). The goal of
* the small stratum factor is to avoid clockhop between a
* reference clock and a network peer which has a refclock and
* is using an older ntpd, which does not floor sys_rootdisp at
* sys_mindisp.
*
* In contrast, ntpd 4.2.6 and earlier used stratum primarily
* in selecting the system peer, using a weight of 1 second of
* additional root distance per stratum. This heavy bias is no
* longer appropriate, as the scaled root distance provides a
* more rational metric carrying the cumulative error budget.
*/
e = 1e9;
speer = 0;
leap_vote_ins = 0;
leap_vote_del = 0;
for (i = 0; i < nlist; i++) {
peer = peers[i].peer;
peer->unreach = 0;
peer->new_status = CTL_PST_SEL_SYNCCAND;
sys_survivors++;
if (peer->leap == LEAP_ADDSECOND) {
if (peer->flags & FLAG_REFCLOCK)
leap_vote_ins = nlist;
else if (leap_vote_ins < nlist)
leap_vote_ins++;
}
if (peer->leap == LEAP_DELSECOND) {
if (peer->flags & FLAG_REFCLOCK)
leap_vote_del = nlist;
else if (leap_vote_del < nlist)
leap_vote_del++;
}
if (peer->flags & FLAG_PREFER)
sys_prefer = peer;
speermet = peers[i].seljit * peers[i].synch +
peer->stratum * sys_mindisp;
if (speermet < e) {
e = speermet;
speer = i;
}
}
/*
* Unless there are at least sys_misane survivors, leave the
* building dark. Otherwise, do a clockhop dance. Ordinarily,
* use the selected survivor speer. However, if the current
* system peer is not speer, stay with the current system peer
* as long as it doesn't get too old or too ugly.
*/
if (nlist > 0 && nlist >= sys_minsane) {
double x;
typesystem = peers[speer].peer;
if (osys_peer == NULL || osys_peer == typesystem) {
sys_clockhop = 0;
} else if ((x = fabs(typesystem->offset -
osys_peer->offset)) < sys_mindisp) {
if (sys_clockhop == 0)
sys_clockhop = sys_mindisp;
else
sys_clockhop *= .5;
DPRINTF(1, ("select: clockhop %d %.6f %.6f\n",
j, x, sys_clockhop));
if (fabs(x) < sys_clockhop)
typesystem = osys_peer;
else
sys_clockhop = 0;
} else {
sys_clockhop = 0;
}
}
/*
* Mitigation rules of the game. We have the pick of the
* litter in typesystem if any survivors are left. If
* there is a prefer peer, use its offset and jitter.
* Otherwise, use the combined offset and jitter of all kitters.
*/
if (typesystem != NULL) {
if (sys_prefer == NULL) {
typesystem->new_status = CTL_PST_SEL_SYSPEER;
clock_combine(peers, sys_survivors, speer);
} else {
typesystem = sys_prefer;
sys_clockhop = 0;
typesystem->new_status = CTL_PST_SEL_SYSPEER;
sys_offset = typesystem->offset;
sys_jitter = typesystem->jitter;
}
DPRINTF(1, ("select: combine offset %.9f jitter %.9f\n",
sys_offset, sys_jitter));
}
#ifdef REFCLOCK
/*
* If a PPS driver is lit and the combined offset is less than
* 0.4 s, select the driver as the PPS peer and use its offset
* and jitter. However, if this is the atom driver, use it only
* if there is a prefer peer or there are no survivors and none
* are required.
*/
if ( typepps != NULL
&& fabs(sys_offset) < 0.4
&& ( typepps->refclktype != REFCLK_ATOM_PPS
|| ( typepps->refclktype == REFCLK_ATOM_PPS
&& ( sys_prefer != NULL
|| (typesystem == NULL && sys_minsane == 0))))) {
typesystem = typepps;
sys_clockhop = 0;
typesystem->new_status = CTL_PST_SEL_PPS;
sys_offset = typesystem->offset;
sys_jitter = typesystem->jitter;
DPRINTF(1, ("select: pps offset %.9f jitter %.9f\n",
sys_offset, sys_jitter));
}
#endif /* REFCLOCK */
/*
* If there are no survivors at this point, there is no
* system peer. If so and this is an old update, keep the
* current statistics, but do not update the clock.
*/
if (typesystem == NULL) {
if (osys_peer != NULL) {
orphwait = current_time + sys_orphwait;
report_event(EVNT_NOPEER, NULL, NULL);
}
sys_peer = NULL;
for (peer = peer_list; peer != NULL; peer = peer->p_link)
peer->status = peer->new_status;
return;
}
/*
* Do not use old data, as this may mess up the clock discipline
* stability.
*/
if (typesystem->epoch <= sys_epoch)
return;
/*
* We have found the alpha male. Wind the clock.
*/
if (osys_peer != typesystem)
report_event(PEVNT_NEWPEER, typesystem, NULL);
for (peer = peer_list; peer != NULL; peer = peer->p_link)
peer->status = peer->new_status;
clock_update(typesystem);
}
static void
clock_combine(
peer_select * peers, /* survivor list */
int npeers, /* number of survivors */
int syspeer /* index of sys.peer */
)
{
int i;
double x, y, z, w;
y = z = w = 0;
for (i = 0; i < npeers; i++) {
x = 1. / peers[i].synch;
y += x;
z += x * peers[i].peer->offset;
w += x * DIFF(peers[i].peer->offset,
peers[syspeer].peer->offset);
}
sys_offset = z / y;
sys_jitter = SQRT(w / y + SQUARE(peers[syspeer].seljit));
}
/*
* root_distance - compute synchronization distance from peer to root
*/
static double
root_distance(
struct peer *peer /* peer structure pointer */
)
{
double dtemp;
/*
* Root Distance (LAMBDA) is defined as:
* (delta + DELTA)/2 + epsilon + EPSILON + D
*
* where:
* delta is the round-trip delay
* DELTA is the root delay
* epsilon is the peer dispersion
* + (15 usec each second)
* EPSILON is the root dispersion
* D is sys_jitter
*
* NB: Think hard about why we are using these values, and what
* the alternatives are, and the various pros/cons.
*
* DLM thinks these are probably the best choices from any of the
* other worse choices.
*/
dtemp = (peer->delay + peer->rootdelay) / 2
+ peer->disp
+ clock_phi * (current_time - peer->update)
+ peer->rootdisp
+ peer->jitter;
/*
* Careful squeak here. The value returned must be greater than
* the minimum root dispersion in order to avoid clockhop with
* highly precise reference clocks. Note that the root distance
* cannot exceed the sys_maxdist, as this is the cutoff by the
* selection algorithm.
*/
if (dtemp < sys_mindisp)
dtemp = sys_mindisp;
return (dtemp);
}
/*
* peer_xmit - send packet for persistent association.
*/
static void
peer_xmit(
struct peer *peer /* peer structure pointer */
)
{
struct pkt xpkt; /* transmit packet */
size_t sendlen, authlen;
keyid_t xkeyid = 0; /* transmit key ID */
l_fp xmt_tx, xmt_ty;
if (!peer->dstadr) /* drop peers without interface */
return;
xpkt.li_vn_mode = PKT_LI_VN_MODE(sys_leap, peer->version,
peer->hmode);
xpkt.stratum = STRATUM_TO_PKT(sys_stratum);
xpkt.ppoll = peer->hpoll;
xpkt.precision = sys_precision;
xpkt.refid = sys_refid;
xpkt.rootdelay = HTONS_FP(DTOFP(sys_rootdelay));
xpkt.rootdisp = HTONS_FP(DTOUFP(sys_rootdisp));
/* Use sys_reftime for peer exchanges */
HTONL_FP(&sys_reftime, &xpkt.reftime);
HTONL_FP(&peer->rec, &xpkt.org);
HTONL_FP(&peer->dst, &xpkt.rec);
/*
* If the received packet contains a MAC, the transmitted packet
* is authenticated and contains a MAC. If not, the transmitted
* packet is not authenticated.
*
* It is most important when autokey is in use that the local
* interface IP address be known before the first packet is
* sent. Otherwise, it is not possible to compute a correct MAC
* the recipient will accept. Thus, the I/O semantics have to do
* a little more work. In particular, the wildcard interface
* might not be usable.
*/
sendlen = LEN_PKT_NOMAC;
if (
#ifdef AUTOKEY
!(peer->flags & FLAG_SKEY) &&
#endif /* !AUTOKEY */
peer->keyid == 0) {
/*
* Transmit a-priori timestamps
*/
get_systime(&xmt_tx);
if (peer->flip == 0) { /* basic mode */
peer->aorg = xmt_tx;
HTONL_FP(&xmt_tx, &xpkt.xmt);
} else { /* interleaved modes */
if (peer->hmode == MODE_BROADCAST) { /* bcst */
HTONL_FP(&xmt_tx, &xpkt.xmt);
if (peer->flip > 0)
HTONL_FP(&peer->borg,
&xpkt.org);
else
HTONL_FP(&peer->aorg,
&xpkt.org);
} else { /* symmetric */
if (peer->flip > 0)
HTONL_FP(&peer->borg,
&xpkt.xmt);
else
HTONL_FP(&peer->aorg,
&xpkt.xmt);
}
}
peer->t21_bytes = sendlen;
sendpkt(&peer->srcadr, peer->dstadr,
sys_ttl[(peer->ttl >= sys_ttlmax) ? sys_ttlmax : peer->ttl],
&xpkt, sendlen);
peer->sent++;
peer->throttle += (1 << peer->minpoll) - 2;
/*
* Capture a-posteriori timestamps
*/
get_systime(&xmt_ty);
if (peer->flip != 0) { /* interleaved modes */
if (peer->flip > 0)
peer->aorg = xmt_ty;
else
peer->borg = xmt_ty;
peer->flip = -peer->flip;
}
L_SUB(&xmt_ty, &xmt_tx);
LFPTOD(&xmt_ty, peer->xleave);
DPRINTF(1, ("peer_xmit: at %ld %s->%s mode %d len %zu xmt %#010x.%08x\n",
current_time,
peer->dstadr ? stoa(&peer->dstadr->sin) : "-",
stoa(&peer->srcadr), peer->hmode, sendlen,
xmt_tx.l_ui, xmt_tx.l_uf));
return;
}
/*
* Authentication is enabled, so the transmitted packet must be
* authenticated. If autokey is enabled, fuss with the various
* modes; otherwise, symmetric key cryptography is used.
*/
#ifdef AUTOKEY
if (peer->flags & FLAG_SKEY) {
struct exten *exten; /* extension field */
/*
* The Public Key Dance (PKD): Cryptographic credentials
* are contained in extension fields, each including a
* 4-octet length/code word followed by a 4-octet
* association ID and optional additional data. Optional
* data includes a 4-octet data length field followed by
* the data itself. Request messages are sent from a
* configured association; response messages can be sent
* from a configured association or can take the fast
* path without ever matching an association. Response
* messages have the same code as the request, but have
* a response bit and possibly an error bit set. In this
* implementation, a message may contain no more than
* one command and one or more responses.
*
* Cryptographic session keys include both a public and
* a private componet. Request and response messages
* using extension fields are always sent with the
* private component set to zero. Packets without
* extension fields indlude the private component when
* the session key is generated.
*/
while (1) {
/*
* Allocate and initialize a keylist if not
* already done. Then, use the list in inverse
* order, discarding keys once used. Keep the
* latest key around until the next one, so
* clients can use client/server packets to
* compute propagation delay.
*
* Note that once a key is used from the list,
* it is retained in the key cache until the
* next key is used. This is to allow a client
* to retrieve the encrypted session key
* identifier to verify authenticity.
*
* If for some reason a key is no longer in the
* key cache, a birthday has happened or the key
* has expired, so the pseudo-random sequence is
* broken. In that case, purge the keylist and
* regenerate it.
*/
if (peer->keynumber == 0)
make_keylist(peer, peer->dstadr);
else
peer->keynumber--;
xkeyid = peer->keylist[peer->keynumber];
if (authistrusted(xkeyid))
break;
else
key_expire(peer);
}
peer->keyid = xkeyid;
exten = NULL;
switch (peer->hmode) {
/*
* In broadcast server mode the autokey values are
* required by the broadcast clients. Push them when a
* new keylist is generated; otherwise, push the
* association message so the client can request them at
* other times.
*/
case MODE_BROADCAST:
if (peer->flags & FLAG_ASSOC)
exten = crypto_args(peer, CRYPTO_AUTO |
CRYPTO_RESP, peer->associd, NULL);
else
exten = crypto_args(peer, CRYPTO_ASSOC |
CRYPTO_RESP, peer->associd, NULL);
break;
/*
* In symmetric modes the parameter, certificate,
* identity, cookie and autokey exchanges are
* required. The leapsecond exchange is optional. But, a
* peer will not believe the other peer until the other
* peer has synchronized, so the certificate exchange
* might loop until then. If a peer finds a broken
* autokey sequence, it uses the autokey exchange to
* retrieve the autokey values. In any case, if a new
* keylist is generated, the autokey values are pushed.
*/
case MODE_ACTIVE:
case MODE_PASSIVE:
/*
* Parameter, certificate and identity.
*/
if (!peer->crypto)
exten = crypto_args(peer, CRYPTO_ASSOC,
peer->associd, hostval.ptr);
else if (!(peer->crypto & CRYPTO_FLAG_CERT))
exten = crypto_args(peer, CRYPTO_CERT,
peer->associd, peer->issuer);
else if (!(peer->crypto & CRYPTO_FLAG_VRFY))
exten = crypto_args(peer,
crypto_ident(peer), peer->associd,
NULL);
/*
* Cookie and autokey. We request the cookie
* only when the this peer and the other peer
* are synchronized. But, this peer needs the
* autokey values when the cookie is zero. Any
* time we regenerate the key list, we offer the
* autokey values without being asked. If for
* some reason either peer finds a broken
* autokey sequence, the autokey exchange is
* used to retrieve the autokey values.
*/
else if ( sys_leap != LEAP_NOTINSYNC
&& peer->leap != LEAP_NOTINSYNC
&& !(peer->crypto & CRYPTO_FLAG_COOK))
exten = crypto_args(peer, CRYPTO_COOK,
peer->associd, NULL);
else if (!(peer->crypto & CRYPTO_FLAG_AUTO))
exten = crypto_args(peer, CRYPTO_AUTO,
peer->associd, NULL);
else if ( peer->flags & FLAG_ASSOC
&& peer->crypto & CRYPTO_FLAG_SIGN)
exten = crypto_args(peer, CRYPTO_AUTO |
CRYPTO_RESP, peer->assoc, NULL);
/*
* Wait for clock sync, then sign the
* certificate and retrieve the leapsecond
* values.
*/
else if (sys_leap == LEAP_NOTINSYNC)
break;
else if (!(peer->crypto & CRYPTO_FLAG_SIGN))
exten = crypto_args(peer, CRYPTO_SIGN,
peer->associd, hostval.ptr);
else if (!(peer->crypto & CRYPTO_FLAG_LEAP))
exten = crypto_args(peer, CRYPTO_LEAP,
peer->associd, NULL);
break;
/*
* In client mode the parameter, certificate, identity,
* cookie and sign exchanges are required. The
* leapsecond exchange is optional. If broadcast client
* mode the same exchanges are required, except that the
* autokey exchange is substitutes for the cookie
* exchange, since the cookie is always zero. If the
* broadcast client finds a broken autokey sequence, it
* uses the autokey exchange to retrieve the autokey
* values.
*/
case MODE_CLIENT:
/*
* Parameter, certificate and identity.
*/
if (!peer->crypto)
exten = crypto_args(peer, CRYPTO_ASSOC,
peer->associd, hostval.ptr);
else if (!(peer->crypto & CRYPTO_FLAG_CERT))
exten = crypto_args(peer, CRYPTO_CERT,
peer->associd, peer->issuer);
else if (!(peer->crypto & CRYPTO_FLAG_VRFY))
exten = crypto_args(peer,
crypto_ident(peer), peer->associd,
NULL);
/*
* Cookie and autokey. These are requests, but
* we use the peer association ID with autokey
* rather than our own.
*/
else if (!(peer->crypto & CRYPTO_FLAG_COOK))
exten = crypto_args(peer, CRYPTO_COOK,
peer->associd, NULL);
else if (!(peer->crypto & CRYPTO_FLAG_AUTO))
exten = crypto_args(peer, CRYPTO_AUTO,
peer->assoc, NULL);
/*
* Wait for clock sync, then sign the
* certificate and retrieve the leapsecond
* values.
*/
else if (sys_leap == LEAP_NOTINSYNC)
break;
else if (!(peer->crypto & CRYPTO_FLAG_SIGN))
exten = crypto_args(peer, CRYPTO_SIGN,
peer->associd, hostval.ptr);
else if (!(peer->crypto & CRYPTO_FLAG_LEAP))
exten = crypto_args(peer, CRYPTO_LEAP,
peer->associd, NULL);
break;
}
/*
* Add a queued extension field if present. This is
* always a request message, so the reply ID is already
* in the message. If an error occurs, the error bit is
* lit in the response.
*/
if (peer->cmmd != NULL) {
u_int32 temp32;
temp32 = CRYPTO_RESP;
peer->cmmd->opcode |= htonl(temp32);
sendlen += crypto_xmit(peer, &xpkt, NULL,
sendlen, peer->cmmd, 0);
free(peer->cmmd);
peer->cmmd = NULL;
}
/*
* Add an extension field created above. All but the
* autokey response message are request messages.
*/
if (exten != NULL) {
if (exten->opcode != 0)
sendlen += crypto_xmit(peer, &xpkt,
NULL, sendlen, exten, 0);
free(exten);
}
/*
* Calculate the next session key. Since extension
* fields are present, the cookie value is zero.
*/
if (sendlen > (int)LEN_PKT_NOMAC) {
session_key(&peer->dstadr->sin, &peer->srcadr,
xkeyid, 0, 2);
}
}
#endif /* AUTOKEY */
/*
* Transmit a-priori timestamps
*/
get_systime(&xmt_tx);
if (peer->flip == 0) { /* basic mode */
peer->aorg = xmt_tx;
HTONL_FP(&xmt_tx, &xpkt.xmt);
} else { /* interleaved modes */
if (peer->hmode == MODE_BROADCAST) { /* bcst */
HTONL_FP(&xmt_tx, &xpkt.xmt);
if (peer->flip > 0)
HTONL_FP(&peer->borg, &xpkt.org);
else
HTONL_FP(&peer->aorg, &xpkt.org);
} else { /* symmetric */
if (peer->flip > 0)
HTONL_FP(&peer->borg, &xpkt.xmt);
else
HTONL_FP(&peer->aorg, &xpkt.xmt);
}
}
xkeyid = peer->keyid;
authlen = authencrypt(xkeyid, (u_int32 *)&xpkt, sendlen);
if (authlen == 0) {
report_event(PEVNT_AUTH, peer, "no key");
peer->flash |= TEST5; /* auth error */
peer->badauth++;
return;
}
sendlen += authlen;
#ifdef AUTOKEY
if (xkeyid > NTP_MAXKEY)
authtrust(xkeyid, 0);
#endif /* AUTOKEY */
if (sendlen > sizeof(xpkt)) {
msyslog(LOG_ERR, "peer_xmit: buffer overflow %zu", sendlen);
exit (-1);
}
peer->t21_bytes = sendlen;
sendpkt(&peer->srcadr, peer->dstadr,
sys_ttl[(peer->ttl >= sys_ttlmax) ? sys_ttlmax : peer->ttl],
&xpkt, sendlen);
peer->sent++;
peer->throttle += (1 << peer->minpoll) - 2;
/*
* Capture a-posteriori timestamps
*/
get_systime(&xmt_ty);
if (peer->flip != 0) { /* interleaved modes */
if (peer->flip > 0)
peer->aorg = xmt_ty;
else
peer->borg = xmt_ty;
peer->flip = -peer->flip;
}
L_SUB(&xmt_ty, &xmt_tx);
LFPTOD(&xmt_ty, peer->xleave);
#ifdef AUTOKEY
DPRINTF(1, ("peer_xmit: at %ld %s->%s mode %d keyid %08x len %zu index %d\n",
current_time, latoa(peer->dstadr),
ntoa(&peer->srcadr), peer->hmode, xkeyid, sendlen,
peer->keynumber));
#else /* !AUTOKEY follows */
DPRINTF(1, ("peer_xmit: at %ld %s->%s mode %d keyid %08x len %zu\n",
current_time, peer->dstadr ?
ntoa(&peer->dstadr->sin) : "-",
ntoa(&peer->srcadr), peer->hmode, xkeyid, sendlen));
#endif /* !AUTOKEY */
return;
}
#ifdef LEAP_SMEAR
static void
leap_smear_add_offs(
l_fp *t,
l_fp *t_recv
)
{
L_ADD(t, &leap_smear.offset);
/*
** XXX: Should the smear be added to the root dispersion?
*/
return;
}
#endif /* LEAP_SMEAR */
/*
* fast_xmit - Send packet for nonpersistent association. Note that
* neither the source or destination can be a broadcast address.
*/
static void
fast_xmit(
struct recvbuf *rbufp, /* receive packet pointer */
int xmode, /* receive mode */ /* XXX: HMS: really? */
keyid_t xkeyid, /* transmit key ID */
int flags /* restrict mask */
)
{
struct pkt xpkt; /* transmit packet structure */
struct pkt *rpkt; /* receive packet structure */
l_fp xmt_tx, xmt_ty;
size_t sendlen;
#ifdef AUTOKEY
u_int32 temp32;
#endif
/*
* Initialize transmit packet header fields from the receive
* buffer provided. We leave the fields intact as received, but
* set the peer poll at the maximum of the receive peer poll and
* the system minimum poll (ntp_minpoll). This is for KoD rate
* control and not strictly specification compliant, but doesn't
* break anything.
*
* If the gazinta was from a multicast address, the gazoutta
* must go out another way.
*/
rpkt = &rbufp->recv_pkt;
if (rbufp->dstadr->flags & INT_MCASTOPEN)
rbufp->dstadr = findinterface(&rbufp->recv_srcadr);
/*
* If this is a kiss-o'-death (KoD) packet, show leap
* unsynchronized, stratum zero, reference ID the four-character
* kiss code and (???) system root delay. Note we don't reveal
* the local time, so these packets can't be used for
* synchronization.
*/
if (flags & RES_KOD) {
sys_kodsent++;
xpkt.li_vn_mode = PKT_LI_VN_MODE(LEAP_NOTINSYNC,
PKT_VERSION(rpkt->li_vn_mode), xmode);
xpkt.stratum = STRATUM_PKT_UNSPEC;
xpkt.ppoll = max(rpkt->ppoll, ntp_minpoll);
xpkt.precision = rpkt->precision;
memcpy(&xpkt.refid, "RATE", 4);
xpkt.rootdelay = rpkt->rootdelay;
xpkt.rootdisp = rpkt->rootdisp;
xpkt.reftime = rpkt->reftime;
xpkt.org = rpkt->xmt;
xpkt.rec = rpkt->xmt;
xpkt.xmt = rpkt->xmt;
/*
* This is a normal packet. Use the system variables.
*/
} else {
double this_rootdisp;
l_fp this_ref_time;
#ifdef LEAP_SMEAR
/*
* Make copies of the variables which can be affected by smearing.
*/
l_fp this_recv_time;
#endif
/*
* If we are inside the leap smear interval we add
* the current smear offset to:
* - the packet receive time,
* - the packet transmit time,
* - and eventually to the reftime to make sure the
* reftime isn't later than the transmit/receive times.
*/
xpkt.li_vn_mode = PKT_LI_VN_MODE(xmt_leap,
PKT_VERSION(rpkt->li_vn_mode), xmode);
xpkt.stratum = STRATUM_TO_PKT(sys_stratum);
xpkt.ppoll = max(rpkt->ppoll, ntp_minpoll);
xpkt.precision = sys_precision;
xpkt.refid = sys_refid;
xpkt.rootdelay = HTONS_FP(DTOFP(sys_rootdelay));
/*
** Server Response Fuzzing
**
** Which values do we want to use for reftime and rootdisp?
*/
if ( MODE_SERVER == xmode
&& RES_SRVRSPFUZ & flags) {
if (current_time < p2_time) {
this_ref_time = p2_reftime;
this_rootdisp = p2_rootdisp;
} else if (current_time < prev_time) {
this_ref_time = prev_reftime;
this_rootdisp = prev_rootdisp;
} else {
this_ref_time = sys_reftime;
this_rootdisp = sys_rootdisp;
}
SRVRSP_FUZZ(this_ref_time);
} else {
this_ref_time = sys_reftime;
this_rootdisp = sys_rootdisp;
}
/*
** ROOT DISPERSION
*/
xpkt.rootdisp = HTONS_FP(DTOUFP(this_rootdisp));
/*
** REFTIME
*/
#ifdef LEAP_SMEAR
if (leap_smear.in_progress) {
/* adjust the reftime by the same amount as the
* leap smear, as we don't want to risk the
* reftime being later than the transmit time.
*/
leap_smear_add_offs(&this_ref_time, NULL);
}
#endif
HTONL_FP(&this_ref_time, &xpkt.reftime);
/*
** REFID
*/
#ifdef LEAP_SMEAR
if (leap_smear.in_progress) {
xpkt.refid = convertLFPToRefID(leap_smear.offset);
DPRINTF(2, ("fast_xmit: leap_smear.in_progress: refid %8x, smear %s\n",
ntohl(xpkt.refid),
lfptoa(&leap_smear.offset, 8)
));
}
#endif
/*
** ORIGIN
*/
xpkt.org = rpkt->xmt;
/*
** RECEIVE
*/
#ifdef LEAP_SMEAR
this_recv_time = rbufp->recv_time;
if (leap_smear.in_progress)
leap_smear_add_offs(&this_recv_time, NULL);
HTONL_FP(&this_recv_time, &xpkt.rec);
#else
HTONL_FP(&rbufp->recv_time, &xpkt.rec);
#endif
/*
** TRANSMIT
*/
get_systime(&xmt_tx);
#ifdef LEAP_SMEAR
if (leap_smear.in_progress)
leap_smear_add_offs(&xmt_tx, &this_recv_time);
#endif
HTONL_FP(&xmt_tx, &xpkt.xmt);
}
#ifdef HAVE_NTP_SIGND
if (flags & RES_MSSNTP) {
send_via_ntp_signd(rbufp, xmode, xkeyid, flags, &xpkt);
return;
}
#endif /* HAVE_NTP_SIGND */
/*
* If the received packet contains a MAC, the transmitted packet
* is authenticated and contains a MAC. If not, the transmitted
* packet is not authenticated.
*/
sendlen = LEN_PKT_NOMAC;
if (rbufp->recv_length == sendlen) {
sendpkt(&rbufp->recv_srcadr, rbufp->dstadr, 0, &xpkt,
sendlen);
DPRINTF(1, ("fast_xmit: at %ld %s->%s mode %d len %lu\n",
current_time, stoa(&rbufp->dstadr->sin),
stoa(&rbufp->recv_srcadr), xmode,
(u_long)sendlen));
return;
}
/*
* The received packet contains a MAC, so the transmitted packet
* must be authenticated. For symmetric key cryptography, use
* the predefined and trusted symmetric keys to generate the
* cryptosum. For autokey cryptography, use the server private
* value to generate the cookie, which is unique for every
* source-destination-key ID combination.
*/
#ifdef AUTOKEY
if (xkeyid > NTP_MAXKEY) {
keyid_t cookie;
/*
* The only way to get here is a reply to a legitimate
* client request message, so the mode must be
* MODE_SERVER. If an extension field is present, there
* can be only one and that must be a command. Do what
* needs, but with private value of zero so the poor
* jerk can decode it. If no extension field is present,
* use the cookie to generate the session key.
*/
cookie = session_key(&rbufp->recv_srcadr,
&rbufp->dstadr->sin, 0, sys_private, 0);
if ((size_t)rbufp->recv_length > sendlen + MAX_MAC_LEN) {
session_key(&rbufp->dstadr->sin,
&rbufp->recv_srcadr, xkeyid, 0, 2);
temp32 = CRYPTO_RESP;
rpkt->exten[0] |= htonl(temp32);
sendlen += crypto_xmit(NULL, &xpkt, rbufp,
sendlen, (struct exten *)rpkt->exten,
cookie);
} else {
session_key(&rbufp->dstadr->sin,
&rbufp->recv_srcadr, xkeyid, cookie, 2);
}
}
#endif /* AUTOKEY */
get_systime(&xmt_tx);
sendlen += authencrypt(xkeyid, (u_int32 *)&xpkt, sendlen);
#ifdef AUTOKEY
if (xkeyid > NTP_MAXKEY)
authtrust(xkeyid, 0);
#endif /* AUTOKEY */
sendpkt(&rbufp->recv_srcadr, rbufp->dstadr, 0, &xpkt, sendlen);
get_systime(&xmt_ty);
L_SUB(&xmt_ty, &xmt_tx);
sys_authdelay = xmt_ty;
DPRINTF(1, ("fast_xmit: at %ld %s->%s mode %d keyid %08x len %lu\n",
current_time, ntoa(&rbufp->dstadr->sin),
ntoa(&rbufp->recv_srcadr), xmode, xkeyid,
(u_long)sendlen));
}
/*
* pool_xmit - resolve hostname or send unicast solicitation for pool.
*/
static void
pool_xmit(
struct peer *pool /* pool solicitor association */
)
{
#ifdef WORKER
struct pkt xpkt; /* transmit packet structure */
struct addrinfo hints;
int rc;
struct interface * lcladr;
sockaddr_u * rmtadr;
r4addr r4a;
u_short restrict_mask;
struct peer * p;
l_fp xmt_tx;
DEBUG_REQUIRE(pool);
if (NULL == pool->ai) {
if (pool->addrs != NULL) {
/* free() is used with copy_addrinfo_list() */
free(pool->addrs);
pool->addrs = NULL;
}
ZERO(hints);
hints.ai_family = AF(&pool->srcadr);
hints.ai_socktype = SOCK_DGRAM;
hints.ai_protocol = IPPROTO_UDP;
/* ignore getaddrinfo_sometime() errors, we will retry */
rc = getaddrinfo_sometime(
pool->hostname,
"ntp",
&hints,
0, /* no retry */
&pool_name_resolved,
(void *)(intptr_t)pool->associd);
if (!rc)
DPRINTF(1, ("pool DNS lookup %s started\n",
pool->hostname));
else
msyslog(LOG_ERR,
"unable to start pool DNS %s: %m",
pool->hostname);
return;
}
do {
/* copy_addrinfo_list ai_addr points to a sockaddr_u */
rmtadr = (sockaddr_u *)(void *)pool->ai->ai_addr;
pool->ai = pool->ai->ai_next;
p = findexistingpeer(rmtadr, NULL, NULL, MODE_CLIENT, 0, NULL);
} while (p != NULL && pool->ai != NULL);
if (p != NULL)
return; /* out of addresses, re-query DNS next poll */
restrictions(rmtadr, &r4a);
restrict_mask = r4a.rflags;
if (RES_FLAGS & restrict_mask)
restrict_source(rmtadr, 0,
current_time + POOL_SOLICIT_WINDOW + 1);
lcladr = findinterface(rmtadr);
memset(&xpkt, 0, sizeof(xpkt));
xpkt.li_vn_mode = PKT_LI_VN_MODE(sys_leap, pool->version,
MODE_CLIENT);
xpkt.stratum = STRATUM_TO_PKT(sys_stratum);
xpkt.ppoll = pool->hpoll;
xpkt.precision = sys_precision;
xpkt.refid = sys_refid;
xpkt.rootdelay = HTONS_FP(DTOFP(sys_rootdelay));
xpkt.rootdisp = HTONS_FP(DTOUFP(sys_rootdisp));
/* Bug 3596: What are the pros/cons of using sys_reftime here? */
HTONL_FP(&sys_reftime, &xpkt.reftime);
/* HMS: the following is better done after the ntp_random() calls */
get_systime(&xmt_tx);
pool->aorg = xmt_tx;
if (FLAG_LOOPNONCE & pool->flags) {
l_fp nonce;
do {
nonce.l_ui = ntp_random();
} while (0 == nonce.l_ui);
do {
nonce.l_uf = ntp_random();
} while (0 == nonce.l_uf);
pool->nonce = nonce;
HTONL_FP(&nonce, &xpkt.xmt);
} else {
L_CLR(&pool->nonce);
HTONL_FP(&xmt_tx, &xpkt.xmt);
}
sendpkt(rmtadr, lcladr,
sys_ttl[(pool->ttl >= sys_ttlmax) ? sys_ttlmax : pool->ttl],
&xpkt, LEN_PKT_NOMAC);
pool->sent++;
pool->throttle += (1 << pool->minpoll) - 2;
DPRINTF(1, ("pool_xmit: at %ld %s->%s pool\n",
current_time, latoa(lcladr), stoa(rmtadr)));
msyslog(LOG_INFO, "Soliciting pool server %s", stoa(rmtadr));
#endif /* WORKER */
}
#ifdef AUTOKEY
/*
* group_test - test if this is the same group
*
* host assoc return action
* none none 0 mobilize *
* none group 0 mobilize *
* group none 0 mobilize *
* group group 1 mobilize
* group different 1 ignore
* * ignore if notrust
*/
int
group_test(
char *grp,
char *ident
)
{
if (grp == NULL)
return (0);
if (strcmp(grp, sys_groupname) == 0)
return (0);
if (ident == NULL)
return (1);
if (strcmp(grp, ident) == 0)
return (0);
return (1);
}
#endif /* AUTOKEY */
#ifdef WORKER
void
pool_name_resolved(
int rescode,
int gai_errno,
void * context,
const char * name,
const char * service,
const struct addrinfo * hints,
const struct addrinfo * res
)
{
struct peer * pool; /* pool solicitor association */
associd_t assoc;
if (rescode) {
msyslog(LOG_ERR,
"error resolving pool %s: %s (%d)",
name, gai_strerror(rescode), rescode);
return;
}
assoc = (associd_t)(intptr_t)context;
pool = findpeerbyassoc(assoc);
if (NULL == pool) {
msyslog(LOG_ERR,
"Could not find assoc %u for pool DNS %s",
assoc, name);
return;
}
DPRINTF(1, ("pool DNS %s completed\n", name));
pool->addrs = copy_addrinfo_list(res);
pool->ai = pool->addrs;
pool_xmit(pool);
}
#endif /* WORKER */
#ifdef AUTOKEY
/*
* key_expire - purge the key list
*/
void
key_expire(
struct peer *peer /* peer structure pointer */
)
{
int i;
if (peer->keylist != NULL) {
for (i = 0; i <= peer->keynumber; i++)
authtrust(peer->keylist[i], 0);
free(peer->keylist);
peer->keylist = NULL;
}
value_free(&peer->sndval);
peer->keynumber = 0;
peer->flags &= ~FLAG_ASSOC;
DPRINTF(1, ("key_expire: at %lu associd %d\n", current_time,
peer->associd));
}
#endif /* AUTOKEY */
/*
* local_refid(peer) - check peer refid to avoid selecting peers
* currently synced to this ntpd.
*/
static int
local_refid(
struct peer * p
)
{
endpt * unicast_ep;
if (p->dstadr != NULL && !(INT_MCASTIF & p->dstadr->flags))
unicast_ep = p->dstadr;
else
unicast_ep = findinterface(&p->srcadr);
if (unicast_ep != NULL && p->refid == unicast_ep->addr_refid)
return TRUE;
else
return FALSE;
}
/*
* Determine if the peer is unfit for synchronization
*
* A peer is unfit for synchronization if
* > TEST10 bad leap or stratum below floor or at or above ceiling
* > TEST11 root distance exceeded for remote peer
* > TEST12 a direct or indirect synchronization loop would form
* > TEST13 unreachable or noselect
*/
int /* FALSE if fit, TRUE if unfit */
peer_unfit(
struct peer *peer /* peer structure pointer */
)
{
int rval = 0;
/*
* A stratum error occurs if (1) the server has never been
* synchronized, (2) the server stratum is below the floor or
* greater than or equal to the ceiling.
*/
if ( peer->leap == LEAP_NOTINSYNC
|| peer->stratum < sys_floor
|| peer->stratum >= sys_ceiling) {
rval |= TEST10; /* bad synch or stratum */
}
/*
* A distance error for a remote peer occurs if the root
* distance is greater than or equal to the distance threshold
* plus the increment due to one host poll interval.
*/
if ( !(peer->flags & FLAG_REFCLOCK)
&& root_distance(peer) >= sys_maxdist
+ clock_phi * ULOGTOD(peer->hpoll)) {
rval |= TEST11; /* distance exceeded */
}
/*
* A loop error occurs if the remote peer is synchronized to the
* local peer or if the remote peer is synchronized to the same
* server as the local peer but only if the remote peer is
* neither a reference clock nor an orphan.
*/
if (peer->stratum > 1 && local_refid(peer)) {
rval |= TEST12; /* synchronization loop */
}
/*
* An unreachable error occurs if the server is unreachable or
* the noselect bit is set.
*/
if (!peer->reach || (peer->flags & FLAG_NOSELECT)) {
rval |= TEST13; /* unreachable */
}
peer->flash &= ~PEER_TEST_MASK;
peer->flash |= rval;
return (rval);
}
/*
* Find the precision of this particular machine
*/
#define MINSTEP 20e-9 /* minimum clock increment (s) */
#define MAXSTEP 1 /* maximum clock increment (s) */
#define MINCHANGES 12 /* minimum number of step samples */
#define MAXLOOPS ((int)(1. / MINSTEP)) /* avoid infinite loop */
/*
* This routine measures the system precision defined as the minimum of
* a sequence of differences between successive readings of the system
* clock. However, if a difference is less than MINSTEP, the clock has
* been read more than once during a clock tick and the difference is
* ignored. We set MINSTEP greater than zero in case something happens
* like a cache miss, and to tolerate underlying system clocks which
* ensure each reading is strictly greater than prior readings while
* using an underlying stepping (not interpolated) clock.
*
* sys_tick and sys_precision represent the time to read the clock for
* systems with high-precision clocks, and the tick interval or step
* size for lower-precision stepping clocks.
*
* This routine also measures the time to read the clock on stepping
* system clocks by counting the number of readings between changes of
* the underlying clock. With either type of clock, the minimum time
* to read the clock is saved as sys_fuzz, and used to ensure the
* get_systime() readings always increase and are fuzzed below sys_fuzz.
*/
void
measure_precision(void)
{
/*
* With sys_fuzz set to zero, get_systime() fuzzing of low bits
* is effectively disabled. trunc_os_clock is FALSE to disable
* get_ostime() simulation of a low-precision system clock.
*/
set_sys_fuzz(0.);
trunc_os_clock = FALSE;
measured_tick = measure_tick_fuzz();
set_sys_tick_precision(measured_tick);
msyslog(LOG_INFO, "proto: precision = %.3f usec (%d)",
sys_tick * 1e6, sys_precision);
if (sys_fuzz < sys_tick) {
msyslog(LOG_NOTICE, "proto: fuzz beneath %.3f usec",
sys_fuzz * 1e6);
}
}
/*
* measure_tick_fuzz()
*
* measures the minimum time to read the clock (stored in sys_fuzz)
* and returns the tick, the larger of the minimum increment observed
* between successive clock readings and the time to read the clock.
*/
double
measure_tick_fuzz(void)
{
l_fp minstep; /* MINSTEP as l_fp */
l_fp val; /* current seconds fraction */
l_fp last; /* last seconds fraction */
l_fp ldiff; /* val - last */
double tick; /* computed tick value */
double diff;
long repeats;
long max_repeats;
int changes;
int i; /* log2 precision */
tick = MAXSTEP;
max_repeats = 0;
repeats = 0;
changes = 0;
DTOLFP(MINSTEP, &minstep);
get_systime(&last);
for (i = 0; i < MAXLOOPS && changes < MINCHANGES; i++) {
get_systime(&val);
ldiff = val;
L_SUB(&ldiff, &last);
last = val;
if (L_ISGT(&ldiff, &minstep)) {
max_repeats = max(repeats, max_repeats);
repeats = 0;
changes++;
LFPTOD(&ldiff, diff);
tick = min(diff, tick);
} else {
repeats++;
}
}
if (changes < MINCHANGES) {
msyslog(LOG_ERR, "Fatal error: precision could not be measured (MINSTEP too large?)");
exit(1);
}
if (0 == max_repeats) {
set_sys_fuzz(tick);
} else {
set_sys_fuzz(tick / max_repeats);
}
return tick;
}
void
set_sys_tick_precision(
double tick
)
{
int i;
if (tick > 1.) {
msyslog(LOG_ERR,
"unsupported tick %.3f > 1s ignored", tick);
return;
}
if (tick < measured_tick) {
msyslog(LOG_ERR,
"proto: tick %.3f less than measured tick %.3f, ignored",
tick, measured_tick);
return;
} else if (tick > measured_tick) {
trunc_os_clock = TRUE;
msyslog(LOG_NOTICE,
"proto: truncating system clock to multiples of %.9f",
tick);
}
sys_tick = tick;
/*
* Find the nearest power of two.
*/
for (i = 0; tick <= 1; i--)
tick *= 2;
if (tick - 1 > 1 - tick / 2)
i++;
sys_precision = (s_char)i;
}
/*
* init_proto - initialize the protocol module's data
*/
void
init_proto(void)
{
l_fp dummy;
int i;
/*
* Fill in the sys_* stuff. Default is don't listen to
* broadcasting, require authentication.
*/
set_sys_leap(LEAP_NOTINSYNC);
sys_stratum = STRATUM_UNSPEC;
memcpy(&sys_refid, "INIT", 4);
sys_peer = NULL;
sys_rootdelay = 0;
sys_rootdisp = 0;
L_CLR(&sys_reftime);
sys_jitter = 0;
measure_precision();
get_systime(&dummy);
sys_survivors = 0;
sys_manycastserver = 0;
sys_bclient = 0;
sys_mclient = 0;
sys_bdelay = BDELAY_DEFAULT; /*[Bug 3031] delay cutoff */
sys_authenticate = 1;
sys_stattime = current_time;
orphwait = current_time + sys_orphwait;
proto_clr_stats();
for (i = 0; i < MAX_TTL; ++i)
sys_ttl[i] = (u_char)((i * 256) / MAX_TTL);
sys_ttlmax = (MAX_TTL - 1);
hardpps_enable = 0;
stats_control = 1;
}
/*
* proto_config - configure the protocol module
*/
void
proto_config(
int item,
u_long value,
double dvalue,
sockaddr_u *svalue
)
{
/*
* Figure out what he wants to change, then do it
*/
DPRINTF(2, ("proto_config: code %d value %lu dvalue %lf\n",
item, value, dvalue));
switch (item) {
/*
* enable and disable commands - arguments are Boolean.
*/
case PROTO_AUTHENTICATE: /* authentication (auth) */
sys_authenticate = value;
break;
case PROTO_BROADCLIENT: /* broadcast client (bclient) */
sys_bclient = (int)value;
if (!sys_bclient)
io_unsetbclient();
else
io_setbclient();
break;
#ifdef REFCLOCK
case PROTO_CAL: /* refclock calibrate (calibrate) */
cal_enable = value;
break;
#endif /* REFCLOCK */
case PROTO_KERNEL: /* kernel discipline (kernel) */
select_loop(value);
break;
case PROTO_MONITOR: /* monitoring (monitor) */
if (value)
mon_start(MON_ON);
else {
mon_stop(MON_ON);
if (mon_enabled)
msyslog(LOG_WARNING,
"restrict: 'monitor' cannot be disabled while 'limited' is enabled");
}
break;
case PROTO_NTP: /* NTP discipline (ntp) */
ntp_enable = value;
break;
case PROTO_MODE7: /* mode7 management (ntpdc) */
ntp_mode7 = value;
break;
case PROTO_PPS: /* PPS discipline (pps) */
hardpps_enable = value;
break;
case PROTO_FILEGEN: /* statistics (stats) */
stats_control = value;
break;
/*
* tos command - arguments are double, sometimes cast to int
*/
case PROTO_BCPOLLBSTEP: /* Broadcast Poll Backstep gate (bcpollbstep) */
sys_bcpollbstep = (u_char)dvalue;
break;
case PROTO_BEACON: /* manycast beacon (beacon) */
sys_beacon = (int)dvalue;
break;
case PROTO_BROADDELAY: /* default broadcast delay (bdelay) */
sys_bdelay = (dvalue ? dvalue : BDELAY_DEFAULT);
break;
case PROTO_CEILING: /* stratum ceiling (ceiling) */
sys_ceiling = (int)dvalue;
break;
case PROTO_COHORT: /* cohort switch (cohort) */
sys_cohort = (int)dvalue;
break;
case PROTO_FLOOR: /* stratum floor (floor) */
sys_floor = (int)dvalue;
break;
case PROTO_MAXCLOCK: /* maximum candidates (maxclock) */
sys_maxclock = (int)dvalue;
break;
case PROTO_MAXDIST: /* select threshold (maxdist) */
sys_maxdist = dvalue;
break;
case PROTO_CALLDELAY: /* modem call delay (mdelay) */
break; /* NOT USED */
case PROTO_MINCLOCK: /* minimum candidates (minclock) */
sys_minclock = (int)dvalue;
break;
case PROTO_MINDISP: /* minimum distance (mindist) */
sys_mindisp = dvalue;
break;
case PROTO_MINSANE: /* minimum survivors (minsane) */
sys_minsane = (int)dvalue;
break;
case PROTO_ORPHAN: /* orphan stratum (orphan) */
sys_orphan = (int)dvalue;
break;
case PROTO_ORPHWAIT: /* orphan wait (orphwait) */
orphwait -= sys_orphwait;
sys_orphwait = (dvalue >= 1) ? (int)dvalue : NTP_ORPHWAIT;
orphwait += sys_orphwait;
break;
/*
* Miscellaneous commands
*/
case PROTO_MULTICAST_ADD: /* add group address */
if (svalue != NULL)
io_multicast_add(svalue);
sys_mclient = 1;
break;
case PROTO_MULTICAST_DEL: /* delete group address */
if (svalue != NULL)
io_multicast_del(svalue);
break;
/*
* Peer_clear Early policy choices
*/
case PROTO_PCEDIGEST: /* Digest */
peer_clear_digest_early = value;
break;
/*
* Unpeer Early policy choices
*/
case PROTO_UECRYPTO: /* Crypto */
unpeer_crypto_early = value;
break;
case PROTO_UECRYPTONAK: /* Crypto_NAK */
unpeer_crypto_nak_early = value;
break;
case PROTO_UEDIGEST: /* Digest */
unpeer_digest_early = value;
break;
default:
msyslog(LOG_NOTICE,
"proto: unsupported option %d", item);
}
}
/*
* proto_clr_stats - clear protocol stat counters
*/
void
proto_clr_stats(void)
{
sys_stattime = current_time;
sys_received = 0;
sys_processed = 0;
sys_newversion = 0;
sys_oldversion = 0;
sys_declined = 0;
sys_restricted = 0;
sys_badlength = 0;
sys_badauth = 0;
sys_limitrejected = 0;
sys_kodsent = 0;
sys_lamport = 0;
sys_tsrounding = 0;
}
diff --git a/contrib/ntp/ntpd/ntpd-opts.c b/contrib/ntp/ntpd/ntpd-opts.c
index 646a304a8521..14774d684f2d 100644
--- a/contrib/ntp/ntpd/ntpd-opts.c
+++ b/contrib/ntp/ntpd/ntpd-opts.c
@@ -1,1985 +1,1985 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 02:48:46 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:36:50 AM by AutoGen 5.18.16
* From the definitions ntpd-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpd author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "ntpd-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpd_opt_strs+0)
#define zLicenseDescrip (ntpd_opt_strs+341)
/*
* global included definitions
*/
#ifdef __windows
extern int atoi(const char *);
#else
# include <stdlib.h>
#endif
#ifdef __windows
extern int atoi(const char*);
#else
# include <stdlib.h>
#endif
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ntpd options
*/
static char const ntpd_opt_strs[3133] =
-/* 0 */ "ntpd 4.2.8p16\n"
+/* 0 */ "ntpd 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 341 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1009 */ "Force IPv4 DNS name resolution\0"
/* 1040 */ "IPV4\0"
/* 1045 */ "ipv4\0"
/* 1050 */ "Force IPv6 DNS name resolution\0"
/* 1081 */ "IPV6\0"
/* 1086 */ "ipv6\0"
/* 1091 */ "Require crypto authentication\0"
/* 1121 */ "AUTHREQ\0"
/* 1129 */ "authreq\0"
/* 1137 */ "Do not require crypto authentication\0"
/* 1174 */ "AUTHNOREQ\0"
/* 1184 */ "authnoreq\0"
/* 1194 */ "Allow us to sync to broadcast servers\0"
/* 1232 */ "BCASTSYNC\0"
/* 1242 */ "bcastsync\0"
/* 1252 */ "configuration file name\0"
/* 1276 */ "CONFIGFILE\0"
/* 1287 */ "configfile\0"
/* 1298 */ "Increase debug verbosity level\0"
/* 1329 */ "DEBUG_LEVEL\0"
/* 1341 */ "debug-level\0"
/* 1353 */ "Set the debug verbosity level\0"
/* 1383 */ "SET_DEBUG_LEVEL\0"
/* 1399 */ "set-debug-level\0"
/* 1415 */ "frequency drift file name\0"
/* 1441 */ "DRIFTFILE\0"
/* 1451 */ "driftfile\0"
/* 1461 */ "Allow the first adjustment to be Big\0"
/* 1498 */ "PANICGATE\0"
/* 1508 */ "panicgate\0"
/* 1518 */ "Step any initial offset correction.\0"
/* 1554 */ "FORCE_STEP_ONCE\0"
/* 1570 */ "force-step-once\0"
/* 1586 */ "Jail directory\0"
/* 1601 */ "JAILDIR\0"
/* 1609 */ "jaildir\0"
/* 1617 */ "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs\0"
/* 1696 */ "Listen on an interface name or address\0"
/* 1735 */ "INTERFACE\0"
/* 1745 */ "interface\0"
/* 1755 */ "path to symmetric keys\0"
/* 1778 */ "KEYFILE\0"
/* 1786 */ "keyfile\0"
/* 1794 */ "path to the log file\0"
/* 1815 */ "LOGFILE\0"
/* 1823 */ "logfile\0"
/* 1831 */ "Do not listen to virtual interfaces\0"
/* 1867 */ "NOVIRTUALIPS\0"
/* 1880 */ "novirtualips\0"
/* 1893 */ "Modify Multimedia Timer (Windows only)\0"
/* 1932 */ "MODIFYMMTIMER\0"
/* 1946 */ "modifymmtimer\0"
/* 1960 */ "Do not fork\0"
/* 1972 */ "NOFORK\0"
/* 1979 */ "nofork\0"
/* 1986 */ "Run at high priority\0"
/* 2007 */ "NICE\0"
/* 2012 */ "nice\0"
/* 2017 */ "path to the PID file\0"
/* 2038 */ "PIDFILE\0"
/* 2046 */ "pidfile\0"
/* 2054 */ "Process priority\0"
/* 2071 */ "PRIORITY\0"
/* 2080 */ "priority\0"
/* 2089 */ "Set the time and quit\0"
/* 2111 */ "QUIT\0"
/* 2116 */ "quit\0"
/* 2121 */ "Broadcast/propagation delay\0"
/* 2149 */ "PROPAGATIONDELAY\0"
/* 2166 */ "propagationdelay\0"
/* 2183 */ "Save parsed configuration and quit\0"
/* 2218 */ "SAVECONFIGQUIT\0"
/* 2233 */ "saveconfigquit\0"
/* 2248 */ "Statistics file location\0"
/* 2273 */ "STATSDIR\0"
/* 2282 */ "statsdir\0"
/* 2291 */ "Trusted key number\0"
/* 2310 */ "TRUSTEDKEY\0"
/* 2321 */ "trustedkey\0"
/* 2332 */ "Run as userid (or userid:groupid)\0"
/* 2366 */ "USER\0"
/* 2371 */ "user\0"
/* 2376 */ "interval in seconds between scans for new or dropped interfaces\0"
/* 2440 */ "UPDATEINTERVAL\0"
/* 2455 */ "updateinterval\0"
/* 2470 */ "make ARG an ntp variable (RW)\0"
/* 2500 */ "VAR\0"
/* 2504 */ "var\0"
/* 2508 */ "make ARG an ntp variable (RW|DEF)\0"
/* 2542 */ "DVAR\0"
/* 2547 */ "dvar\0"
/* 2552 */ "Seconds to wait for first clock sync\0"
/* 2589 */ "WAIT_SYNC\0"
/* 2599 */ "wait-sync\0"
/* 2609 */ "Slew up to 600 seconds\0"
/* 2632 */ "SLEW\0"
/* 2637 */ "slew\0"
/* 2642 */ "Use CPU cycle counter (Windows only)\0"
/* 2679 */ "USEPCC\0"
/* 2686 */ "usepcc\0"
/* 2693 */ "Force CPU cycle counter use (Windows only)\0"
/* 2736 */ "PCCFREQ\0"
/* 2744 */ "pccfreq\0"
/* 2752 */ "Register with mDNS as a NTP server\0"
/* 2787 */ "MDNS\0"
/* 2792 */ "mdns\0"
/* 2797 */ "display extended usage information and exit\0"
/* 2841 */ "help\0"
/* 2846 */ "extended usage information passed thru pager\0"
/* 2891 */ "more-help\0"
/* 2901 */ "output version information and exit\0"
/* 2937 */ "version\0"
/* 2945 */ "NTPD\0"
-/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p16\n"
+/* 2950 */ "ntpd - NTP daemon program - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ <server1> ... <serverN> ]\n\0"
/* 3082 */ "https://bugs.ntp.org, bugs@ntp.org\0"
/* 3117 */ "\n\0"
-/* 3119 */ "ntpd 4.2.8p16";
+/* 3119 */ "ntpd 4.2.8p17";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
#define IPV4_DESC (ntpd_opt_strs+1009)
/** Upper-cased name for the ipv4 option */
#define IPV4_NAME (ntpd_opt_strs+1040)
/** Name string for the ipv4 option */
#define IPV4_name (ntpd_opt_strs+1045)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv4 option */
#define IPV4_FLAGS (OPTST_DISABLED)
/**
* ipv6 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
#define IPV6_DESC (ntpd_opt_strs+1050)
/** Upper-cased name for the ipv6 option */
#define IPV6_NAME (ntpd_opt_strs+1081)
/** Name string for the ipv6 option */
#define IPV6_name (ntpd_opt_strs+1086)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv6 option */
#define IPV6_FLAGS (OPTST_DISABLED)
/**
* authreq option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the authreq option */
#define AUTHREQ_DESC (ntpd_opt_strs+1091)
/** Upper-cased name for the authreq option */
#define AUTHREQ_NAME (ntpd_opt_strs+1121)
/** Name string for the authreq option */
#define AUTHREQ_name (ntpd_opt_strs+1129)
/** Other options that appear in conjunction with the authreq option */
static int const aAuthreqCantList[] = {
INDEX_OPT_AUTHNOREQ, NO_EQUIVALENT };
/** Compiled in flag settings for the authreq option */
#define AUTHREQ_FLAGS (OPTST_DISABLED)
/**
* authnoreq option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the authnoreq option */
#define AUTHNOREQ_DESC (ntpd_opt_strs+1137)
/** Upper-cased name for the authnoreq option */
#define AUTHNOREQ_NAME (ntpd_opt_strs+1174)
/** Name string for the authnoreq option */
#define AUTHNOREQ_name (ntpd_opt_strs+1184)
/** Other options that appear in conjunction with the authnoreq option */
static int const aAuthnoreqCantList[] = {
INDEX_OPT_AUTHREQ, NO_EQUIVALENT };
/** Compiled in flag settings for the authnoreq option */
#define AUTHNOREQ_FLAGS (OPTST_DISABLED)
/**
* bcastsync option description:
*/
/** Descriptive text for the bcastsync option */
#define BCASTSYNC_DESC (ntpd_opt_strs+1194)
/** Upper-cased name for the bcastsync option */
#define BCASTSYNC_NAME (ntpd_opt_strs+1232)
/** Name string for the bcastsync option */
#define BCASTSYNC_name (ntpd_opt_strs+1242)
/** Compiled in flag settings for the bcastsync option */
#define BCASTSYNC_FLAGS (OPTST_DISABLED)
/**
* configfile option description:
*/
/** Descriptive text for the configfile option */
#define CONFIGFILE_DESC (ntpd_opt_strs+1252)
/** Upper-cased name for the configfile option */
#define CONFIGFILE_NAME (ntpd_opt_strs+1276)
/** Name string for the configfile option */
#define CONFIGFILE_name (ntpd_opt_strs+1287)
/** Compiled in flag settings for the configfile option */
#define CONFIGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
#define DEBUG_LEVEL_DESC (ntpd_opt_strs+1298)
/** Upper-cased name for the debug-level option */
#define DEBUG_LEVEL_NAME (ntpd_opt_strs+1329)
/** Name string for the debug-level option */
#define DEBUG_LEVEL_name (ntpd_opt_strs+1341)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
/**
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
#define SET_DEBUG_LEVEL_DESC (ntpd_opt_strs+1353)
/** Upper-cased name for the set-debug-level option */
#define SET_DEBUG_LEVEL_NAME (ntpd_opt_strs+1383)
/** Name string for the set-debug-level option */
#define SET_DEBUG_LEVEL_name (ntpd_opt_strs+1399)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* driftfile option description:
*/
/** Descriptive text for the driftfile option */
#define DRIFTFILE_DESC (ntpd_opt_strs+1415)
/** Upper-cased name for the driftfile option */
#define DRIFTFILE_NAME (ntpd_opt_strs+1441)
/** Name string for the driftfile option */
#define DRIFTFILE_name (ntpd_opt_strs+1451)
/** Compiled in flag settings for the driftfile option */
#define DRIFTFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* panicgate option description:
*/
/** Descriptive text for the panicgate option */
#define PANICGATE_DESC (ntpd_opt_strs+1461)
/** Upper-cased name for the panicgate option */
#define PANICGATE_NAME (ntpd_opt_strs+1498)
/** Name string for the panicgate option */
#define PANICGATE_name (ntpd_opt_strs+1508)
/** Compiled in flag settings for the panicgate option */
#define PANICGATE_FLAGS (OPTST_DISABLED)
/**
* force_step_once option description:
*/
/** Descriptive text for the force_step_once option */
#define FORCE_STEP_ONCE_DESC (ntpd_opt_strs+1518)
/** Upper-cased name for the force_step_once option */
#define FORCE_STEP_ONCE_NAME (ntpd_opt_strs+1554)
/** Name string for the force_step_once option */
#define FORCE_STEP_ONCE_name (ntpd_opt_strs+1570)
/** Compiled in flag settings for the force_step_once option */
#define FORCE_STEP_ONCE_FLAGS (OPTST_DISABLED)
/**
* jaildir option description:
*/
#ifdef HAVE_DROPROOT
/** Descriptive text for the jaildir option */
#define JAILDIR_DESC (ntpd_opt_strs+1586)
/** Upper-cased name for the jaildir option */
#define JAILDIR_NAME (ntpd_opt_strs+1601)
/** Name string for the jaildir option */
#define JAILDIR_name (ntpd_opt_strs+1609)
/** Compiled in flag settings for the jaildir option */
#define JAILDIR_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable jaildir */
#define JAILDIR_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define JAILDIR_NAME NULL
/** Descriptive text for the jaildir option */
#define JAILDIR_DESC (ntpd_opt_strs+1617)
#define JAILDIR_name (ntpd_opt_strs+1609)
#endif /* HAVE_DROPROOT */
/**
* interface option description:
*/
/** Descriptive text for the interface option */
#define INTERFACE_DESC (ntpd_opt_strs+1696)
/** Upper-cased name for the interface option */
#define INTERFACE_NAME (ntpd_opt_strs+1735)
/** Name string for the interface option */
#define INTERFACE_name (ntpd_opt_strs+1745)
/** Compiled in flag settings for the interface option */
#define INTERFACE_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* keyfile option description:
*/
/** Descriptive text for the keyfile option */
#define KEYFILE_DESC (ntpd_opt_strs+1755)
/** Upper-cased name for the keyfile option */
#define KEYFILE_NAME (ntpd_opt_strs+1778)
/** Name string for the keyfile option */
#define KEYFILE_name (ntpd_opt_strs+1786)
/** Compiled in flag settings for the keyfile option */
#define KEYFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* logfile option description:
*/
/** Descriptive text for the logfile option */
#define LOGFILE_DESC (ntpd_opt_strs+1794)
/** Upper-cased name for the logfile option */
#define LOGFILE_NAME (ntpd_opt_strs+1815)
/** Name string for the logfile option */
#define LOGFILE_name (ntpd_opt_strs+1823)
/** Compiled in flag settings for the logfile option */
#define LOGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* novirtualips option description:
*/
/** Descriptive text for the novirtualips option */
#define NOVIRTUALIPS_DESC (ntpd_opt_strs+1831)
/** Upper-cased name for the novirtualips option */
#define NOVIRTUALIPS_NAME (ntpd_opt_strs+1867)
/** Name string for the novirtualips option */
#define NOVIRTUALIPS_name (ntpd_opt_strs+1880)
/** Compiled in flag settings for the novirtualips option */
#define NOVIRTUALIPS_FLAGS (OPTST_DISABLED)
/**
* modifymmtimer option description:
*/
#ifdef SYS_WINNT
/** Descriptive text for the modifymmtimer option */
#define MODIFYMMTIMER_DESC (ntpd_opt_strs+1893)
/** Upper-cased name for the modifymmtimer option */
#define MODIFYMMTIMER_NAME (ntpd_opt_strs+1932)
/** Name string for the modifymmtimer option */
#define MODIFYMMTIMER_name (ntpd_opt_strs+1946)
/** Compiled in flag settings for the modifymmtimer option */
#define MODIFYMMTIMER_FLAGS (OPTST_DISABLED)
#else /* disable modifymmtimer */
#define MODIFYMMTIMER_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define MODIFYMMTIMER_NAME NULL
#define MODIFYMMTIMER_DESC NULL
#define MODIFYMMTIMER_name NULL
#endif /* SYS_WINNT */
/**
* nofork option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the nofork option */
#define NOFORK_DESC (ntpd_opt_strs+1960)
/** Upper-cased name for the nofork option */
#define NOFORK_NAME (ntpd_opt_strs+1972)
/** Name string for the nofork option */
#define NOFORK_name (ntpd_opt_strs+1979)
/** Other options that appear in conjunction with the nofork option */
static int const aNoforkCantList[] = {
INDEX_OPT_WAIT_SYNC, NO_EQUIVALENT };
/** Compiled in flag settings for the nofork option */
#define NOFORK_FLAGS (OPTST_DISABLED)
/**
* nice option description:
*/
/** Descriptive text for the nice option */
#define NICE_DESC (ntpd_opt_strs+1986)
/** Upper-cased name for the nice option */
#define NICE_NAME (ntpd_opt_strs+2007)
/** Name string for the nice option */
#define NICE_name (ntpd_opt_strs+2012)
/** Compiled in flag settings for the nice option */
#define NICE_FLAGS (OPTST_DISABLED)
/**
* pidfile option description:
*/
/** Descriptive text for the pidfile option */
#define PIDFILE_DESC (ntpd_opt_strs+2017)
/** Upper-cased name for the pidfile option */
#define PIDFILE_NAME (ntpd_opt_strs+2038)
/** Name string for the pidfile option */
#define PIDFILE_name (ntpd_opt_strs+2046)
/** Compiled in flag settings for the pidfile option */
#define PIDFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* priority option description:
*/
/** Descriptive text for the priority option */
#define PRIORITY_DESC (ntpd_opt_strs+2054)
/** Upper-cased name for the priority option */
#define PRIORITY_NAME (ntpd_opt_strs+2071)
/** Name string for the priority option */
#define PRIORITY_name (ntpd_opt_strs+2080)
/** Compiled in flag settings for the priority option */
#define PRIORITY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* quit option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the quit option */
#define QUIT_DESC (ntpd_opt_strs+2089)
/** Upper-cased name for the quit option */
#define QUIT_NAME (ntpd_opt_strs+2111)
/** Name string for the quit option */
#define QUIT_name (ntpd_opt_strs+2116)
/** Other options that appear in conjunction with the quit option */
static int const aQuitCantList[] = {
INDEX_OPT_SAVECONFIGQUIT,
INDEX_OPT_WAIT_SYNC, NO_EQUIVALENT };
/** Compiled in flag settings for the quit option */
#define QUIT_FLAGS (OPTST_DISABLED)
/**
* propagationdelay option description:
*/
/** Descriptive text for the propagationdelay option */
#define PROPAGATIONDELAY_DESC (ntpd_opt_strs+2121)
/** Upper-cased name for the propagationdelay option */
#define PROPAGATIONDELAY_NAME (ntpd_opt_strs+2149)
/** Name string for the propagationdelay option */
#define PROPAGATIONDELAY_name (ntpd_opt_strs+2166)
/** Compiled in flag settings for the propagationdelay option */
#define PROPAGATIONDELAY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* saveconfigquit option description with
* "Must also have options" and "Incompatible options":
*/
#ifdef SAVECONFIG
/** Descriptive text for the saveconfigquit option */
#define SAVECONFIGQUIT_DESC (ntpd_opt_strs+2183)
/** Upper-cased name for the saveconfigquit option */
#define SAVECONFIGQUIT_NAME (ntpd_opt_strs+2218)
/** Name string for the saveconfigquit option */
#define SAVECONFIGQUIT_name (ntpd_opt_strs+2233)
/** Other options that appear in conjunction with the saveconfigquit option */
static int const aSaveconfigquitCantList[] = {
INDEX_OPT_QUIT,
INDEX_OPT_WAIT_SYNC, NO_EQUIVALENT };
/** Compiled in flag settings for the saveconfigquit option */
#define SAVECONFIGQUIT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable saveconfigquit */
#define SAVECONFIGQUIT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define aSaveconfigquitCantList NULL
#define SAVECONFIGQUIT_NAME NULL
#define SAVECONFIGQUIT_DESC NULL
#define SAVECONFIGQUIT_name NULL
#endif /* SAVECONFIG */
/**
* statsdir option description:
*/
/** Descriptive text for the statsdir option */
#define STATSDIR_DESC (ntpd_opt_strs+2248)
/** Upper-cased name for the statsdir option */
#define STATSDIR_NAME (ntpd_opt_strs+2273)
/** Name string for the statsdir option */
#define STATSDIR_name (ntpd_opt_strs+2282)
/** Compiled in flag settings for the statsdir option */
#define STATSDIR_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* trustedkey option description:
*/
/** Descriptive text for the trustedkey option */
#define TRUSTEDKEY_DESC (ntpd_opt_strs+2291)
/** Upper-cased name for the trustedkey option */
#define TRUSTEDKEY_NAME (ntpd_opt_strs+2310)
/** Name string for the trustedkey option */
#define TRUSTEDKEY_name (ntpd_opt_strs+2321)
/** Compiled in flag settings for the trustedkey option */
#define TRUSTEDKEY_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* user option description:
*/
#ifdef HAVE_DROPROOT
/** Descriptive text for the user option */
#define USER_DESC (ntpd_opt_strs+2332)
/** Upper-cased name for the user option */
#define USER_NAME (ntpd_opt_strs+2366)
/** Name string for the user option */
#define USER_name (ntpd_opt_strs+2371)
/** Compiled in flag settings for the user option */
#define USER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable user */
#define USER_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define USER_NAME NULL
/** Descriptive text for the user option */
#define USER_DESC (ntpd_opt_strs+1617)
#define USER_name (ntpd_opt_strs+2371)
#endif /* HAVE_DROPROOT */
/**
* updateinterval option description:
*/
/** Descriptive text for the updateinterval option */
#define UPDATEINTERVAL_DESC (ntpd_opt_strs+2376)
/** Upper-cased name for the updateinterval option */
#define UPDATEINTERVAL_NAME (ntpd_opt_strs+2440)
/** Name string for the updateinterval option */
#define UPDATEINTERVAL_name (ntpd_opt_strs+2455)
/** Compiled in flag settings for the updateinterval option */
#define UPDATEINTERVAL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* var option description:
*/
/** Descriptive text for the var option */
#define VAR_DESC (ntpd_opt_strs+2470)
/** Upper-cased name for the var option */
#define VAR_NAME (ntpd_opt_strs+2500)
/** Name string for the var option */
#define VAR_name (ntpd_opt_strs+2504)
/** Compiled in flag settings for the var option */
#define VAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* dvar option description:
*/
/** Descriptive text for the dvar option */
#define DVAR_DESC (ntpd_opt_strs+2508)
/** Upper-cased name for the dvar option */
#define DVAR_NAME (ntpd_opt_strs+2542)
/** Name string for the dvar option */
#define DVAR_name (ntpd_opt_strs+2547)
/** Compiled in flag settings for the dvar option */
#define DVAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* wait-sync option description with
* "Must also have options" and "Incompatible options":
*/
#ifdef HAVE_WORKING_FORK
/** Descriptive text for the wait-sync option */
#define WAIT_SYNC_DESC (ntpd_opt_strs+2552)
/** Upper-cased name for the wait-sync option */
#define WAIT_SYNC_NAME (ntpd_opt_strs+2589)
/** Name string for the wait-sync option */
#define WAIT_SYNC_name (ntpd_opt_strs+2599)
/** Other options that appear in conjunction with the wait-sync option */
static int const aWait_SyncCantList[] = {
INDEX_OPT_NOFORK,
INDEX_OPT_QUIT,
INDEX_OPT_SAVECONFIGQUIT, NO_EQUIVALENT };
/** Compiled in flag settings for the wait-sync option */
#define WAIT_SYNC_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable wait-sync */
#define WAIT_SYNC_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define aWait_SyncCantList NULL
#define WAIT_SYNC_NAME NULL
#define WAIT_SYNC_DESC NULL
#define WAIT_SYNC_name NULL
#endif /* HAVE_WORKING_FORK */
/**
* slew option description:
*/
/** Descriptive text for the slew option */
#define SLEW_DESC (ntpd_opt_strs+2609)
/** Upper-cased name for the slew option */
#define SLEW_NAME (ntpd_opt_strs+2632)
/** Name string for the slew option */
#define SLEW_name (ntpd_opt_strs+2637)
/** Compiled in flag settings for the slew option */
#define SLEW_FLAGS (OPTST_DISABLED)
/**
* usepcc option description:
*/
#ifdef SYS_WINNT
/** Descriptive text for the usepcc option */
#define USEPCC_DESC (ntpd_opt_strs+2642)
/** Upper-cased name for the usepcc option */
#define USEPCC_NAME (ntpd_opt_strs+2679)
/** Name string for the usepcc option */
#define USEPCC_name (ntpd_opt_strs+2686)
/** Compiled in flag settings for the usepcc option */
#define USEPCC_FLAGS (OPTST_DISABLED)
#else /* disable usepcc */
#define USEPCC_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define USEPCC_NAME NULL
#define USEPCC_DESC NULL
#define USEPCC_name NULL
#endif /* SYS_WINNT */
/**
* pccfreq option description:
*/
#ifdef SYS_WINNT
/** Descriptive text for the pccfreq option */
#define PCCFREQ_DESC (ntpd_opt_strs+2693)
/** Upper-cased name for the pccfreq option */
#define PCCFREQ_NAME (ntpd_opt_strs+2736)
/** Name string for the pccfreq option */
#define PCCFREQ_name (ntpd_opt_strs+2744)
/** Compiled in flag settings for the pccfreq option */
#define PCCFREQ_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable pccfreq */
#define PCCFREQ_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define PCCFREQ_NAME NULL
#define PCCFREQ_DESC NULL
#define PCCFREQ_name NULL
#endif /* SYS_WINNT */
/**
* mdns option description:
*/
#ifdef HAVE_DNSREGISTRATION
/** Descriptive text for the mdns option */
#define MDNS_DESC (ntpd_opt_strs+2752)
/** Upper-cased name for the mdns option */
#define MDNS_NAME (ntpd_opt_strs+2787)
/** Name string for the mdns option */
#define MDNS_name (ntpd_opt_strs+2792)
/** Compiled in flag settings for the mdns option */
#define MDNS_FLAGS (OPTST_DISABLED)
#else /* disable mdns */
#define MDNS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define MDNS_NAME NULL
#define MDNS_DESC NULL
#define MDNS_name NULL
#endif /* HAVE_DNSREGISTRATION */
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ntpd_opt_strs+2797)
#define HELP_name (ntpd_opt_strs+2841)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ntpd_opt_strs+2846)
#define MORE_HELP_name (ntpd_opt_strs+2891)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (ntpd_opt_strs+2901)
#define VER_name (ntpd_opt_strs+2937)
/**
* Declare option callback procedures
*/
extern tOptProc
ntpOptionPrintVersion, optionBooleanVal, optionNestedVal,
optionNumericVal, optionPagedUsage, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doOptDebug_Level, doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ntpd Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ntpd program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_IPV4,
/* equiv idx, value */ 0, VALUE_OPT_IPV4,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV4_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv4 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv4CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV4_DESC, IPV4_NAME, IPV4_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_IPV6,
/* equiv idx, value */ 1, VALUE_OPT_IPV6,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV6_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv6 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv6CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV6_DESC, IPV6_NAME, IPV6_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_AUTHREQ,
/* equiv idx, value */ 2, VALUE_OPT_AUTHREQ,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ AUTHREQ_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --authreq */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aAuthreqCantList,
/* option proc */ NULL,
/* desc, NAME, name */ AUTHREQ_DESC, AUTHREQ_NAME, AUTHREQ_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_AUTHNOREQ,
/* equiv idx, value */ 3, VALUE_OPT_AUTHNOREQ,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ AUTHNOREQ_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --authnoreq */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aAuthnoreqCantList,
/* option proc */ NULL,
/* desc, NAME, name */ AUTHNOREQ_DESC, AUTHNOREQ_NAME, AUTHNOREQ_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_BCASTSYNC,
/* equiv idx, value */ 4, VALUE_OPT_BCASTSYNC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ BCASTSYNC_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --bcastsync */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ BCASTSYNC_DESC, BCASTSYNC_NAME, BCASTSYNC_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 5, VALUE_OPT_CONFIGFILE,
/* equiv idx, value */ 5, VALUE_OPT_CONFIGFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ CONFIGFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --configfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ CONFIGFILE_DESC, CONFIGFILE_NAME, CONFIGFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 6, VALUE_OPT_DEBUG_LEVEL,
/* equiv idx, value */ 6, VALUE_OPT_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptDebug_Level,
/* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 7, VALUE_OPT_SET_DEBUG_LEVEL,
/* equiv idx, value */ 7, VALUE_OPT_SET_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --set-debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 8, VALUE_OPT_DRIFTFILE,
/* equiv idx, value */ 8, VALUE_OPT_DRIFTFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ DRIFTFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --driftfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ DRIFTFILE_DESC, DRIFTFILE_NAME, DRIFTFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 9, VALUE_OPT_PANICGATE,
/* equiv idx, value */ 9, VALUE_OPT_PANICGATE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ PANICGATE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --panicgate */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PANICGATE_DESC, PANICGATE_NAME, PANICGATE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 10, VALUE_OPT_FORCE_STEP_ONCE,
/* equiv idx, value */ 10, VALUE_OPT_FORCE_STEP_ONCE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ FORCE_STEP_ONCE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --force_step_once */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ FORCE_STEP_ONCE_DESC, FORCE_STEP_ONCE_NAME, FORCE_STEP_ONCE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 11, VALUE_OPT_JAILDIR,
/* equiv idx, value */ 11, VALUE_OPT_JAILDIR,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ JAILDIR_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --jaildir */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ JAILDIR_DESC, JAILDIR_NAME, JAILDIR_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 12, VALUE_OPT_INTERFACE,
/* equiv idx, value */ 12, VALUE_OPT_INTERFACE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ INTERFACE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --interface */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ INTERFACE_DESC, INTERFACE_NAME, INTERFACE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 13, VALUE_OPT_KEYFILE,
/* equiv idx, value */ 13, VALUE_OPT_KEYFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ KEYFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --keyfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ KEYFILE_DESC, KEYFILE_NAME, KEYFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 14, VALUE_OPT_LOGFILE,
/* equiv idx, value */ 14, VALUE_OPT_LOGFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOGFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --logfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ LOGFILE_DESC, LOGFILE_NAME, LOGFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 15, VALUE_OPT_NOVIRTUALIPS,
/* equiv idx, value */ 15, VALUE_OPT_NOVIRTUALIPS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NOVIRTUALIPS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --novirtualips */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ NOVIRTUALIPS_DESC, NOVIRTUALIPS_NAME, NOVIRTUALIPS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 16, VALUE_OPT_MODIFYMMTIMER,
/* equiv idx, value */ 16, VALUE_OPT_MODIFYMMTIMER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MODIFYMMTIMER_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --modifymmtimer */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ MODIFYMMTIMER_DESC, MODIFYMMTIMER_NAME, MODIFYMMTIMER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 17, VALUE_OPT_NOFORK,
/* equiv idx, value */ 17, VALUE_OPT_NOFORK,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NOFORK_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --nofork */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aNoforkCantList,
/* option proc */ NULL,
/* desc, NAME, name */ NOFORK_DESC, NOFORK_NAME, NOFORK_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 18, VALUE_OPT_NICE,
/* equiv idx, value */ 18, VALUE_OPT_NICE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NICE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --nice */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ NICE_DESC, NICE_NAME, NICE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 19, VALUE_OPT_PIDFILE,
/* equiv idx, value */ 19, VALUE_OPT_PIDFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PIDFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --pidfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PIDFILE_DESC, PIDFILE_NAME, PIDFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 20, VALUE_OPT_PRIORITY,
/* equiv idx, value */ 20, VALUE_OPT_PRIORITY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PRIORITY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --priority */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ PRIORITY_DESC, PRIORITY_NAME, PRIORITY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 21, VALUE_OPT_QUIT,
/* equiv idx, value */ 21, VALUE_OPT_QUIT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ QUIT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --quit */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aQuitCantList,
/* option proc */ NULL,
/* desc, NAME, name */ QUIT_DESC, QUIT_NAME, QUIT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
/* equiv idx, value */ 22, VALUE_OPT_PROPAGATIONDELAY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PROPAGATIONDELAY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --propagationdelay */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PROPAGATIONDELAY_DESC, PROPAGATIONDELAY_NAME, PROPAGATIONDELAY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 23, VALUE_OPT_SAVECONFIGQUIT,
/* equiv idx, value */ 23, VALUE_OPT_SAVECONFIGQUIT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SAVECONFIGQUIT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --saveconfigquit */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aSaveconfigquitCantList,
/* option proc */ NULL,
/* desc, NAME, name */ SAVECONFIGQUIT_DESC, SAVECONFIGQUIT_NAME, SAVECONFIGQUIT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 24, VALUE_OPT_STATSDIR,
/* equiv idx, value */ 24, VALUE_OPT_STATSDIR,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ STATSDIR_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --statsdir */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ STATSDIR_DESC, STATSDIR_NAME, STATSDIR_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 25, VALUE_OPT_TRUSTEDKEY,
/* equiv idx, value */ 25, VALUE_OPT_TRUSTEDKEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ TRUSTEDKEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --trustedkey */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ TRUSTEDKEY_DESC, TRUSTEDKEY_NAME, TRUSTEDKEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 26, VALUE_OPT_USER,
/* equiv idx, value */ 26, VALUE_OPT_USER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ USER_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --user */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ USER_DESC, USER_NAME, USER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 27, VALUE_OPT_UPDATEINTERVAL,
/* equiv idx, value */ 27, VALUE_OPT_UPDATEINTERVAL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ UPDATEINTERVAL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --updateinterval */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ UPDATEINTERVAL_DESC, UPDATEINTERVAL_NAME, UPDATEINTERVAL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 28, VALUE_OPT_VAR,
/* equiv idx, value */ 28, VALUE_OPT_VAR,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ VAR_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --var */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ VAR_DESC, VAR_NAME, VAR_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 29, VALUE_OPT_DVAR,
/* equiv idx, value */ 29, VALUE_OPT_DVAR,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DVAR_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --dvar */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ DVAR_DESC, DVAR_NAME, DVAR_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 30, VALUE_OPT_WAIT_SYNC,
/* equiv idx, value */ 30, VALUE_OPT_WAIT_SYNC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ WAIT_SYNC_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --wait-sync */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aWait_SyncCantList,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ WAIT_SYNC_DESC, WAIT_SYNC_NAME, WAIT_SYNC_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 31, VALUE_OPT_SLEW,
/* equiv idx, value */ 31, VALUE_OPT_SLEW,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SLEW_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --slew */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SLEW_DESC, SLEW_NAME, SLEW_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 32, VALUE_OPT_USEPCC,
/* equiv idx, value */ 32, VALUE_OPT_USEPCC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ USEPCC_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --usepcc */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ USEPCC_DESC, USEPCC_NAME, USEPCC_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 33, VALUE_OPT_PCCFREQ,
/* equiv idx, value */ 33, VALUE_OPT_PCCFREQ,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PCCFREQ_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --pccfreq */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PCCFREQ_DESC, PCCFREQ_NAME, PCCFREQ_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 34, VALUE_OPT_MDNS,
/* equiv idx, value */ 34, VALUE_OPT_MDNS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MDNS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --mdns */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ MDNS_DESC, MDNS_NAME, MDNS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpd. */
#define zPROGNAME (ntpd_opt_strs+2945)
/** Reference to the title line for ntpd usage. */
#define zUsageTitle (ntpd_opt_strs+2950)
/** There is no ntpd configuration file. */
#define zRcName NULL
/** There are no directories to search for ntpd config files. */
#define apzHomeList NULL
/** The ntpd program bug email address. */
#define zBugsAddr (ntpd_opt_strs+3082)
/** Clarification/explanation of what ntpd does. */
#define zExplain (ntpd_opt_strs+3117)
/** Extra detail explaining what ntpd does. */
#define zDetail (NULL)
/** The full version string for ntpd. */
#define zFullVersion (ntpd_opt_strs+3119)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define ntpd_full_usage (NULL)
#define ntpd_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = NTPD_EXIT_SUCCESS;
optionUsage(&ntpdOptions, ex_code);
/* NOTREACHED */
exit(NTPD_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug-level option.
*
* @param[in] pOptions the ntpd options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
{
/*
* Be sure the flag-code[0] handles special values for the options pointer
* viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
* ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
* reset its state.
*/
/* extracted from debug-opt.def, line 15 */
OPT_VALUE_SET_DEBUG_LEVEL++;
(void)pOptDesc;
(void)pOptions;
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ntpd.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ntpd
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ntpd_packager_info NULL
#else
/** Packager information for ntpd. */
static char const ntpd_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ntpd bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ntpd. The one structure that
* binds them all.
*/
tOptions ntpdOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_ENVIRON
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
NO_EQUIVALENT, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
38 /* full option count */, 35 /* user option count */,
ntpd_full_usage, ntpd_short_usage,
NULL, NULL,
PKGDATADIR, ntpd_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ntpd program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(NTPD_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the ntpdOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ntpdOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the ntpdOptions structure noted in the
comments below. The literal text is defined in ntpd_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ntpd_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via ntpdOptions.pzCopyright */
- puts(_("ntpd 4.2.8p16\n\
+ puts(_("ntpd 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via ntpdOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Force IPv4 DNS name resolution"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Force IPv6 DNS name resolution"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Require crypto authentication"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Do not require crypto authentication"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Allow us to sync to broadcast servers"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("configuration file name"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Increase debug verbosity level"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Set the debug verbosity level"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("frequency drift file name"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Allow the first adjustment to be Big"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Step any initial offset correction."));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Jail directory"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Listen on an interface name or address"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("path to symmetric keys"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("path to the log file"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Do not listen to virtual interfaces"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Modify Multimedia Timer (Windows only)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Do not fork"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Run at high priority"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("path to the PID file"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Process priority"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Set the time and quit"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Broadcast/propagation delay"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Save parsed configuration and quit"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Statistics file location"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Trusted key number"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Run as userid (or userid:groupid)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("interval in seconds between scans for new or dropped interfaces"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("make ARG an ntp variable (RW)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("make ARG an ntp variable (RW|DEF)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Seconds to wait for first clock sync"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Slew up to 600 seconds"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Use CPU cycle counter (Windows only)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Force CPU cycle counter use (Windows only)"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("Register with mDNS as a NTP server"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ntpdOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ntpdOptions.pzUsageTitle */
- puts(_("ntpd - NTP daemon program - Ver. 4.2.8p16\n\
+ puts(_("ntpd - NTP daemon program - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ <server1> ... <serverN> ]\n"));
/* referenced via ntpdOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpdOptions.pzFullVersion */
- puts(_("ntpd 4.2.8p16"));
+ puts(_("ntpd 4.2.8p17"));
/* referenced via ntpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ntpdOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* ntpd-opts.c ends here */
diff --git a/contrib/ntp/ntpd/ntpd-opts.h b/contrib/ntp/ntpd/ntpd-opts.h
index dc9ac899e8ee..3541255bb6fb 100644
--- a/contrib/ntp/ntpd/ntpd-opts.h
+++ b/contrib/ntp/ntpd/ntpd-opts.h
@@ -1,474 +1,474 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 02:48:45 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:36:50 AM by AutoGen 5.18.16
* From the definitions ntpd-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpd author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ntpd program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_NTPD_OPTS_H_GUARD
#define AUTOOPTS_NTPD_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for ntpd
*/
typedef enum {
INDEX_OPT_IPV4 = 0,
INDEX_OPT_IPV6 = 1,
INDEX_OPT_AUTHREQ = 2,
INDEX_OPT_AUTHNOREQ = 3,
INDEX_OPT_BCASTSYNC = 4,
INDEX_OPT_CONFIGFILE = 5,
INDEX_OPT_DEBUG_LEVEL = 6,
INDEX_OPT_SET_DEBUG_LEVEL = 7,
INDEX_OPT_DRIFTFILE = 8,
INDEX_OPT_PANICGATE = 9,
INDEX_OPT_FORCE_STEP_ONCE = 10,
INDEX_OPT_JAILDIR = 11,
INDEX_OPT_INTERFACE = 12,
INDEX_OPT_KEYFILE = 13,
INDEX_OPT_LOGFILE = 14,
INDEX_OPT_NOVIRTUALIPS = 15,
INDEX_OPT_MODIFYMMTIMER = 16,
INDEX_OPT_NOFORK = 17,
INDEX_OPT_NICE = 18,
INDEX_OPT_PIDFILE = 19,
INDEX_OPT_PRIORITY = 20,
INDEX_OPT_QUIT = 21,
INDEX_OPT_PROPAGATIONDELAY = 22,
INDEX_OPT_SAVECONFIGQUIT = 23,
INDEX_OPT_STATSDIR = 24,
INDEX_OPT_TRUSTEDKEY = 25,
INDEX_OPT_USER = 26,
INDEX_OPT_UPDATEINTERVAL = 27,
INDEX_OPT_VAR = 28,
INDEX_OPT_DVAR = 29,
INDEX_OPT_WAIT_SYNC = 30,
INDEX_OPT_SLEW = 31,
INDEX_OPT_USEPCC = 32,
INDEX_OPT_PCCFREQ = 33,
INDEX_OPT_MDNS = 34,
INDEX_OPT_VERSION = 35,
INDEX_OPT_HELP = 36,
INDEX_OPT_MORE_HELP = 37
} teOptIndex;
/** count of all options for ntpd */
#define OPTION_CT 38
/** ntpd version */
-#define NTPD_VERSION "4.2.8p16"
+#define NTPD_VERSION "4.2.8p17"
/** Full ntpd version text */
-#define NTPD_FULL_VERSION "ntpd 4.2.8p16"
+#define NTPD_FULL_VERSION "ntpd 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(IPV4)
*/
#define DESC(n) (ntpdOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ntpd exit codes
*/
typedef enum {
NTPD_EXIT_SUCCESS = 0,
NTPD_EXIT_FAILURE = 1,
NTPD_EXIT_USAGE_ERROR = 64,
NTPD_EXIT_LIBOPTS_FAILURE = 70
} ntpd_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef IPV4
# warning undefining IPV4 due to option name conflict
# undef IPV4
# endif
# ifdef IPV6
# warning undefining IPV6 due to option name conflict
# undef IPV6
# endif
# ifdef AUTHREQ
# warning undefining AUTHREQ due to option name conflict
# undef AUTHREQ
# endif
# ifdef AUTHNOREQ
# warning undefining AUTHNOREQ due to option name conflict
# undef AUTHNOREQ
# endif
# ifdef BCASTSYNC
# warning undefining BCASTSYNC due to option name conflict
# undef BCASTSYNC
# endif
# ifdef CONFIGFILE
# warning undefining CONFIGFILE due to option name conflict
# undef CONFIGFILE
# endif
# ifdef DEBUG_LEVEL
# warning undefining DEBUG_LEVEL due to option name conflict
# undef DEBUG_LEVEL
# endif
# ifdef SET_DEBUG_LEVEL
# warning undefining SET_DEBUG_LEVEL due to option name conflict
# undef SET_DEBUG_LEVEL
# endif
# ifdef DRIFTFILE
# warning undefining DRIFTFILE due to option name conflict
# undef DRIFTFILE
# endif
# ifdef PANICGATE
# warning undefining PANICGATE due to option name conflict
# undef PANICGATE
# endif
# ifdef FORCE_STEP_ONCE
# warning undefining FORCE_STEP_ONCE due to option name conflict
# undef FORCE_STEP_ONCE
# endif
# ifdef JAILDIR
# warning undefining JAILDIR due to option name conflict
# undef JAILDIR
# endif
# ifdef INTERFACE
# warning undefining INTERFACE due to option name conflict
# undef INTERFACE
# endif
# ifdef KEYFILE
# warning undefining KEYFILE due to option name conflict
# undef KEYFILE
# endif
# ifdef LOGFILE
# warning undefining LOGFILE due to option name conflict
# undef LOGFILE
# endif
# ifdef NOVIRTUALIPS
# warning undefining NOVIRTUALIPS due to option name conflict
# undef NOVIRTUALIPS
# endif
# ifdef MODIFYMMTIMER
# warning undefining MODIFYMMTIMER due to option name conflict
# undef MODIFYMMTIMER
# endif
# ifdef NOFORK
# warning undefining NOFORK due to option name conflict
# undef NOFORK
# endif
# ifdef NICE
# warning undefining NICE due to option name conflict
# undef NICE
# endif
# ifdef PIDFILE
# warning undefining PIDFILE due to option name conflict
# undef PIDFILE
# endif
# ifdef PRIORITY
# warning undefining PRIORITY due to option name conflict
# undef PRIORITY
# endif
# ifdef QUIT
# warning undefining QUIT due to option name conflict
# undef QUIT
# endif
# ifdef PROPAGATIONDELAY
# warning undefining PROPAGATIONDELAY due to option name conflict
# undef PROPAGATIONDELAY
# endif
# ifdef SAVECONFIGQUIT
# warning undefining SAVECONFIGQUIT due to option name conflict
# undef SAVECONFIGQUIT
# endif
# ifdef STATSDIR
# warning undefining STATSDIR due to option name conflict
# undef STATSDIR
# endif
# ifdef TRUSTEDKEY
# warning undefining TRUSTEDKEY due to option name conflict
# undef TRUSTEDKEY
# endif
# ifdef USER
# warning undefining USER due to option name conflict
# undef USER
# endif
# ifdef UPDATEINTERVAL
# warning undefining UPDATEINTERVAL due to option name conflict
# undef UPDATEINTERVAL
# endif
# ifdef VAR
# warning undefining VAR due to option name conflict
# undef VAR
# endif
# ifdef DVAR
# warning undefining DVAR due to option name conflict
# undef DVAR
# endif
# ifdef WAIT_SYNC
# warning undefining WAIT_SYNC due to option name conflict
# undef WAIT_SYNC
# endif
# ifdef SLEW
# warning undefining SLEW due to option name conflict
# undef SLEW
# endif
# ifdef USEPCC
# warning undefining USEPCC due to option name conflict
# undef USEPCC
# endif
# ifdef PCCFREQ
# warning undefining PCCFREQ due to option name conflict
# undef PCCFREQ
# endif
# ifdef MDNS
# warning undefining MDNS due to option name conflict
# undef MDNS
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef IPV4
# undef IPV6
# undef AUTHREQ
# undef AUTHNOREQ
# undef BCASTSYNC
# undef CONFIGFILE
# undef DEBUG_LEVEL
# undef SET_DEBUG_LEVEL
# undef DRIFTFILE
# undef PANICGATE
# undef FORCE_STEP_ONCE
# undef JAILDIR
# undef INTERFACE
# undef KEYFILE
# undef LOGFILE
# undef NOVIRTUALIPS
# undef MODIFYMMTIMER
# undef NOFORK
# undef NICE
# undef PIDFILE
# undef PRIORITY
# undef QUIT
# undef PROPAGATIONDELAY
# undef SAVECONFIGQUIT
# undef STATSDIR
# undef TRUSTEDKEY
# undef USER
# undef UPDATEINTERVAL
# undef VAR
# undef DVAR
# undef WAIT_SYNC
# undef SLEW
# undef USEPCC
# undef PCCFREQ
# undef MDNS
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_IPV4 '4'
#define VALUE_OPT_IPV6 '6'
#define VALUE_OPT_AUTHREQ 'a'
#define VALUE_OPT_AUTHNOREQ 'A'
#define VALUE_OPT_BCASTSYNC 'b'
#define VALUE_OPT_CONFIGFILE 'c'
#define VALUE_OPT_DEBUG_LEVEL 'd'
#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
#define VALUE_OPT_DRIFTFILE 'f'
#define VALUE_OPT_PANICGATE 'g'
#define VALUE_OPT_FORCE_STEP_ONCE 'G'
#define VALUE_OPT_JAILDIR 'i'
#define VALUE_OPT_INTERFACE 'I'
#define VALUE_OPT_KEYFILE 'k'
#define VALUE_OPT_LOGFILE 'l'
#define VALUE_OPT_NOVIRTUALIPS 'L'
#define VALUE_OPT_MODIFYMMTIMER 'M'
#define VALUE_OPT_NOFORK 'n'
#define VALUE_OPT_NICE 'N'
#define VALUE_OPT_PIDFILE 'p'
#define VALUE_OPT_PRIORITY 'P'
#define OPT_VALUE_PRIORITY (DESC(PRIORITY).optArg.argInt)
#define VALUE_OPT_QUIT 'q'
#define VALUE_OPT_PROPAGATIONDELAY 'r'
#define VALUE_OPT_SAVECONFIGQUIT 0x1001
#define VALUE_OPT_STATSDIR 's'
#define VALUE_OPT_TRUSTEDKEY 't'
#define VALUE_OPT_USER 'u'
#define VALUE_OPT_UPDATEINTERVAL 'U'
#define OPT_VALUE_UPDATEINTERVAL (DESC(UPDATEINTERVAL).optArg.argInt)
#define VALUE_OPT_VAR 0x1002
#define VALUE_OPT_DVAR 0x1003
#define VALUE_OPT_WAIT_SYNC 'w'
#ifdef HAVE_WORKING_FORK
#define OPT_VALUE_WAIT_SYNC (DESC(WAIT_SYNC).optArg.argInt)
#endif /* HAVE_WORKING_FORK */
#define VALUE_OPT_SLEW 'x'
#define VALUE_OPT_USEPCC 0x1004
#define VALUE_OPT_PCCFREQ 0x1005
#define VALUE_OPT_MDNS 'm'
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1006
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ntpdOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ntpdOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ntpdOptions.curOptIdx = (n); \
ntpdOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ntpdOptions.pUsageProc)(&ntpdOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ntpd option descriptor.
*/
extern tOptions ntpdOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(ntpdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ntpdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ntpdOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ntpdOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_NTPD_OPTS_H_GUARD */
/* ntpd-opts.h ends here */
diff --git a/contrib/ntp/ntpd/ntpd.1ntpdman b/contrib/ntp/ntpd/ntpd.1ntpdman
index 1554bc89b840..237a9179f62e 100644
--- a/contrib/ntp/ntpd/ntpd.1ntpdman
+++ b/contrib/ntp/ntpd/ntpd.1ntpdman
@@ -1,1005 +1,1005 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd 1ntpdman "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpd 1ntpdman "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:42 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:49 AM by AutoGen 5.18.16
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpd\fP
\- NTP daemon program
.SH SYNOPSIS
\f\*[B-Font]ntpd\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ <server1> ... <serverN> ]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The
\f\*[B-Font]ntpd\fP
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC-5905,
but also retains compatibility with
version 3, as defined by RFC-1305, and versions 1
and 2, as defined by RFC-1059 and RFC-1119, respectively.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpd\fP
utility does most computations in 64-bit floating point
arithmetic and does relatively clumsy 64-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
.sp \n(Ppu
.ne 2
Ordinarily,
\f\*[B-Font]ntpd\fP
reads the
\fCntp.conf\f[]\fR(5)\f[]
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
.sp \n(Ppu
.ne 2
If NetInfo support is built into
\f\*[B-Font]ntpd\fP,
then
\f\*[B-Font]ntpd\fP
will attempt to read its configuration from the
NetInfo if the default
\fCntp.conf\f[]\fR(5)\f[]
file cannot be read and no file is
specified by the
\f\*[B-Font]\-c\f[]
option.
.sp \n(Ppu
.ne 2
Various internal
\f\*[B-Font]ntpd\fP
variables can be displayed and
configuration options altered while the
\f\*[B-Font]ntpd\fP
is running
using the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility programs.
.sp \n(Ppu
.ne 2
When
\f\*[B-Font]ntpd\fP
starts it looks at the value of
\fCumask\f[]\fR(2)\f[],
and if zero
\f\*[B-Font]ntpd\fP
will set the
\fCumask\f[]\fR(2)\f[]
to 022.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-a\f[], \f\*[B-Font]\-\-authreq\f[]
Require crypto authentication.
This option must not appear in combination with any of the following options:
authnoreq.
.sp
Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
.TP
.NOP \f\*[B-Font]\-A\f[], \f\*[B-Font]\-\-authnoreq\f[]
Do not require crypto authentication.
This option must not appear in combination with any of the following options:
authreq.
.sp
Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
.TP
.NOP \f\*[B-Font]\-b\f[], \f\*[B-Font]\-\-bcastsync\f[]
Allow us to sync to broadcast servers.
.sp
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-configfile\f[]=\f\*[I-Font]string\f[]
configuration file name.
.sp
The name and path of the configuration file,
\fI/etc/ntp.conf\fP
by default.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-f\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-driftfile\f[]=\f\*[I-Font]string\f[]
frequency drift file name.
.sp
The name and path of the frequency file,
\fI/etc/ntp.drift\fP
by default.
This is the same operation as the
\fBdriftfile\fP \fIdriftfile\fP
configuration specification in the
\fI/etc/ntp.conf\fP
file.
.TP
.NOP \f\*[B-Font]\-g\f[], \f\*[B-Font]\-\-panicgate\f[]
Allow the first adjustment to be Big.
This option may appear an unlimited number of times.
.sp
Normally,
\fBntpd\fP
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
\fBntpd\fP
will exit with a message to the system log. This option can be used with the
\fB-q\fP
and
\fB-x\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
.TP
.NOP \f\*[B-Font]\-G\f[], \f\*[B-Font]\-\-force\-step\-once\f[]
Step any initial offset correction..
.sp
Normally,
\fBntpd\fP
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the \fBtinker\fP configuration file directive for other options.
.TP
.NOP \f\*[B-Font]\-i\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-jaildir\f[]=\f\*[I-Font]string\f[]
Jail directory.
.sp
Chroot the server to the directory
\fIjaildir\fP
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
\fB-u\fP
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB--enable-clockctl\fP) or Linux (configure with
\fB--enable-linuxcaps\fP) or Solaris (configure with \fB--enable-solarisprivs\fP).
.TP
.NOP \f\*[B-Font]\-I\f[] \f\*[I-Font]iface\f[], \f\*[B-Font]\-\-interface\f[]=\f\*[I-Font]iface\f[]
Listen on an interface name or address.
This option may appear an unlimited number of times.
.sp
Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
\fBinterface\fP command, which is more versatile.
.TP
.NOP \f\*[B-Font]\-k\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-keyfile\f[]=\f\*[I-Font]string\f[]
path to symmetric keys.
.sp
Specify the name and path of the symmetric key file.
\fI/etc/ntp.keys\fP
is the default.
This is the same operation as the
\fBkeys\fP \fIkeyfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-logfile\f[]=\f\*[I-Font]string\f[]
path to the log file.
.sp
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
\fBlogfile\fP \fIlogfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-L\f[], \f\*[B-Font]\-\-novirtualips\f[]
Do not listen to virtual interfaces.
.sp
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file \fBinterface\fP command, which
is more versatile.
.TP
.NOP \f\*[B-Font]\-M\f[], \f\*[B-Font]\-\-modifymmtimer\f[]
Modify Multimedia Timer (Windows only).
.sp
Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-nofork\f[]
Do not fork.
This option must not appear in combination with any of the following options:
wait-sync.
.sp
.TP
.NOP \f\*[B-Font]\-N\f[], \f\*[B-Font]\-\-nice\f[]
Run at high priority.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the highest priority.
.TP
.NOP \f\*[B-Font]\-p\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-pidfile\f[]=\f\*[I-Font]string\f[]
path to the PID file.
.sp
Specify the name and path of the file used to record
\fBntpd\fP's
process ID.
This is the same operation as the
\fBpidfile\fP \fIpidfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-P\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-priority\f[]=\f\*[I-Font]number\f[]
Process priority.
This option takes an integer number as its argument.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the specified
\fBsched_setscheduler(SCHED_FIFO)\fP
priority.
.TP
.NOP \f\*[B-Font]\-q\f[], \f\*[B-Font]\-\-quit\f[]
Set the time and quit.
This option must not appear in combination with any of the following options:
saveconfigquit, wait-sync.
.sp
\fBntpd\fP
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
\fBntpdate\fP
program, which will soon be replaced with a shell script.
The
\fB-g\fP
and
\fB-x\fP
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-propagationdelay\f[]=\f\*[I-Font]string\f[]
Broadcast/propagation delay.
.sp
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
.TP
.NOP \f\*[B-Font]\-\-saveconfigquit\f[]=\f\*[I-Font]string\f[]
Save parsed configuration and quit.
This option must not appear in combination with any of the following options:
quit, wait-sync.
.sp
Cause \fBntpd\fP to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-statsdir\f[]=\f\*[I-Font]string\f[]
Statistics file location.
.sp
Specify the directory path for files created by the statistics facility.
This is the same operation as the
\fBstatsdir\fP \fIstatsdir\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]tkey\f[], \f\*[B-Font]\-\-trustedkey\f[]=\f\*[I-Font]tkey\f[]
Trusted key number.
This option may appear an unlimited number of times.
.sp
Add the specified key number to the trusted key list.
.TP
.NOP \f\*[B-Font]\-u\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-user\f[]=\f\*[I-Font]string\f[]
Run as userid (or userid:groupid).
.sp
Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB--enable-clockctl\fP) or Linux (configure with
\fB--enable-linuxcaps\fP) or Solaris (configure with \fB--enable-solarisprivs\fP).
.TP
.NOP \f\*[B-Font]\-U\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-updateinterval\f[]=\f\*[I-Font]number\f[]
interval in seconds between scans for new or dropped interfaces.
This option takes an integer number as its argument.
.sp
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
.TP
.NOP \f\*[B-Font]\-\-var\f[]=\f\*[I-Font]nvar\f[]
make ARG an ntp variable (RW).
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-\-dvar\f[]=\f\*[I-Font]ndvar\f[]
make ARG an ntp variable (RW|DEF).
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-w\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-wait\-sync\f[]=\f\*[I-Font]number\f[]
Seconds to wait for first clock sync.
This option must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
This option takes an integer number as its argument.
.sp
If greater than zero, alters \fBntpd\fP's behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is \fBETIMEDOUT\fP.
This provides the option for a script starting \fBntpd\fP to easily
wait for the first set of the clock before proceeding.
.TP
.NOP \f\*[B-Font]\-x\f[], \f\*[B-Font]\-\-slew\f[]
Slew up to 600 seconds.
.sp
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
\fB-g\fP
and
\fB-q\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
.TP
.NOP \f\*[B-Font]\-\-usepcc\f[]
Use CPU cycle counter (Windows only).
.sp
Attempt to substitute the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter and \fBQueryPerformanceCounter\fP are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
.TP
.NOP \f\*[B-Font]\-\-pccfreq\f[]=\f\*[I-Font]string\f[]
Force CPU cycle counter use (Windows only).
.sp
Force substitution the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
.TP
.NOP \f\*[B-Font]\-m\f[], \f\*[B-Font]\-\-mdns\f[]
Register with mDNS as a NTP server.
.sp
Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTPD_<option-name>\fP or \fBNTPD\fP
.fi
.ad
.SH USAGE
.SS "How NTP Operates"
The
\f\*[B-Font]ntpd\fP
utility operates by exchanging messages with
one or more configured servers over a range of designated poll intervals.
When
started, whether for the first or subsequent times, the program
requires several exchanges from the majority of these servers so
the signal processing and mitigation algorithms can accumulate and
groom the data and set the clock.
In order to protect the network
from bursts, the initial poll interval for each server is delayed
an interval randomized over a few seconds.
At the default initial poll
interval of 64s, several minutes can elapse before the clock is
set.
This initial delay to set the clock
can be safely and dramatically reduced using the
\f\*[B-Font]iburst\f[]
keyword with the
\f\*[B-Font]server\f[]
configuration
command, as described in
\fCntp.conf\f[]\fR(5)\f[].
.sp \n(Ppu
.ne 2
Most operating systems and hardware of today incorporate a
time-of-year (TOY) chip to maintain the time during periods when
the power is off.
When the machine is booted, the chip is used to
initialize the operating system time.
After the machine has
synchronized to a NTP server, the operating system corrects the
chip from time to time.
In the default case, if
\f\*[B-Font]ntpd\fP
detects that the time on the host
is more than 1000s from the server time,
\f\*[B-Font]ntpd\fP
assumes something must be terribly wrong and the only
reliable action is for the operator to intervene and set the clock
by hand.
(Reasons for this include there is no TOY chip,
or its battery is dead, or that the TOY chip is just of poor quality.)
This causes
\f\*[B-Font]ntpd\fP
to exit with a panic message to
the system log.
The
\f\*[B-Font]\-g\f[]
option overrides this check and the
clock will be set to the server time regardless of the chip time
(up to 68 years in the past or future \(em
this is a limitation of the NTPv4 protocol).
However, and to protect against broken hardware, such as when the
CMOS battery fails or the clock counter becomes defective, once the
clock has been set an error greater than 1000s will cause
\f\*[B-Font]ntpd\fP
to exit anyway.
.sp \n(Ppu
.ne 2
Under ordinary conditions,
\f\*[B-Font]ntpd\fP
adjusts the clock in
small steps so that the timescale is effectively continuous and
without discontinuities.
Under conditions of extreme network
congestion, the roundtrip delay jitter can exceed three seconds and
the synchronization distance, which is equal to one-half the
roundtrip delay plus error budget terms, can become very large.
The
\f\*[B-Font]ntpd\fP
algorithms discard sample offsets exceeding 128 ms,
unless the interval during which no sample offset is less than 128
ms exceeds 900s.
The first sample after that, no matter what the
offset, steps the clock to the indicated time.
In practice this
reduces the false alarm rate where the clock is stepped in error to
a vanishingly low incidence.
.sp \n(Ppu
.ne 2
As the result of this behavior, once the clock has been set it
very rarely strays more than 128 ms even under extreme cases of
network path congestion and jitter.
Sometimes, in particular when
\f\*[B-Font]ntpd\fP
is first started without a valid drift file
on a system with a large intrinsic drift
the error might grow to exceed 128 ms,
which would cause the clock to be set backwards
if the local clock time is more than 128 s
in the future relative to the server.
In some applications, this behavior may be unacceptable.
There are several solutions, however.
If the
\f\*[B-Font]\-x\f[]
option is included on the command line, the clock will
never be stepped and only slew corrections will be used.
But this choice comes with a cost that
should be carefully explored before deciding to use
the
\f\*[B-Font]\-x\f[]
option.
The maximum slew rate possible is limited
to 500 parts-per-million (PPM) as a consequence of the correctness
principles on which the NTP protocol and algorithm design are
based.
As a result, the local clock can take a long time to
converge to an acceptable offset, about 2,000 s for each second the
clock is outside the acceptable range.
During this interval the
local clock will not be consistent with any other network clock and
the system cannot be used for distributed applications that require
correctly synchronized network time.
.sp \n(Ppu
.ne 2
In spite of the above precautions, sometimes when large
frequency errors are present the resulting time offsets stray
outside the 128-ms range and an eventual step or slew time
correction is required.
If following such a correction the
frequency error is so large that the first sample is outside the
acceptable range,
\f\*[B-Font]ntpd\fP
enters the same state as when the
\fIntp.drift\f[]
file is not present.
The intent of this behavior
is to quickly correct the frequency and restore operation to the
normal tracking mode.
In the most extreme cases
(the host
\f\*[B-Font]time.ien.it\f[]
comes to mind), there may be occasional
step/slew corrections and subsequent frequency corrections.
It
helps in these cases to use the
\f\*[B-Font]burst\f[]
keyword when
configuring the server, but
ONLY
when you have permission to do so from the owner of the target host.
.sp \n(Ppu
.ne 2
Finally,
in the past many startup scripts would run
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[]
or
\fCsntp\f[]\fR(1sntpmdoc)\f[]
to get the system clock close to correct before starting
\fCntpd\f[]\fR(1ntpdmdoc)\f[],
but this was never more than a mediocre hack and is no longer needed.
If you are following the instructions in
\fIStarting NTP (Best Current Practice)\f[]
and you still need to set the system time before starting
\f\*[B-Font]ntpd\fP,
please open a bug report and document what is going on,
and then look at using
\fCsntp\f[]\fR(1sntpmdoc)\f[]
if you really need to set the clock before starting
\f\*[B-Font]ntpd\fP.
.sp \n(Ppu
.ne 2
There is a way to start
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
that often addresses all of the problems mentioned above.
.SS "Starting NTP (Best Current Practice)"
First, use the
\f\*[B-Font]iburst\f[]
option on your
\f\*[B-Font]server\f[]
entries.
.sp \n(Ppu
.ne 2
If you can also keep a good
\fIntp.drift\f[]
file then
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
will effectively "warm-start" and your system's clock will
be stable in under 11 seconds' time.
.sp \n(Ppu
.ne 2
As soon as possible in the startup sequence, start
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
with at least the
\f\*[B-Font]\-g\f[]
and perhaps the
\f\*[B-Font]\-N\f[]
options.
Then,
start the rest of your "normal" processes.
This will give
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
as much time as possible to get the system's clock synchronized and stable.
.sp \n(Ppu
.ne 2
Finally,
if you have processes like
\f\*[B-Font]dovecot\f[]
or database servers
that require
monotonically-increasing time,
run
\fCntp-wait\f[]\fR(1ntp-waitmdoc)\f[]
as late as possible in the boot sequence
(perhaps with the
\f\*[B-Font]\-v\f[]
flag)
and after
\fCntp-wait\f[]\fR(1ntp-waitmdoc)\f[]
exits successfully
it is as safe as it will ever be to start any process that require
stable time.
.SS "Frequency Discipline"
The
\f\*[B-Font]ntpd\fP
behavior at startup depends on whether the
frequency file, usually
\fIntp.drift\f[],
exists.
This file
contains the latest estimate of clock frequency error.
When the
\f\*[B-Font]ntpd\fP
is started and the file does not exist, the
\f\*[B-Font]ntpd\fP
enters a special mode designed to quickly adapt to
the particular system clock oscillator time and frequency error.
This takes approximately 15 minutes, after which the time and
frequency are set to nominal values and the
\f\*[B-Font]ntpd\fP
enters
normal mode, where the time and frequency are continuously tracked
relative to the server.
After one hour the frequency file is
created and the current frequency offset written to it.
When the
\f\*[B-Font]ntpd\fP
is started and the file does exist, the
\f\*[B-Font]ntpd\fP
frequency is initialized from the file and enters normal mode
immediately.
After that the current frequency offset is written to
the file at hourly intervals.
.SS "Operating Modes"
The
\f\*[B-Font]ntpd\fP
utility can operate in any of several modes, including
symmetric active/passive, client/server broadcast/multicast and
manycast, as described in the
"Association Management"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
It normally operates continuously while
monitoring for small changes in frequency and trimming the clock
for the ultimate precision.
However, it can operate in a one-time
mode where the time is set from an external server and frequency is
set from a previously recorded frequency file.
A
broadcast/multicast or manycast client can discover remote servers,
compute server-client propagation delay correction factors and
configure itself automatically.
This makes it possible to deploy a
fleet of workstations without specifying configuration details
specific to the local environment.
.sp \n(Ppu
.ne 2
By default,
\f\*[B-Font]ntpd\fP
runs in continuous mode where each of
possibly several external servers is polled at intervals determined
by an intricate state machine.
The state machine measures the
incidental roundtrip delay jitter and oscillator frequency wander
and determines the best poll interval using a heuristic algorithm.
Ordinarily, and in most operating environments, the state machine
will start with 64s intervals and eventually increase in steps to
1024s.
A small amount of random variation is introduced in order to
avoid bunching at the servers.
In addition, should a server become
unreachable for some time, the poll interval is increased in steps
to 1024s in order to reduce network overhead.
.sp \n(Ppu
.ne 2
In some cases it may not be practical for
\f\*[B-Font]ntpd\fP
to run continuously.
A common workaround has been to run the
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[]
or
\fCsntp\f[]\fR(1sntpmdoc)\f[]
programs from a
\fCcron\f[]\fR(8)\f[]
job at designated
times.
However, these programs do not have the crafted signal
processing, error checking or mitigation algorithms of
\f\*[B-Font]ntpd\fP.
The
\f\*[B-Font]\-q\f[]
option is intended for this purpose.
Setting this option will cause
\f\*[B-Font]ntpd\fP
to exit just after
setting the clock for the first time.
The procedure for initially
setting the clock is the same as in continuous mode; most
applications will probably want to specify the
\f\*[B-Font]iburst\f[]
keyword with the
\f\*[B-Font]server\f[]
configuration command.
With this
keyword a volley of messages are exchanged to groom the data and
the clock is set in about 10 s.
If nothing is heard after a
couple of minutes, the daemon times out and exits.
After a suitable
period of mourning, the
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[]
program will be
retired.
.sp \n(Ppu
.ne 2
When kernel support is available to discipline the clock
frequency, which is the case for stock Solaris, Tru64, Linux and
FreeBSD,
a useful feature is available to discipline the clock
frequency.
First,
\f\*[B-Font]ntpd\fP
is run in continuous mode with
selected servers in order to measure and record the intrinsic clock
frequency offset in the frequency file.
It may take some hours for
the frequency and offset to settle down.
Then the
\f\*[B-Font]ntpd\fP
is
stopped and run in one-time mode as required.
At each startup, the
frequency is read from the file and initializes the kernel
frequency.
.SS "Poll Interval Control"
This version of NTP includes an intricate state machine to
reduce the network load while maintaining a quality of
synchronization consistent with the observed jitter and wander.
There are a number of ways to tailor the operation in order enhance
accuracy by reducing the interval or to reduce network overhead by
increasing it.
However, the user is advised to carefully consider
the consequences of changing the poll adjustment range from the
default minimum of 64 s to the default maximum of 1,024 s.
The
default minimum can be changed with the
\f\*[B-Font]tinker\f[]
\f\*[B-Font]minpoll\f[]
command to a value not less than 16 s.
This value is used for all
configured associations, unless overridden by the
\f\*[B-Font]minpoll\f[]
option on the configuration command.
Note that most device drivers
will not operate properly if the poll interval is less than 64 s
and that the broadcast server and manycast client associations will
also use the default, unless overridden.
.sp \n(Ppu
.ne 2
In some cases involving dial up or toll services, it may be
useful to increase the minimum interval to a few tens of minutes
and maximum interval to a day or so.
Under normal operation
conditions, once the clock discipline loop has stabilized the
interval will be increased in steps from the minimum to the
maximum.
However, this assumes the intrinsic clock frequency error
is small enough for the discipline loop correct it.
The capture
range of the loop is 500 PPM at an interval of 64s decreasing by a
factor of two for each doubling of interval.
At a minimum of 1,024
s, for example, the capture range is only 31 PPM.
If the intrinsic
error is greater than this, the drift file
\fIntp.drift\f[]
will
have to be specially tailored to reduce the residual error below
this limit.
Once this is done, the drift file is automatically
updated once per hour and is available to initialize the frequency
on subsequent daemon restarts.
.SS "The huff-n'-puff Filter"
In scenarios where a considerable amount of data are to be
downloaded or uploaded over telephone modems, timekeeping quality
can be seriously degraded.
This occurs because the differential
delays on the two directions of transmission can be quite large.
In
many cases the apparent time errors are so large as to exceed the
step threshold and a step correction can occur during and after the
data transfer is in progress.
.sp \n(Ppu
.ne 2
The huff-n'-puff filter is designed to correct the apparent time
offset in these cases.
It depends on knowledge of the propagation
delay when no other traffic is present.
In common scenarios this
occurs during other than work hours.
The filter maintains a shift
register that remembers the minimum delay over the most recent
interval measured usually in hours.
Under conditions of severe
delay, the filter corrects the apparent offset using the sign of
the offset and the difference between the apparent delay and
minimum delay.
The name of the filter reflects the negative (huff)
and positive (puff) correction, which depends on the sign of the
offset.
.sp \n(Ppu
.ne 2
The filter is activated by the
\f\*[B-Font]tinker\f[]
command and
\f\*[B-Font]huffpuff\f[]
keyword, as described in
\fCntp.conf\f[]\fR(5)\f[].
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH FILES
.TP 15
.NOP \fI/etc/ntp.conf\f[]
the default name of the configuration file
.br
.ns
.TP 15
.NOP \fI/etc/ntp.drift\f[]
the default name of the drift file
.br
.ns
.TP 15
.NOP \fI/etc/ntp.keys\f[]
the default name of the key file
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[],
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[],
\fCntpq\f[]\fR(1ntpqmdoc)\f[],
\fCsntp\f[]\fR(1sntpmdoc)\f[]
.sp \n(Ppu
.ne 2
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
\f[C]http://www.ntp.org/\f[].
A snapshot of this documentation is available in HTML format in
\fI/usr/share/doc/ntp\f[].
David L. Mills,
\fINetwork Time Protocol (Version 1)\fR,
RFC1059
.PP
David L. Mills,
\fINetwork Time Protocol (Version 2)\fR,
RFC1119
.PP
David L. Mills,
\fINetwork Time Protocol (Version 3)\fR,
RFC1305
.PP
David L. Mills and J. Martin, Ed. and J. Burbank and W. Kasch,
\fINetwork Time Protocol Version 4: Protocol and Algorithms Specification\fR,
RFC5905
.PP
David L. Mills and B. Haberman, Ed.,
\fINetwork Time Protocol Version 4: Autokey Specification\fR,
RFC5906
.PP
H. Gerstung and C. Elliott and B. Haberman, Ed.,
\fIDefinitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)\fR,
RFC5907
.PP
R. Gayraud and B. Lourdelet,
\fINetwork Time Protocol (NTP) Server Option for DHCPv6\fR,
RFC5908
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The
\f\*[B-Font]ntpd\fP
utility has gotten rather fat.
While not huge, it has gotten
larger than might be desirable for an elevated-priority
\f\*[B-Font]ntpd\fP
running on a workstation, particularly since many of
the fancy features which consume the space were designed more with
a busy primary server, rather than a high stratum workstation in
mind.
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
Portions of this document came from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntpd\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntpd.1ntpdmdoc b/contrib/ntp/ntpd/ntpd.1ntpdmdoc
index f28af3193e0b..536e7f672840 100644
--- a/contrib/ntp/ntpd/ntpd.1ntpdmdoc
+++ b/contrib/ntp/ntpd/ntpd.1ntpdmdoc
@@ -1,908 +1,908 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPD 1ntpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:29 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:36 AM by AutoGen 5.18.16
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpd
.Nd NTP daemon program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ <server1> ... <serverN> ]
.Pp
.Sh DESCRIPTION
The
.Nm
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC\-5905,
but also retains compatibility with
version 3, as defined by RFC\-1305, and versions 1
and 2, as defined by RFC\-1059 and RFC\-1119, respectively.
.Pp
The
.Nm
utility does most computations in 64\-bit floating point
arithmetic and does relatively clumsy 64\-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
.Pp
Ordinarily,
.Nm
reads the
.Xr ntp.conf 5
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
.Pp
If NetInfo support is built into
.Nm ,
then
.Nm
will attempt to read its configuration from the
NetInfo if the default
.Xr ntp.conf 5
file cannot be read and no file is
specified by the
.Fl c
option.
.Pp
Various internal
.Nm
variables can be displayed and
configuration options altered while the
.Nm
is running
using the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
utility programs.
.Pp
When
.Nm
starts it looks at the value of
.Xr umask 2 ,
and if zero
.Nm
will set the
.Xr umask 2
to 022.
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.It Fl a , Fl \-authreq
Require crypto authentication.
This option must not appear in combination with any of the following options:
authnoreq.
.sp
Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
.It Fl A , Fl \-authnoreq
Do not require crypto authentication.
This option must not appear in combination with any of the following options:
authreq.
.sp
Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
.It Fl b , Fl \-bcastsync
Allow us to sync to broadcast servers.
.sp
.It Fl c Ar string , Fl \-configfile Ns = Ns Ar string
configuration file name.
.sp
The name and path of the configuration file,
\fI/etc/ntp.conf\fP
by default.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl f Ar string , Fl \-driftfile Ns = Ns Ar string
frequency drift file name.
.sp
The name and path of the frequency file,
\fI/etc/ntp.drift\fP
by default.
This is the same operation as the
\fBdriftfile\fP \fIdriftfile\fP
configuration specification in the
\fI/etc/ntp.conf\fP
file.
.It Fl g , Fl \-panicgate
Allow the first adjustment to be Big.
This option may appear an unlimited number of times.
.sp
Normally,
\fBntpd\fP
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
\fBntpd\fP
will exit with a message to the system log. This option can be used with the
\fB\-q\fP
and
\fB\-x\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
.It Fl G , Fl \-force\-step\-once
Step any initial offset correction..
.sp
Normally,
\fBntpd\fP
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the \fBtinker\fP configuration file directive for other options.
.It Fl i Ar string , Fl \-jaildir Ns = Ns Ar string
Jail directory.
.sp
Chroot the server to the directory
\fIjaildir\fP
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
\fB\-u\fP
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB\-\-enable\-clockctl\fP) or Linux (configure with
\fB\-\-enable\-linuxcaps\fP) or Solaris (configure with \fB\-\-enable\-solarisprivs\fP).
.It Fl I Ar iface , Fl \-interface Ns = Ns Ar iface
Listen on an interface name or address.
This option may appear an unlimited number of times.
.sp
Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
\fBinterface\fP command, which is more versatile.
.It Fl k Ar string , Fl \-keyfile Ns = Ns Ar string
path to symmetric keys.
.sp
Specify the name and path of the symmetric key file.
\fI/etc/ntp.keys\fP
is the default.
This is the same operation as the
\fBkeys\fP \fIkeyfile\fP
configuration file directive.
.It Fl l Ar string , Fl \-logfile Ns = Ns Ar string
path to the log file.
.sp
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
\fBlogfile\fP \fIlogfile\fP
configuration file directive.
.It Fl L , Fl \-novirtualips
Do not listen to virtual interfaces.
.sp
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file \fBinterface\fP command, which
is more versatile.
.It Fl M , Fl \-modifymmtimer
Modify Multimedia Timer (Windows only).
.sp
Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
.It Fl n , Fl \-nofork
Do not fork.
This option must not appear in combination with any of the following options:
wait\-sync.
.sp
.It Fl N , Fl \-nice
Run at high priority.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the highest priority.
.It Fl p Ar string , Fl \-pidfile Ns = Ns Ar string
path to the PID file.
.sp
Specify the name and path of the file used to record
\fBntpd\fP's
process ID.
This is the same operation as the
\fBpidfile\fP \fIpidfile\fP
configuration file directive.
.It Fl P Ar number , Fl \-priority Ns = Ns Ar number
Process priority.
This option takes an integer number as its argument.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the specified
\fBsched_setscheduler(SCHED_FIFO)\fP
priority.
.It Fl q , Fl \-quit
Set the time and quit.
This option must not appear in combination with any of the following options:
saveconfigquit, wait\-sync.
.sp
\fBntpd\fP
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
\fBntpdate\fP
program, which will soon be replaced with a shell script.
The
\fB\-g\fP
and
\fB\-x\fP
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
.It Fl r Ar string , Fl \-propagationdelay Ns = Ns Ar string
Broadcast/propagation delay.
.sp
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
.It Fl \-saveconfigquit Ns = Ns Ar string
Save parsed configuration and quit.
This option must not appear in combination with any of the following options:
quit, wait\-sync.
.sp
Cause \fBntpd\fP to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
.It Fl s Ar string , Fl \-statsdir Ns = Ns Ar string
Statistics file location.
.sp
Specify the directory path for files created by the statistics facility.
This is the same operation as the
\fBstatsdir\fP \fIstatsdir\fP
configuration file directive.
.It Fl t Ar tkey , Fl \-trustedkey Ns = Ns Ar tkey
Trusted key number.
This option may appear an unlimited number of times.
.sp
Add the specified key number to the trusted key list.
.It Fl u Ar string , Fl \-user Ns = Ns Ar string
Run as userid (or userid:groupid).
.sp
Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB\-\-enable\-clockctl\fP) or Linux (configure with
\fB\-\-enable\-linuxcaps\fP) or Solaris (configure with \fB\-\-enable\-solarisprivs\fP).
.It Fl U Ar number , Fl \-updateinterval Ns = Ns Ar number
interval in seconds between scans for new or dropped interfaces.
This option takes an integer number as its argument.
.sp
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
.It Fl \-var Ns = Ns Ar nvar
make ARG an ntp variable (RW).
This option may appear an unlimited number of times.
.sp
.It Fl \-dvar Ns = Ns Ar ndvar
make ARG an ntp variable (RW|DEF).
This option may appear an unlimited number of times.
.sp
.It Fl w Ar number , Fl \-wait\-sync Ns = Ns Ar number
Seconds to wait for first clock sync.
This option must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
This option takes an integer number as its argument.
.sp
If greater than zero, alters \fBntpd\fP's behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is \fBETIMEDOUT\fP.
This provides the option for a script starting \fBntpd\fP to easily
wait for the first set of the clock before proceeding.
.It Fl x , Fl \-slew
Slew up to 600 seconds.
.sp
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
\fB\-g\fP
and
\fB\-q\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
.It Fl \-usepcc
Use CPU cycle counter (Windows only).
.sp
Attempt to substitute the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter and \fBQueryPerformanceCounter\fP are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
.It Fl \-pccfreq Ns = Ns Ar string
Force CPU cycle counter use (Windows only).
.sp
Force substitution the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
.It Fl m , Fl \-mdns
Register with mDNS as a NTP server.
.sp
Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTPD_<option\-name>\fP or \fBNTPD\fP
.fi
.ad
.Sh USAGE
.Ss "How NTP Operates"
The
.Nm
utility operates by exchanging messages with
one or more configured servers over a range of designated poll intervals.
When
started, whether for the first or subsequent times, the program
requires several exchanges from the majority of these servers so
the signal processing and mitigation algorithms can accumulate and
groom the data and set the clock.
In order to protect the network
from bursts, the initial poll interval for each server is delayed
an interval randomized over a few seconds.
At the default initial poll
interval of 64s, several minutes can elapse before the clock is
set.
This initial delay to set the clock
can be safely and dramatically reduced using the
.Cm iburst
keyword with the
.Ic server
configuration
command, as described in
.Xr ntp.conf 5 .
.Pp
Most operating systems and hardware of today incorporate a
time\-of\-year (TOY) chip to maintain the time during periods when
the power is off.
When the machine is booted, the chip is used to
initialize the operating system time.
After the machine has
synchronized to a NTP server, the operating system corrects the
chip from time to time.
In the default case, if
.Nm
detects that the time on the host
is more than 1000s from the server time,
.Nm
assumes something must be terribly wrong and the only
reliable action is for the operator to intervene and set the clock
by hand.
(Reasons for this include there is no TOY chip,
or its battery is dead, or that the TOY chip is just of poor quality.)
This causes
.Nm
to exit with a panic message to
the system log.
The
.Fl g
option overrides this check and the
clock will be set to the server time regardless of the chip time
(up to 68 years in the past or future \(em
this is a limitation of the NTPv4 protocol).
However, and to protect against broken hardware, such as when the
CMOS battery fails or the clock counter becomes defective, once the
clock has been set an error greater than 1000s will cause
.Nm
to exit anyway.
.Pp
Under ordinary conditions,
.Nm
adjusts the clock in
small steps so that the timescale is effectively continuous and
without discontinuities.
Under conditions of extreme network
congestion, the roundtrip delay jitter can exceed three seconds and
the synchronization distance, which is equal to one\-half the
roundtrip delay plus error budget terms, can become very large.
The
.Nm
algorithms discard sample offsets exceeding 128 ms,
unless the interval during which no sample offset is less than 128
ms exceeds 900s.
The first sample after that, no matter what the
offset, steps the clock to the indicated time.
In practice this
reduces the false alarm rate where the clock is stepped in error to
a vanishingly low incidence.
.Pp
As the result of this behavior, once the clock has been set it
very rarely strays more than 128 ms even under extreme cases of
network path congestion and jitter.
Sometimes, in particular when
.Nm
is first started without a valid drift file
on a system with a large intrinsic drift
the error might grow to exceed 128 ms,
which would cause the clock to be set backwards
if the local clock time is more than 128 s
in the future relative to the server.
In some applications, this behavior may be unacceptable.
There are several solutions, however.
If the
.Fl x
option is included on the command line, the clock will
never be stepped and only slew corrections will be used.
But this choice comes with a cost that
should be carefully explored before deciding to use
the
.Fl x
option.
The maximum slew rate possible is limited
to 500 parts\-per\-million (PPM) as a consequence of the correctness
principles on which the NTP protocol and algorithm design are
based.
As a result, the local clock can take a long time to
converge to an acceptable offset, about 2,000 s for each second the
clock is outside the acceptable range.
During this interval the
local clock will not be consistent with any other network clock and
the system cannot be used for distributed applications that require
correctly synchronized network time.
.Pp
In spite of the above precautions, sometimes when large
frequency errors are present the resulting time offsets stray
outside the 128\-ms range and an eventual step or slew time
correction is required.
If following such a correction the
frequency error is so large that the first sample is outside the
acceptable range,
.Nm
enters the same state as when the
.Pa ntp.drift
file is not present.
The intent of this behavior
is to quickly correct the frequency and restore operation to the
normal tracking mode.
In the most extreme cases
(the host
.Cm time.ien.it
comes to mind), there may be occasional
step/slew corrections and subsequent frequency corrections.
It
helps in these cases to use the
.Cm burst
keyword when
configuring the server, but
ONLY
when you have permission to do so from the owner of the target host.
.Pp
Finally,
in the past many startup scripts would run
.Xr ntpdate 1ntpdatemdoc
or
.Xr sntp 1sntpmdoc
to get the system clock close to correct before starting
.Xr ntpd 1ntpdmdoc ,
but this was never more than a mediocre hack and is no longer needed.
If you are following the instructions in
.Sx "Starting NTP (Best Current Practice)"
and you still need to set the system time before starting
.Nm ,
please open a bug report and document what is going on,
and then look at using
.Xr sntp 1sntpmdoc
if you really need to set the clock before starting
.Nm .
.Pp
There is a way to start
.Xr ntpd 1ntpdmdoc
that often addresses all of the problems mentioned above.
.Ss "Starting NTP (Best Current Practice)"
First, use the
.Cm iburst
option on your
.Cm server
entries.
.Pp
If you can also keep a good
.Pa ntp.drift
file then
.Xr ntpd 1ntpdmdoc
will effectively "warm\-start" and your system's clock will
be stable in under 11 seconds' time.
.Pp
As soon as possible in the startup sequence, start
.Xr ntpd 1ntpdmdoc
with at least the
.Fl g
and perhaps the
.Fl N
options.
Then,
start the rest of your "normal" processes.
This will give
.Xr ntpd 1ntpdmdoc
as much time as possible to get the system's clock synchronized and stable.
.Pp
Finally,
if you have processes like
.Cm dovecot
or database servers
that require
monotonically\-increasing time,
run
.Xr ntp\-wait 1ntp\-waitmdoc
as late as possible in the boot sequence
(perhaps with the
.Fl v
flag)
and after
.Xr ntp\-wait 1ntp\-waitmdoc
exits successfully
it is as safe as it will ever be to start any process that require
stable time.
.Ss "Frequency Discipline"
The
.Nm
behavior at startup depends on whether the
frequency file, usually
.Pa ntp.drift ,
exists.
This file
contains the latest estimate of clock frequency error.
When the
.Nm
is started and the file does not exist, the
.Nm
enters a special mode designed to quickly adapt to
the particular system clock oscillator time and frequency error.
This takes approximately 15 minutes, after which the time and
frequency are set to nominal values and the
.Nm
enters
normal mode, where the time and frequency are continuously tracked
relative to the server.
After one hour the frequency file is
created and the current frequency offset written to it.
When the
.Nm
is started and the file does exist, the
.Nm
frequency is initialized from the file and enters normal mode
immediately.
After that the current frequency offset is written to
the file at hourly intervals.
.Ss "Operating Modes"
The
.Nm
utility can operate in any of several modes, including
symmetric active/passive, client/server broadcast/multicast and
manycast, as described in the
.Qq Association Management
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
It normally operates continuously while
monitoring for small changes in frequency and trimming the clock
for the ultimate precision.
However, it can operate in a one\-time
mode where the time is set from an external server and frequency is
set from a previously recorded frequency file.
A
broadcast/multicast or manycast client can discover remote servers,
compute server\-client propagation delay correction factors and
configure itself automatically.
This makes it possible to deploy a
fleet of workstations without specifying configuration details
specific to the local environment.
.Pp
By default,
.Nm
runs in continuous mode where each of
possibly several external servers is polled at intervals determined
by an intricate state machine.
The state machine measures the
incidental roundtrip delay jitter and oscillator frequency wander
and determines the best poll interval using a heuristic algorithm.
Ordinarily, and in most operating environments, the state machine
will start with 64s intervals and eventually increase in steps to
1024s.
A small amount of random variation is introduced in order to
avoid bunching at the servers.
In addition, should a server become
unreachable for some time, the poll interval is increased in steps
to 1024s in order to reduce network overhead.
.Pp
In some cases it may not be practical for
.Nm
to run continuously.
A common workaround has been to run the
.Xr ntpdate 1ntpdatemdoc
or
.Xr sntp 1sntpmdoc
programs from a
.Xr cron 8
job at designated
times.
However, these programs do not have the crafted signal
processing, error checking or mitigation algorithms of
.Nm .
The
.Fl q
option is intended for this purpose.
Setting this option will cause
.Nm
to exit just after
setting the clock for the first time.
The procedure for initially
setting the clock is the same as in continuous mode; most
applications will probably want to specify the
.Cm iburst
keyword with the
.Ic server
configuration command.
With this
keyword a volley of messages are exchanged to groom the data and
the clock is set in about 10 s.
If nothing is heard after a
couple of minutes, the daemon times out and exits.
After a suitable
period of mourning, the
.Xr ntpdate 1ntpdatemdoc
program will be
retired.
.Pp
When kernel support is available to discipline the clock
frequency, which is the case for stock Solaris, Tru64, Linux and
.Fx ,
a useful feature is available to discipline the clock
frequency.
First,
.Nm
is run in continuous mode with
selected servers in order to measure and record the intrinsic clock
frequency offset in the frequency file.
It may take some hours for
the frequency and offset to settle down.
Then the
.Nm
is
stopped and run in one\-time mode as required.
At each startup, the
frequency is read from the file and initializes the kernel
frequency.
.Ss "Poll Interval Control"
This version of NTP includes an intricate state machine to
reduce the network load while maintaining a quality of
synchronization consistent with the observed jitter and wander.
There are a number of ways to tailor the operation in order enhance
accuracy by reducing the interval or to reduce network overhead by
increasing it.
However, the user is advised to carefully consider
the consequences of changing the poll adjustment range from the
default minimum of 64 s to the default maximum of 1,024 s.
The
default minimum can be changed with the
.Ic tinker
.Cm minpoll
command to a value not less than 16 s.
This value is used for all
configured associations, unless overridden by the
.Cm minpoll
option on the configuration command.
Note that most device drivers
will not operate properly if the poll interval is less than 64 s
and that the broadcast server and manycast client associations will
also use the default, unless overridden.
.Pp
In some cases involving dial up or toll services, it may be
useful to increase the minimum interval to a few tens of minutes
and maximum interval to a day or so.
Under normal operation
conditions, once the clock discipline loop has stabilized the
interval will be increased in steps from the minimum to the
maximum.
However, this assumes the intrinsic clock frequency error
is small enough for the discipline loop correct it.
The capture
range of the loop is 500 PPM at an interval of 64s decreasing by a
factor of two for each doubling of interval.
At a minimum of 1,024
s, for example, the capture range is only 31 PPM.
If the intrinsic
error is greater than this, the drift file
.Pa ntp.drift
will
have to be specially tailored to reduce the residual error below
this limit.
Once this is done, the drift file is automatically
updated once per hour and is available to initialize the frequency
on subsequent daemon restarts.
.Ss "The huff\-n'\-puff Filter"
In scenarios where a considerable amount of data are to be
downloaded or uploaded over telephone modems, timekeeping quality
can be seriously degraded.
This occurs because the differential
delays on the two directions of transmission can be quite large.
In
many cases the apparent time errors are so large as to exceed the
step threshold and a step correction can occur during and after the
data transfer is in progress.
.Pp
The huff\-n'\-puff filter is designed to correct the apparent time
offset in these cases.
It depends on knowledge of the propagation
delay when no other traffic is present.
In common scenarios this
occurs during other than work hours.
The filter maintains a shift
register that remembers the minimum delay over the most recent
interval measured usually in hours.
Under conditions of severe
delay, the filter corrects the apparent offset using the sign of
the offset and the difference between the apparent delay and
minimum delay.
The name of the filter reflects the negative (huff)
and positive (puff) correction, which depends on the sign of the
offset.
.Pp
The filter is activated by the
.Ic tinker
command and
.Cm huffpuff
keyword, as described in
.Xr ntp.conf 5 .
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.drift -compact
.It Pa /etc/ntp.conf
the default name of the configuration file
.It Pa /etc/ntp.drift
the default name of the drift file
.It Pa /etc/ntp.keys
the default name of the key file
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpdate 1ntpdatemdoc ,
.Xr ntpdc 1ntpdcmdoc ,
.Xr ntpq 1ntpqmdoc ,
.Xr sntp 1sntpmdoc
.Pp
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
.Li http://www.ntp.org/ .
A snapshot of this documentation is available in HTML format in
.Pa /usr/share/doc/ntp .
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 1)
.%O RFC1059
.Re
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 2)
.%O RFC1119
.Re
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 3)
.%O RFC1305
.Re
.Rs
.%A David L. Mills
.%A J. Martin, Ed.
.%A J. Burbank
.%A W. Kasch
.%T Network Time Protocol Version 4: Protocol and Algorithms Specification
.%O RFC5905
.Re
.Rs
.%A David L. Mills
.%A B. Haberman, Ed.
.%T Network Time Protocol Version 4: Autokey Specification
.%O RFC5906
.Re
.Rs
.%A H. Gerstung
.%A C. Elliott
.%A B. Haberman, Ed.
.%T Definitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)
.%O RFC5907
.Re
.Rs
.%A R. Gayraud
.%A B. Lourdelet
.%T Network Time Protocol (NTP) Server Option for DHCPv6
.%O RFC5908
.Re
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The
.Nm
utility has gotten rather fat.
While not huge, it has gotten
larger than might be desirable for an elevated\-priority
.Nm
running on a workstation, particularly since many of
the fancy features which consume the space were designed more with
a busy primary server, rather than a high stratum workstation in
mind.
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
Portions of this document came from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntpd\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntpd.c b/contrib/ntp/ntpd/ntpd.c
index f5b00bdb3c16..5944aad66814 100644
--- a/contrib/ntp/ntpd/ntpd.c
+++ b/contrib/ntp/ntpd/ntpd.c
@@ -1,1902 +1,1904 @@
/*
* ntpd.c - main program for the fixed point NTP daemon
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "ntp_machine.h"
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_stdlib.h"
#include <ntp_random.h>
#include "ntp_config.h"
#include "ntp_syslog.h"
#include "ntp_assert.h"
#include "isc/error.h"
#include "isc/strerror.h"
#include "isc/formatcheck.h"
#include "iosignal.h"
#ifdef SIM
# include "ntpsim.h"
#endif
#include "ntp_libopts.h"
#include "ntpd-opts.h"
/* there's a short treatise below what the thread stuff is for.
* [Bug 2954] enable the threading warm-up only for Linux.
*/
#if defined(HAVE_PTHREADS) && HAVE_PTHREADS && !defined(NO_THREADS)
# ifdef HAVE_PTHREAD_H
# include <pthread.h>
# endif
# if defined(linux)
# define NEED_PTHREAD_WARMUP
# endif
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef HAVE_SYS_WAIT_H
# include <sys/wait.h>
#endif
#include <stdio.h>
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
#ifdef HAVE_SYS_SIGNAL_H
# include <sys/signal.h>
#else
# include <signal.h>
#endif
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif /* HAVE_SYS_IOCTL_H */
#if defined(HAVE_RTPRIO)
# ifdef HAVE_SYS_LOCK_H
# include <sys/lock.h>
# endif
# include <sys/rtprio.h>
#else
# ifdef HAVE_PLOCK
# ifdef HAVE_SYS_LOCK_H
# include <sys/lock.h>
# endif
# endif
#endif
#if defined(HAVE_SCHED_SETSCHEDULER)
# ifdef HAVE_SCHED_H
# include <sched.h>
# else
# ifdef HAVE_SYS_SCHED_H
# include <sys/sched.h>
# endif
# endif
#endif
#if defined(HAVE_SYS_MMAN_H)
# include <sys/mman.h>
#endif
#ifdef HAVE_SYSEXITS_H
# include <sysexits.h>
#endif
#ifdef HAVE_TERMIOS_H
# include <termios.h>
#endif
#ifdef SYS_DOMAINOS
# include <apollo/base.h>
#endif /* SYS_DOMAINOS */
#include "recvbuff.h"
#include "ntp_cmdargs.h"
#if 0 /* HMS: I don't think we need this. 961223 */
#ifdef LOCK_PROCESS
# ifdef SYS_SOLARIS
# include <sys/mman.h>
# else
# include <sys/lock.h>
# endif
#endif
#endif
#ifdef SYS_WINNT
# include "ntservice.h"
#endif
#ifdef _AIX
# include <ulimit.h>
#endif /* _AIX */
#ifdef SCO5_CLOCK
# include <sys/ci/ciioctl.h>
#endif
#ifdef HAVE_DROPROOT
# include <ctype.h>
# include <grp.h>
# include <pwd.h>
#ifdef HAVE_LINUX_CAPABILITIES
# include <sys/capability.h>
# include <sys/prctl.h>
#endif /* HAVE_LINUX_CAPABILITIES */
#if defined(HAVE_PRIV_H) && defined(HAVE_SOLARIS_PRIVS)
# include <priv.h>
#endif /* HAVE_PRIV_H */
#if defined(HAVE_TRUSTEDBSD_MAC)
# include <sys/mac.h>
#endif /* HAVE_TRUSTEDBSD_MAC */
#endif /* HAVE_DROPROOT */
#if defined (LIBSECCOMP) && (KERN_SECCOMP)
/* # include <sys/types.h> */
# include <sys/resource.h>
# include <seccomp.h>
#endif /* LIBSECCOMP and KERN_SECCOMP */
#ifdef __FreeBSD__
#include <sys/procctl.h>
#ifndef PROC_STACKGAP_CTL
/*
* Even if we compile on an older system we can still run on a newer one.
*/
#define PROC_STACKGAP_CTL 17
#define PROC_STACKGAP_DISABLE 0x0002
#endif
#endif
#ifdef HAVE_DNSREGISTRATION
# include <dns_sd.h>
DNSServiceRef mdns;
#endif
/* In case 'sysexits.h' is unavailable, define some exit codes here: */
#ifndef EX_SOFTWARE
# define EX_SOFTWARE 70
#endif
#ifndef EX_OSERR
# define EX_OSERR 71
#endif
#ifndef EX_IOERR
# define EX_IOERR 74
#endif
#ifndef EX_PROTOCOL
#define EX_PROTOCOL 76
#endif
#ifdef HAVE_SETPGRP_0
# define ntp_setpgrp(x, y) setpgrp()
#else
# define ntp_setpgrp(x, y) setpgrp(x, y)
#endif
#ifdef HAVE_SOLARIS_PRIVS
# define LOWPRIVS "basic,sys_time,net_privaddr,proc_setid,!proc_info,!proc_session,!proc_exec"
static priv_set_t *lowprivs = NULL;
static priv_set_t *highprivs = NULL;
#endif /* HAVE_SOLARIS_PRIVS */
/*
* Scheduling priority we run at
*/
#define NTPD_PRIO (-12)
int priority_done = 2; /* 0 - Set priority */
/* 1 - priority is OK where it is */
/* 2 - Don't set priority */
/* 1 and 2 are pretty much the same */
int listen_to_virtual_ips = TRUE;
/*
* No-fork flag. If set, we do not become a background daemon.
*/
int nofork; /* Fork by default */
#ifdef HAVE_DNSREGISTRATION
/*
* mDNS registration flag. If set, we attempt to register with the mDNS system, but only
* after we have synched the first time. If the attempt fails, then try again once per
* minute for up to 5 times. After all, we may be starting before mDNS.
*/
int mdnsreg = FALSE;
int mdnstries = 5;
#endif /* HAVE_DNSREGISTRATION */
#ifdef HAVE_LINUX_CAPABILITIES
int have_caps; /* runtime check whether capabilities work */
#endif /* HAVE_LINUX_CAPABILITIES */
#ifdef HAVE_DROPROOT
int droproot;
int root_dropped;
char *user; /* User to switch to */
char *group; /* group to switch to */
const char *chrootdir; /* directory to chroot to */
uid_t sw_uid;
gid_t sw_gid;
struct group *gr;
struct passwd *pw;
#endif /* HAVE_DROPROOT */
#ifdef HAVE_WORKING_FORK
int daemon_pipe[2] = { -1, -1 };
#endif
/*
* Version declaration
*/
extern const char *Version;
char const *progname;
int was_alarmed;
#ifdef DECL_SYSCALL
/*
* We put this here, since the argument profile is syscall-specific
*/
extern int syscall (int, ...);
#endif /* DECL_SYSCALL */
#if !defined(SIM) && defined(SIGDIE1)
static volatile int signalled = 0;
static volatile int signo = 0;
/* In an ideal world, 'finish_safe()' would declared as noreturn... */
static void finish_safe (int);
static RETSIGTYPE finish (int);
#endif
#if !defined(SIM) && defined(HAVE_WORKING_FORK)
static int wait_child_sync_if (int, unsigned long);
static int wait_child_exit_if (pid_t, int);
#endif
#if !defined(SIM) && !defined(SYS_WINNT)
# ifdef DEBUG
static RETSIGTYPE moredebug (int);
static RETSIGTYPE lessdebug (int);
# else /* !DEBUG follows */
static RETSIGTYPE no_debug (int);
# endif /* !DEBUG */
#endif /* !SIM && !SYS_WINNT */
#ifndef WORK_FORK
int saved_argc;
char ** saved_argv;
#endif
#ifndef SIM
int ntpdmain (int, char **);
static void set_process_priority (void);
static void assertion_failed (const char *, int,
isc_assertiontype_t,
const char *)
__attribute__ ((__noreturn__));
static void library_fatal_error (const char *, int,
const char *, va_list)
ISC_FORMAT_PRINTF(3, 0);
static void library_unexpected_error(const char *, int,
const char *, va_list)
ISC_FORMAT_PRINTF(3, 0);
#endif /* !SIM */
/* Bug2332 unearthed a problem in the interaction of reduced user
* privileges, the limits on memory usage and some versions of the
* pthread library on Linux systems. The 'pthread_cancel()' function and
* likely some others need to track the stack of the thread involved,
* and uses a function that comes from GCC (--> libgcc_s.so) to do
* this. Unfortunately the developers of glibc decided to load the
* library on demand, which speeds up program start but can cause
* trouble here: Due to all the things NTPD does to limit its resource
* usage, this deferred load of libgcc_s does not always work once the
* restrictions are in effect.
*
* One way out of this was attempting a forced link against libgcc_s
* when possible because it makes the library available immediately
* without deferred load. (The symbol resolution would still be dynamic
* and on demand, but the code would already be in the process image.)
*
* This is a tricky thing to do, since it's not necessary everywhere,
* not possible everywhere, has shown to break the build of other
* programs in the NTP suite and is now generally frowned upon.
*
* So we take a different approach here: We creat a worker thread that does
* actually nothing except waiting for cancellation and cancel it. If
* this is done before all the limitations are put in place, the
* machinery is pre-heated and all the runtime stuff should be in place
* and useable when needed.
*
* This uses only the standard pthread API and should work with all
* implementations of pthreads. It is not necessary everywhere, but it's
* cheap enough to go on nearly unnoticed.
*
* Addendum: Bug 2954 showed that the assumption that this should work
* with all OS is wrong -- at least FreeBSD bombs heavily.
*/
#ifdef NEED_PTHREAD_WARMUP
/* simple thread function: sleep until cancelled, just to exercise
* thread cancellation.
*/
static void*
my_pthread_warmup_worker(
void *thread_args)
{
(void)thread_args;
for (;;)
sleep(10);
return NULL;
}
/* pre-heat threading: create a thread and cancel it, just to exercise
* thread cancellation.
*/
static void
my_pthread_warmup(void)
{
pthread_t thread;
pthread_attr_t thr_attr;
int rc;
pthread_attr_init(&thr_attr);
#if defined(HAVE_PTHREAD_ATTR_GETSTACKSIZE) && \
defined(HAVE_PTHREAD_ATTR_SETSTACKSIZE) && \
defined(PTHREAD_STACK_MIN)
{
size_t ssmin = 32*1024; /* 32kB should be minimum */
if (ssmin < PTHREAD_STACK_MIN)
ssmin = PTHREAD_STACK_MIN;
rc = pthread_attr_setstacksize(&thr_attr, ssmin);
if (0 != rc)
msyslog(LOG_ERR,
"my_pthread_warmup: pthread_attr_setstacksize() -> %s",
strerror(rc));
}
#endif
rc = pthread_create(
&thread, &thr_attr, my_pthread_warmup_worker, NULL);
pthread_attr_destroy(&thr_attr);
if (0 != rc) {
msyslog(LOG_ERR,
"my_pthread_warmup: pthread_create() -> %s",
strerror(rc));
} else {
pthread_cancel(thread);
pthread_join(thread, NULL);
}
}
#endif /*defined(NEED_PTHREAD_WARMUP)*/
#ifdef NEED_EARLY_FORK
static void
dummy_callback(void) { return; }
static void
fork_nonchroot_worker(void) {
getaddrinfo_sometime("localhost", "ntp", NULL, INITIAL_DNS_RETRY,
(gai_sometime_callback)&dummy_callback, NULL);
}
#endif /* NEED_EARLY_FORK */
void
parse_cmdline_opts(
int * pargc,
char ***pargv
)
{
static int parsed;
static int optct;
if (!parsed)
optct = ntpOptionProcess(&ntpdOptions, *pargc, *pargv);
parsed = 1;
*pargc -= optct;
*pargv += optct;
}
#ifdef SIM
int
main(
int argc,
char *argv[]
)
{
progname = argv[0];
parse_cmdline_opts(&argc, &argv);
#ifdef DEBUG
debug = OPT_VALUE_SET_DEBUG_LEVEL;
DPRINTF(1, ("%s\n", Version));
#endif
return ntpsim(argc, argv);
}
#elif defined(NO_MAIN_ALLOWED)
CALL(ntpd,"ntpd",ntpdmain);
#elif !defined(SYS_WINNT)
int
main(
int argc,
char *argv[]
)
{
# ifdef __FreeBSD__
{
/*
* We Must disable ASLR stack gap on FreeBSD to avoid a
* segfault. See PR/241421 and PR/241960.
*/
int aslr_var = PROC_STACKGAP_DISABLE;
pid_t my_pid = getpid();
procctl(P_PID, my_pid, PROC_STACKGAP_CTL, &aslr_var);
}
# endif
return ntpdmain(argc, argv);
}
#endif /* !SYS_WINNT */
#ifdef _AIX
/*
* OK. AIX is different than solaris in how it implements plock().
* If you do NOT adjust the stack limit, you will get the MAXIMUM
* stack size allocated and PINNED with you program. To check the
* value, use ulimit -a.
*
* To fix this, we create an automatic variable and set our stack limit
* to that PLUS 32KB of extra space (we need some headroom).
*
* This subroutine gets the stack address.
*
* Grover Davidson and Matt Ladendorf
*
*/
static char *
get_aix_stack(void)
{
char ch;
return (&ch);
}
/*
* Signal handler for SIGDANGER.
*/
static void
catch_danger(int signo)
{
msyslog(LOG_INFO, "ntpd: setpgid(): %m");
/* Make the system believe we'll free something, but don't do it! */
return;
}
#endif /* _AIX */
/*
* Set the process priority
*/
#ifndef SIM
static void
set_process_priority(void)
{
# ifdef DEBUG
if (debug > 1)
msyslog(LOG_DEBUG, "set_process_priority: %s: priority_done is <%d>",
((priority_done)
? "Leave priority alone"
: "Attempt to set priority"
),
priority_done);
# endif /* DEBUG */
# if defined(HAVE_SCHED_SETSCHEDULER)
if (!priority_done) {
extern int config_priority_override, config_priority;
int pmax, pmin;
struct sched_param sched;
pmax = sched_get_priority_max(SCHED_FIFO);
sched.sched_priority = pmax;
if ( config_priority_override ) {
pmin = sched_get_priority_min(SCHED_FIFO);
if ( config_priority > pmax )
sched.sched_priority = pmax;
else if ( config_priority < pmin )
sched.sched_priority = pmin;
else
sched.sched_priority = config_priority;
}
if ( sched_setscheduler(0, SCHED_FIFO, &sched) == -1 )
msyslog(LOG_ERR, "sched_setscheduler(): %m");
else
++priority_done;
}
# endif /* HAVE_SCHED_SETSCHEDULER */
# ifdef HAVE_RTPRIO
# ifdef RTP_SET
if (!priority_done) {
struct rtprio srtp;
srtp.type = RTP_PRIO_REALTIME; /* was: RTP_PRIO_NORMAL */
srtp.prio = 0; /* 0 (hi) -> RTP_PRIO_MAX (31,lo) */
if (rtprio(RTP_SET, getpid(), &srtp) < 0)
msyslog(LOG_ERR, "rtprio() error: %m");
else
++priority_done;
}
# else /* !RTP_SET follows */
if (!priority_done) {
if (rtprio(0, 120) < 0)
msyslog(LOG_ERR, "rtprio() error: %m");
else
++priority_done;
}
# endif /* !RTP_SET */
# endif /* HAVE_RTPRIO */
# if defined(NTPD_PRIO) && NTPD_PRIO != 0
# ifdef HAVE_ATT_NICE
if (!priority_done) {
errno = 0;
if (-1 == nice (NTPD_PRIO) && errno != 0)
msyslog(LOG_ERR, "nice() error: %m");
else
++priority_done;
}
# endif /* HAVE_ATT_NICE */
# ifdef HAVE_BSD_NICE
if (!priority_done) {
if (-1 == setpriority(PRIO_PROCESS, 0, NTPD_PRIO))
msyslog(LOG_ERR, "setpriority() error: %m");
else
++priority_done;
}
# endif /* HAVE_BSD_NICE */
# endif /* NTPD_PRIO && NTPD_PRIO != 0 */
if (!priority_done)
msyslog(LOG_ERR, "set_process_priority: No way found to improve our priority");
}
#endif /* !SIM */
#if !defined(SIM) && !defined(SYS_WINNT)
/*
* Detach from terminal (much like daemon())
* Nothe that this function calls exit()
*/
# ifdef HAVE_WORKING_FORK
static void
detach_from_terminal(
int pipe[2],
long wait_sync,
const char *logfilename
)
{
pid_t cpid;
int exit_code;
# if !defined(HAVE_SETSID) && !defined (HAVE_SETPGID) && defined(TIOCNOTTY)
int fid;
# endif
# ifdef _AIX
struct sigaction sa;
# endif
cpid = fork();
if (0 != cpid) {
/* parent */
if (-1 == cpid) {
msyslog(LOG_ERR, "fork: %m");
exit_code = EX_OSERR;
} else {
close(pipe[1]);
pipe[1] = -1;
exit_code = wait_child_sync_if(
pipe[0], wait_sync);
DPRINTF(1, ("sync_if: rc=%d\n", exit_code));
if (exit_code <= 0) {
/* probe daemon exit code -- wait for
* child process if we have an unexpected
* EOF on the monitor pipe.
*/
exit_code = wait_child_exit_if(
cpid, (exit_code < 0));
DPRINTF(1, ("exit_if: rc=%d\n", exit_code));
}
}
exit(exit_code);
}
/*
* child/daemon
* close all open files excepting waitsync_fd_to_close.
* msyslog() unreliable until after init_logging().
*/
closelog();
if (syslog_file != NULL) {
fclose(syslog_file);
syslog_file = NULL;
syslogit = TRUE;
}
close_all_except(pipe[1]);
pipe[0] = -1;
INSIST(0 == open("/dev/null", 0) && 1 == dup2(0, 1) \
&& 2 == dup2(0, 2));
init_logging(progname, 0, TRUE);
/* we lost our logfile (if any) daemonizing */
setup_logfile(logfilename);
# ifdef SYS_DOMAINOS
{
uid_$t puid;
status_$t st;
proc2_$who_am_i(&puid);
proc2_$make_server(&puid, &st);
}
# endif /* SYS_DOMAINOS */
# ifdef HAVE_SETSID
if (setsid() == (pid_t)-1)
msyslog(LOG_ERR, "setsid(): %m");
# elif defined(HAVE_SETPGID)
if (setpgid(0, 0) == -1)
msyslog(LOG_ERR, "setpgid(): %m");
# else /* !HAVE_SETSID && !HAVE_SETPGID follows */
# ifdef TIOCNOTTY
fid = open("/dev/tty", 2);
if (fid >= 0) {
ioctl(fid, (u_long)TIOCNOTTY, NULL);
close(fid);
}
# endif /* TIOCNOTTY */
ntp_setpgrp(0, getpid());
# endif /* !HAVE_SETSID && !HAVE_SETPGID */
# ifdef _AIX
/* Don't get killed by low-on-memory signal. */
sa.sa_handler = catch_danger;
sigemptyset(&sa.sa_mask);
sa.sa_flags = SA_RESTART;
sigaction(SIGDANGER, &sa, NULL);
# endif /* _AIX */
return;
}
# endif /* HAVE_WORKING_FORK */
#ifdef HAVE_DROPROOT
/*
* Map user name/number to user ID
*/
static int
map_user(void)
{
char *endp;
if (isdigit((unsigned char)*user)) {
sw_uid = (uid_t)strtoul(user, &endp, 0);
if (*endp != '\0')
goto getuser;
if ((pw = getpwuid(sw_uid)) != NULL) {
free(user);
user = estrdup(pw->pw_name);
sw_gid = pw->pw_gid;
} else {
errno = 0;
msyslog(LOG_ERR, "Cannot find user ID %s", user);
return 0;
}
} else {
getuser:
errno = 0;
if ((pw = getpwnam(user)) != NULL) {
sw_uid = pw->pw_uid;
sw_gid = pw->pw_gid;
} else {
if (errno)
msyslog(LOG_ERR, "getpwnam(%s) failed: %m", user);
else
msyslog(LOG_ERR, "Cannot find user `%s'", user);
return 0;
}
}
return 1;
}
/*
* Map group name/number to group ID
*/
static int
map_group(void)
{
char *endp;
if (isdigit((unsigned char)*group)) {
sw_gid = (gid_t)strtoul(group, &endp, 0);
if (*endp != '\0')
goto getgroup;
} else {
getgroup:
if ((gr = getgrnam(group)) != NULL) {
sw_gid = gr->gr_gid;
} else {
errno = 0;
msyslog(LOG_ERR, "Cannot find group `%s'", group);
return 0;
}
}
return 1;
}
static int
set_group_ids(void)
{
if (user && initgroups(user, sw_gid)) {
msyslog(LOG_ERR, "Cannot initgroups() to user `%s': %m", user);
return 0;
}
if (group && setgid(sw_gid)) {
msyslog(LOG_ERR, "Cannot setgid() to group `%s': %m", group);
return 0;
}
if (group && setegid(sw_gid)) {
msyslog(LOG_ERR, "Cannot setegid() to group `%s': %m", group);
return 0;
}
if (group) {
if (0 != setgroups(1, &sw_gid)) {
msyslog(LOG_ERR, "setgroups(1, %d) failed: %m", sw_gid);
return 0;
}
}
else if (pw)
if (0 != initgroups(pw->pw_name, pw->pw_gid)) {
msyslog(LOG_ERR, "initgroups(<%s>, %d) filed: %m", pw->pw_name, pw->pw_gid);
return 0;
}
return 1;
}
static int
set_user_ids(void)
{
if (user && setuid(sw_uid)) {
msyslog(LOG_ERR, "Cannot setuid() to user `%s': %m", user);
return 0;
}
if (user && seteuid(sw_uid)) {
msyslog(LOG_ERR, "Cannot seteuid() to user `%s': %m", user);
return 0;
}
return 1;
}
/*
* Change (effective) user and group IDs, also initialize the supplementary group access list
*/
int set_user_group_ids(void);
int
set_user_group_ids(void)
{
/* If the the user was already mapped, no need to map it again */
if ((NULL != user) && (0 == sw_uid)) {
if (0 == map_user())
exit (-1);
}
/* same applies for the group */
if ((NULL != group) && (0 == sw_gid)) {
if (0 == map_group())
exit (-1);
}
if (getegid() != sw_gid && 0 == set_group_ids())
return 0;
if (geteuid() != sw_uid && 0 == set_user_ids())
return 0;
return 1;
}
#endif /* HAVE_DROPROOT */
#endif /* !SIM */
/*
* Main program. Initialize us, disconnect us from the tty if necessary,
* and loop waiting for I/O and/or timer expiries.
*/
#ifndef SIM
int
ntpdmain(
int argc,
char *argv[]
)
{
l_fp now;
struct recvbuf *rbuf;
const char * logfilename;
# ifdef HAVE_UMASK
mode_t uv;
# endif
# if defined(HAVE_GETUID) && !defined(MPE) /* MPE lacks the concept of root */
uid_t uid;
# endif
# if defined(HAVE_WORKING_FORK)
long wait_sync = 0;
# endif /* HAVE_WORKING_FORK*/
# ifdef SCO5_CLOCK
int fd;
int zero;
# endif
# ifdef NEED_PTHREAD_WARMUP
my_pthread_warmup();
# endif
# ifdef HAVE_UMASK
uv = umask(0);
if (uv)
umask(uv);
else
umask(022);
# endif
saved_argc = argc;
saved_argv = argv;
progname = argv[0];
initializing = TRUE; /* mark that we are initializing */
parse_cmdline_opts(&argc, &argv);
# ifdef DEBUG
debug = OPT_VALUE_SET_DEBUG_LEVEL;
# ifdef HAVE_SETLINEBUF
setlinebuf(stdout);
# endif
# endif
if (HAVE_OPT(NOFORK) || HAVE_OPT(QUIT)
# ifdef DEBUG
|| debug
# endif
|| HAVE_OPT(SAVECONFIGQUIT))
nofork = TRUE;
init_logging(progname, NLOG_SYNCMASK, TRUE);
/* honor -l/--logfile option to log to a file */
if (HAVE_OPT(LOGFILE)) {
logfilename = OPT_ARG(LOGFILE);
syslogit = FALSE;
change_logfile(logfilename, FALSE);
} else {
logfilename = NULL;
if (nofork)
msyslog_term = TRUE;
if (HAVE_OPT(SAVECONFIGQUIT))
syslogit = FALSE;
}
msyslog(LOG_NOTICE, "%s: Starting", Version);
{
int i;
char buf[1024]; /* Secret knowledge of msyslog buf length */
char *cp = buf;
/* Note that every arg has an initial space character */
snprintf(cp, sizeof(buf), "Command line:");
cp += strlen(cp);
for (i = 0; i < saved_argc ; ++i) {
snprintf(cp, sizeof(buf) - (cp - buf),
" %s", saved_argv[i]);
cp += strlen(cp);
}
msyslog(LOG_NOTICE, "%s", buf);
}
msyslog(LOG_NOTICE, "----------------------------------------------------");
msyslog(LOG_NOTICE, "ntp-4 is maintained by Network Time Foundation,");
msyslog(LOG_NOTICE, "Inc. (NTF), a non-profit 501(c)(3) public-benefit");
msyslog(LOG_NOTICE, "corporation. Support and training for ntp-4 are");
msyslog(LOG_NOTICE, "available at https://www.nwtime.org/support");
msyslog(LOG_NOTICE, "----------------------------------------------------");
#ifdef DEBUG
msyslog(LOG_NOTICE, "DEBUG behavior is enabled - a violation of any");
msyslog(LOG_NOTICE, "diagnostic assertion will cause %s to abort", progname);
#endif
/*
* Install trap handlers to log errors and assertion failures.
* Default handlers print to stderr which doesn't work if detached.
*/
isc_assertion_setcallback(assertion_failed);
isc_error_setfatal(library_fatal_error);
isc_error_setunexpected(library_unexpected_error);
/* MPE lacks the concept of root */
# if defined(HAVE_GETUID) && !defined(MPE)
uid = getuid();
if (uid && !HAVE_OPT( SAVECONFIGQUIT )
# if defined(HAVE_TRUSTEDBSD_MAC)
/* We can run as non-root if the mac_ntpd policy is enabled. */
&& mac_is_present("ntpd") != 1
# endif
) {
msyslog_term = TRUE;
msyslog(LOG_ERR,
"must be run as root, not uid %ld", (long)uid);
exit(1);
}
# endif
/*
* Enable the Multi-Media Timer for Windows?
*/
# ifdef SYS_WINNT
if (HAVE_OPT( MODIFYMMTIMER ))
set_mm_timer(MM_TIMER_HIRES);
# endif
#ifdef HAVE_DNSREGISTRATION
/*
* Enable mDNS registrations?
*/
if (HAVE_OPT( MDNS )) {
mdnsreg = TRUE;
}
#endif /* HAVE_DNSREGISTRATION */
if (HAVE_OPT( NOVIRTUALIPS ))
listen_to_virtual_ips = 0;
/*
* --interface, listen on specified interfaces
*/
if (HAVE_OPT( INTERFACE )) {
int ifacect = STACKCT_OPT( INTERFACE );
const char** ifaces = STACKLST_OPT( INTERFACE );
sockaddr_u addr;
while (ifacect-- > 0) {
add_nic_rule(
is_ip_address(*ifaces, AF_UNSPEC, &addr)
? MATCH_IFADDR
: MATCH_IFNAME,
*ifaces, -1, ACTION_LISTEN);
ifaces++;
}
}
if (HAVE_OPT( NICE ))
priority_done = 0;
# ifdef HAVE_SCHED_SETSCHEDULER
if (HAVE_OPT( PRIORITY )) {
config_priority = OPT_VALUE_PRIORITY;
config_priority_override = 1;
priority_done = 0;
}
# endif
# ifdef HAVE_WORKING_FORK
/* make sure the FDs are initialised
*
* note: if WAIT_SYNC is requested, we *have* to fork. This will
* overide any '-n' (nofork) or '-d' (debug) option presented on
* the command line!
*/
if (HAVE_OPT(WAIT_SYNC)) {
wait_sync = OPT_VALUE_WAIT_SYNC;
if (wait_sync <= 0)
wait_sync = 0;
else
nofork = FALSE;
}
if ( !nofork && pipe(daemon_pipe)) {
msyslog(LOG_ERR,
"Pipe creation failed for --wait-sync/daemon: %m");
exit(EX_OSERR);
}
# endif /* HAVE_WORKING_FORK */
init_lib();
# ifdef SYS_WINNT
/*
* Make sure the service is initialized before we do anything else
*/
ntservice_init();
/*
* Start interpolation thread, must occur before first
* get_systime()
*/
init_winnt_time();
# endif
/*
* Initialize random generator and public key pair
*/
get_systime(&now);
ntp_srandom((int)(now.l_i * now.l_uf));
/*
* Detach us from the terminal. May need an #ifndef GIZMO.
*/
# ifdef HAVE_WORKING_FORK
if (!nofork) {
detach_from_terminal(daemon_pipe, wait_sync, logfilename);
}
# endif /* HAVE_WORKING_FORK */
# ifdef SCO5_CLOCK
/*
* SCO OpenServer's system clock offers much more precise timekeeping
* on the base CPU than the other CPUs (for multiprocessor systems),
* so we must lock to the base CPU.
*/
fd = open("/dev/at1", O_RDONLY);
if (fd >= 0) {
zero = 0;
if (ioctl(fd, ACPU_LOCK, &zero) < 0)
msyslog(LOG_ERR, "cannot lock to base CPU: %m");
close(fd);
}
# endif
/* Setup stack size in preparation for locking pages in memory. */
# if defined(HAVE_MLOCKALL)
# ifdef HAVE_SETRLIMIT
ntp_rlimit(RLIMIT_STACK, DFLT_RLIMIT_STACK * 4096, 4096, "4k");
# if defined(RLIMIT_MEMLOCK) && defined(DFLT_RLIMIT_MEMLOCK) && DFLT_RLIMIT_MEMLOCK != -1
/*
* The default RLIMIT_MEMLOCK is very low on Linux systems.
* Unless we increase this limit malloc calls are likely to
* fail if we drop root privilege. To be useful the value
* has to be larger than the largest ntpd resident set size.
*/
ntp_rlimit(RLIMIT_MEMLOCK, DFLT_RLIMIT_MEMLOCK * 1024 * 1024, 1024 * 1024, "MB");
# endif /* RLIMIT_MEMLOCK */
# endif /* HAVE_SETRLIMIT */
# else /* !HAVE_MLOCKALL follows */
# ifdef HAVE_PLOCK
# ifdef PROCLOCK
# ifdef _AIX
/*
* set the stack limit for AIX for plock().
* see get_aix_stack() for more info.
*/
if (ulimit(SET_STACKLIM, (get_aix_stack() - 8 * 4096)) < 0)
msyslog(LOG_ERR,
"Cannot adjust stack limit for plock: %m");
# endif /* _AIX */
# endif /* PROCLOCK */
# endif /* HAVE_PLOCK */
# endif /* !HAVE_MLOCKALL */
/*
* Set up signals we pay attention to locally.
*/
# ifdef SIGDIE1
signal_no_reset(SIGDIE1, finish);
signal_no_reset(SIGDIE2, finish);
signal_no_reset(SIGDIE3, finish);
signal_no_reset(SIGDIE4, finish);
# endif
# ifdef SIGBUS
signal_no_reset(SIGBUS, finish);
# endif
# if !defined(SYS_WINNT) && !defined(VMS)
# ifdef DEBUG
(void) signal_no_reset(MOREDEBUGSIG, moredebug);
(void) signal_no_reset(LESSDEBUGSIG, lessdebug);
# else
(void) signal_no_reset(MOREDEBUGSIG, no_debug);
(void) signal_no_reset(LESSDEBUGSIG, no_debug);
# endif /* DEBUG */
# endif /* !SYS_WINNT && !VMS */
/*
* Set up signals we should never pay attention to.
*/
# ifdef SIGPIPE
signal_no_reset(SIGPIPE, SIG_IGN);
# endif
/*
* Call the init_ routines to initialize the data structures.
*
* Exactly what command-line options are we expecting here?
*/
INIT_SSL();
init_auth();
init_util();
init_restrict();
init_mon();
init_timer();
init_request();
init_control();
init_peer();
# ifdef REFCLOCK
init_refclock();
# endif
set_process_priority();
init_proto(); /* Call at high priority */
init_io();
init_loopfilter();
mon_start(MON_ON); /* monitor on by default now */
/* turn off in config if unwanted */
/*
* Get the configuration. This is done in a separate module
* since this will definitely be different for the gizmo board.
*/
getconfig(argc, argv);
if (-1 == cur_memlock) {
# if defined(HAVE_MLOCKALL)
/*
* lock the process into memory
*/
if ( !HAVE_OPT(SAVECONFIGQUIT)
# ifdef RLIMIT_MEMLOCK
&& -1 != DFLT_RLIMIT_MEMLOCK
# endif
&& 0 != mlockall(MCL_CURRENT|MCL_FUTURE))
msyslog(LOG_ERR, "mlockall(): %m");
# else /* !HAVE_MLOCKALL follows */
# ifdef HAVE_PLOCK
# ifdef PROCLOCK
/*
* lock the process into memory
*/
if (!HAVE_OPT(SAVECONFIGQUIT) && 0 != plock(PROCLOCK))
msyslog(LOG_ERR, "plock(PROCLOCK): %m");
# else /* !PROCLOCK follows */
# ifdef TXTLOCK
/*
* Lock text into ram
*/
if (!HAVE_OPT(SAVECONFIGQUIT) && 0 != plock(TXTLOCK))
msyslog(LOG_ERR, "plock(TXTLOCK) error: %m");
# else /* !TXTLOCK follows */
msyslog(LOG_ERR, "plock() - don't know what to lock!");
# endif /* !TXTLOCK */
# endif /* !PROCLOCK */
# endif /* HAVE_PLOCK */
# endif /* !HAVE_MLOCKALL */
}
loop_config(LOOP_DRIFTINIT, 0);
report_event(EVNT_SYSRESTART, NULL, NULL);
initializing = FALSE;
# ifdef HAVE_LINUX_CAPABILITIES
{
/* Check that setting capabilities actually works; we might be
* run on a kernel with disabled capabilities. We must not
* drop privileges in this case.
*/
cap_t caps;
caps = cap_from_text("cap_sys_time,cap_setuid,cap_setgid,cap_sys_chroot,cap_net_bind_service=pe");
if ( ! caps) {
msyslog( LOG_ERR, "cap_from_text() failed: %m" );
exit(-1);
}
have_caps = (cap_set_proc(caps) == 0);
cap_free(caps); /* caps not NULL here! */
}
# endif /* HAVE_LINUX_CAPABILITIES */
# ifdef HAVE_DROPROOT
# ifdef HAVE_LINUX_CAPABILITIES
if (droproot && have_caps) {
# else
if (droproot) {
# endif /*HAVE_LINUX_CAPABILITIES*/
# ifdef NEED_EARLY_FORK
fork_nonchroot_worker();
# endif
/* Drop super-user privileges and chroot now if the OS supports this */
# ifdef HAVE_LINUX_CAPABILITIES
/* set flag: keep privileges accross setuid() call (we only really need cap_sys_time): */
if (prctl( PR_SET_KEEPCAPS, 1L, 0L, 0L, 0L ) == -1) {
msyslog( LOG_ERR, "prctl( PR_SET_KEEPCAPS, 1L ) failed: %m" );
exit(-1);
}
# elif HAVE_SOLARIS_PRIVS
/* Nothing to do here */
# else
/* we need a user to switch to */
if (user == NULL) {
msyslog(LOG_ERR, "Need user name to drop root privileges (see -u flag!)" );
exit(-1);
}
# endif /* HAVE_LINUX_CAPABILITIES || HAVE_SOLARIS_PRIVS */
if (user != NULL) {
if (0 == map_user())
exit (-1);
}
if (group != NULL) {
if (0 == map_group())
exit (-1);
}
if (chrootdir ) {
/* make sure cwd is inside the jail: */
if (chdir(chrootdir)) {
msyslog(LOG_ERR, "Cannot chdir() to `%s': %m", chrootdir);
exit (-1);
}
if (chroot(chrootdir)) {
msyslog(LOG_ERR, "Cannot chroot() to `%s': %m", chrootdir);
exit (-1);
}
if (chdir("/")) {
msyslog(LOG_ERR, "Cannot chdir() to`root after chroot(): %m");
exit (-1);
}
}
# ifdef HAVE_SOLARIS_PRIVS
if ((lowprivs = priv_str_to_set(LOWPRIVS, ",", NULL)) == NULL) {
msyslog(LOG_ERR, "priv_str_to_set() failed:%m");
exit(-1);
}
if ((highprivs = priv_allocset()) == NULL) {
msyslog(LOG_ERR, "priv_allocset() failed:%m");
exit(-1);
}
(void) getppriv(PRIV_PERMITTED, highprivs);
(void) priv_intersect(highprivs, lowprivs);
if (setppriv(PRIV_SET, PRIV_PERMITTED, lowprivs) == -1) {
msyslog(LOG_ERR, "setppriv() failed:%m");
exit(-1);
}
# endif /* HAVE_SOLARIS_PRIVS */
if (0 == set_user_group_ids())
exit(-1);
# if defined(HAVE_TRUSTEDBSD_MAC)
/*
* To manipulate system time and (re-)bind to NTP_PORT as needed
* following interface changes, we must either run as uid 0 or
* the mac_ntpd policy module must be enabled.
*/
if (sw_uid != 0 && mac_is_present("ntpd") != 1) {
msyslog(LOG_ERR, "Need MAC 'ntpd' policy enabled to drop root privileges");
exit (-1);
}
# elif !defined(HAVE_LINUX_CAPABILITIES) && !defined(HAVE_SOLARIS_PRIVS)
/*
* for now assume that the privilege to bind to privileged ports
* is associated with running with uid 0 - should be refined on
* ports that allow binding to NTP_PORT with uid != 0
*/
disable_dynamic_updates |= (sw_uid != 0); /* also notifies routing message listener */
# endif /* !HAVE_LINUX_CAPABILITIES && !HAVE_SOLARIS_PRIVS */
if (disable_dynamic_updates && interface_interval) {
interface_interval = 0;
msyslog(LOG_INFO, "running as non-root disables dynamic interface tracking");
}
# ifdef HAVE_LINUX_CAPABILITIES
{
/*
* We may be running under non-root uid now, but we still hold full root privileges!
* We drop all of them, except for the crucial one or two: cap_sys_time and
* cap_net_bind_service if doing dynamic interface tracking.
*/
cap_t caps;
char *captext;
captext = (0 != interface_interval)
? "cap_sys_time,cap_net_bind_service=pe"
: "cap_sys_time=pe";
caps = cap_from_text(captext);
if (!caps) {
msyslog(LOG_ERR,
"cap_from_text(%s) failed: %m",
captext);
exit(-1);
}
if (-1 == cap_set_proc(caps)) {
msyslog(LOG_ERR,
"cap_set_proc() failed to drop root privs: %m");
exit(-1);
}
cap_free(caps);
}
# endif /* HAVE_LINUX_CAPABILITIES */
# ifdef HAVE_SOLARIS_PRIVS
if (priv_delset(lowprivs, "proc_setid") == -1) {
msyslog(LOG_ERR, "priv_delset() failed:%m");
exit(-1);
}
if (setppriv(PRIV_SET, PRIV_PERMITTED, lowprivs) == -1) {
msyslog(LOG_ERR, "setppriv() failed:%m");
exit(-1);
}
priv_freeset(lowprivs);
priv_freeset(highprivs);
# endif /* HAVE_SOLARIS_PRIVS */
root_dropped = TRUE;
fork_deferred_worker();
} /* if (droproot) */
# endif /* HAVE_DROPROOT */
/* libssecomp sandboxing */
#if defined (LIBSECCOMP) && (KERN_SECCOMP)
scmp_filter_ctx ctx;
if ((ctx = seccomp_init(SCMP_ACT_KILL)) < 0)
msyslog(LOG_ERR, "%s: seccomp_init(SCMP_ACT_KILL) failed: %m", __func__);
else {
msyslog(LOG_DEBUG, "%s: seccomp_init(SCMP_ACT_KILL) succeeded", __func__);
}
#ifdef __x86_64__
int scmp_sc[] = {
SCMP_SYS(adjtimex),
SCMP_SYS(bind),
SCMP_SYS(brk),
SCMP_SYS(chdir),
SCMP_SYS(clock_gettime),
SCMP_SYS(clock_settime),
SCMP_SYS(close),
SCMP_SYS(connect),
SCMP_SYS(exit_group),
SCMP_SYS(fstat),
SCMP_SYS(fsync),
SCMP_SYS(futex),
SCMP_SYS(getitimer),
SCMP_SYS(getsockname),
SCMP_SYS(ioctl),
SCMP_SYS(lseek),
SCMP_SYS(madvise),
SCMP_SYS(mmap),
SCMP_SYS(munmap),
SCMP_SYS(open),
SCMP_SYS(poll),
SCMP_SYS(read),
SCMP_SYS(recvmsg),
SCMP_SYS(rename),
SCMP_SYS(rt_sigaction),
SCMP_SYS(rt_sigprocmask),
SCMP_SYS(rt_sigreturn),
SCMP_SYS(select),
SCMP_SYS(sendto),
SCMP_SYS(setitimer),
SCMP_SYS(setsid),
SCMP_SYS(socket),
SCMP_SYS(stat),
SCMP_SYS(time),
SCMP_SYS(write),
};
#endif
#ifdef __i386__
int scmp_sc[] = {
SCMP_SYS(_newselect),
SCMP_SYS(adjtimex),
SCMP_SYS(brk),
SCMP_SYS(chdir),
SCMP_SYS(clock_gettime),
SCMP_SYS(clock_settime),
SCMP_SYS(close),
SCMP_SYS(exit_group),
SCMP_SYS(fsync),
SCMP_SYS(futex),
SCMP_SYS(getitimer),
SCMP_SYS(madvise),
SCMP_SYS(mmap),
SCMP_SYS(mmap2),
SCMP_SYS(munmap),
SCMP_SYS(open),
SCMP_SYS(poll),
SCMP_SYS(read),
SCMP_SYS(rename),
SCMP_SYS(rt_sigaction),
SCMP_SYS(rt_sigprocmask),
SCMP_SYS(select),
SCMP_SYS(setitimer),
SCMP_SYS(setsid),
SCMP_SYS(sigprocmask),
SCMP_SYS(sigreturn),
SCMP_SYS(socketcall),
SCMP_SYS(stat64),
SCMP_SYS(time),
SCMP_SYS(write),
};
#endif
{
int i;
for (i = 0; i < COUNTOF(scmp_sc); i++) {
if (seccomp_rule_add(ctx,
SCMP_ACT_ALLOW, scmp_sc[i], 0) < 0) {
msyslog(LOG_ERR,
"%s: seccomp_rule_add() failed: %m",
__func__);
}
}
}
if (seccomp_load(ctx) < 0)
msyslog(LOG_ERR, "%s: seccomp_load() failed: %m",
__func__);
else {
msyslog(LOG_DEBUG, "%s: seccomp_load() succeeded", __func__);
}
#endif /* LIBSECCOMP and KERN_SECCOMP */
#if defined(SYS_WINNT)
ntservice_isup();
#elif defined(HAVE_WORKING_FORK)
- if ((daemon_pipe[1] != -1) && (2 != write(daemon_pipe[1], "R\n", 2))) {
- msyslog(LOG_ERR, "ntpd: daemon failed to notify parent!");
+ if (daemon_pipe[1] != -1) {
+ if (2 != write(daemon_pipe[1], "R\n", 2)) {
+ msyslog(LOG_ERR, "daemon failed to notify parent ntpd after init");
+ }
close(daemon_pipe[1]);
daemon_pipe[1] = -1;
}
#endif /* HAVE_WORKING_FORK */
# ifndef HAVE_IO_COMPLETION_PORT
BLOCK_IO_AND_ALARM();
was_alarmed = FALSE;
# endif
for (;;) {
#if !defined(SIM) && defined(SIGDIE1)
if (signalled)
finish_safe(signo);
#endif
# ifdef HAVE_IO_COMPLETION_PORT
GetReceivedBuffers();
# else /* normal I/O */
if (alarm_flag) { /* alarmed? */
was_alarmed = TRUE;
alarm_flag = FALSE;
}
/* collect async name/addr results */
if (!was_alarmed)
harvest_blocking_responses();
if (!was_alarmed && !has_full_recv_buffer()) {
/*
* Nothing to do. Wait for something.
*/
io_handler();
}
if (alarm_flag) { /* alarmed? */
was_alarmed = TRUE;
alarm_flag = FALSE;
}
if (was_alarmed) {
UNBLOCK_IO_AND_ALARM();
/*
* Out here, signals are unblocked. Call timer routine
* to process expiry.
*/
timer();
was_alarmed = FALSE;
BLOCK_IO_AND_ALARM();
}
# endif /* !HAVE_IO_COMPLETION_PORT */
# ifdef DEBUG_TIMING
{
l_fp pts;
l_fp tsa, tsb;
int bufcount = 0;
get_systime(&pts);
tsa = pts;
# endif
rbuf = get_full_recv_buffer();
while (rbuf != NULL) {
if (alarm_flag) {
was_alarmed = TRUE;
alarm_flag = FALSE;
}
UNBLOCK_IO_AND_ALARM();
if (was_alarmed) {
/* avoid timer starvation during lengthy I/O handling */
timer();
was_alarmed = FALSE;
}
/*
* Call the data procedure to handle each received
* packet.
*/
if (rbuf->receiver != NULL) {
# ifdef DEBUG_TIMING
l_fp dts = pts;
L_SUB(&dts, &rbuf->recv_time);
DPRINTF(2, ("processing timestamp delta %s (with prec. fuzz)\n", lfptoa(&dts, 9)));
collect_timing(rbuf, "buffer processing delay", 1, &dts);
bufcount++;
# endif
(*rbuf->receiver)(rbuf);
} else {
msyslog(LOG_ERR, "fatal: receive buffer callback NULL");
abort();
}
BLOCK_IO_AND_ALARM();
freerecvbuf(rbuf);
rbuf = get_full_recv_buffer();
}
# ifdef DEBUG_TIMING
get_systime(&tsb);
L_SUB(&tsb, &tsa);
if (bufcount) {
collect_timing(NULL, "processing", bufcount, &tsb);
DPRINTF(2, ("processing time for %d buffers %s\n", bufcount, lfptoa(&tsb, 9)));
}
}
# endif
/*
* Go around again
*/
# ifdef HAVE_DNSREGISTRATION
if (mdnsreg && (current_time - mdnsreg ) > 60 && mdnstries && sys_leap != LEAP_NOTINSYNC) {
mdnsreg = current_time;
msyslog(LOG_INFO, "Attempting to register mDNS");
if ( DNSServiceRegister (&mdns, 0, 0, NULL, "_ntp._udp", NULL, NULL,
htons(NTP_PORT), 0, NULL, NULL, NULL) != kDNSServiceErr_NoError ) {
if (!--mdnstries) {
msyslog(LOG_ERR, "Unable to register mDNS, giving up.");
} else {
msyslog(LOG_INFO, "Unable to register mDNS, will try later.");
}
} else {
msyslog(LOG_INFO, "mDNS service registered.");
mdnsreg = FALSE;
}
}
# endif /* HAVE_DNSREGISTRATION */
}
UNBLOCK_IO_AND_ALARM();
return 1;
}
#endif /* !SIM */
#if !defined(SIM) && defined(SIGDIE1)
/*
* finish - exit gracefully
*/
static void
finish_safe(
int sig
)
{
const char *sig_desc;
sig_desc = NULL;
#ifdef HAVE_STRSIGNAL
sig_desc = strsignal(sig);
#endif
if (sig_desc == NULL)
sig_desc = "";
msyslog(LOG_NOTICE, "%s exiting on signal %d (%s)", progname,
sig, sig_desc);
/* See Bug 2513 and Bug 2522 re the unlink of PIDFILE */
# ifdef HAVE_DNSREGISTRATION
if (mdns != NULL)
DNSServiceRefDeallocate(mdns);
# endif
peer_cleanup();
exit(0);
}
static RETSIGTYPE
finish(
int sig
)
{
signalled = 1;
signo = sig;
}
#endif /* !SIM && SIGDIE1 */
#ifndef SIM
/*
* wait_child_sync_if - implements parent side of -w/--wait-sync
*/
# ifdef HAVE_WORKING_FORK
static int
wait_child_sync_if(
int pipe_read_fd,
unsigned long wait_sync
)
{
int rc;
char ch;
time_t wait_end_time;
time_t cur_time;
time_t wait_rem;
fd_set readset;
struct timeval wtimeout;
/* we wait a bit for the child in *any* case, because on failure
* of the child we have to get and inspect the exit code!
*/
wait_end_time = time(NULL);
if (wait_sync)
wait_end_time += wait_sync;
else
wait_end_time += 30;
do {
cur_time = time(NULL);
wait_rem = (wait_end_time > cur_time)
? (wait_end_time - cur_time)
: 0;
wtimeout.tv_sec = wait_rem;
wtimeout.tv_usec = 0;
FD_ZERO(&readset);
FD_SET(pipe_read_fd, &readset);
rc = select(pipe_read_fd + 1, &readset, NULL, NULL,
&wtimeout);
if (-1 == rc) {
if (EINTR == errno)
continue;
msyslog(LOG_ERR,
"daemon startup: select failed: %m");
return EX_IOERR;
}
if (0 == rc) {
/*
* select() indicated a timeout, but in case
* its timeouts are affected by a step of the
* system clock, select() again with a zero
* timeout to confirm.
*/
FD_ZERO(&readset);
FD_SET(pipe_read_fd, &readset);
wtimeout.tv_sec = 0;
wtimeout.tv_usec = 0;
rc = select(pipe_read_fd + 1, &readset, NULL,
NULL, &wtimeout);
if (0 == rc) /* select() timeout */
break;
}
rc = read(pipe_read_fd, &ch, 1);
if (rc == 0) {
DPRINTF(2, ("daemon control: got EOF\n"));
return -1; /* unexpected EOF, check daemon */
} else if (rc == 1) {
DPRINTF(2, ("daemon control: got '%c'\n",
(ch >= ' ' ? ch : '.')));
if (ch == 'R' && !wait_sync)
return 0;
if (ch == 'S' && wait_sync)
return 0;
} else {
DPRINTF(2, ("daemon control: read 1 char failed: %s\n",
strerror(errno)));
return EX_IOERR;
}
} while (wait_rem > 0);
if (wait_sync) {
fprintf(stderr, "%s: -w/--wait-sync %ld timed out.\n",
progname, wait_sync);
return EX_PROTOCOL;
} else {
fprintf(stderr, "%s: daemon startup monitoring timed out.\n",
progname);
return 0;
}
}
static int
wait_child_exit_if(
pid_t cpid,
int blocking
)
{
# ifdef HAVE_WAITPID
int rc = 0;
int wstatus;
if (cpid == waitpid(cpid, &wstatus, (blocking ? 0 : WNOHANG))) {
DPRINTF(1, ("child (pid=%d) dead now\n", cpid));
if (WIFEXITED(wstatus)) {
rc = WEXITSTATUS(wstatus);
msyslog(LOG_ERR, "daemon child exited with code %d",
rc);
} else if (WIFSIGNALED(wstatus)) {
rc = EX_SOFTWARE;
msyslog(LOG_ERR, "daemon child died with signal %d",
WTERMSIG(wstatus));
} else {
rc = EX_SOFTWARE;
msyslog(LOG_ERR, "daemon child died with unknown cause");
}
} else {
DPRINTF(1, ("child (pid=%d) still alive\n", cpid));
}
return rc;
# else
UNUSED_ARG(cpid);
return 0;
# endif
}
# endif /* HAVE_WORKING_FORK */
/*
* assertion_failed - Redirect assertion failures to msyslog().
*/
static void
assertion_failed(
const char *file,
int line,
isc_assertiontype_t type,
const char *cond
)
{
isc_assertion_setcallback(NULL); /* Avoid recursion */
msyslog(LOG_ERR, "%s:%d: %s(%s) failed",
file, line, isc_assertion_typetotext(type), cond);
msyslog(LOG_ERR, "exiting (due to assertion failure)");
#if defined(DEBUG) && defined(SYS_WINNT)
if (debug)
DebugBreak();
#endif
abort();
}
/*
* library_fatal_error - Handle fatal errors from our libraries.
*/
static void
library_fatal_error(
const char *file,
int line,
const char *format,
va_list args
)
{
char errbuf[256];
isc_error_setfatal(NULL); /* Avoid recursion */
msyslog(LOG_ERR, "%s:%d: fatal error:", file, line);
vsnprintf(errbuf, sizeof(errbuf), format, args);
msyslog(LOG_ERR, "%s", errbuf);
msyslog(LOG_ERR, "exiting (due to fatal error in library)");
#if defined(DEBUG) && defined(SYS_WINNT)
if (debug)
DebugBreak();
#endif
abort();
}
/*
* library_unexpected_error - Handle non fatal errors from our libraries.
*/
# define MAX_UNEXPECTED_ERRORS 100
int unexpected_error_cnt = 0;
static void
library_unexpected_error(
const char *file,
int line,
const char *format,
va_list args
)
{
char errbuf[256];
if (unexpected_error_cnt >= MAX_UNEXPECTED_ERRORS)
return; /* avoid clutter in log */
msyslog(LOG_ERR, "%s:%d: unexpected error:", file, line);
vsnprintf(errbuf, sizeof(errbuf), format, args);
msyslog(LOG_ERR, "%s", errbuf);
if (++unexpected_error_cnt == MAX_UNEXPECTED_ERRORS)
msyslog(LOG_ERR, "Too many errors. Shutting up.");
}
#endif /* !SIM */
#if !defined(SIM) && !defined(SYS_WINNT)
# ifdef DEBUG
/*
* moredebug - increase debugging verbosity
*/
static RETSIGTYPE
moredebug(
int sig
)
{
int saved_errno = errno;
if (debug < 255)
{
debug++;
msyslog(LOG_DEBUG, "debug raised to %d", debug);
}
errno = saved_errno;
}
/*
* lessdebug - decrease debugging verbosity
*/
static RETSIGTYPE
lessdebug(
int sig
)
{
int saved_errno = errno;
if (debug > 0)
{
debug--;
msyslog(LOG_DEBUG, "debug lowered to %d", debug);
}
errno = saved_errno;
}
# else /* !DEBUG follows */
/*
* no_debug - We don't do the debug here.
*/
static RETSIGTYPE
no_debug(
int sig
)
{
int saved_errno = errno;
msyslog(LOG_DEBUG, "ntpd not compiled for debugging (signal %d)", sig);
errno = saved_errno;
}
# endif /* !DEBUG */
#endif /* !SIM && !SYS_WINNT */
diff --git a/contrib/ntp/ntpd/ntpd.html b/contrib/ntp/ntpd/ntpd.html
index 9eff3bc81569..3947f57f1a9b 100644
--- a/contrib/ntp/ntpd/ntpd.html
+++ b/contrib/ntp/ntpd/ntpd.html
@@ -1,1008 +1,1008 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ntpd: Network Time Protocol (NTP) Daemon User&rsquo;s Manual</title>
<meta name="description" content="ntpd: Network Time Protocol (NTP) Daemon User&rsquo;s Manual">
<meta name="keywords" content="ntpd: Network Time Protocol (NTP) Daemon User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">ntpd: Network Time Protocol (NTP) Daemon User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntpd-Description" accesskey="n" rel="next">ntpd Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="ntpd_003a-Network-Time-Protocol-_0028NTP_0029-Daemon-User-Manual"></span><h1 class="top">ntpd: Network Time Protocol (NTP) Daemon User Manual</h1>
<p>The <code>ntpd</code> program is an operating system daemon that synchronizes the
system clock to remote NTP time servers or local reference clocks.
It is a complete implementation of NTP version 4 defined by RFC-5905, but
also retains compatible with version 3 defined by RFC-1305 and versions
1 and 2, defined by RFC-1059 and RFC-1119, respectively.
The program can operate in any of several modes, including client/server,
symmetric and broadcast modes, and with both symmetric-key and public-key
cryptography.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntpd</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntpd</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Description" accesskey="1">ntpd Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Invocation" accesskey="2">ntpd Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntpd
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="3">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
</table>
<hr>
<span id="ntpd-Description"></span><div class="header">
<p>
Next: <a href="#ntpd-Invocation" accesskey="n" rel="next">ntpd Invocation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>The <code>ntpd</code> program ordinarily requires
a configuration file described at &lsquo;ntp.conf&rsquo;.
This configuration file contains configuration commands described on
the pages listed above.
However a client can discover remote servers and configure them
automatically.
This makes it possible to deploy a fleet of workstations without
specifying configuration details specific to the local environment.
</p>
<p>The <code>ntpd</code> program normally operates continuously while adjusting the
system time and frequency, but in some cases this might not be
practical.
With the <code>-q</code> option <code>ntpd</code> operates as in continuous mode, but
exits just after setting the clock for the first time.
Most applications will probably want to specify the <code>iburst</code>
option with the <code>server</code> command.
With this option an initial volley of messages is exchanged to
groom the data and set the clock in about ten seconds&rsquo; time.
If nothing is heard after a few minutes&rsquo; time,
the daemon times out and exits without setting the clock.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Invocation" accesskey="1">Invoking ntpd</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="2">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntpd-Invocation"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#ntpd-Description" accesskey="p" rel="prev">ntpd Description</a>, Up: <a href="#ntpd-Description" accesskey="u" rel="up">ntpd Description</a> &nbsp; </p>
</div>
<span id="Invoking-ntpd"></span><h3 class="section">1.1 Invoking ntpd</h3>
<span id="index-ntpd"></span>
<span id="index-NTP-daemon-program"></span>
<p>The
<code>ntpd</code>
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC-5905,
but also retains compatibility with
version 3, as defined by RFC-1305, and versions 1
and 2, as defined by RFC-1059 and RFC-1119, respectively.
</p>
<p>The
<code>ntpd</code>
utility does most computations in 64-bit floating point
arithmetic and does relatively clumsy 64-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
</p>
<p>Ordinarily,
<code>ntpd</code>
reads the
<code>ntp.conf(5)</code>
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
</p>
<p>If NetInfo support is built into
<code>ntpd</code>
then
<code>ntpd</code>
will attempt to read its configuration from the
NetInfo if the default
<code>ntp.conf(5)</code>
file cannot be read and no file is
specified by the
<code>-c</code>
option.
</p>
<p>Various internal
<code>ntpd</code>
variables can be displayed and
configuration options altered while the
<code>ntpd</code>
is running
using the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
utility programs.
</p>
<p>When
<code>ntpd</code>
starts it looks at the value of
<code>umask(2)</code>,
and if zero
<code>ntpd</code>
will set the
<code>umask(2)</code>
to 022.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntpd</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpd-usage" accesskey="1">ntpd usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntpd help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-ipv4" accesskey="2">ntpd ipv4</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv4 option (-4)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-ipv6" accesskey="3">ntpd ipv6</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv6 option (-6)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-authreq" accesskey="4">ntpd authreq</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">authreq option (-a)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-authnoreq" accesskey="5">ntpd authnoreq</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">authnoreq option (-A)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-configfile" accesskey="6">ntpd configfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">configfile option (-c)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-driftfile" accesskey="7">ntpd driftfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">driftfile option (-f)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-panicgate" accesskey="8">ntpd panicgate</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">panicgate option (-g)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-force_002dstep_002donce" accesskey="9">ntpd force-step-once</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">force-step-once option (-G)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-jaildir">ntpd jaildir</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">jaildir option (-i)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-interface">ntpd interface</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">interface option (-I)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-keyfile">ntpd keyfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">keyfile option (-k)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-logfile">ntpd logfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">logfile option (-l)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-novirtualips">ntpd novirtualips</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">novirtualips option (-L)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-modifymmtimer">ntpd modifymmtimer</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">modifymmtimer option (-M)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-nice">ntpd nice</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">nice option (-N)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-pidfile">ntpd pidfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">pidfile option (-p)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-priority">ntpd priority</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">priority option (-P)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-quit">ntpd quit</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">quit option (-q)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-propagationdelay">ntpd propagationdelay</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">propagationdelay option (-r)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-saveconfigquit">ntpd saveconfigquit</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">saveconfigquit option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-statsdir">ntpd statsdir</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">statsdir option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-trustedkey">ntpd trustedkey</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">trustedkey option (-t)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-user">ntpd user</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">user option (-u)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-updateinterval">ntpd updateinterval</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">updateinterval option (-U)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-wait_002dsync">ntpd wait-sync</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">wait-sync option (-w)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-slew">ntpd slew</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">slew option (-x)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-usepcc">ntpd usepcc</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">usepcc option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-pccfreq">ntpd pccfreq</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">pccfreq option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-mdns">ntpd mdns</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">mdns option (-m)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-config">ntpd config</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">presetting/configuring ntpd
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-exit-status">ntpd exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Usage">ntpd Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Files">ntpd Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Files
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-See-Also">ntpd See Also</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">See Also
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Bugs">ntpd Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bugs
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpd-Notes">ntpd Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notes
</td></tr>
</table>
<hr>
<span id="ntpd-usage"></span><div class="header">
<p>
Next: <a href="#ntpd-ipv4" accesskey="n" rel="next">ntpd ipv4</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1.1 ntpd help/usage (<samp>--help</samp>)</h4>
<span id="index-ntpd-help"></span>
<p>This is the automatically generated usage text for ntpd.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p16
+<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p17
Usage: ntpd [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... \
[ &lt;server1&gt; ... &lt;serverN&gt; ]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-a no authreq Require crypto authentication
- prohibits the option 'authnoreq'
-A no authnoreq Do not require crypto authentication
- prohibits the option 'authreq'
-b no bcastsync Allow us to sync to broadcast servers
-c Str configfile configuration file name
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-f Str driftfile frequency drift file name
-g no panicgate Allow the first adjustment to be Big
- may appear multiple times
-G no force-step-once Step any initial offset correction.
-i --- jaildir built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
-I Str interface Listen on an interface name or address
- may appear multiple times
-k Str keyfile path to symmetric keys
-l Str logfile path to the log file
-L no novirtualips Do not listen to virtual interfaces
-n no nofork Do not fork
- prohibits the option 'wait-sync'
-N no nice Run at high priority
-p Str pidfile path to the PID file
-P Num priority Process priority
-q no quit Set the time and quit
- prohibits these options:
saveconfigquit
wait-sync
-r Str propagationdelay Broadcast/propagation delay
Str saveconfigquit Save parsed configuration and quit
- prohibits these options:
quit
wait-sync
-s Str statsdir Statistics file location
-t Str trustedkey Trusted key number
- may appear multiple times
-u --- user built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs
-U Num updateinterval interval in seconds between scans for new or dropped interfaces
Str var make ARG an ntp variable (RW)
- may appear multiple times
Str dvar make ARG an ntp variable (RW|DEF)
- may appear multiple times
-w Num wait-sync Seconds to wait for first clock sync
- prohibits these options:
nofork
quit
saveconfigquit
-x no slew Slew up to 600 seconds
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- examining environment variables named NTPD_*
Please send bug reports to: &lt;https://bugs.ntp.org, bugs@ntp.org&gt;
</pre></div>
<hr>
<span id="ntpd-ipv4"></span><div class="header">
<p>
Next: <a href="#ntpd-ipv6" accesskey="n" rel="next">ntpd ipv6</a>, Previous: <a href="#ntpd-usage" accesskey="p" rel="prev">ntpd usage</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ipv4-option-_0028_002d4_0029"></span><h4 class="subsection">1.1.2 ipv4 option (-4)</h4>
<span id="index-ntpd_002dipv4"></span>
<p>This is the &ldquo;force ipv4 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv6.
</li></ul>
<p>Force DNS resolution of following host names on the command line
to the IPv4 namespace.
</p><hr>
<span id="ntpd-ipv6"></span><div class="header">
<p>
Next: <a href="#ntpd-authreq" accesskey="n" rel="next">ntpd authreq</a>, Previous: <a href="#ntpd-ipv4" accesskey="p" rel="prev">ntpd ipv4</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ipv6-option-_0028_002d6_0029"></span><h4 class="subsection">1.1.3 ipv6 option (-6)</h4>
<span id="index-ntpd_002dipv6"></span>
<p>This is the &ldquo;force ipv6 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv4.
</li></ul>
<p>Force DNS resolution of following host names on the command line
to the IPv6 namespace.
</p><hr>
<span id="ntpd-authreq"></span><div class="header">
<p>
Next: <a href="#ntpd-authnoreq" accesskey="n" rel="next">ntpd authnoreq</a>, Previous: <a href="#ntpd-ipv6" accesskey="p" rel="prev">ntpd ipv6</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="authreq-option-_0028_002da_0029"></span><h4 class="subsection">1.1.4 authreq option (-a)</h4>
<span id="index-ntpd_002dauthreq"></span>
<p>This is the &ldquo;require crypto authentication&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
authnoreq.
</li></ul>
<p>Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
</p><hr>
<span id="ntpd-authnoreq"></span><div class="header">
<p>
Next: <a href="#ntpd-configfile" accesskey="n" rel="next">ntpd configfile</a>, Previous: <a href="#ntpd-authreq" accesskey="p" rel="prev">ntpd authreq</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="authnoreq-option-_0028_002dA_0029"></span><h4 class="subsection">1.1.5 authnoreq option (-A)</h4>
<span id="index-ntpd_002dauthnoreq"></span>
<p>This is the &ldquo;do not require crypto authentication&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
authreq.
</li></ul>
<p>Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
</p><hr>
<span id="ntpd-configfile"></span><div class="header">
<p>
Next: <a href="#ntpd-driftfile" accesskey="n" rel="next">ntpd driftfile</a>, Previous: <a href="#ntpd-authnoreq" accesskey="p" rel="prev">ntpd authnoreq</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="configfile-option-_0028_002dc_0029"></span><h4 class="subsection">1.1.6 configfile option (-c)</h4>
<span id="index-ntpd_002dconfigfile"></span>
<p>This is the &ldquo;configuration file name&rdquo; option.
This option takes a string argument.
The name and path of the configuration file,
<samp>/etc/ntp.conf</samp>
by default.
</p><hr>
<span id="ntpd-driftfile"></span><div class="header">
<p>
Next: <a href="#ntpd-panicgate" accesskey="n" rel="next">ntpd panicgate</a>, Previous: <a href="#ntpd-configfile" accesskey="p" rel="prev">ntpd configfile</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="driftfile-option-_0028_002df_0029"></span><h4 class="subsection">1.1.7 driftfile option (-f)</h4>
<span id="index-ntpd_002ddriftfile"></span>
<p>This is the &ldquo;frequency drift file name&rdquo; option.
This option takes a string argument.
The name and path of the frequency file,
<samp>/etc/ntp.drift</samp>
by default.
This is the same operation as the
<code>driftfile</code> <kbd>driftfile</kbd>
configuration specification in the
<samp>/etc/ntp.conf</samp>
file.
</p><hr>
<span id="ntpd-panicgate"></span><div class="header">
<p>
Next: <a href="#ntpd-force_002dstep_002donce" accesskey="n" rel="next">ntpd force-step-once</a>, Previous: <a href="#ntpd-driftfile" accesskey="p" rel="prev">ntpd driftfile</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="panicgate-option-_0028_002dg_0029"></span><h4 class="subsection">1.1.8 panicgate option (-g)</h4>
<span id="index-ntpd_002dpanicgate"></span>
<p>This is the &ldquo;allow the first adjustment to be big&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>Normally,
<code>ntpd</code>
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
<code>ntpd</code>
will exit with a message to the system log. This option can be used with the
<code>-q</code>
and
<code>-x</code>
options.
See the
<code>tinker</code>
configuration file directive for other options.
</p><hr>
<span id="ntpd-force_002dstep_002donce"></span><div class="header">
<p>
Next: <a href="#ntpd-jaildir" accesskey="n" rel="next">ntpd jaildir</a>, Previous: <a href="#ntpd-panicgate" accesskey="p" rel="prev">ntpd panicgate</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="force_002dstep_002donce-option-_0028_002dG_0029"></span><h4 class="subsection">1.1.9 force-step-once option (-G)</h4>
<span id="index-ntpd_002dforce_002dstep_002donce"></span>
<p>This is the &ldquo;step any initial offset correction.&rdquo; option.
Normally,
<code>ntpd</code>
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the <code>tinker</code> configuration file directive for other options.
</p><hr>
<span id="ntpd-jaildir"></span><div class="header">
<p>
Next: <a href="#ntpd-interface" accesskey="n" rel="next">ntpd interface</a>, Previous: <a href="#ntpd-force_002dstep_002donce" accesskey="p" rel="prev">ntpd force-step-once</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="jaildir-option-_0028_002di_0029"></span><h4 class="subsection">1.1.10 jaildir option (-i)</h4>
<span id="index-ntpd_002djaildir"></span>
<p>This is the &ldquo;jail directory&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>HAVE_DROPROOT</code> during the compilation.
</li></ul>
<p>Chroot the server to the directory
<kbd>jaildir</kbd>
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
<code>-u</code>
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
<code>--enable-clockctl</code>) or Linux (configure with
<code>--enable-linuxcaps</code>) or Solaris (configure with <code>--enable-solarisprivs</code>).
</p><hr>
<span id="ntpd-interface"></span><div class="header">
<p>
Next: <a href="#ntpd-keyfile" accesskey="n" rel="next">ntpd keyfile</a>, Previous: <a href="#ntpd-jaildir" accesskey="p" rel="prev">ntpd jaildir</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="interface-option-_0028_002dI_0029"></span><h4 class="subsection">1.1.11 interface option (-I)</h4>
<span id="index-ntpd_002dinterface"></span>
<p>This is the &ldquo;listen on an interface name or address&rdquo; option.
This option takes a string argument <samp>iface</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
<code>interface</code> command, which is more versatile.
</p><hr>
<span id="ntpd-keyfile"></span><div class="header">
<p>
Next: <a href="#ntpd-logfile" accesskey="n" rel="next">ntpd logfile</a>, Previous: <a href="#ntpd-interface" accesskey="p" rel="prev">ntpd interface</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="keyfile-option-_0028_002dk_0029"></span><h4 class="subsection">1.1.12 keyfile option (-k)</h4>
<span id="index-ntpd_002dkeyfile"></span>
<p>This is the &ldquo;path to symmetric keys&rdquo; option.
This option takes a string argument.
Specify the name and path of the symmetric key file.
<samp>/etc/ntp.keys</samp>
is the default.
This is the same operation as the
<code>keys</code> <kbd>keyfile</kbd>
configuration file directive.
</p><hr>
<span id="ntpd-logfile"></span><div class="header">
<p>
Next: <a href="#ntpd-novirtualips" accesskey="n" rel="next">ntpd novirtualips</a>, Previous: <a href="#ntpd-keyfile" accesskey="p" rel="prev">ntpd keyfile</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="logfile-option-_0028_002dl_0029"></span><h4 class="subsection">1.1.13 logfile option (-l)</h4>
<span id="index-ntpd_002dlogfile"></span>
<p>This is the &ldquo;path to the log file&rdquo; option.
This option takes a string argument.
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
<code>logfile</code> <kbd>logfile</kbd>
configuration file directive.
</p><hr>
<span id="ntpd-novirtualips"></span><div class="header">
<p>
Next: <a href="#ntpd-modifymmtimer" accesskey="n" rel="next">ntpd modifymmtimer</a>, Previous: <a href="#ntpd-logfile" accesskey="p" rel="prev">ntpd logfile</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="novirtualips-option-_0028_002dL_0029"></span><h4 class="subsection">1.1.14 novirtualips option (-L)</h4>
<span id="index-ntpd_002dnovirtualips"></span>
<p>This is the &ldquo;do not listen to virtual interfaces&rdquo; option.
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file <code>interface</code> command, which
is more versatile.
</p><hr>
<span id="ntpd-modifymmtimer"></span><div class="header">
<p>
Next: <a href="#ntpd-nice" accesskey="n" rel="next">ntpd nice</a>, Previous: <a href="#ntpd-novirtualips" accesskey="p" rel="prev">ntpd novirtualips</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="modifymmtimer-option-_0028_002dM_0029"></span><h4 class="subsection">1.1.15 modifymmtimer option (-M)</h4>
<span id="index-ntpd_002dmodifymmtimer"></span>
<p>This is the &ldquo;modify multimedia timer (windows only)&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>SYS_WINNT</code> during the compilation.
</li></ul>
<p>Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
</p><hr>
<span id="ntpd-nice"></span><div class="header">
<p>
Next: <a href="#ntpd-pidfile" accesskey="n" rel="next">ntpd pidfile</a>, Previous: <a href="#ntpd-modifymmtimer" accesskey="p" rel="prev">ntpd modifymmtimer</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="nice-option-_0028_002dN_0029"></span><h4 class="subsection">1.1.16 nice option (-N)</h4>
<span id="index-ntpd_002dnice"></span>
<p>This is the &ldquo;run at high priority&rdquo; option.
To the extent permitted by the operating system, run
<code>ntpd</code>
at the highest priority.
</p><hr>
<span id="ntpd-pidfile"></span><div class="header">
<p>
Next: <a href="#ntpd-priority" accesskey="n" rel="next">ntpd priority</a>, Previous: <a href="#ntpd-nice" accesskey="p" rel="prev">ntpd nice</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="pidfile-option-_0028_002dp_0029"></span><h4 class="subsection">1.1.17 pidfile option (-p)</h4>
<span id="index-ntpd_002dpidfile"></span>
<p>This is the &ldquo;path to the pid file&rdquo; option.
This option takes a string argument.
Specify the name and path of the file used to record
<code>ntpd</code>&rsquo;s
process ID.
This is the same operation as the
<code>pidfile</code> <kbd>pidfile</kbd>
configuration file directive.
</p><hr>
<span id="ntpd-priority"></span><div class="header">
<p>
Next: <a href="#ntpd-quit" accesskey="n" rel="next">ntpd quit</a>, Previous: <a href="#ntpd-pidfile" accesskey="p" rel="prev">ntpd pidfile</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="priority-option-_0028_002dP_0029"></span><h4 class="subsection">1.1.18 priority option (-P)</h4>
<span id="index-ntpd_002dpriority"></span>
<p>This is the &ldquo;process priority&rdquo; option.
This option takes a number argument.
To the extent permitted by the operating system, run
<code>ntpd</code>
at the specified
<code>sched_setscheduler(SCHED_FIFO)</code>
priority.
</p><hr>
<span id="ntpd-quit"></span><div class="header">
<p>
Next: <a href="#ntpd-propagationdelay" accesskey="n" rel="next">ntpd propagationdelay</a>, Previous: <a href="#ntpd-priority" accesskey="p" rel="prev">ntpd priority</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="quit-option-_0028_002dq_0029"></span><h4 class="subsection">1.1.19 quit option (-q)</h4>
<span id="index-ntpd_002dquit"></span>
<p>This is the &ldquo;set the time and quit&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
saveconfigquit, wait-sync.
</li></ul>
<p><code>ntpd</code>
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
<code>ntpdate</code>
program, which will soon be replaced with a shell script.
The
<code>-g</code>
and
<code>-x</code>
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
</p><hr>
<span id="ntpd-propagationdelay"></span><div class="header">
<p>
Next: <a href="#ntpd-saveconfigquit" accesskey="n" rel="next">ntpd saveconfigquit</a>, Previous: <a href="#ntpd-quit" accesskey="p" rel="prev">ntpd quit</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="propagationdelay-option-_0028_002dr_0029"></span><h4 class="subsection">1.1.20 propagationdelay option (-r)</h4>
<span id="index-ntpd_002dpropagationdelay"></span>
<p>This is the &ldquo;broadcast/propagation delay&rdquo; option.
This option takes a string argument.
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
</p><hr>
<span id="ntpd-saveconfigquit"></span><div class="header">
<p>
Next: <a href="#ntpd-statsdir" accesskey="n" rel="next">ntpd statsdir</a>, Previous: <a href="#ntpd-propagationdelay" accesskey="p" rel="prev">ntpd propagationdelay</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="saveconfigquit-option"></span><h4 class="subsection">1.1.21 saveconfigquit option</h4>
<span id="index-ntpd_002dsaveconfigquit"></span>
<p>This is the &ldquo;save parsed configuration and quit&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>SAVECONFIG</code> during the compilation.
</li><li> must not appear in combination with any of the following options:
quit, wait-sync.
</li></ul>
<p>Cause <code>ntpd</code> to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
</p><hr>
<span id="ntpd-statsdir"></span><div class="header">
<p>
Next: <a href="#ntpd-trustedkey" accesskey="n" rel="next">ntpd trustedkey</a>, Previous: <a href="#ntpd-saveconfigquit" accesskey="p" rel="prev">ntpd saveconfigquit</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="statsdir-option-_0028_002ds_0029"></span><h4 class="subsection">1.1.22 statsdir option (-s)</h4>
<span id="index-ntpd_002dstatsdir"></span>
<p>This is the &ldquo;statistics file location&rdquo; option.
This option takes a string argument.
Specify the directory path for files created by the statistics facility.
This is the same operation as the
<code>statsdir</code> <kbd>statsdir</kbd>
configuration file directive.
</p><hr>
<span id="ntpd-trustedkey"></span><div class="header">
<p>
Next: <a href="#ntpd-user" accesskey="n" rel="next">ntpd user</a>, Previous: <a href="#ntpd-statsdir" accesskey="p" rel="prev">ntpd statsdir</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="trustedkey-option-_0028_002dt_0029"></span><h4 class="subsection">1.1.23 trustedkey option (-t)</h4>
<span id="index-ntpd_002dtrustedkey"></span>
<p>This is the &ldquo;trusted key number&rdquo; option.
This option takes a string argument <samp>tkey</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>Add the specified key number to the trusted key list.
</p><hr>
<span id="ntpd-user"></span><div class="header">
<p>
Next: <a href="#ntpd-updateinterval" accesskey="n" rel="next">ntpd updateinterval</a>, Previous: <a href="#ntpd-trustedkey" accesskey="p" rel="prev">ntpd trustedkey</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="user-option-_0028_002du_0029"></span><h4 class="subsection">1.1.24 user option (-u)</h4>
<span id="index-ntpd_002duser"></span>
<p>This is the &ldquo;run as userid (or userid:groupid)&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>HAVE_DROPROOT</code> during the compilation.
</li></ul>
<p>Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
<code>--enable-clockctl</code>) or Linux (configure with
<code>--enable-linuxcaps</code>) or Solaris (configure with <code>--enable-solarisprivs</code>).
</p><hr>
<span id="ntpd-updateinterval"></span><div class="header">
<p>
Next: <a href="#ntpd-wait_002dsync" accesskey="n" rel="next">ntpd wait-sync</a>, Previous: <a href="#ntpd-user" accesskey="p" rel="prev">ntpd user</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="updateinterval-option-_0028_002dU_0029"></span><h4 class="subsection">1.1.25 updateinterval option (-U)</h4>
<span id="index-ntpd_002dupdateinterval"></span>
<p>This is the &ldquo;interval in seconds between scans for new or dropped interfaces&rdquo; option.
This option takes a number argument.
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
</p><hr>
<span id="ntpd-wait_002dsync"></span><div class="header">
<p>
Next: <a href="#ntpd-slew" accesskey="n" rel="next">ntpd slew</a>, Previous: <a href="#ntpd-updateinterval" accesskey="p" rel="prev">ntpd updateinterval</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="wait_002dsync-option-_0028_002dw_0029"></span><h4 class="subsection">1.1.26 wait-sync option (-w)</h4>
<span id="index-ntpd_002dwait_002dsync"></span>
<p>This is the &ldquo;seconds to wait for first clock sync&rdquo; option.
This option takes a number argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>HAVE_WORKING_FORK</code> during the compilation.
</li><li> must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
</li></ul>
<p>If greater than zero, alters <code>ntpd</code>&rsquo;s behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is <code>ETIMEDOUT</code>.
This provides the option for a script starting <code>ntpd</code> to easily
wait for the first set of the clock before proceeding.
</p><hr>
<span id="ntpd-slew"></span><div class="header">
<p>
Next: <a href="#ntpd-usepcc" accesskey="n" rel="next">ntpd usepcc</a>, Previous: <a href="#ntpd-wait_002dsync" accesskey="p" rel="prev">ntpd wait-sync</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="slew-option-_0028_002dx_0029"></span><h4 class="subsection">1.1.27 slew option (-x)</h4>
<span id="index-ntpd_002dslew"></span>
<p>This is the &ldquo;slew up to 600 seconds&rdquo; option.
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
<code>-g</code>
and
<code>-q</code>
options.
See the
<code>tinker</code>
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
</p><hr>
<span id="ntpd-usepcc"></span><div class="header">
<p>
Next: <a href="#ntpd-pccfreq" accesskey="n" rel="next">ntpd pccfreq</a>, Previous: <a href="#ntpd-slew" accesskey="p" rel="prev">ntpd slew</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="usepcc-option"></span><h4 class="subsection">1.1.28 usepcc option</h4>
<span id="index-ntpd_002dusepcc"></span>
<p>This is the &ldquo;use cpu cycle counter (windows only)&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>SYS_WINNT</code> during the compilation.
</li></ul>
<p>Attempt to substitute the CPU counter for <code>QueryPerformanceCounter</code>.
The CPU counter and <code>QueryPerformanceCounter</code> are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
</p><hr>
<span id="ntpd-pccfreq"></span><div class="header">
<p>
Next: <a href="#ntpd-mdns" accesskey="n" rel="next">ntpd mdns</a>, Previous: <a href="#ntpd-usepcc" accesskey="p" rel="prev">ntpd usepcc</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="pccfreq-option"></span><h4 class="subsection">1.1.29 pccfreq option</h4>
<span id="index-ntpd_002dpccfreq"></span>
<p>This is the &ldquo;force cpu cycle counter use (windows only)&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>SYS_WINNT</code> during the compilation.
</li></ul>
<p>Force substitution the CPU counter for <code>QueryPerformanceCounter</code>.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
</p><hr>
<span id="ntpd-mdns"></span><div class="header">
<p>
Next: <a href="#ntpd-config" accesskey="n" rel="next">ntpd config</a>, Previous: <a href="#ntpd-pccfreq" accesskey="p" rel="prev">ntpd pccfreq</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="mdns-option-_0028_002dm_0029"></span><h4 class="subsection">1.1.30 mdns option (-m)</h4>
<span id="index-ntpd_002dmdns"></span>
<p>This is the &ldquo;register with mdns as a ntp server&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>HAVE_DNSREGISTRATION</code> during the compilation.
</li></ul>
<p>Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
</p>
<hr>
<span id="ntpd-config"></span><div class="header">
<p>
Next: <a href="#ntpd-exit-status" accesskey="n" rel="next">ntpd exit status</a>, Previous: <a href="#ntpd-mdns" accesskey="p" rel="prev">ntpd mdns</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="presetting_002fconfiguring-ntpd"></span><h4 class="subsection">1.1.31 presetting/configuring ntpd</h4>
<p>Any option that is not marked as <i>not presettable</i> may be preset by
loading values from environment variables named <code>NTPD</code> and <code>NTPD_&lt;OPTION_NAME&gt;</code>. <code>&lt;OPTION_NAME&gt;</code> must be one of
the options listed above in upper case and segmented with underscores.
The <code>NTPD</code> variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
</p>
<p>The command line options relating to configuration and/or usage help are:
</p>
<span id="version-_0028_002d_0029"></span><h4 class="subsubheading">version (-)</h4>
<p>Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>version</samp>&rsquo;</dt>
<dd><p>Only print the version. This is the default.
</p></dd>
<dt>&lsquo;<samp>copyright</samp>&rsquo;</dt>
<dd><p>Name the copyright usage licensing terms.
</p></dd>
<dt>&lsquo;<samp>verbose</samp>&rsquo;</dt>
<dd><p>Print the full copyright usage licensing terms.
</p></dd>
</dl>
<hr>
<span id="ntpd-exit-status"></span><div class="header">
<p>
Next: <a href="#ntpd-Usage" accesskey="n" rel="next">ntpd Usage</a>, Previous: <a href="#ntpd-config" accesskey="p" rel="prev">ntpd config</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-exit-status-1"></span><h4 class="subsection">1.1.32 ntpd exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
<span id="ntpd-Usage"></span><div class="header">
<p>
Next: <a href="#ntpd-Files" accesskey="n" rel="next">ntpd Files</a>, Previous: <a href="#ntpd-exit-status" accesskey="p" rel="prev">ntpd exit status</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-Usage-1"></span><h4 class="subsection">1.1.33 ntpd Usage</h4>
<hr>
<span id="ntpd-Files"></span><div class="header">
<p>
Next: <a href="#ntpd-See-Also" accesskey="n" rel="next">ntpd See Also</a>, Previous: <a href="#ntpd-Usage" accesskey="p" rel="prev">ntpd Usage</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-Files-1"></span><h4 class="subsection">1.1.34 ntpd Files</h4>
<hr>
<span id="ntpd-See-Also"></span><div class="header">
<p>
Next: <a href="#ntpd-Bugs" accesskey="n" rel="next">ntpd Bugs</a>, Previous: <a href="#ntpd-Files" accesskey="p" rel="prev">ntpd Files</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-See-Also-1"></span><h4 class="subsection">1.1.35 ntpd See Also</h4>
<hr>
<span id="ntpd-Bugs"></span><div class="header">
<p>
Next: <a href="#ntpd-Notes" accesskey="n" rel="next">ntpd Notes</a>, Previous: <a href="#ntpd-See-Also" accesskey="p" rel="prev">ntpd See Also</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-Bugs-1"></span><h4 class="subsection">1.1.36 ntpd Bugs</h4>
<hr>
<span id="ntpd-Notes"></span><div class="header">
<p>
Previous: <a href="#ntpd-Bugs" accesskey="p" rel="prev">ntpd Bugs</a>, Up: <a href="#ntpd-Invocation" accesskey="u" rel="up">ntpd Invocation</a> &nbsp; </p>
</div>
<span id="ntpd-Notes-1"></span><h4 class="subsection">1.1.37 ntpd Notes</h4>
<hr>
<span id="Usage"></span><div class="header">
<p>
Previous: <a href="#ntpd-Invocation" accesskey="p" rel="prev">ntpd Invocation</a>, Up: <a href="#ntpd-Description" accesskey="u" rel="up">ntpd Description</a> &nbsp; </p>
</div>
<span id="Usage-1"></span><h3 class="section">1.2 Usage</h3>
<table>
<thead><tr><th width="23%">What</th><th width="23%">Default</th><th width="5%">Flag</th><th width="15%">Option</th></tr></thead>
<tr><td width="23%">configuration file</td><td width="23%"><code>/etc/ntp.conf</code></td><td width="5%"><code>-c</code></td><td width="15%"><code>conffile</code></td></tr>
<tr><td width="23%">frequency file</td><td width="23%">none</td><td width="5%"><code>-f</code></td><td width="15%"><code>driftfile</code></td></tr>
<tr><td width="23%">leapseconds file</td><td width="23%">none</td><td width="5%"></td><td width="15%"><code>leapfile</code></td></tr>
<tr><td width="23%">process ID file</td><td width="23%">none</td><td width="5%"><code>-p</code></td><td width="15%"><code>pidfile</code></td></tr>
<tr><td width="23%">log file</td><td width="23%">system log</td><td width="5%"><code>-l</code></td><td width="15%"><code>logfile</code></td></tr>
<tr><td width="23%">include file</td><td width="23%">none</td><td width="5%">none</td><td width="15%"><code>includefile</code></td></tr>
<tr><td width="23%">statistics path</td><td width="23%"><code>/var/NTP</code></td><td width="5%"><code>-s</code></td><td width="15%"><code>statsdir</code></td></tr>
<tr><td width="23%">keys path</td><td width="23%"><code>/usr/local/etc</code></td><td width="5%"><code>-k</code></td><td width="15%"><code>keysdir</code></td></tr>
</table>
<hr>
</body>
</html>
diff --git a/contrib/ntp/ntpd/ntpd.man.in b/contrib/ntp/ntpd/ntpd.man.in
index 02b7737fbfed..addee5d56e77 100644
--- a/contrib/ntp/ntpd/ntpd.man.in
+++ b/contrib/ntp/ntpd/ntpd.man.in
@@ -1,1005 +1,1005 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd @NTPD_MS@ "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpd @NTPD_MS@ "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:42 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:49 AM by AutoGen 5.18.16
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpd\fP
\- NTP daemon program
.SH SYNOPSIS
\f\*[B-Font]ntpd\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ <server1> ... <serverN> ]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The
\f\*[B-Font]ntpd\fP
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC-5905,
but also retains compatibility with
version 3, as defined by RFC-1305, and versions 1
and 2, as defined by RFC-1059 and RFC-1119, respectively.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpd\fP
utility does most computations in 64-bit floating point
arithmetic and does relatively clumsy 64-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
.sp \n(Ppu
.ne 2
Ordinarily,
\f\*[B-Font]ntpd\fP
reads the
\fCntp.conf\f[]\fR(5)\f[]
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
.sp \n(Ppu
.ne 2
If NetInfo support is built into
\f\*[B-Font]ntpd\fP,
then
\f\*[B-Font]ntpd\fP
will attempt to read its configuration from the
NetInfo if the default
\fCntp.conf\f[]\fR(5)\f[]
file cannot be read and no file is
specified by the
\f\*[B-Font]\-c\f[]
option.
.sp \n(Ppu
.ne 2
Various internal
\f\*[B-Font]ntpd\fP
variables can be displayed and
configuration options altered while the
\f\*[B-Font]ntpd\fP
is running
using the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility programs.
.sp \n(Ppu
.ne 2
When
\f\*[B-Font]ntpd\fP
starts it looks at the value of
\fCumask\f[]\fR(2)\f[],
and if zero
\f\*[B-Font]ntpd\fP
will set the
\fCumask\f[]\fR(2)\f[]
to 022.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-a\f[], \f\*[B-Font]\-\-authreq\f[]
Require crypto authentication.
This option must not appear in combination with any of the following options:
authnoreq.
.sp
Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
.TP
.NOP \f\*[B-Font]\-A\f[], \f\*[B-Font]\-\-authnoreq\f[]
Do not require crypto authentication.
This option must not appear in combination with any of the following options:
authreq.
.sp
Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
.TP
.NOP \f\*[B-Font]\-b\f[], \f\*[B-Font]\-\-bcastsync\f[]
Allow us to sync to broadcast servers.
.sp
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-configfile\f[]=\f\*[I-Font]string\f[]
configuration file name.
.sp
The name and path of the configuration file,
\fI/etc/ntp.conf\fP
by default.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-f\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-driftfile\f[]=\f\*[I-Font]string\f[]
frequency drift file name.
.sp
The name and path of the frequency file,
\fI/etc/ntp.drift\fP
by default.
This is the same operation as the
\fBdriftfile\fP \fIdriftfile\fP
configuration specification in the
\fI/etc/ntp.conf\fP
file.
.TP
.NOP \f\*[B-Font]\-g\f[], \f\*[B-Font]\-\-panicgate\f[]
Allow the first adjustment to be Big.
This option may appear an unlimited number of times.
.sp
Normally,
\fBntpd\fP
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
\fBntpd\fP
will exit with a message to the system log. This option can be used with the
\fB-q\fP
and
\fB-x\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
.TP
.NOP \f\*[B-Font]\-G\f[], \f\*[B-Font]\-\-force\-step\-once\f[]
Step any initial offset correction..
.sp
Normally,
\fBntpd\fP
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the \fBtinker\fP configuration file directive for other options.
.TP
.NOP \f\*[B-Font]\-i\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-jaildir\f[]=\f\*[I-Font]string\f[]
Jail directory.
.sp
Chroot the server to the directory
\fIjaildir\fP
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
\fB-u\fP
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB--enable-clockctl\fP) or Linux (configure with
\fB--enable-linuxcaps\fP) or Solaris (configure with \fB--enable-solarisprivs\fP).
.TP
.NOP \f\*[B-Font]\-I\f[] \f\*[I-Font]iface\f[], \f\*[B-Font]\-\-interface\f[]=\f\*[I-Font]iface\f[]
Listen on an interface name or address.
This option may appear an unlimited number of times.
.sp
Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
\fBinterface\fP command, which is more versatile.
.TP
.NOP \f\*[B-Font]\-k\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-keyfile\f[]=\f\*[I-Font]string\f[]
path to symmetric keys.
.sp
Specify the name and path of the symmetric key file.
\fI/etc/ntp.keys\fP
is the default.
This is the same operation as the
\fBkeys\fP \fIkeyfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-logfile\f[]=\f\*[I-Font]string\f[]
path to the log file.
.sp
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
\fBlogfile\fP \fIlogfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-L\f[], \f\*[B-Font]\-\-novirtualips\f[]
Do not listen to virtual interfaces.
.sp
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file \fBinterface\fP command, which
is more versatile.
.TP
.NOP \f\*[B-Font]\-M\f[], \f\*[B-Font]\-\-modifymmtimer\f[]
Modify Multimedia Timer (Windows only).
.sp
Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-nofork\f[]
Do not fork.
This option must not appear in combination with any of the following options:
wait-sync.
.sp
.TP
.NOP \f\*[B-Font]\-N\f[], \f\*[B-Font]\-\-nice\f[]
Run at high priority.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the highest priority.
.TP
.NOP \f\*[B-Font]\-p\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-pidfile\f[]=\f\*[I-Font]string\f[]
path to the PID file.
.sp
Specify the name and path of the file used to record
\fBntpd\fP's
process ID.
This is the same operation as the
\fBpidfile\fP \fIpidfile\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-P\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-priority\f[]=\f\*[I-Font]number\f[]
Process priority.
This option takes an integer number as its argument.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the specified
\fBsched_setscheduler(SCHED_FIFO)\fP
priority.
.TP
.NOP \f\*[B-Font]\-q\f[], \f\*[B-Font]\-\-quit\f[]
Set the time and quit.
This option must not appear in combination with any of the following options:
saveconfigquit, wait-sync.
.sp
\fBntpd\fP
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
\fBntpdate\fP
program, which will soon be replaced with a shell script.
The
\fB-g\fP
and
\fB-x\fP
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-propagationdelay\f[]=\f\*[I-Font]string\f[]
Broadcast/propagation delay.
.sp
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
.TP
.NOP \f\*[B-Font]\-\-saveconfigquit\f[]=\f\*[I-Font]string\f[]
Save parsed configuration and quit.
This option must not appear in combination with any of the following options:
quit, wait-sync.
.sp
Cause \fBntpd\fP to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-statsdir\f[]=\f\*[I-Font]string\f[]
Statistics file location.
.sp
Specify the directory path for files created by the statistics facility.
This is the same operation as the
\fBstatsdir\fP \fIstatsdir\fP
configuration file directive.
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]tkey\f[], \f\*[B-Font]\-\-trustedkey\f[]=\f\*[I-Font]tkey\f[]
Trusted key number.
This option may appear an unlimited number of times.
.sp
Add the specified key number to the trusted key list.
.TP
.NOP \f\*[B-Font]\-u\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-user\f[]=\f\*[I-Font]string\f[]
Run as userid (or userid:groupid).
.sp
Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB--enable-clockctl\fP) or Linux (configure with
\fB--enable-linuxcaps\fP) or Solaris (configure with \fB--enable-solarisprivs\fP).
.TP
.NOP \f\*[B-Font]\-U\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-updateinterval\f[]=\f\*[I-Font]number\f[]
interval in seconds between scans for new or dropped interfaces.
This option takes an integer number as its argument.
.sp
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
.TP
.NOP \f\*[B-Font]\-\-var\f[]=\f\*[I-Font]nvar\f[]
make ARG an ntp variable (RW).
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-\-dvar\f[]=\f\*[I-Font]ndvar\f[]
make ARG an ntp variable (RW|DEF).
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-w\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-wait\-sync\f[]=\f\*[I-Font]number\f[]
Seconds to wait for first clock sync.
This option must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
This option takes an integer number as its argument.
.sp
If greater than zero, alters \fBntpd\fP's behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is \fBETIMEDOUT\fP.
This provides the option for a script starting \fBntpd\fP to easily
wait for the first set of the clock before proceeding.
.TP
.NOP \f\*[B-Font]\-x\f[], \f\*[B-Font]\-\-slew\f[]
Slew up to 600 seconds.
.sp
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
\fB-g\fP
and
\fB-q\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
.TP
.NOP \f\*[B-Font]\-\-usepcc\f[]
Use CPU cycle counter (Windows only).
.sp
Attempt to substitute the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter and \fBQueryPerformanceCounter\fP are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
.TP
.NOP \f\*[B-Font]\-\-pccfreq\f[]=\f\*[I-Font]string\f[]
Force CPU cycle counter use (Windows only).
.sp
Force substitution the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
.TP
.NOP \f\*[B-Font]\-m\f[], \f\*[B-Font]\-\-mdns\f[]
Register with mDNS as a NTP server.
.sp
Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTPD_<option-name>\fP or \fBNTPD\fP
.fi
.ad
.SH USAGE
.SS "How NTP Operates"
The
\f\*[B-Font]ntpd\fP
utility operates by exchanging messages with
one or more configured servers over a range of designated poll intervals.
When
started, whether for the first or subsequent times, the program
requires several exchanges from the majority of these servers so
the signal processing and mitigation algorithms can accumulate and
groom the data and set the clock.
In order to protect the network
from bursts, the initial poll interval for each server is delayed
an interval randomized over a few seconds.
At the default initial poll
interval of 64s, several minutes can elapse before the clock is
set.
This initial delay to set the clock
can be safely and dramatically reduced using the
\f\*[B-Font]iburst\f[]
keyword with the
\f\*[B-Font]server\f[]
configuration
command, as described in
\fCntp.conf\f[]\fR(5)\f[].
.sp \n(Ppu
.ne 2
Most operating systems and hardware of today incorporate a
time-of-year (TOY) chip to maintain the time during periods when
the power is off.
When the machine is booted, the chip is used to
initialize the operating system time.
After the machine has
synchronized to a NTP server, the operating system corrects the
chip from time to time.
In the default case, if
\f\*[B-Font]ntpd\fP
detects that the time on the host
is more than 1000s from the server time,
\f\*[B-Font]ntpd\fP
assumes something must be terribly wrong and the only
reliable action is for the operator to intervene and set the clock
by hand.
(Reasons for this include there is no TOY chip,
or its battery is dead, or that the TOY chip is just of poor quality.)
This causes
\f\*[B-Font]ntpd\fP
to exit with a panic message to
the system log.
The
\f\*[B-Font]\-g\f[]
option overrides this check and the
clock will be set to the server time regardless of the chip time
(up to 68 years in the past or future \(em
this is a limitation of the NTPv4 protocol).
However, and to protect against broken hardware, such as when the
CMOS battery fails or the clock counter becomes defective, once the
clock has been set an error greater than 1000s will cause
\f\*[B-Font]ntpd\fP
to exit anyway.
.sp \n(Ppu
.ne 2
Under ordinary conditions,
\f\*[B-Font]ntpd\fP
adjusts the clock in
small steps so that the timescale is effectively continuous and
without discontinuities.
Under conditions of extreme network
congestion, the roundtrip delay jitter can exceed three seconds and
the synchronization distance, which is equal to one-half the
roundtrip delay plus error budget terms, can become very large.
The
\f\*[B-Font]ntpd\fP
algorithms discard sample offsets exceeding 128 ms,
unless the interval during which no sample offset is less than 128
ms exceeds 900s.
The first sample after that, no matter what the
offset, steps the clock to the indicated time.
In practice this
reduces the false alarm rate where the clock is stepped in error to
a vanishingly low incidence.
.sp \n(Ppu
.ne 2
As the result of this behavior, once the clock has been set it
very rarely strays more than 128 ms even under extreme cases of
network path congestion and jitter.
Sometimes, in particular when
\f\*[B-Font]ntpd\fP
is first started without a valid drift file
on a system with a large intrinsic drift
the error might grow to exceed 128 ms,
which would cause the clock to be set backwards
if the local clock time is more than 128 s
in the future relative to the server.
In some applications, this behavior may be unacceptable.
There are several solutions, however.
If the
\f\*[B-Font]\-x\f[]
option is included on the command line, the clock will
never be stepped and only slew corrections will be used.
But this choice comes with a cost that
should be carefully explored before deciding to use
the
\f\*[B-Font]\-x\f[]
option.
The maximum slew rate possible is limited
to 500 parts-per-million (PPM) as a consequence of the correctness
principles on which the NTP protocol and algorithm design are
based.
As a result, the local clock can take a long time to
converge to an acceptable offset, about 2,000 s for each second the
clock is outside the acceptable range.
During this interval the
local clock will not be consistent with any other network clock and
the system cannot be used for distributed applications that require
correctly synchronized network time.
.sp \n(Ppu
.ne 2
In spite of the above precautions, sometimes when large
frequency errors are present the resulting time offsets stray
outside the 128-ms range and an eventual step or slew time
correction is required.
If following such a correction the
frequency error is so large that the first sample is outside the
acceptable range,
\f\*[B-Font]ntpd\fP
enters the same state as when the
\fIntp.drift\f[]
file is not present.
The intent of this behavior
is to quickly correct the frequency and restore operation to the
normal tracking mode.
In the most extreme cases
(the host
\f\*[B-Font]time.ien.it\f[]
comes to mind), there may be occasional
step/slew corrections and subsequent frequency corrections.
It
helps in these cases to use the
\f\*[B-Font]burst\f[]
keyword when
configuring the server, but
ONLY
when you have permission to do so from the owner of the target host.
.sp \n(Ppu
.ne 2
Finally,
in the past many startup scripts would run
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[]
or
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
to get the system clock close to correct before starting
\fCntpd\f[]\fR(@NTPD_MS@)\f[],
but this was never more than a mediocre hack and is no longer needed.
If you are following the instructions in
\fIStarting NTP (Best Current Practice)\f[]
and you still need to set the system time before starting
\f\*[B-Font]ntpd\fP,
please open a bug report and document what is going on,
and then look at using
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
if you really need to set the clock before starting
\f\*[B-Font]ntpd\fP.
.sp \n(Ppu
.ne 2
There is a way to start
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
that often addresses all of the problems mentioned above.
.SS "Starting NTP (Best Current Practice)"
First, use the
\f\*[B-Font]iburst\f[]
option on your
\f\*[B-Font]server\f[]
entries.
.sp \n(Ppu
.ne 2
If you can also keep a good
\fIntp.drift\f[]
file then
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
will effectively "warm-start" and your system's clock will
be stable in under 11 seconds' time.
.sp \n(Ppu
.ne 2
As soon as possible in the startup sequence, start
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
with at least the
\f\*[B-Font]\-g\f[]
and perhaps the
\f\*[B-Font]\-N\f[]
options.
Then,
start the rest of your "normal" processes.
This will give
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
as much time as possible to get the system's clock synchronized and stable.
.sp \n(Ppu
.ne 2
Finally,
if you have processes like
\f\*[B-Font]dovecot\f[]
or database servers
that require
monotonically-increasing time,
run
\fCntp-wait\f[]\fR(@NTP_WAIT_MS@)\f[]
as late as possible in the boot sequence
(perhaps with the
\f\*[B-Font]\-v\f[]
flag)
and after
\fCntp-wait\f[]\fR(@NTP_WAIT_MS@)\f[]
exits successfully
it is as safe as it will ever be to start any process that require
stable time.
.SS "Frequency Discipline"
The
\f\*[B-Font]ntpd\fP
behavior at startup depends on whether the
frequency file, usually
\fIntp.drift\f[],
exists.
This file
contains the latest estimate of clock frequency error.
When the
\f\*[B-Font]ntpd\fP
is started and the file does not exist, the
\f\*[B-Font]ntpd\fP
enters a special mode designed to quickly adapt to
the particular system clock oscillator time and frequency error.
This takes approximately 15 minutes, after which the time and
frequency are set to nominal values and the
\f\*[B-Font]ntpd\fP
enters
normal mode, where the time and frequency are continuously tracked
relative to the server.
After one hour the frequency file is
created and the current frequency offset written to it.
When the
\f\*[B-Font]ntpd\fP
is started and the file does exist, the
\f\*[B-Font]ntpd\fP
frequency is initialized from the file and enters normal mode
immediately.
After that the current frequency offset is written to
the file at hourly intervals.
.SS "Operating Modes"
The
\f\*[B-Font]ntpd\fP
utility can operate in any of several modes, including
symmetric active/passive, client/server broadcast/multicast and
manycast, as described in the
"Association Management"
page
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[]).
It normally operates continuously while
monitoring for small changes in frequency and trimming the clock
for the ultimate precision.
However, it can operate in a one-time
mode where the time is set from an external server and frequency is
set from a previously recorded frequency file.
A
broadcast/multicast or manycast client can discover remote servers,
compute server-client propagation delay correction factors and
configure itself automatically.
This makes it possible to deploy a
fleet of workstations without specifying configuration details
specific to the local environment.
.sp \n(Ppu
.ne 2
By default,
\f\*[B-Font]ntpd\fP
runs in continuous mode where each of
possibly several external servers is polled at intervals determined
by an intricate state machine.
The state machine measures the
incidental roundtrip delay jitter and oscillator frequency wander
and determines the best poll interval using a heuristic algorithm.
Ordinarily, and in most operating environments, the state machine
will start with 64s intervals and eventually increase in steps to
1024s.
A small amount of random variation is introduced in order to
avoid bunching at the servers.
In addition, should a server become
unreachable for some time, the poll interval is increased in steps
to 1024s in order to reduce network overhead.
.sp \n(Ppu
.ne 2
In some cases it may not be practical for
\f\*[B-Font]ntpd\fP
to run continuously.
A common workaround has been to run the
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[]
or
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
programs from a
\fCcron\f[]\fR(8)\f[]
job at designated
times.
However, these programs do not have the crafted signal
processing, error checking or mitigation algorithms of
\f\*[B-Font]ntpd\fP.
The
\f\*[B-Font]\-q\f[]
option is intended for this purpose.
Setting this option will cause
\f\*[B-Font]ntpd\fP
to exit just after
setting the clock for the first time.
The procedure for initially
setting the clock is the same as in continuous mode; most
applications will probably want to specify the
\f\*[B-Font]iburst\f[]
keyword with the
\f\*[B-Font]server\f[]
configuration command.
With this
keyword a volley of messages are exchanged to groom the data and
the clock is set in about 10 s.
If nothing is heard after a
couple of minutes, the daemon times out and exits.
After a suitable
period of mourning, the
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[]
program will be
retired.
.sp \n(Ppu
.ne 2
When kernel support is available to discipline the clock
frequency, which is the case for stock Solaris, Tru64, Linux and
FreeBSD,
a useful feature is available to discipline the clock
frequency.
First,
\f\*[B-Font]ntpd\fP
is run in continuous mode with
selected servers in order to measure and record the intrinsic clock
frequency offset in the frequency file.
It may take some hours for
the frequency and offset to settle down.
Then the
\f\*[B-Font]ntpd\fP
is
stopped and run in one-time mode as required.
At each startup, the
frequency is read from the file and initializes the kernel
frequency.
.SS "Poll Interval Control"
This version of NTP includes an intricate state machine to
reduce the network load while maintaining a quality of
synchronization consistent with the observed jitter and wander.
There are a number of ways to tailor the operation in order enhance
accuracy by reducing the interval or to reduce network overhead by
increasing it.
However, the user is advised to carefully consider
the consequences of changing the poll adjustment range from the
default minimum of 64 s to the default maximum of 1,024 s.
The
default minimum can be changed with the
\f\*[B-Font]tinker\f[]
\f\*[B-Font]minpoll\f[]
command to a value not less than 16 s.
This value is used for all
configured associations, unless overridden by the
\f\*[B-Font]minpoll\f[]
option on the configuration command.
Note that most device drivers
will not operate properly if the poll interval is less than 64 s
and that the broadcast server and manycast client associations will
also use the default, unless overridden.
.sp \n(Ppu
.ne 2
In some cases involving dial up or toll services, it may be
useful to increase the minimum interval to a few tens of minutes
and maximum interval to a day or so.
Under normal operation
conditions, once the clock discipline loop has stabilized the
interval will be increased in steps from the minimum to the
maximum.
However, this assumes the intrinsic clock frequency error
is small enough for the discipline loop correct it.
The capture
range of the loop is 500 PPM at an interval of 64s decreasing by a
factor of two for each doubling of interval.
At a minimum of 1,024
s, for example, the capture range is only 31 PPM.
If the intrinsic
error is greater than this, the drift file
\fIntp.drift\f[]
will
have to be specially tailored to reduce the residual error below
this limit.
Once this is done, the drift file is automatically
updated once per hour and is available to initialize the frequency
on subsequent daemon restarts.
.SS "The huff-n'-puff Filter"
In scenarios where a considerable amount of data are to be
downloaded or uploaded over telephone modems, timekeeping quality
can be seriously degraded.
This occurs because the differential
delays on the two directions of transmission can be quite large.
In
many cases the apparent time errors are so large as to exceed the
step threshold and a step correction can occur during and after the
data transfer is in progress.
.sp \n(Ppu
.ne 2
The huff-n'-puff filter is designed to correct the apparent time
offset in these cases.
It depends on knowledge of the propagation
delay when no other traffic is present.
In common scenarios this
occurs during other than work hours.
The filter maintains a shift
register that remembers the minimum delay over the most recent
interval measured usually in hours.
Under conditions of severe
delay, the filter corrects the apparent offset using the sign of
the offset and the difference between the apparent delay and
minimum delay.
The name of the filter reflects the negative (huff)
and positive (puff) correction, which depends on the sign of the
offset.
.sp \n(Ppu
.ne 2
The filter is activated by the
\f\*[B-Font]tinker\f[]
command and
\f\*[B-Font]huffpuff\f[]
keyword, as described in
\fCntp.conf\f[]\fR(5)\f[].
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH FILES
.TP 15
.NOP \fI/etc/ntp.conf\f[]
the default name of the configuration file
.br
.ns
.TP 15
.NOP \fI/etc/ntp.drift\f[]
the default name of the drift file
.br
.ns
.TP 15
.NOP \fI/etc/ntp.keys\f[]
the default name of the key file
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[],
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[],
\fCntpq\f[]\fR(@NTPQ_MS@)\f[],
\fCsntp\f[]\fR(@SNTP_MS@)\f[]
.sp \n(Ppu
.ne 2
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
\f[C]http://www.ntp.org/\f[].
A snapshot of this documentation is available in HTML format in
\fI/usr/share/doc/ntp\f[].
David L. Mills,
\fINetwork Time Protocol (Version 1)\fR,
RFC1059
.PP
David L. Mills,
\fINetwork Time Protocol (Version 2)\fR,
RFC1119
.PP
David L. Mills,
\fINetwork Time Protocol (Version 3)\fR,
RFC1305
.PP
David L. Mills and J. Martin, Ed. and J. Burbank and W. Kasch,
\fINetwork Time Protocol Version 4: Protocol and Algorithms Specification\fR,
RFC5905
.PP
David L. Mills and B. Haberman, Ed.,
\fINetwork Time Protocol Version 4: Autokey Specification\fR,
RFC5906
.PP
H. Gerstung and C. Elliott and B. Haberman, Ed.,
\fIDefinitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)\fR,
RFC5907
.PP
R. Gayraud and B. Lourdelet,
\fINetwork Time Protocol (NTP) Server Option for DHCPv6\fR,
RFC5908
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The
\f\*[B-Font]ntpd\fP
utility has gotten rather fat.
While not huge, it has gotten
larger than might be desirable for an elevated-priority
\f\*[B-Font]ntpd\fP
running on a workstation, particularly since many of
the fancy features which consume the space were designed more with
a busy primary server, rather than a high stratum workstation in
mind.
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
Portions of this document came from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntpd\fP
option definitions.
diff --git a/contrib/ntp/ntpd/ntpd.mdoc.in b/contrib/ntp/ntpd/ntpd.mdoc.in
index 2f97219ced96..6d99fbcf5e7a 100644
--- a/contrib/ntp/ntpd/ntpd.mdoc.in
+++ b/contrib/ntp/ntpd/ntpd.mdoc.in
@@ -1,908 +1,908 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPD @NTPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:29 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:36 AM by AutoGen 5.18.16
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpd
.Nd NTP daemon program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ <server1> ... <serverN> ]
.Pp
.Sh DESCRIPTION
The
.Nm
utility is an operating system daemon which sets
and maintains the system time of day in synchronism with Internet
standard time servers.
It is a complete implementation of the
Network Time Protocol (NTP) version 4, as defined by RFC\-5905,
but also retains compatibility with
version 3, as defined by RFC\-1305, and versions 1
and 2, as defined by RFC\-1059 and RFC\-1119, respectively.
.Pp
The
.Nm
utility does most computations in 64\-bit floating point
arithmetic and does relatively clumsy 64\-bit fixed point operations
only when necessary to preserve the ultimate precision, about 232
picoseconds.
While the ultimate precision is not achievable with
ordinary workstations and networks of today, it may be required
with future gigahertz CPU clocks and gigabit LANs.
.Pp
Ordinarily,
.Nm
reads the
.Xr ntp.conf 5
configuration file at startup time in order to determine the
synchronization sources and operating modes.
It is also possible to
specify a working, although limited, configuration entirely on the
command line, obviating the need for a configuration file.
This may
be particularly useful when the local host is to be configured as a
broadcast/multicast client, with all peers being determined by
listening to broadcasts at run time.
.Pp
If NetInfo support is built into
.Nm ,
then
.Nm
will attempt to read its configuration from the
NetInfo if the default
.Xr ntp.conf 5
file cannot be read and no file is
specified by the
.Fl c
option.
.Pp
Various internal
.Nm
variables can be displayed and
configuration options altered while the
.Nm
is running
using the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
utility programs.
.Pp
When
.Nm
starts it looks at the value of
.Xr umask 2 ,
and if zero
.Nm
will set the
.Xr umask 2
to 022.
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.It Fl a , Fl \-authreq
Require crypto authentication.
This option must not appear in combination with any of the following options:
authnoreq.
.sp
Require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is the default.
.It Fl A , Fl \-authnoreq
Do not require crypto authentication.
This option must not appear in combination with any of the following options:
authreq.
.sp
Do not require cryptographic authentication for broadcast client,
multicast client and symmetric passive associations.
This is almost never a good idea.
.It Fl b , Fl \-bcastsync
Allow us to sync to broadcast servers.
.sp
.It Fl c Ar string , Fl \-configfile Ns = Ns Ar string
configuration file name.
.sp
The name and path of the configuration file,
\fI/etc/ntp.conf\fP
by default.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl f Ar string , Fl \-driftfile Ns = Ns Ar string
frequency drift file name.
.sp
The name and path of the frequency file,
\fI/etc/ntp.drift\fP
by default.
This is the same operation as the
\fBdriftfile\fP \fIdriftfile\fP
configuration specification in the
\fI/etc/ntp.conf\fP
file.
.It Fl g , Fl \-panicgate
Allow the first adjustment to be Big.
This option may appear an unlimited number of times.
.sp
Normally,
\fBntpd\fP
exits with a message to the system log if the offset exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction; however, this can happen only once. If the threshold is exceeded after that,
\fBntpd\fP
will exit with a message to the system log. This option can be used with the
\fB\-q\fP
and
\fB\-x\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
.It Fl G , Fl \-force\-step\-once
Step any initial offset correction..
.sp
Normally,
\fBntpd\fP
steps the time if the time offset exceeds the step threshold,
which is 128 ms by default, and otherwise slews the time.
This option forces the initial offset correction to be stepped,
so the highest time accuracy can be achieved quickly.
However, this may also cause the time to be stepped back
so this option must not be used if
applications requiring monotonic time are running.
See the \fBtinker\fP configuration file directive for other options.
.It Fl i Ar string , Fl \-jaildir Ns = Ns Ar string
Jail directory.
.sp
Chroot the server to the directory
\fIjaildir\fP
.
This option also implies that the server attempts to drop root privileges at startup.
You may need to also specify a
\fB\-u\fP
option.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB\-\-enable\-clockctl\fP) or Linux (configure with
\fB\-\-enable\-linuxcaps\fP) or Solaris (configure with \fB\-\-enable\-solarisprivs\fP).
.It Fl I Ar iface , Fl \-interface Ns = Ns Ar iface
Listen on an interface name or address.
This option may appear an unlimited number of times.
.sp
Open the network address given, or all the addresses associated with the
given interface name. This option may appear multiple times. This option
also implies not opening other addresses, except wildcard and localhost.
This option is deprecated. Please consider using the configuration file
\fBinterface\fP command, which is more versatile.
.It Fl k Ar string , Fl \-keyfile Ns = Ns Ar string
path to symmetric keys.
.sp
Specify the name and path of the symmetric key file.
\fI/etc/ntp.keys\fP
is the default.
This is the same operation as the
\fBkeys\fP \fIkeyfile\fP
configuration file directive.
.It Fl l Ar string , Fl \-logfile Ns = Ns Ar string
path to the log file.
.sp
Specify the name and path of the log file.
The default is the system log file.
This is the same operation as the
\fBlogfile\fP \fIlogfile\fP
configuration file directive.
.It Fl L , Fl \-novirtualips
Do not listen to virtual interfaces.
.sp
Do not listen to virtual interfaces, defined as those with
names containing a colon. This option is deprecated. Please
consider using the configuration file \fBinterface\fP command, which
is more versatile.
.It Fl M , Fl \-modifymmtimer
Modify Multimedia Timer (Windows only).
.sp
Set the Windows Multimedia Timer to highest resolution. This
ensures the resolution does not change while ntpd is running,
avoiding timekeeping glitches associated with changes.
.It Fl n , Fl \-nofork
Do not fork.
This option must not appear in combination with any of the following options:
wait\-sync.
.sp
.It Fl N , Fl \-nice
Run at high priority.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the highest priority.
.It Fl p Ar string , Fl \-pidfile Ns = Ns Ar string
path to the PID file.
.sp
Specify the name and path of the file used to record
\fBntpd\fP's
process ID.
This is the same operation as the
\fBpidfile\fP \fIpidfile\fP
configuration file directive.
.It Fl P Ar number , Fl \-priority Ns = Ns Ar number
Process priority.
This option takes an integer number as its argument.
.sp
To the extent permitted by the operating system, run
\fBntpd\fP
at the specified
\fBsched_setscheduler(SCHED_FIFO)\fP
priority.
.It Fl q , Fl \-quit
Set the time and quit.
This option must not appear in combination with any of the following options:
saveconfigquit, wait\-sync.
.sp
\fBntpd\fP
will not daemonize and will exit after the clock is first
synchronized. This behavior mimics that of the
\fBntpdate\fP
program, which will soon be replaced with a shell script.
The
\fB\-g\fP
and
\fB\-x\fP
options can be used with this option.
Note: The kernel time discipline is disabled with this option.
.It Fl r Ar string , Fl \-propagationdelay Ns = Ns Ar string
Broadcast/propagation delay.
.sp
Specify the default propagation delay from the broadcast/multicast server to this client. This is necessary only if the delay cannot be computed automatically by the protocol.
.It Fl \-saveconfigquit Ns = Ns Ar string
Save parsed configuration and quit.
This option must not appear in combination with any of the following options:
quit, wait\-sync.
.sp
Cause \fBntpd\fP to parse its startup configuration file and save an
equivalent to the given filename and exit. This option was
designed for automated testing.
.It Fl s Ar string , Fl \-statsdir Ns = Ns Ar string
Statistics file location.
.sp
Specify the directory path for files created by the statistics facility.
This is the same operation as the
\fBstatsdir\fP \fIstatsdir\fP
configuration file directive.
.It Fl t Ar tkey , Fl \-trustedkey Ns = Ns Ar tkey
Trusted key number.
This option may appear an unlimited number of times.
.sp
Add the specified key number to the trusted key list.
.It Fl u Ar string , Fl \-user Ns = Ns Ar string
Run as userid (or userid:groupid).
.sp
Specify a user, and optionally a group, to switch to.
This option is only available if the OS supports adjusting the clock
without full root privileges.
This option is supported under NetBSD (configure with
\fB\-\-enable\-clockctl\fP) or Linux (configure with
\fB\-\-enable\-linuxcaps\fP) or Solaris (configure with \fB\-\-enable\-solarisprivs\fP).
.It Fl U Ar number , Fl \-updateinterval Ns = Ns Ar number
interval in seconds between scans for new or dropped interfaces.
This option takes an integer number as its argument.
.sp
Give the time in seconds between two scans for new or dropped interfaces.
For systems with routing socket support the scans will be performed shortly after the interface change
has been detected by the system.
Use 0 to disable scanning. 60 seconds is the minimum time between scans.
.It Fl \-var Ns = Ns Ar nvar
make ARG an ntp variable (RW).
This option may appear an unlimited number of times.
.sp
.It Fl \-dvar Ns = Ns Ar ndvar
make ARG an ntp variable (RW|DEF).
This option may appear an unlimited number of times.
.sp
.It Fl w Ar number , Fl \-wait\-sync Ns = Ns Ar number
Seconds to wait for first clock sync.
This option must not appear in combination with any of the following options:
nofork, quit, saveconfigquit.
This option takes an integer number as its argument.
.sp
If greater than zero, alters \fBntpd\fP's behavior when forking to
daemonize. Instead of exiting with status 0 immediately after
the fork, the parent waits up to the specified number of
seconds for the child to first synchronize the clock. The exit
status is zero (success) if the clock was synchronized,
otherwise it is \fBETIMEDOUT\fP.
This provides the option for a script starting \fBntpd\fP to easily
wait for the first set of the clock before proceeding.
.It Fl x , Fl \-slew
Slew up to 600 seconds.
.sp
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold.
This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually.
Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s.
Thus, an adjustment as much as 600 s will take almost 14 days to complete.
This option can be used with the
\fB\-g\fP
and
\fB\-q\fP
options.
See the
\fBtinker\fP
configuration file directive for other options.
Note: The kernel time discipline is disabled with this option.
.It Fl \-usepcc
Use CPU cycle counter (Windows only).
.sp
Attempt to substitute the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter and \fBQueryPerformanceCounter\fP are compared, and if
they have the same frequency, the CPU counter (RDTSC on x86) is
used directly, saving the overhead of a system call.
.It Fl \-pccfreq Ns = Ns Ar string
Force CPU cycle counter use (Windows only).
.sp
Force substitution the CPU counter for \fBQueryPerformanceCounter\fP.
The CPU counter (RDTSC on x86) is used unconditionally with the
given frequency (in Hz).
.It Fl m , Fl \-mdns
Register with mDNS as a NTP server.
.sp
Registers as an NTP server with the local mDNS server which allows
the server to be discovered via mDNS client lookup.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from environment variables named:
.nf
\fBNTPD_<option\-name>\fP or \fBNTPD\fP
.fi
.ad
.Sh USAGE
.Ss "How NTP Operates"
The
.Nm
utility operates by exchanging messages with
one or more configured servers over a range of designated poll intervals.
When
started, whether for the first or subsequent times, the program
requires several exchanges from the majority of these servers so
the signal processing and mitigation algorithms can accumulate and
groom the data and set the clock.
In order to protect the network
from bursts, the initial poll interval for each server is delayed
an interval randomized over a few seconds.
At the default initial poll
interval of 64s, several minutes can elapse before the clock is
set.
This initial delay to set the clock
can be safely and dramatically reduced using the
.Cm iburst
keyword with the
.Ic server
configuration
command, as described in
.Xr ntp.conf 5 .
.Pp
Most operating systems and hardware of today incorporate a
time\-of\-year (TOY) chip to maintain the time during periods when
the power is off.
When the machine is booted, the chip is used to
initialize the operating system time.
After the machine has
synchronized to a NTP server, the operating system corrects the
chip from time to time.
In the default case, if
.Nm
detects that the time on the host
is more than 1000s from the server time,
.Nm
assumes something must be terribly wrong and the only
reliable action is for the operator to intervene and set the clock
by hand.
(Reasons for this include there is no TOY chip,
or its battery is dead, or that the TOY chip is just of poor quality.)
This causes
.Nm
to exit with a panic message to
the system log.
The
.Fl g
option overrides this check and the
clock will be set to the server time regardless of the chip time
(up to 68 years in the past or future \(em
this is a limitation of the NTPv4 protocol).
However, and to protect against broken hardware, such as when the
CMOS battery fails or the clock counter becomes defective, once the
clock has been set an error greater than 1000s will cause
.Nm
to exit anyway.
.Pp
Under ordinary conditions,
.Nm
adjusts the clock in
small steps so that the timescale is effectively continuous and
without discontinuities.
Under conditions of extreme network
congestion, the roundtrip delay jitter can exceed three seconds and
the synchronization distance, which is equal to one\-half the
roundtrip delay plus error budget terms, can become very large.
The
.Nm
algorithms discard sample offsets exceeding 128 ms,
unless the interval during which no sample offset is less than 128
ms exceeds 900s.
The first sample after that, no matter what the
offset, steps the clock to the indicated time.
In practice this
reduces the false alarm rate where the clock is stepped in error to
a vanishingly low incidence.
.Pp
As the result of this behavior, once the clock has been set it
very rarely strays more than 128 ms even under extreme cases of
network path congestion and jitter.
Sometimes, in particular when
.Nm
is first started without a valid drift file
on a system with a large intrinsic drift
the error might grow to exceed 128 ms,
which would cause the clock to be set backwards
if the local clock time is more than 128 s
in the future relative to the server.
In some applications, this behavior may be unacceptable.
There are several solutions, however.
If the
.Fl x
option is included on the command line, the clock will
never be stepped and only slew corrections will be used.
But this choice comes with a cost that
should be carefully explored before deciding to use
the
.Fl x
option.
The maximum slew rate possible is limited
to 500 parts\-per\-million (PPM) as a consequence of the correctness
principles on which the NTP protocol and algorithm design are
based.
As a result, the local clock can take a long time to
converge to an acceptable offset, about 2,000 s for each second the
clock is outside the acceptable range.
During this interval the
local clock will not be consistent with any other network clock and
the system cannot be used for distributed applications that require
correctly synchronized network time.
.Pp
In spite of the above precautions, sometimes when large
frequency errors are present the resulting time offsets stray
outside the 128\-ms range and an eventual step or slew time
correction is required.
If following such a correction the
frequency error is so large that the first sample is outside the
acceptable range,
.Nm
enters the same state as when the
.Pa ntp.drift
file is not present.
The intent of this behavior
is to quickly correct the frequency and restore operation to the
normal tracking mode.
In the most extreme cases
(the host
.Cm time.ien.it
comes to mind), there may be occasional
step/slew corrections and subsequent frequency corrections.
It
helps in these cases to use the
.Cm burst
keyword when
configuring the server, but
ONLY
when you have permission to do so from the owner of the target host.
.Pp
Finally,
in the past many startup scripts would run
.Xr ntpdate @NTPDATE_MS@
or
.Xr sntp @SNTP_MS@
to get the system clock close to correct before starting
.Xr ntpd @NTPD_MS@ ,
but this was never more than a mediocre hack and is no longer needed.
If you are following the instructions in
.Sx "Starting NTP (Best Current Practice)"
and you still need to set the system time before starting
.Nm ,
please open a bug report and document what is going on,
and then look at using
.Xr sntp @SNTP_MS@
if you really need to set the clock before starting
.Nm .
.Pp
There is a way to start
.Xr ntpd @NTPD_MS@
that often addresses all of the problems mentioned above.
.Ss "Starting NTP (Best Current Practice)"
First, use the
.Cm iburst
option on your
.Cm server
entries.
.Pp
If you can also keep a good
.Pa ntp.drift
file then
.Xr ntpd @NTPD_MS@
will effectively "warm\-start" and your system's clock will
be stable in under 11 seconds' time.
.Pp
As soon as possible in the startup sequence, start
.Xr ntpd @NTPD_MS@
with at least the
.Fl g
and perhaps the
.Fl N
options.
Then,
start the rest of your "normal" processes.
This will give
.Xr ntpd @NTPD_MS@
as much time as possible to get the system's clock synchronized and stable.
.Pp
Finally,
if you have processes like
.Cm dovecot
or database servers
that require
monotonically\-increasing time,
run
.Xr ntp\-wait 1ntp\-waitmdoc
as late as possible in the boot sequence
(perhaps with the
.Fl v
flag)
and after
.Xr ntp\-wait 1ntp\-waitmdoc
exits successfully
it is as safe as it will ever be to start any process that require
stable time.
.Ss "Frequency Discipline"
The
.Nm
behavior at startup depends on whether the
frequency file, usually
.Pa ntp.drift ,
exists.
This file
contains the latest estimate of clock frequency error.
When the
.Nm
is started and the file does not exist, the
.Nm
enters a special mode designed to quickly adapt to
the particular system clock oscillator time and frequency error.
This takes approximately 15 minutes, after which the time and
frequency are set to nominal values and the
.Nm
enters
normal mode, where the time and frequency are continuously tracked
relative to the server.
After one hour the frequency file is
created and the current frequency offset written to it.
When the
.Nm
is started and the file does exist, the
.Nm
frequency is initialized from the file and enters normal mode
immediately.
After that the current frequency offset is written to
the file at hourly intervals.
.Ss "Operating Modes"
The
.Nm
utility can operate in any of several modes, including
symmetric active/passive, client/server broadcast/multicast and
manycast, as described in the
.Qq Association Management
page
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp ) .
It normally operates continuously while
monitoring for small changes in frequency and trimming the clock
for the ultimate precision.
However, it can operate in a one\-time
mode where the time is set from an external server and frequency is
set from a previously recorded frequency file.
A
broadcast/multicast or manycast client can discover remote servers,
compute server\-client propagation delay correction factors and
configure itself automatically.
This makes it possible to deploy a
fleet of workstations without specifying configuration details
specific to the local environment.
.Pp
By default,
.Nm
runs in continuous mode where each of
possibly several external servers is polled at intervals determined
by an intricate state machine.
The state machine measures the
incidental roundtrip delay jitter and oscillator frequency wander
and determines the best poll interval using a heuristic algorithm.
Ordinarily, and in most operating environments, the state machine
will start with 64s intervals and eventually increase in steps to
1024s.
A small amount of random variation is introduced in order to
avoid bunching at the servers.
In addition, should a server become
unreachable for some time, the poll interval is increased in steps
to 1024s in order to reduce network overhead.
.Pp
In some cases it may not be practical for
.Nm
to run continuously.
A common workaround has been to run the
.Xr ntpdate @NTPDATE_MS@
or
.Xr sntp @SNTP_MS@
programs from a
.Xr cron 8
job at designated
times.
However, these programs do not have the crafted signal
processing, error checking or mitigation algorithms of
.Nm .
The
.Fl q
option is intended for this purpose.
Setting this option will cause
.Nm
to exit just after
setting the clock for the first time.
The procedure for initially
setting the clock is the same as in continuous mode; most
applications will probably want to specify the
.Cm iburst
keyword with the
.Ic server
configuration command.
With this
keyword a volley of messages are exchanged to groom the data and
the clock is set in about 10 s.
If nothing is heard after a
couple of minutes, the daemon times out and exits.
After a suitable
period of mourning, the
.Xr ntpdate @NTPDATE_MS@
program will be
retired.
.Pp
When kernel support is available to discipline the clock
frequency, which is the case for stock Solaris, Tru64, Linux and
.Fx ,
a useful feature is available to discipline the clock
frequency.
First,
.Nm
is run in continuous mode with
selected servers in order to measure and record the intrinsic clock
frequency offset in the frequency file.
It may take some hours for
the frequency and offset to settle down.
Then the
.Nm
is
stopped and run in one\-time mode as required.
At each startup, the
frequency is read from the file and initializes the kernel
frequency.
.Ss "Poll Interval Control"
This version of NTP includes an intricate state machine to
reduce the network load while maintaining a quality of
synchronization consistent with the observed jitter and wander.
There are a number of ways to tailor the operation in order enhance
accuracy by reducing the interval or to reduce network overhead by
increasing it.
However, the user is advised to carefully consider
the consequences of changing the poll adjustment range from the
default minimum of 64 s to the default maximum of 1,024 s.
The
default minimum can be changed with the
.Ic tinker
.Cm minpoll
command to a value not less than 16 s.
This value is used for all
configured associations, unless overridden by the
.Cm minpoll
option on the configuration command.
Note that most device drivers
will not operate properly if the poll interval is less than 64 s
and that the broadcast server and manycast client associations will
also use the default, unless overridden.
.Pp
In some cases involving dial up or toll services, it may be
useful to increase the minimum interval to a few tens of minutes
and maximum interval to a day or so.
Under normal operation
conditions, once the clock discipline loop has stabilized the
interval will be increased in steps from the minimum to the
maximum.
However, this assumes the intrinsic clock frequency error
is small enough for the discipline loop correct it.
The capture
range of the loop is 500 PPM at an interval of 64s decreasing by a
factor of two for each doubling of interval.
At a minimum of 1,024
s, for example, the capture range is only 31 PPM.
If the intrinsic
error is greater than this, the drift file
.Pa ntp.drift
will
have to be specially tailored to reduce the residual error below
this limit.
Once this is done, the drift file is automatically
updated once per hour and is available to initialize the frequency
on subsequent daemon restarts.
.Ss "The huff\-n'\-puff Filter"
In scenarios where a considerable amount of data are to be
downloaded or uploaded over telephone modems, timekeeping quality
can be seriously degraded.
This occurs because the differential
delays on the two directions of transmission can be quite large.
In
many cases the apparent time errors are so large as to exceed the
step threshold and a step correction can occur during and after the
data transfer is in progress.
.Pp
The huff\-n'\-puff filter is designed to correct the apparent time
offset in these cases.
It depends on knowledge of the propagation
delay when no other traffic is present.
In common scenarios this
occurs during other than work hours.
The filter maintains a shift
register that remembers the minimum delay over the most recent
interval measured usually in hours.
Under conditions of severe
delay, the filter corrects the apparent offset using the sign of
the offset and the difference between the apparent delay and
minimum delay.
The name of the filter reflects the negative (huff)
and positive (puff) correction, which depends on the sign of the
offset.
.Pp
The filter is activated by the
.Ic tinker
command and
.Cm huffpuff
keyword, as described in
.Xr ntp.conf 5 .
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh FILES
.Bl -tag -width /etc/ntp.drift -compact
.It Pa /etc/ntp.conf
the default name of the configuration file
.It Pa /etc/ntp.drift
the default name of the drift file
.It Pa /etc/ntp.keys
the default name of the key file
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpdate @NTPDATE_MS@ ,
.Xr ntpdc @NTPDC_MS@ ,
.Xr ntpq @NTPQ_MS@ ,
.Xr sntp @SNTP_MS@
.Pp
In addition to the manual pages provided,
comprehensive documentation is available on the world wide web
at
.Li http://www.ntp.org/ .
A snapshot of this documentation is available in HTML format in
.Pa /usr/share/doc/ntp .
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 1)
.%O RFC1059
.Re
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 2)
.%O RFC1119
.Re
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 3)
.%O RFC1305
.Re
.Rs
.%A David L. Mills
.%A J. Martin, Ed.
.%A J. Burbank
.%A W. Kasch
.%T Network Time Protocol Version 4: Protocol and Algorithms Specification
.%O RFC5905
.Re
.Rs
.%A David L. Mills
.%A B. Haberman, Ed.
.%T Network Time Protocol Version 4: Autokey Specification
.%O RFC5906
.Re
.Rs
.%A H. Gerstung
.%A C. Elliott
.%A B. Haberman, Ed.
.%T Definitions of Managed Objects for Network Time Protocol Version 4: (NTPv4)
.%O RFC5907
.Re
.Rs
.%A R. Gayraud
.%A B. Lourdelet
.%T Network Time Protocol (NTP) Server Option for DHCPv6
.%O RFC5908
.Re
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The
.Nm
utility has gotten rather fat.
While not huge, it has gotten
larger than might be desirable for an elevated\-priority
.Nm
running on a workstation, particularly since many of
the fancy features which consume the space were designed more with
a busy primary server, rather than a high stratum workstation in
mind.
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
Portions of this document came from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntpd\fP
option definitions.
diff --git a/contrib/ntp/ntpdc/invoke-ntpdc.texi b/contrib/ntp/ntpdc/invoke-ntpdc.texi
index 62bc28ab1bf9..30b4a66d6a87 100644
--- a/contrib/ntp/ntpdc/invoke-ntpdc.texi
+++ b/contrib/ntp/ntpdc/invoke-ntpdc.texi
@@ -1,358 +1,358 @@
@node ntpdc Invocation
@section Invoking ntpdc
@pindex ntpdc
@cindex vendor-specific NTPD control program
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:49:52 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:37:59 AM by AutoGen 5.18.16
# From the definitions ntpdc-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{ntpdc}
is deprecated.
Please use
@code{ntpq(1ntpqmdoc)} instead - it can do everything
@code{ntpdc}
used to do, and it does so using a much more sane interface.
@code{ntpdc}
is a utility program used to query
@code{ntpd(1ntpdmdoc)}
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
@code{ntpdc}
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd's configuration file may also be specified at run time using
@code{ntpdc}
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpdc} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntpdc usage:: ntpdc help/usage (@option{--help})
* ntpdc ipv4:: ipv4 option (-4)
* ntpdc ipv6:: ipv6 option (-6)
* ntpdc command:: command option (-c)
* ntpdc interactive:: interactive option (-i)
* ntpdc listpeers:: listpeers option (-l)
* ntpdc numeric:: numeric option (-n)
* ntpdc peers:: peers option (-p)
* ntpdc showpeers:: showpeers option (-s)
* ntpdc unconnected:: unconnected option (-u)
* ntpdc config:: presetting/configuring ntpdc
* ntpdc exit status:: exit status
* ntpdc Usage:: Usage
* ntpdc See Also:: See Also
* ntpdc Authors:: Authors
* ntpdc Bugs:: Bugs
@end menu
@node ntpdc usage
@subsection ntpdc help/usage (@option{--help})
@cindex ntpdc help
This is the automatically generated usage text for ntpdc.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p16
+ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p17
Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-c Str command run a command and exit
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-i no interactive Force ntpq to operate in interactive mode
- prohibits these options:
command
listpeers
peers
showpeers
-l no listpeers Print a list of the peers
- prohibits the option 'command'
-n no numeric numeric host addresses
-p no peers Print a list of the peers
- prohibits the option 'command'
-s no showpeers Show a list of the peers
- prohibits the option 'command'
-u no unconnected Use unconnected UDP to communicate with ntpd (default on Windows)
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-> opt save-opts save the option state to a config file
-< Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTPDC_*
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node ntpdc ipv4
@subsection ipv4 option (-4)
@cindex ntpdc-ipv4
This is the ``force ipv4 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv6.
@end itemize
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
@node ntpdc ipv6
@subsection ipv6 option (-6)
@cindex ntpdc-ipv6
This is the ``force ipv6 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv4.
@end itemize
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
@node ntpdc command
@subsection command option (-c)
@cindex ntpdc-command
This is the ``run a command and exit'' option.
This option takes a string argument @file{cmd}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
@node ntpdc interactive
@subsection interactive option (-i)
@cindex ntpdc-interactive
This is the ``force ntpq to operate in interactive mode'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
@end itemize
Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
@node ntpdc listpeers
@subsection listpeers option (-l)
@cindex ntpdc-listpeers
This is the ``print a list of the peers'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
command.
@end itemize
Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the 'listpeers' interactive command.
@node ntpdc numeric
@subsection numeric option (-n)
@cindex ntpdc-numeric
This is the ``numeric host addresses'' option.
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
@node ntpdc peers
@subsection peers option (-p)
@cindex ntpdc-peers
This is the ``print a list of the peers'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
command.
@end itemize
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
@node ntpdc showpeers
@subsection showpeers option (-s)
@cindex ntpdc-showpeers
This is the ``show a list of the peers'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
command.
@end itemize
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'dmpeers' interactive command.
@node ntpdc unconnected
@subsection unconnected option (-u)
@cindex ntpdc-unconnected
This is the ``use unconnected udp to communicate with ntpd (default on windows)'' option.
Open an unconnected UDP association to ntpd (the default
on Windows).
@node ntpdc config
@subsection presetting/configuring ntpdc
Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{NTPDC} and @code{NTPDC_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{NTPDC} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
@noindent
@code{libopts} will search in 2 places for configuration files:
@itemize @bullet
@item
$HOME
@item
$PWD
@end itemize
The environment variables @code{HOME}, and @code{PWD}
are expanded and replaced when @file{ntpdc} runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named @file{.ntprc} is searched for
within that directory and processed.
Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
@example
[NTPDC]
@end example
@noindent
or by
@example
<?program ntpdc>
@end example
@noindent
Do not mix these styles within one configuration file.
Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
<sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions. You simply note that it is a
hierarchicly valued option. @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node ntpdc exit status
@subsection ntpdc exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error. Please report
it to autogen-users@@lists.sourceforge.net. Thank you.
@end table
@node ntpdc Usage
@subsection ntpdc Usage
@node ntpdc See Also
@subsection ntpdc See Also
@node ntpdc Authors
@subsection ntpdc Authors
@node ntpdc Bugs
@subsection ntpdc Bugs
diff --git a/contrib/ntp/ntpdc/ntpdc-opts.c b/contrib/ntp/ntpdc/ntpdc-opts.c
index f2fde352b5a6..536d1b970f98 100644
--- a/contrib/ntp/ntpdc/ntpdc-opts.c
+++ b/contrib/ntp/ntpdc/ntpdc-opts.c
@@ -1,1206 +1,1206 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 02:49:46 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:37:53 AM by AutoGen 5.18.16
* From the definitions ntpdc-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpdc author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpdc program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "ntpdc-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpdc_opt_strs+0)
#define zLicenseDescrip (ntpdc_opt_strs+342)
/*
* global included definitions
*/
#ifdef __windows
extern int atoi(const char*);
#else
# include <stdlib.h>
#endif
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ntpdc options
*/
static char const ntpdc_opt_strs[2005] =
-/* 0 */ "ntpdc 4.2.8p16\n"
+/* 0 */ "ntpdc 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 342 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1010 */ "Force IPv4 DNS name resolution\0"
/* 1041 */ "IPV4\0"
/* 1046 */ "ipv4\0"
/* 1051 */ "Force IPv6 DNS name resolution\0"
/* 1082 */ "IPV6\0"
/* 1087 */ "ipv6\0"
/* 1092 */ "run a command and exit\0"
/* 1115 */ "COMMAND\0"
/* 1123 */ "command\0"
/* 1131 */ "Increase debug verbosity level\0"
/* 1162 */ "DEBUG_LEVEL\0"
/* 1174 */ "debug-level\0"
/* 1186 */ "Set the debug verbosity level\0"
/* 1216 */ "SET_DEBUG_LEVEL\0"
/* 1232 */ "set-debug-level\0"
/* 1248 */ "Force ntpq to operate in interactive mode\0"
/* 1290 */ "INTERACTIVE\0"
/* 1302 */ "interactive\0"
/* 1314 */ "Print a list of the peers\0"
/* 1340 */ "LISTPEERS\0"
/* 1350 */ "listpeers\0"
/* 1360 */ "numeric host addresses\0"
/* 1383 */ "NUMERIC\0"
/* 1391 */ "numeric\0"
/* 1399 */ "PEERS\0"
/* 1405 */ "peers\0"
/* 1411 */ "Show a list of the peers\0"
/* 1436 */ "SHOWPEERS\0"
/* 1446 */ "showpeers\0"
/* 1456 */ "Use unconnected UDP to communicate with ntpd (default on Windows)\0"
/* 1522 */ "UNCONNECTED\0"
/* 1534 */ "unconnected\0"
/* 1546 */ "display extended usage information and exit\0"
/* 1590 */ "help\0"
/* 1595 */ "extended usage information passed thru pager\0"
/* 1640 */ "more-help\0"
/* 1650 */ "output version information and exit\0"
/* 1686 */ "version\0"
/* 1694 */ "save the option state to a config file\0"
/* 1733 */ "save-opts\0"
/* 1743 */ "load options from a config file\0"
/* 1775 */ "LOAD_OPTS\0"
/* 1785 */ "no-load-opts\0"
/* 1798 */ "no\0"
/* 1801 */ "NTPDC\0"
-/* 1807 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p16\n"
+/* 1807 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
/* 1938 */ "$HOME\0"
/* 1944 */ ".\0"
/* 1946 */ ".ntprc\0"
/* 1953 */ "https://bugs.ntp.org, bugs@ntp.org\0"
/* 1988 */ "\n\0"
-/* 1990 */ "ntpdc 4.2.8p16";
+/* 1990 */ "ntpdc 4.2.8p17";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
#define IPV4_DESC (ntpdc_opt_strs+1010)
/** Upper-cased name for the ipv4 option */
#define IPV4_NAME (ntpdc_opt_strs+1041)
/** Name string for the ipv4 option */
#define IPV4_name (ntpdc_opt_strs+1046)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv4 option */
#define IPV4_FLAGS (OPTST_DISABLED)
/**
* ipv6 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
#define IPV6_DESC (ntpdc_opt_strs+1051)
/** Upper-cased name for the ipv6 option */
#define IPV6_NAME (ntpdc_opt_strs+1082)
/** Name string for the ipv6 option */
#define IPV6_name (ntpdc_opt_strs+1087)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv6 option */
#define IPV6_FLAGS (OPTST_DISABLED)
/**
* command option description:
*/
/** Descriptive text for the command option */
#define COMMAND_DESC (ntpdc_opt_strs+1092)
/** Upper-cased name for the command option */
#define COMMAND_NAME (ntpdc_opt_strs+1115)
/** Name string for the command option */
#define COMMAND_name (ntpdc_opt_strs+1123)
/** Compiled in flag settings for the command option */
#define COMMAND_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
#define DEBUG_LEVEL_DESC (ntpdc_opt_strs+1131)
/** Upper-cased name for the debug-level option */
#define DEBUG_LEVEL_NAME (ntpdc_opt_strs+1162)
/** Name string for the debug-level option */
#define DEBUG_LEVEL_name (ntpdc_opt_strs+1174)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
/**
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
#define SET_DEBUG_LEVEL_DESC (ntpdc_opt_strs+1186)
/** Upper-cased name for the set-debug-level option */
#define SET_DEBUG_LEVEL_NAME (ntpdc_opt_strs+1216)
/** Name string for the set-debug-level option */
#define SET_DEBUG_LEVEL_name (ntpdc_opt_strs+1232)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* interactive option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the interactive option */
#define INTERACTIVE_DESC (ntpdc_opt_strs+1248)
/** Upper-cased name for the interactive option */
#define INTERACTIVE_NAME (ntpdc_opt_strs+1290)
/** Name string for the interactive option */
#define INTERACTIVE_name (ntpdc_opt_strs+1302)
/** Other options that appear in conjunction with the interactive option */
static int const aInteractiveCantList[] = {
INDEX_OPT_COMMAND,
INDEX_OPT_LISTPEERS,
INDEX_OPT_PEERS,
INDEX_OPT_SHOWPEERS, NO_EQUIVALENT };
/** Compiled in flag settings for the interactive option */
#define INTERACTIVE_FLAGS (OPTST_DISABLED)
/**
* listpeers option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the listpeers option */
#define LISTPEERS_DESC (ntpdc_opt_strs+1314)
/** Upper-cased name for the listpeers option */
#define LISTPEERS_NAME (ntpdc_opt_strs+1340)
/** Name string for the listpeers option */
#define LISTPEERS_name (ntpdc_opt_strs+1350)
/** Other options that appear in conjunction with the listpeers option */
static int const aListpeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
/** Compiled in flag settings for the listpeers option */
#define LISTPEERS_FLAGS (OPTST_DISABLED)
/**
* numeric option description:
*/
/** Descriptive text for the numeric option */
#define NUMERIC_DESC (ntpdc_opt_strs+1360)
/** Upper-cased name for the numeric option */
#define NUMERIC_NAME (ntpdc_opt_strs+1383)
/** Name string for the numeric option */
#define NUMERIC_name (ntpdc_opt_strs+1391)
/** Compiled in flag settings for the numeric option */
#define NUMERIC_FLAGS (OPTST_DISABLED)
/**
* peers option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the peers option */
#define PEERS_DESC (ntpdc_opt_strs+1314)
/** Upper-cased name for the peers option */
#define PEERS_NAME (ntpdc_opt_strs+1399)
/** Name string for the peers option */
#define PEERS_name (ntpdc_opt_strs+1405)
/** Other options that appear in conjunction with the peers option */
static int const aPeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
/** Compiled in flag settings for the peers option */
#define PEERS_FLAGS (OPTST_DISABLED)
/**
* showpeers option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the showpeers option */
#define SHOWPEERS_DESC (ntpdc_opt_strs+1411)
/** Upper-cased name for the showpeers option */
#define SHOWPEERS_NAME (ntpdc_opt_strs+1436)
/** Name string for the showpeers option */
#define SHOWPEERS_name (ntpdc_opt_strs+1446)
/** Other options that appear in conjunction with the showpeers option */
static int const aShowpeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
/** Compiled in flag settings for the showpeers option */
#define SHOWPEERS_FLAGS (OPTST_DISABLED)
/**
* unconnected option description:
*/
/** Descriptive text for the unconnected option */
#define UNCONNECTED_DESC (ntpdc_opt_strs+1456)
/** Upper-cased name for the unconnected option */
#define UNCONNECTED_NAME (ntpdc_opt_strs+1522)
/** Name string for the unconnected option */
#define UNCONNECTED_name (ntpdc_opt_strs+1534)
/** Compiled in flag settings for the unconnected option */
#define UNCONNECTED_FLAGS (OPTST_DISABLED)
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ntpdc_opt_strs+1546)
#define HELP_name (ntpdc_opt_strs+1590)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ntpdc_opt_strs+1595)
#define MORE_HELP_name (ntpdc_opt_strs+1640)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (ntpdc_opt_strs+1650)
#define VER_name (ntpdc_opt_strs+1686)
#define SAVE_OPTS_DESC (ntpdc_opt_strs+1694)
#define SAVE_OPTS_name (ntpdc_opt_strs+1733)
#define LOAD_OPTS_DESC (ntpdc_opt_strs+1743)
#define LOAD_OPTS_NAME (ntpdc_opt_strs+1775)
#define NO_LOAD_OPTS_name (ntpdc_opt_strs+1785)
#define LOAD_OPTS_pfx (ntpdc_opt_strs+1798)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
*/
extern tOptProc
ntpOptionPrintVersion, optionBooleanVal, optionNestedVal,
optionNumericVal, optionPagedUsage, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doOptDebug_Level, doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ntpdc Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ntpdc program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_IPV4,
/* equiv idx, value */ 0, VALUE_OPT_IPV4,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV4_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv4 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv4CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV4_DESC, IPV4_NAME, IPV4_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_IPV6,
/* equiv idx, value */ 1, VALUE_OPT_IPV6,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV6_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv6 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv6CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV6_DESC, IPV6_NAME, IPV6_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_COMMAND,
/* equiv idx, value */ 2, VALUE_OPT_COMMAND,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ COMMAND_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --command */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ COMMAND_DESC, COMMAND_NAME, COMMAND_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equiv idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptDebug_Level,
/* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equiv idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --set-debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 5, VALUE_OPT_INTERACTIVE,
/* equiv idx, value */ 5, VALUE_OPT_INTERACTIVE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INTERACTIVE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --interactive */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aInteractiveCantList,
/* option proc */ NULL,
/* desc, NAME, name */ INTERACTIVE_DESC, INTERACTIVE_NAME, INTERACTIVE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 6, VALUE_OPT_LISTPEERS,
/* equiv idx, value */ 6, VALUE_OPT_LISTPEERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LISTPEERS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --listpeers */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aListpeersCantList,
/* option proc */ NULL,
/* desc, NAME, name */ LISTPEERS_DESC, LISTPEERS_NAME, LISTPEERS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 7, VALUE_OPT_NUMERIC,
/* equiv idx, value */ 7, VALUE_OPT_NUMERIC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NUMERIC_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --numeric */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ NUMERIC_DESC, NUMERIC_NAME, NUMERIC_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 8, VALUE_OPT_PEERS,
/* equiv idx, value */ 8, VALUE_OPT_PEERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PEERS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --peers */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aPeersCantList,
/* option proc */ NULL,
/* desc, NAME, name */ PEERS_DESC, PEERS_NAME, PEERS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 9, VALUE_OPT_SHOWPEERS,
/* equiv idx, value */ 9, VALUE_OPT_SHOWPEERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SHOWPEERS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --showpeers */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aShowpeersCantList,
/* option proc */ NULL,
/* desc, NAME, name */ SHOWPEERS_DESC, SHOWPEERS_NAME, SHOWPEERS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 10, VALUE_OPT_UNCONNECTED,
/* equiv idx, value */ 10, VALUE_OPT_UNCONNECTED,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ UNCONNECTED_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --unconnected */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ UNCONNECTED_DESC, UNCONNECTED_NAME, UNCONNECTED_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionLoadOpt,
/* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
/* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpdc. */
#define zPROGNAME (ntpdc_opt_strs+1801)
/** Reference to the title line for ntpdc usage. */
#define zUsageTitle (ntpdc_opt_strs+1807)
/** ntpdc configuration file name. */
#define zRcName (ntpdc_opt_strs+1946)
/** Directories to search for ntpdc config files. */
static char const * const apzHomeList[3] = {
ntpdc_opt_strs+1938,
ntpdc_opt_strs+1944,
NULL };
/** The ntpdc program bug email address. */
#define zBugsAddr (ntpdc_opt_strs+1953)
/** Clarification/explanation of what ntpdc does. */
#define zExplain (ntpdc_opt_strs+1988)
/** Extra detail explaining what ntpdc does. */
#define zDetail (NULL)
/** The full version string for ntpdc. */
#define zFullVersion (ntpdc_opt_strs+1990)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define ntpdc_full_usage (NULL)
#define ntpdc_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = NTPDC_EXIT_SUCCESS;
optionUsage(&ntpdcOptions, ex_code);
/* NOTREACHED */
exit(NTPDC_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug-level option.
*
* @param[in] pOptions the ntpdc options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
{
/*
* Be sure the flag-code[0] handles special values for the options pointer
* viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
* ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
* reset its state.
*/
/* extracted from debug-opt.def, line 15 */
OPT_VALUE_SET_DEBUG_LEVEL++;
(void)pOptDesc;
(void)pOptions;
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ntpdc.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ntpdc
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ntpdc_packager_info NULL
#else
/** Packager information for ntpdc. */
static char const ntpdc_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ntpdc bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ntpdc. The one structure that
* binds them all.
*/
tOptions ntpdcOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_ENVIRON
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
INDEX_OPT_SAVE_OPTS, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
16 /* full option count */, 11 /* user option count */,
ntpdc_full_usage, ntpdc_short_usage,
NULL, NULL,
PKGDATADIR, ntpdc_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ntpdc program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(NTPDC_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the ntpdcOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ntpdcOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the ntpdcOptions structure noted in the
comments below. The literal text is defined in ntpdc_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ntpdc_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via ntpdcOptions.pzCopyright */
- puts(_("ntpdc 4.2.8p16\n\
+ puts(_("ntpdc 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via ntpdcOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Force IPv4 DNS name resolution"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Force IPv6 DNS name resolution"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("run a command and exit"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Increase debug verbosity level"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Set the debug verbosity level"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Force ntpq to operate in interactive mode"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Print a list of the peers"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("numeric host addresses"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Print a list of the peers"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Show a list of the peers"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("Use unconnected UDP to communicate with ntpd (default on Windows)"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("save the option state to a config file"));
/* referenced via ntpdcOptions.pOptDesc->pzText */
puts(_("load options from a config file"));
/* referenced via ntpdcOptions.pzUsageTitle */
- puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p16\n\
+ puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpdcOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpdcOptions.pzFullVersion */
- puts(_("ntpdc 4.2.8p16"));
+ puts(_("ntpdc 4.2.8p17"));
/* referenced via ntpdcOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ntpdcOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* ntpdc-opts.c ends here */
diff --git a/contrib/ntp/ntpdc/ntpdc-opts.h b/contrib/ntp/ntpdc/ntpdc-opts.h
index 524b081703d4..47d3f481a54e 100644
--- a/contrib/ntp/ntpdc/ntpdc-opts.h
+++ b/contrib/ntp/ntpdc/ntpdc-opts.h
@@ -1,310 +1,310 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 02:49:46 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:37:52 AM by AutoGen 5.18.16
* From the definitions ntpdc-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpdc author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpdc program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ntpdc program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_NTPDC_OPTS_H_GUARD
#define AUTOOPTS_NTPDC_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for ntpdc
*/
typedef enum {
INDEX_OPT_IPV4 = 0,
INDEX_OPT_IPV6 = 1,
INDEX_OPT_COMMAND = 2,
INDEX_OPT_DEBUG_LEVEL = 3,
INDEX_OPT_SET_DEBUG_LEVEL = 4,
INDEX_OPT_INTERACTIVE = 5,
INDEX_OPT_LISTPEERS = 6,
INDEX_OPT_NUMERIC = 7,
INDEX_OPT_PEERS = 8,
INDEX_OPT_SHOWPEERS = 9,
INDEX_OPT_UNCONNECTED = 10,
INDEX_OPT_VERSION = 11,
INDEX_OPT_HELP = 12,
INDEX_OPT_MORE_HELP = 13,
INDEX_OPT_SAVE_OPTS = 14,
INDEX_OPT_LOAD_OPTS = 15
} teOptIndex;
/** count of all options for ntpdc */
#define OPTION_CT 16
/** ntpdc version */
-#define NTPDC_VERSION "4.2.8p16"
+#define NTPDC_VERSION "4.2.8p17"
/** Full ntpdc version text */
-#define NTPDC_FULL_VERSION "ntpdc 4.2.8p16"
+#define NTPDC_FULL_VERSION "ntpdc 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(IPV4)
*/
#define DESC(n) (ntpdcOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ntpdc exit codes
*/
typedef enum {
NTPDC_EXIT_SUCCESS = 0,
NTPDC_EXIT_FAILURE = 1,
NTPDC_EXIT_USAGE_ERROR = 64,
NTPDC_EXIT_NO_CONFIG_INPUT = 66,
NTPDC_EXIT_LIBOPTS_FAILURE = 70
} ntpdc_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef IPV4
# warning undefining IPV4 due to option name conflict
# undef IPV4
# endif
# ifdef IPV6
# warning undefining IPV6 due to option name conflict
# undef IPV6
# endif
# ifdef COMMAND
# warning undefining COMMAND due to option name conflict
# undef COMMAND
# endif
# ifdef DEBUG_LEVEL
# warning undefining DEBUG_LEVEL due to option name conflict
# undef DEBUG_LEVEL
# endif
# ifdef SET_DEBUG_LEVEL
# warning undefining SET_DEBUG_LEVEL due to option name conflict
# undef SET_DEBUG_LEVEL
# endif
# ifdef INTERACTIVE
# warning undefining INTERACTIVE due to option name conflict
# undef INTERACTIVE
# endif
# ifdef LISTPEERS
# warning undefining LISTPEERS due to option name conflict
# undef LISTPEERS
# endif
# ifdef NUMERIC
# warning undefining NUMERIC due to option name conflict
# undef NUMERIC
# endif
# ifdef PEERS
# warning undefining PEERS due to option name conflict
# undef PEERS
# endif
# ifdef SHOWPEERS
# warning undefining SHOWPEERS due to option name conflict
# undef SHOWPEERS
# endif
# ifdef UNCONNECTED
# warning undefining UNCONNECTED due to option name conflict
# undef UNCONNECTED
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef IPV4
# undef IPV6
# undef COMMAND
# undef DEBUG_LEVEL
# undef SET_DEBUG_LEVEL
# undef INTERACTIVE
# undef LISTPEERS
# undef NUMERIC
# undef PEERS
# undef SHOWPEERS
# undef UNCONNECTED
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_IPV4 '4'
#define VALUE_OPT_IPV6 '6'
#define VALUE_OPT_COMMAND 'c'
#define VALUE_OPT_DEBUG_LEVEL 'd'
#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
#define VALUE_OPT_INTERACTIVE 'i'
#define VALUE_OPT_LISTPEERS 'l'
#define VALUE_OPT_NUMERIC 'n'
#define VALUE_OPT_PEERS 'p'
#define VALUE_OPT_SHOWPEERS 's'
#define VALUE_OPT_UNCONNECTED 'u'
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1001
/** option flag (value) for save-opts-value option */
#define VALUE_OPT_SAVE_OPTS '>'
/** option flag (value) for load-opts-value option */
#define VALUE_OPT_LOAD_OPTS '<'
#define SET_OPT_SAVE_OPTS(a) STMTS( \
DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ntpdcOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ntpdcOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ntpdcOptions.curOptIdx = (n); \
ntpdcOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ntpdcOptions.pUsageProc)(&ntpdcOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ntpdc option descriptor.
*/
extern tOptions ntpdcOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(ntpdcOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ntpdcOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ntpdcOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ntpdcOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_NTPDC_OPTS_H_GUARD */
/* ntpdc-opts.h ends here */
diff --git a/contrib/ntp/ntpdc/ntpdc.1ntpdcman b/contrib/ntp/ntpdc/ntpdc.1ntpdcman
index 446acb5fb53b..f101aadac589 100644
--- a/contrib/ntp/ntpdc/ntpdc.1ntpdcman
+++ b/contrib/ntp/ntpdc/ntpdc.1ntpdcman
@@ -1,880 +1,880 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc 1ntpdcman "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpdc 1ntpdcman "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:54 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:01 AM by AutoGen 5.18.16
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpdc\fP
\- vendor-specific NTPD control program
.SH SYNOPSIS
\f\*[B-Font]ntpdc\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ host ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpdc\fP
is deprecated.
Please use
\fCntpq\f[]\fR(1ntpqmdoc)\f[] instead \- it can do everything
\f\*[B-Font]ntpdc\fP
used to do, and it does so using a much more sane interface.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntpdc\fP
is a utility program used to query
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
\f\*[B-Font]ntpdc\fP
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd's configuration file may also be specified at run time using
\f\*[B-Font]ntpdc\fP.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]cmd\f[], \f\*[B-Font]\-\-command\f[]=\f\*[I-Font]cmd\f[]
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-i\f[], \f\*[B-Font]\-\-interactive\f[]
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
.sp
Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
.TP
.NOP \f\*[B-Font]\-l\f[], \f\*[B-Font]\-\-listpeers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the 'listpeers' interactive command.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
numeric host addresses.
.sp
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.TP
.NOP \f\*[B-Font]\-s\f[], \f\*[B-Font]\-\-showpeers\f[]
Show a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'dmpeers' interactive command.
.TP
.NOP \f\*[B-Font]\-u\f[], \f\*[B-Font]\-\-unconnected\f[]
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPDC_<option-name>\fP or \fBNTPDC\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
If one or more request options are included on the command line
when
\f\*[B-Font]ntpdc\fP
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
\f\*[B-Font]ntpdc\fP
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
\f\*[B-Font]ntpdc\fP
utility will prompt for
commands if the standard input is a terminal device.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpdc\fP
utility uses NTP mode 7 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
\f\*[B-Font]ntpdc\fP
utility makes
no attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.sp \n(Ppu
.ne 2
The operation of
\f\*[B-Font]ntpdc\fP
are specific to the particular
implementation of the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon and can be expected to
work only with this and maybe some previous versions of the daemon.
Requests from a remote
\f\*[B-Font]ntpdc\fP
utility which affect the
state of the local server must be authenticated, which requires
both the remote program and local server share a common key and key
identifier.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding the host name forces DNS resolution to the IPv4 namespace,
while a
\f\*[B-Font]\-6\f[]
qualifier forces DNS resolution to the IPv6 namespace.
Specifying a command line option other than
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-n\f[]
will cause the specified query (queries) to be sent to
the indicated host(s) immediately.
Otherwise,
\f\*[B-Font]ntpdc\fP
will
attempt to read interactive format commands from the standard
input.
.SS "Interactive Commands"
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
The output of a
command is normally sent to the standard output, but optionally the
output of individual commands may be sent to a file by appending a
\[oq]\&>\[cq],
followed by a file name, to the command line.
.sp \n(Ppu
.ne 2
A number of interactive format commands are executed entirely
within the
\f\*[B-Font]ntpdc\fP
utility itself and do not result in NTP
mode 7 requests being sent to a server.
These are described
following.
.TP 7
.NOP \f\*[B-Font]\&?\f[] \f\*[I-Font]command_keyword\f[]
.TP 7
.NOP \f\*[B-Font]help\f[] \f\*[I-Font]command_keyword\f[]
A
\[oq]\f\*[B-Font]\&?\f[]\[cq]
will print a list of all the command
keywords known to this incarnation of
\f\*[B-Font]ntpdc\fP.
A
\[oq]\f\*[B-Font]\&?\f[]\[cq]
followed by a command keyword will print function and usage
information about the command.
This command is probably a better
source of information about
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
than this manual
page.
.TP 7
.NOP \f\*[B-Font]delay\f[] \f\*[I-Font]milliseconds\f[]
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
.TP 7
.NOP \f\*[B-Font]host\f[] \f\*[I-Font]hostname\f[]
Set the host to which future queries will be sent.
Hostname may
be either a host name or a numeric address.
.TP 7
.NOP \f\*[B-Font]hostnames\f[] [\f\*[B-Font]yes\f[] | \f\*[B-Font]no\f[]]
If
\f\*[B-Font]yes\f[]
is specified, host names are printed in
information displays.
If
\f\*[B-Font]no\f[]
is specified, numeric
addresses are printed instead.
The default is
\f\*[B-Font]yes\f[],
unless
modified using the command line
\f\*[B-Font]\-n\f[]
switch.
.TP 7
.NOP \f\*[B-Font]keyid\f[] \f\*[I-Font]keyid\f[]
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to a key number the server has been configured to use for this
purpose.
.TP 7
.NOP \f\*[B-Font]quit\f[]
Exit
\f\*[B-Font]ntpdc\fP.
.TP 7
.NOP \f\*[B-Font]passwd\f[]
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.TP 7
.NOP \f\*[B-Font]timeout\f[] \f\*[I-Font]milliseconds\f[]
Specify a timeout period for responses to server queries.
The
default is about 8000 milliseconds.
Note that since
\f\*[B-Font]ntpdc\fP
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.PP
.SS "Control Message Commands"
Query commands result in NTP mode 7 packets containing requests for
information being sent to the server.
These are read-only commands
in that they make no modification of the server configuration
state.
.TP 7
.NOP \f\*[B-Font]listpeers\f[]
Obtains and prints a brief list of the peers for which the
server is maintaining state.
These should include all configured
peer associations as well as those peers whose stratum is such that
they are considered by the server to be possible future
synchronization candidates.
.TP 7
.NOP \f\*[B-Font]peers\f[]
Obtains a list of peers for which the server is maintaining
state, along with a summary of that state.
Summary information
includes the address of the remote peer, the local interface
address (0.0.0.0 if a local address has yet to be determined), the
stratum of the remote peer (a stratum of 16 indicates the remote
peer is unsynchronized), the polling interval, in seconds, the
reachability register, in octal, and the current estimated delay,
offset and dispersion of the peer, all in seconds.
.sp \n(Ppu
.ne 2
The character in the left margin indicates the mode this peer
entry is operating in.
A
\[oq]\&+\[cq]
denotes symmetric active, a
\[oq]\&-\[cq]
indicates symmetric passive, a
\[oq]\&=\[cq]
means the
remote server is being polled in client mode, a
\[oq]\&^\[cq]
indicates that the server is broadcasting to this address, a
\[oq]\&~\[cq]
denotes that the remote peer is sending broadcasts and a
\[oq]\&~\[cq]
denotes that the remote peer is sending broadcasts and a
\[oq]\&*\[cq]
marks the peer the server is currently synchronizing
to.
.sp \n(Ppu
.ne 2
The contents of the host field may be one of four forms.
It may
be a host name, an IP address, a reference clock implementation
name with its parameter or
\fBREFCLK\f[]\fR()\f[]
On
\f\*[B-Font]hostnames\f[]
\f\*[B-Font]no\f[]
only IP-addresses
will be displayed.
.TP 7
.NOP \f\*[B-Font]dmpeers\f[]
A slightly different peer summary list.
Identical to the output
of the
\f\*[B-Font]peers\f[]
command, except for the character in the
leftmost column.
Characters only appear beside peers which were
included in the final stage of the clock selection algorithm.
A
\[oq]\&.\[cq]
indicates that this peer was cast off in the falseticker
detection, while a
\[oq]\&+\[cq]
indicates that the peer made it
through.
A
\[oq]\&*\[cq]
denotes the peer the server is currently
synchronizing with.
.TP 7
.NOP \f\*[B-Font]showpeer\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
Shows a detailed display of the current peer variables for one
or more peers.
Most of these values are described in the NTP
Version 2 specification.
.TP 7
.NOP \f\*[B-Font]pstats\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
Show per-peer statistic counters associated with the specified
peer(s).
.TP 7
.NOP \f\*[B-Font]clockstat\f[] \f\*[I-Font]clock_peer_address\f[] [\f\*[I-Font]...\f[]]
Obtain and print information concerning a peer clock.
The
values obtained provide information on the setting of fudge factors
and other clock performance information.
.TP 7
.NOP \f\*[B-Font]kerninfo\f[]
Obtain and print kernel phase-lock loop operating parameters.
This information is available only if the kernel has been specially
modified for a precision timekeeping function.
.TP 7
.NOP \f\*[B-Font]loopinfo\f[] [\f\*[B-Font]oneline\f[] | \f\*[B-Font]multiline\f[]]
Print the values of selected loop filter variables.
The loop
filter is the part of NTP which deals with adjusting the local
system clock.
The
\[oq]offset\[cq]
is the last offset given to the
loop filter by the packet processing code.
The
\[oq]frequency\[cq]
is the frequency error of the local clock in parts-per-million
(ppm).
The
\[oq]time_const\[cq]
controls the stiffness of the
phase-lock loop and thus the speed at which it can adapt to
oscillator drift.
The
\[oq]watchdog timer\[cq]
value is the number
of seconds which have elapsed since the last sample offset was
given to the loop filter.
The
\f\*[B-Font]oneline\f[]
and
\f\*[B-Font]multiline\f[]
options specify the format in which this
information is to be printed, with
\f\*[B-Font]multiline\f[]
as the
default.
.TP 7
.NOP \f\*[B-Font]sysinfo\f[]
Print a variety of system state variables, i.e., state related
to the local server.
All except the last four lines are described
in the NTP Version 3 specification, RFC-1305.
.sp \n(Ppu
.ne 2
The
\[oq]system flags\[cq]
show various system flags, some of
which can be set and cleared by the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
configuration commands, respectively.
These are
the
\f\*[B-Font]auth\f[],
\f\*[B-Font]bclient\f[],
\f\*[B-Font]monitor\f[],
\f\*[B-Font]pll\f[],
\f\*[B-Font]pps\f[]
and
\f\*[B-Font]stats\f[]
flags.
See the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
documentation for the meaning of these flags.
There
are two additional flags which are read only, the
\f\*[B-Font]kernel_pll\f[]
and
\f\*[B-Font]kernel_pps\f[].
These flags indicate
the synchronization status when the precision time kernel
modifications are in use.
The
\[oq]kernel_pll\[cq]
indicates that
the local clock is being disciplined by the kernel, while the
\[oq]kernel_pps\[cq]
indicates the kernel discipline is provided by the PPS
signal.
.sp \n(Ppu
.ne 2
The
\[oq]stability\[cq]
is the residual frequency error remaining
after the system frequency correction is applied and is intended for
maintenance and debugging.
In most architectures, this value will
initially decrease from as high as 500 ppm to a nominal value in
the range .01 to 0.1 ppm.
If it remains high for some time after
starting the daemon, something may be wrong with the local clock,
or the value of the kernel variable
\fIkern.clockrate.tick\f[]
may be
incorrect.
.sp \n(Ppu
.ne 2
The
\[oq]broadcastdelay\[cq]
shows the default broadcast delay,
as set by the
\f\*[B-Font]broadcastdelay\f[]
configuration command.
.sp \n(Ppu
.ne 2
The
\[oq]authdelay\[cq]
shows the default authentication delay,
as set by the
\f\*[B-Font]authdelay\f[]
configuration command.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Print statistics counters maintained in the protocol
module.
.TP 7
.NOP \f\*[B-Font]memstats\f[]
Print statistics counters related to memory allocation
code.
.TP 7
.NOP \f\*[B-Font]iostats\f[]
Print statistics counters maintained in the input-output
module.
.TP 7
.NOP \f\*[B-Font]timerstats\f[]
Print statistics counters maintained in the timer/event queue
support code.
.TP 7
.NOP \f\*[B-Font]reslist\f[]
Obtain and print the server's restriction list.
This list is
(usually) printed in sorted order and may help to understand how
the restrictions are applied.
.TP 7
.NOP \f\*[B-Font]monlist\f[] [\f\*[I-Font]version\f[]]
Obtain and print traffic counts collected and maintained by the
monitor facility.
The version number should not normally need to be
specified.
.TP 7
.NOP \f\*[B-Font]clkbug\f[] \f\*[I-Font]clock_peer_address\f[] [\f\*[I-Font]...\f[]]
Obtain debugging information for a reference clock driver.
This
information is provided only by some clock drivers and is mostly
undecodable without a copy of the driver source in hand.
.PP
.SS "Runtime Configuration Requests"
All requests which cause state changes in the server are
authenticated by the server using a configured NTP key (the
facility can also be disabled by the server by not configuring a
key).
The key number and the corresponding key must also be made
known to
\f\*[B-Font]ntpdc\fP.
This can be done using the
\f\*[B-Font]keyid\f[]
and
\f\*[B-Font]passwd\f[]
commands, the latter of which will prompt at the terminal for a
password to use as the encryption key.
You will also be prompted
automatically for both the key number and password the first time a
command which would result in an authenticated request to the
server is given.
Authentication not only provides verification that
the requester has permission to make such changes, but also gives
an extra degree of protection again transmission errors.
.sp \n(Ppu
.ne 2
Authenticated requests always include a timestamp in the packet
data, which is included in the computation of the authentication
code.
This timestamp is compared by the server to its receive time
stamp.
If they differ by more than a small amount the request is
rejected.
This is done for two reasons.
First, it makes simple
replay attacks on the server, by someone who might be able to
overhear traffic on your LAN, much more difficult.
Second, it makes
it more difficult to request configuration changes to your server
from topologically remote hosts.
While the reconfiguration facility
will work well with a server on the local host, and may work
adequately between time-synchronized hosts on the same LAN, it will
work very poorly for more distant hosts.
As such, if reasonable
passwords are chosen, care is taken in the distribution and
protection of keys and appropriate source address restrictions are
applied, the run time reconfiguration facility should provide an
adequate level of security.
.sp \n(Ppu
.ne 2
The following commands all make authenticated requests.
.TP 7
.NOP \f\*[B-Font]addpeer\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Add a configured peer association at the given address and
operating in symmetric active mode.
Note that an existing
association with the same peer may be deleted when this command is
executed, or may simply be converted to conform to the new
configuration, as appropriate.
If the optional
\f\*[I-Font]keyid\f[]
is a
nonzero integer, all outgoing packets to the remote server will
have an authentication field attached encrypted with this key.
If
the value is 0 (or not given) no authentication will be done.
The
\f\*[I-Font]version\f[]
can be 1, 2 or 3 and defaults to 3.
The
\f\*[B-Font]prefer\f[]
keyword indicates a preferred peer (and thus will
be used primarily for clock synchronisation if possible).
The
preferred peer also determines the validity of the PPS signal \- if
the preferred peer is suitable for synchronisation so is the PPS
signal.
.TP 7
.NOP \f\*[B-Font]addserver\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Identical to the addpeer command, except that the operating
mode is client.
.TP 7
.NOP \f\*[B-Font]broadcast\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Identical to the addpeer command, except that the operating
mode is broadcast.
In this case a valid key identifier and key are
required.
The
\f\*[I-Font]peer_address\f[]
parameter can be the broadcast
address of the local network or a multicast group address assigned
to NTP.
If a multicast address, a multicast-capable kernel is
required.
.TP 7
.NOP \f\*[B-Font]unconfig\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
This command causes the configured bit to be removed from the
specified peer(s).
In many cases this will cause the peer
association to be deleted.
When appropriate, however, the
association may persist in an unconfigured mode if the remote peer
is willing to continue on in this fashion.
.TP 7
.NOP \f\*[B-Font]fudge\f[] \f\*[I-Font]peer_address\f[] [\f\*[B-Font]time1\f[]] [\f\*[B-Font]time2\f[]] [\f\*[I-Font]stratum\f[]] [\f\*[I-Font]refid\f[]]
This command provides a way to set certain data for a reference
clock.
See the source listing for further information.
.TP 7
.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]pps\f[] | \f\*[B-Font]stats\f[]]
.TP 7
.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]pps\f[] | \f\*[B-Font]stats\f[]]
These commands operate in the same way as the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
configuration file commands of
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
.RS
.TP 7
.NOP \f\*[B-Font]auth\f[]
Enables the server to synchronize with unconfigured peers only
if the peer has been correctly authenticated using either public key
or private key cryptography.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]bclient\f[]
Enables the server to listen for a message from a broadcast or
multicast server, as in the multicastclient command with
default address.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]calibrate\f[]
Enables the calibrate feature for reference clocks.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]kernel\f[]
Enables the kernel time discipline, if available.
The default for this flag is enable if support is available, otherwise disable.
.TP 7
.NOP \f\*[B-Font]monitor\f[]
Enables the monitoring facility.
See the documentation here about the
\f\*[B-Font]monlist\f[]
command or further information.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]ntp\f[]
Enables time and frequency discipline.
In effect, this switch opens and closes the feedback loop,
which is useful for testing.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]pps\f[]
Enables the pulse-per-second (PPS) signal when frequency
and time is disciplined by the precision time kernel modifications.
See the
"A Kernel Model for Precision Timekeeping"
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
page for further information.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]stats\f[]
Enables the statistics facility.
See the
\fIMonitoring\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[]
for further information.
The default for this flag is disable.
.RE
.TP 7
.NOP \f\*[B-Font]restrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] \f\*[I-Font]flag\f[] [\f\*[I-Font]...\f[]]
This command operates in the same way as the
\f\*[B-Font]restrict\f[]
configuration file commands of
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
.TP 7
.NOP \f\*[B-Font]unrestrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] \f\*[I-Font]flag\f[] [\f\*[I-Font]...\f[]]
Unrestrict the matching entry from the restrict list.
.TP 7
.NOP \f\*[B-Font]delrestrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] [\f\*[B-Font]ntpport\f[]]
Delete the matching entry from the restrict list.
.TP 7
.NOP \f\*[B-Font]readkeys\f[]
Causes the current set of authentication keys to be purged and
a new set to be obtained by rereading the keys file (which must
have been specified in the
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
configuration file).
This
allows encryption keys to be changed without restarting the
server.
.TP 7
.NOP \f\*[B-Font]trustedkey\f[] \f\*[I-Font]keyid\f[] [\f\*[I-Font]...\f[]]
.TP 7
.NOP \f\*[B-Font]untrustedkey\f[] \f\*[I-Font]keyid\f[] [\f\*[I-Font]...\f[]]
These commands operate in the same way as the
\f\*[B-Font]trustedkey\f[]
and
\f\*[B-Font]untrustedkey\f[]
configuration file
commands of
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
.TP 7
.NOP \f\*[B-Font]authinfo\f[]
Returns information concerning the authentication module,
including known keys and counts of encryptions and decryptions
which have been done.
.TP 7
.NOP \f\*[B-Font]traps\f[]
Display the traps set in the server.
See the source listing for
further information.
.TP 7
.NOP \f\*[B-Font]addtrap\f[] \f\*[I-Font]address\f[] [\f\*[I-Font]port\f[]] [\f\*[I-Font]interface\f[]]
Set a trap for asynchronous messages.
See the source listing
for further information.
.TP 7
.NOP \f\*[B-Font]clrtrap\f[] \f\*[I-Font]address\f[] [\f\*[I-Font]port\f[]] [\f\*[I-Font]interface\f[]]
Clear a trap for asynchronous messages.
See the source listing
for further information.
.TP 7
.NOP \f\*[B-Font]reset\f[]
Clear the statistics counters in various modules of the server.
See the source listing for further information.
.PP
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
David L. Mills,
\fINetwork Time Protocol (Version 3)\fR,
RFC1305
.PP
.SH AUTHORS
The formatting directives in this document came from FreeBSD.
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The
\f\*[B-Font]ntpdc\fP
utility is a crude hack.
Much of the information it shows is
deadly boring and could only be loved by its implementer.
The
program was designed so that new (and temporary) features were easy
to hack in, at great expense to the program's ease of use.
Despite
this, the program is occasionally useful.
.sp \n(Ppu
.ne 2
Please report bugs to http://bugs.ntp.org .
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpdc\fP
option definitions.
diff --git a/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc b/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
index c750f834d99f..376443dae434 100644
--- a/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
+++ b/contrib/ntp/ntpdc/ntpdc.1ntpdcmdoc
@@ -1,814 +1,814 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPDC 1ntpdcmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:50 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:57 AM by AutoGen 5.18.16
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpdc
.Nd vendor-specific NTPD control program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ host ...]
.Pp
.Sh DESCRIPTION
.Nm
is deprecated.
Please use
.Xr ntpq 1ntpqmdoc instead \- it can do everything
.Nm
used to do, and it does so using a much more sane interface.
.Pp
.Nm
is a utility program used to query
.Xr ntpd 1ntpdmdoc
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
.Nm
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd's configuration file may also be specified at run time using
.Nm .
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.It Fl c Ar cmd , Fl \-command Ns = Ns Ar cmd
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl i , Fl \-interactive
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
.sp
Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
.It Fl l , Fl \-listpeers
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the 'listpeers' interactive command.
.It Fl n , Fl \-numeric
numeric host addresses.
.sp
Output all host addresses in dotted\-quad numeric format rather than
converting to the canonical host names.
.It Fl p , Fl \-peers
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.It Fl s , Fl \-showpeers
Show a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'dmpeers' interactive command.
.It Fl u , Fl \-unconnected
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPDC_<option\-name>\fP or \fBNTPDC\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
If one or more request options are included on the command line
when
.Nm
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
.Nm
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
.Nm
utility will prompt for
commands if the standard input is a terminal device.
.Pp
The
.Nm
utility uses NTP mode 7 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
.Nm
utility makes
no attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.Pp
The operation of
.Nm
are specific to the particular
implementation of the
.Xr ntpd 1ntpdmdoc
daemon and can be expected to
work only with this and maybe some previous versions of the daemon.
Requests from a remote
.Nm
utility which affect the
state of the local server must be authenticated, which requires
both the remote program and local server share a common key and key
identifier.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding the host name forces DNS resolution to the IPv4 namespace,
while a
.Fl 6
qualifier forces DNS resolution to the IPv6 namespace.
Specifying a command line option other than
.Fl i
or
.Fl n
will cause the specified query (queries) to be sent to
the indicated host(s) immediately.
Otherwise,
.Nm
will
attempt to read interactive format commands from the standard
input.
.Ss "Interactive Commands"
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
The output of a
command is normally sent to the standard output, but optionally the
output of individual commands may be sent to a file by appending a
.Ql \&> ,
followed by a file name, to the command line.
.Pp
A number of interactive format commands are executed entirely
within the
.Nm
utility itself and do not result in NTP
mode 7 requests being sent to a server.
These are described
following.
.Bl -tag -width indent
.It Ic \&? Ar command_keyword
.It Ic help Ar command_keyword
A
.Sq Ic \&?
will print a list of all the command
keywords known to this incarnation of
.Nm .
A
.Sq Ic \&?
followed by a command keyword will print function and usage
information about the command.
This command is probably a better
source of information about
.Xr ntpq 1ntpqmdoc
than this manual
page.
.It Ic delay Ar milliseconds
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
.It Ic host Ar hostname
Set the host to which future queries will be sent.
Hostname may
be either a host name or a numeric address.
.It Ic hostnames Op Cm yes | Cm no
If
.Cm yes
is specified, host names are printed in
information displays.
If
.Cm no
is specified, numeric
addresses are printed instead.
The default is
.Cm yes ,
unless
modified using the command line
.Fl n
switch.
.It Ic keyid Ar keyid
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to a key number the server has been configured to use for this
purpose.
.It Ic quit
Exit
.Nm .
.It Ic passwd
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.It Ic timeout Ar milliseconds
Specify a timeout period for responses to server queries.
The
default is about 8000 milliseconds.
Note that since
.Nm
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.El
.Ss "Control Message Commands"
Query commands result in NTP mode 7 packets containing requests for
information being sent to the server.
These are read\-only commands
in that they make no modification of the server configuration
state.
.Bl -tag -width indent
.It Ic listpeers
Obtains and prints a brief list of the peers for which the
server is maintaining state.
These should include all configured
peer associations as well as those peers whose stratum is such that
they are considered by the server to be possible future
synchronization candidates.
.It Ic peers
Obtains a list of peers for which the server is maintaining
state, along with a summary of that state.
Summary information
includes the address of the remote peer, the local interface
address (0.0.0.0 if a local address has yet to be determined), the
stratum of the remote peer (a stratum of 16 indicates the remote
peer is unsynchronized), the polling interval, in seconds, the
reachability register, in octal, and the current estimated delay,
offset and dispersion of the peer, all in seconds.
.Pp
The character in the left margin indicates the mode this peer
entry is operating in.
A
.Ql \&+
denotes symmetric active, a
.Ql \&\-
indicates symmetric passive, a
.Ql \&=
means the
remote server is being polled in client mode, a
.Ql \&^
indicates that the server is broadcasting to this address, a
.Ql \&~
denotes that the remote peer is sending broadcasts and a
.Ql \&~
denotes that the remote peer is sending broadcasts and a
.Ql \&*
marks the peer the server is currently synchronizing
to.
.Pp
The contents of the host field may be one of four forms.
It may
be a host name, an IP address, a reference clock implementation
name with its parameter or
.Fn REFCLK "implementation_number" "parameter" .
On
.Ic hostnames
.Cm no
only IP\-addresses
will be displayed.
.It Ic dmpeers
A slightly different peer summary list.
Identical to the output
of the
.Ic peers
command, except for the character in the
leftmost column.
Characters only appear beside peers which were
included in the final stage of the clock selection algorithm.
A
.Ql \&.
indicates that this peer was cast off in the falseticker
detection, while a
.Ql \&+
indicates that the peer made it
through.
A
.Ql \&*
denotes the peer the server is currently
synchronizing with.
.It Ic showpeer Ar peer_address Oo Ar ... Oc
Shows a detailed display of the current peer variables for one
or more peers.
Most of these values are described in the NTP
Version 2 specification.
.It Ic pstats Ar peer_address Oo Ar ... Oc
Show per\-peer statistic counters associated with the specified
peer(s).
.It Ic clockstat Ar clock_peer_address Oo Ar ... Oc
Obtain and print information concerning a peer clock.
The
values obtained provide information on the setting of fudge factors
and other clock performance information.
.It Ic kerninfo
Obtain and print kernel phase\-lock loop operating parameters.
This information is available only if the kernel has been specially
modified for a precision timekeeping function.
.It Ic loopinfo Op Cm oneline | Cm multiline
Print the values of selected loop filter variables.
The loop
filter is the part of NTP which deals with adjusting the local
system clock.
The
.Sq offset
is the last offset given to the
loop filter by the packet processing code.
The
.Sq frequency
is the frequency error of the local clock in parts\-per\-million
(ppm).
The
.Sq time_const
controls the stiffness of the
phase\-lock loop and thus the speed at which it can adapt to
oscillator drift.
The
.Sq watchdog timer
value is the number
of seconds which have elapsed since the last sample offset was
given to the loop filter.
The
.Cm oneline
and
.Cm multiline
options specify the format in which this
information is to be printed, with
.Cm multiline
as the
default.
.It Ic sysinfo
Print a variety of system state variables, i.e., state related
to the local server.
All except the last four lines are described
in the NTP Version 3 specification, RFC\-1305.
.Pp
The
.Sq system flags
show various system flags, some of
which can be set and cleared by the
.Ic enable
and
.Ic disable
configuration commands, respectively.
These are
the
.Cm auth ,
.Cm bclient ,
.Cm monitor ,
.Cm pll ,
.Cm pps
and
.Cm stats
flags.
See the
.Xr ntpd 1ntpdmdoc
documentation for the meaning of these flags.
There
are two additional flags which are read only, the
.Cm kernel_pll
and
.Cm kernel_pps .
These flags indicate
the synchronization status when the precision time kernel
modifications are in use.
The
.Sq kernel_pll
indicates that
the local clock is being disciplined by the kernel, while the
.Sq kernel_pps
indicates the kernel discipline is provided by the PPS
signal.
.Pp
The
.Sq stability
is the residual frequency error remaining
after the system frequency correction is applied and is intended for
maintenance and debugging.
In most architectures, this value will
initially decrease from as high as 500 ppm to a nominal value in
the range .01 to 0.1 ppm.
If it remains high for some time after
starting the daemon, something may be wrong with the local clock,
or the value of the kernel variable
.Va kern.clockrate.tick
may be
incorrect.
.Pp
The
.Sq broadcastdelay
shows the default broadcast delay,
as set by the
.Ic broadcastdelay
configuration command.
.Pp
The
.Sq authdelay
shows the default authentication delay,
as set by the
.Ic authdelay
configuration command.
.It Ic sysstats
Print statistics counters maintained in the protocol
module.
.It Ic memstats
Print statistics counters related to memory allocation
code.
.It Ic iostats
Print statistics counters maintained in the input\-output
module.
.It Ic timerstats
Print statistics counters maintained in the timer/event queue
support code.
.It Ic reslist
Obtain and print the server's restriction list.
This list is
(usually) printed in sorted order and may help to understand how
the restrictions are applied.
.It Ic monlist Op Ar version
Obtain and print traffic counts collected and maintained by the
monitor facility.
The version number should not normally need to be
specified.
.It Ic clkbug Ar clock_peer_address Oo Ar ... Oc
Obtain debugging information for a reference clock driver.
This
information is provided only by some clock drivers and is mostly
undecodable without a copy of the driver source in hand.
.El
.Ss "Runtime Configuration Requests"
All requests which cause state changes in the server are
authenticated by the server using a configured NTP key (the
facility can also be disabled by the server by not configuring a
key).
The key number and the corresponding key must also be made
known to
.Nm .
This can be done using the
.Ic keyid
and
.Ic passwd
commands, the latter of which will prompt at the terminal for a
password to use as the encryption key.
You will also be prompted
automatically for both the key number and password the first time a
command which would result in an authenticated request to the
server is given.
Authentication not only provides verification that
the requester has permission to make such changes, but also gives
an extra degree of protection again transmission errors.
.Pp
Authenticated requests always include a timestamp in the packet
data, which is included in the computation of the authentication
code.
This timestamp is compared by the server to its receive time
stamp.
If they differ by more than a small amount the request is
rejected.
This is done for two reasons.
First, it makes simple
replay attacks on the server, by someone who might be able to
overhear traffic on your LAN, much more difficult.
Second, it makes
it more difficult to request configuration changes to your server
from topologically remote hosts.
While the reconfiguration facility
will work well with a server on the local host, and may work
adequately between time\-synchronized hosts on the same LAN, it will
work very poorly for more distant hosts.
As such, if reasonable
passwords are chosen, care is taken in the distribution and
protection of keys and appropriate source address restrictions are
applied, the run time reconfiguration facility should provide an
adequate level of security.
.Pp
The following commands all make authenticated requests.
.Bl -tag -width indent
.It Xo Ic addpeer Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Add a configured peer association at the given address and
operating in symmetric active mode.
Note that an existing
association with the same peer may be deleted when this command is
executed, or may simply be converted to conform to the new
configuration, as appropriate.
If the optional
.Ar keyid
is a
nonzero integer, all outgoing packets to the remote server will
have an authentication field attached encrypted with this key.
If
the value is 0 (or not given) no authentication will be done.
The
.Ar version
can be 1, 2 or 3 and defaults to 3.
The
.Cm prefer
keyword indicates a preferred peer (and thus will
be used primarily for clock synchronisation if possible).
The
preferred peer also determines the validity of the PPS signal \- if
the preferred peer is suitable for synchronisation so is the PPS
signal.
.It Xo Ic addserver Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Identical to the addpeer command, except that the operating
mode is client.
.It Xo Ic broadcast Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Identical to the addpeer command, except that the operating
mode is broadcast.
In this case a valid key identifier and key are
required.
The
.Ar peer_address
parameter can be the broadcast
address of the local network or a multicast group address assigned
to NTP.
If a multicast address, a multicast\-capable kernel is
required.
.It Ic unconfig Ar peer_address Oo Ar ... Oc
This command causes the configured bit to be removed from the
specified peer(s).
In many cases this will cause the peer
association to be deleted.
When appropriate, however, the
association may persist in an unconfigured mode if the remote peer
is willing to continue on in this fashion.
.It Xo Ic fudge Ar peer_address
.Op Cm time1
.Op Cm time2
.Op Ar stratum
.Op Ar refid
.Xc
This command provides a way to set certain data for a reference
clock.
See the source listing for further information.
.It Xo Ic enable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm monitor | Cm ntp |
.Cm pps | Cm stats
.Oc
.Xc
.It Xo Ic disable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm monitor | Cm ntp |
.Cm pps | Cm stats
.Oc
.Xc
These commands operate in the same way as the
.Ic enable
and
.Ic disable
configuration file commands of
.Xr ntpd 1ntpdmdoc .
.Bl -tag -width indent
.It Cm auth
Enables the server to synchronize with unconfigured peers only
if the peer has been correctly authenticated using either public key
or private key cryptography.
The default for this flag is enable.
.It Cm bclient
Enables the server to listen for a message from a broadcast or
multicast server, as in the multicastclient command with
default address.
The default for this flag is disable.
.It Cm calibrate
Enables the calibrate feature for reference clocks.
The default for this flag is disable.
.It Cm kernel
Enables the kernel time discipline, if available.
The default for this flag is enable if support is available, otherwise disable.
.It Cm monitor
Enables the monitoring facility.
See the documentation here about the
.Cm monlist
command or further information.
The default for this flag is enable.
.It Cm ntp
Enables time and frequency discipline.
In effect, this switch opens and closes the feedback loop,
which is useful for testing.
The default for this flag is enable.
.It Cm pps
Enables the pulse\-per\-second (PPS) signal when frequency
and time is disciplined by the precision time kernel modifications.
See the
.Qq A Kernel Model for Precision Timekeeping
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
page for further information.
The default for this flag is disable.
.It Cm stats
Enables the statistics facility.
See the
.Sx Monitoring Options
section of
.Xr ntp.conf 5
for further information.
The default for this flag is disable.
.El
.It Xo Ic restrict Ar address Ar mask
.Ar flag Oo Ar ... Oc
.Xc
This command operates in the same way as the
.Ic restrict
configuration file commands of
.Xr ntpd 1ntpdmdoc .
.It Xo Ic unrestrict Ar address Ar mask
.Ar flag Oo Ar ... Oc
.Xc
Unrestrict the matching entry from the restrict list.
.It Xo Ic delrestrict Ar address Ar mask
.Op Cm ntpport
.Xc
Delete the matching entry from the restrict list.
.It Ic readkeys
Causes the current set of authentication keys to be purged and
a new set to be obtained by rereading the keys file (which must
have been specified in the
.Xr ntpd 1ntpdmdoc
configuration file).
This
allows encryption keys to be changed without restarting the
server.
.It Ic trustedkey Ar keyid Oo Ar ... Oc
.It Ic untrustedkey Ar keyid Oo Ar ... Oc
These commands operate in the same way as the
.Ic trustedkey
and
.Ic untrustedkey
configuration file
commands of
.Xr ntpd 1ntpdmdoc .
.It Ic authinfo
Returns information concerning the authentication module,
including known keys and counts of encryptions and decryptions
which have been done.
.It Ic traps
Display the traps set in the server.
See the source listing for
further information.
.It Xo Ic addtrap Ar address
.Op Ar port
.Op Ar interface
.Xc
Set a trap for asynchronous messages.
See the source listing
for further information.
.It Xo Ic clrtrap Ar address
.Op Ar port
.Op Ar interface
.Xc
Clear a trap for asynchronous messages.
See the source listing
for further information.
.It Ic reset
Clear the statistics counters in various modules of the server.
See the source listing for further information.
.El
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpd 1ntpdmdoc
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 3)
.%O RFC1305
.Re
.Sh AUTHORS
The formatting directives in this document came from FreeBSD.
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The
.Nm
utility is a crude hack.
Much of the information it shows is
deadly boring and could only be loved by its implementer.
The
program was designed so that new (and temporary) features were easy
to hack in, at great expense to the program's ease of use.
Despite
this, the program is occasionally useful.
.Pp
Please report bugs to http://bugs.ntp.org .
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpdc\fP
option definitions.
diff --git a/contrib/ntp/ntpdc/ntpdc.html b/contrib/ntp/ntpdc/ntpdc.html
index f036858d9c20..1a566baca91b 100644
--- a/contrib/ntp/ntpdc/ntpdc.html
+++ b/contrib/ntp/ntpdc/ntpdc.html
@@ -1,556 +1,556 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ntpdc: NTPD Control User&rsquo;s Manual</title>
<meta name="description" content="ntpdc: NTPD Control User&rsquo;s Manual">
<meta name="keywords" content="ntpdc: NTPD Control User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">ntpdc: NTPD Control User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntpdc-Description" accesskey="n" rel="next">ntpdc Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="ntpdc_003a-NTPD-Control-User-Manual"></span><h1 class="top">ntpdc: NTPD Control User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntpdc</code> program,
that can be used to query a Network Time Protocol (NTP) server and
display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntpdc</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntpdc</code>.
</p>
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Description" accesskey="1">ntpdc Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Invocation" accesskey="2">ntpdc Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntpdc
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="3">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
</table>
<hr>
<span id="ntpdc-Description"></span><div class="header">
<p>
Next: <a href="#ntpdc-Invocation" accesskey="n" rel="next">ntpdc Invocation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>By default, <code>ntpdc</code> writes the local data and time (i.e., not UTC) to the
standard output in the format:
</p>
<div class="example">
<pre class="example">1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 secs
</pre></div>
<p>where
YYYY-MM-DD HH:MM:SS.SUBSEC is the local date and time,
(+0800) is the local timezone adjustment (so we would add 8 hours and 0 minutes to convert the reported local time to UTC),
and
the +4.567 +/- 0.089 secs indicates the time offset and
error bound of the system clock relative to the server clock.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Invocation" accesskey="1">Invoking ntpdc</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="2">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntpdc-Invocation"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#ntpdc-Description" accesskey="p" rel="prev">ntpdc Description</a>, Up: <a href="#ntpdc-Description" accesskey="u" rel="up">ntpdc Description</a> &nbsp; </p>
</div>
<span id="Invoking-ntpdc"></span><h3 class="section">1.1 Invoking ntpdc</h3>
<span id="index-ntpdc"></span>
<span id="index-vendor_002dspecific-NTPD-control-program"></span>
<p><code>ntpdc</code>
is deprecated.
Please use
<code>ntpq(1ntpqmdoc)</code> instead - it can do everything
<code>ntpdc</code>
used to do, and it does so using a much more sane interface.
</p>
<p><code>ntpdc</code>
is a utility program used to query
<code>ntpd(1ntpdmdoc)</code>
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
<code>ntpdc</code>
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd&rsquo;s configuration file may also be specified at run time using
<code>ntpdc</code>
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntpdc</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-usage" accesskey="1">ntpdc usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntpdc help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-ipv4" accesskey="2">ntpdc ipv4</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv4 option (-4)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-ipv6" accesskey="3">ntpdc ipv6</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv6 option (-6)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-command" accesskey="4">ntpdc command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">command option (-c)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-interactive" accesskey="5">ntpdc interactive</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">interactive option (-i)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-listpeers" accesskey="6">ntpdc listpeers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">listpeers option (-l)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-numeric" accesskey="7">ntpdc numeric</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">numeric option (-n)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-peers" accesskey="8">ntpdc peers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">peers option (-p)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-showpeers" accesskey="9">ntpdc showpeers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">showpeers option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-unconnected">ntpdc unconnected</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">unconnected option (-u)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-config">ntpdc config</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">presetting/configuring ntpdc
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-exit-status">ntpdc exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Usage">ntpdc Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-See-Also">ntpdc See Also</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">See Also
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Authors">ntpdc Authors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Authors
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpdc-Bugs">ntpdc Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bugs
</td></tr>
</table>
<hr>
<span id="ntpdc-usage"></span><div class="header">
<p>
Next: <a href="#ntpdc-ipv4" accesskey="n" rel="next">ntpdc ipv4</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1.1 ntpdc help/usage (<samp>--help</samp>)</h4>
<span id="index-ntpdc-help"></span>
<p>This is the automatically generated usage text for ntpdc.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p16
+<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p17
Usage: ntpdc [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-c Str command run a command and exit
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-i no interactive Force ntpq to operate in interactive mode
- prohibits these options:
command
listpeers
peers
showpeers
-l no listpeers Print a list of the peers
- prohibits the option 'command'
-n no numeric numeric host addresses
-p no peers Print a list of the peers
- prohibits the option 'command'
-s no showpeers Show a list of the peers
- prohibits the option 'command'
-u no unconnected Use unconnected UDP to communicate with ntpd (default on Windows)
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-&gt; opt save-opts save the option state to a config file
-&lt; Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTPDC_*
Please send bug reports to: &lt;https://bugs.ntp.org, bugs@ntp.org&gt;
</pre></div>
<hr>
<span id="ntpdc-ipv4"></span><div class="header">
<p>
Next: <a href="#ntpdc-ipv6" accesskey="n" rel="next">ntpdc ipv6</a>, Previous: <a href="#ntpdc-usage" accesskey="p" rel="prev">ntpdc usage</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ipv4-option-_0028_002d4_0029"></span><h4 class="subsection">1.1.2 ipv4 option (-4)</h4>
<span id="index-ntpdc_002dipv4"></span>
<p>This is the &ldquo;force ipv4 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv6.
</li></ul>
<p>Force DNS resolution of following host names on the command line
to the IPv4 namespace.
</p><hr>
<span id="ntpdc-ipv6"></span><div class="header">
<p>
Next: <a href="#ntpdc-command" accesskey="n" rel="next">ntpdc command</a>, Previous: <a href="#ntpdc-ipv4" accesskey="p" rel="prev">ntpdc ipv4</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ipv6-option-_0028_002d6_0029"></span><h4 class="subsection">1.1.3 ipv6 option (-6)</h4>
<span id="index-ntpdc_002dipv6"></span>
<p>This is the &ldquo;force ipv6 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv4.
</li></ul>
<p>Force DNS resolution of following host names on the command line
to the IPv6 namespace.
</p><hr>
<span id="ntpdc-command"></span><div class="header">
<p>
Next: <a href="#ntpdc-interactive" accesskey="n" rel="next">ntpdc interactive</a>, Previous: <a href="#ntpdc-ipv6" accesskey="p" rel="prev">ntpdc ipv6</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="command-option-_0028_002dc_0029"></span><h4 class="subsection">1.1.4 command option (-c)</h4>
<span id="index-ntpdc_002dcommand"></span>
<p>This is the &ldquo;run a command and exit&rdquo; option.
This option takes a string argument <samp>cmd</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
</p><hr>
<span id="ntpdc-interactive"></span><div class="header">
<p>
Next: <a href="#ntpdc-listpeers" accesskey="n" rel="next">ntpdc listpeers</a>, Previous: <a href="#ntpdc-command" accesskey="p" rel="prev">ntpdc command</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="interactive-option-_0028_002di_0029"></span><h4 class="subsection">1.1.5 interactive option (-i)</h4>
<span id="index-ntpdc_002dinteractive"></span>
<p>This is the &ldquo;force ntpq to operate in interactive mode&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
</li></ul>
<p>Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
</p><hr>
<span id="ntpdc-listpeers"></span><div class="header">
<p>
Next: <a href="#ntpdc-numeric" accesskey="n" rel="next">ntpdc numeric</a>, Previous: <a href="#ntpdc-interactive" accesskey="p" rel="prev">ntpdc interactive</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="listpeers-option-_0028_002dl_0029"></span><h4 class="subsection">1.1.6 listpeers option (-l)</h4>
<span id="index-ntpdc_002dlistpeers"></span>
<p>This is the &ldquo;print a list of the peers&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
command.
</li></ul>
<p>Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the &rsquo;listpeers&rsquo; interactive command.
</p><hr>
<span id="ntpdc-numeric"></span><div class="header">
<p>
Next: <a href="#ntpdc-peers" accesskey="n" rel="next">ntpdc peers</a>, Previous: <a href="#ntpdc-listpeers" accesskey="p" rel="prev">ntpdc listpeers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="numeric-option-_0028_002dn_0029"></span><h4 class="subsection">1.1.7 numeric option (-n)</h4>
<span id="index-ntpdc_002dnumeric"></span>
<p>This is the &ldquo;numeric host addresses&rdquo; option.
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
</p><hr>
<span id="ntpdc-peers"></span><div class="header">
<p>
Next: <a href="#ntpdc-showpeers" accesskey="n" rel="next">ntpdc showpeers</a>, Previous: <a href="#ntpdc-numeric" accesskey="p" rel="prev">ntpdc numeric</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="peers-option-_0028_002dp_0029"></span><h4 class="subsection">1.1.8 peers option (-p)</h4>
<span id="index-ntpdc_002dpeers"></span>
<p>This is the &ldquo;print a list of the peers&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
command.
</li></ul>
<p>Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the &rsquo;peers&rsquo; interactive command.
</p><hr>
<span id="ntpdc-showpeers"></span><div class="header">
<p>
Next: <a href="#ntpdc-unconnected" accesskey="n" rel="next">ntpdc unconnected</a>, Previous: <a href="#ntpdc-peers" accesskey="p" rel="prev">ntpdc peers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="showpeers-option-_0028_002ds_0029"></span><h4 class="subsection">1.1.9 showpeers option (-s)</h4>
<span id="index-ntpdc_002dshowpeers"></span>
<p>This is the &ldquo;show a list of the peers&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
command.
</li></ul>
<p>Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the &rsquo;dmpeers&rsquo; interactive command.
</p><hr>
<span id="ntpdc-unconnected"></span><div class="header">
<p>
Next: <a href="#ntpdc-config" accesskey="n" rel="next">ntpdc config</a>, Previous: <a href="#ntpdc-showpeers" accesskey="p" rel="prev">ntpdc showpeers</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="unconnected-option-_0028_002du_0029"></span><h4 class="subsection">1.1.10 unconnected option (-u)</h4>
<span id="index-ntpdc_002dunconnected"></span>
<p>This is the &ldquo;use unconnected udp to communicate with ntpd (default on windows)&rdquo; option.
Open an unconnected UDP association to ntpd (the default
on Windows).
</p>
<hr>
<span id="ntpdc-config"></span><div class="header">
<p>
Next: <a href="#ntpdc-exit-status" accesskey="n" rel="next">ntpdc exit status</a>, Previous: <a href="#ntpdc-unconnected" accesskey="p" rel="prev">ntpdc unconnected</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="presetting_002fconfiguring-ntpdc"></span><h4 class="subsection">1.1.11 presetting/configuring ntpdc</h4>
<p>Any option that is not marked as <i>not presettable</i> may be preset by
loading values from configuration (&quot;rc&quot; or &quot;ini&quot;) files, and values from environment variables named <code>NTPDC</code> and <code>NTPDC_&lt;OPTION_NAME&gt;</code>. <code>&lt;OPTION_NAME&gt;</code> must be one of
the options listed above in upper case and segmented with underscores.
The <code>NTPDC</code> variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
</p>
<p><code>libopts</code> will search in 2 places for configuration files:
</p><ul>
<li> $HOME
</li><li> $PWD
</li></ul>
<p>The environment variables <code>HOME</code>, and <code>PWD</code>
are expanded and replaced when <samp>ntpdc</samp> runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named <samp>.ntprc</samp> is searched for
within that directory and processed.
</p>
<p>Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
</p>
<p>Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
</p><div class="example">
<pre class="example">[NTPDC]
</pre></div>
<p>or by
</p><div class="example">
<pre class="example">&lt;?program ntpdc&gt;
</pre></div>
<p>Do not mix these styles within one configuration file.
</p>
<p>Compound values and carefully constructed string values may also be
specified using XML syntax:
</p><div class="example">
<pre class="example">&lt;option-name&gt;
&lt;sub-opt&gt;...&amp;lt;...&amp;gt;...&lt;/sub-opt&gt;
&lt;/option-name&gt;
</pre></div>
<p>yielding an <code>option-name.sub-opt</code> string value of
</p><div class="example">
<pre class="example">&quot;...&lt;...&gt;...&quot;
</pre></div>
<p><code>AutoOpts</code> does not track suboptions. You simply note that it is a
hierarchicly valued option. <code>AutoOpts</code> does provide a means for searching
the associated name/value pair list (see: optionFindValue).
</p>
<p>The command line options relating to configuration and/or usage help are:
</p>
<span id="version-_0028_002d_0029"></span><h4 class="subsubheading">version (-)</h4>
<p>Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>version</samp>&rsquo;</dt>
<dd><p>Only print the version. This is the default.
</p></dd>
<dt>&lsquo;<samp>copyright</samp>&rsquo;</dt>
<dd><p>Name the copyright usage licensing terms.
</p></dd>
<dt>&lsquo;<samp>verbose</samp>&rsquo;</dt>
<dd><p>Print the full copyright usage licensing terms.
</p></dd>
</dl>
<hr>
<span id="ntpdc-exit-status"></span><div class="header">
<p>
Next: <a href="#ntpdc-Usage" accesskey="n" rel="next">ntpdc Usage</a>, Previous: <a href="#ntpdc-config" accesskey="p" rel="prev">ntpdc config</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-exit-status-1"></span><h4 class="subsection">1.1.12 ntpdc exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
<dt>&lsquo;<samp>66 (EX_NOINPUT)</samp>&rsquo;</dt>
<dd><p>A specified configuration file could not be loaded.
</p></dd>
<dt>&lsquo;<samp>70 (EX_SOFTWARE)</samp>&rsquo;</dt>
<dd><p>libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
</p></dd>
</dl>
<hr>
<span id="ntpdc-Usage"></span><div class="header">
<p>
Next: <a href="#ntpdc-See-Also" accesskey="n" rel="next">ntpdc See Also</a>, Previous: <a href="#ntpdc-exit-status" accesskey="p" rel="prev">ntpdc exit status</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-Usage-1"></span><h4 class="subsection">1.1.13 ntpdc Usage</h4>
<hr>
<span id="ntpdc-See-Also"></span><div class="header">
<p>
Next: <a href="#ntpdc-Authors" accesskey="n" rel="next">ntpdc Authors</a>, Previous: <a href="#ntpdc-Usage" accesskey="p" rel="prev">ntpdc Usage</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-See-Also-1"></span><h4 class="subsection">1.1.14 ntpdc See Also</h4>
<hr>
<span id="ntpdc-Authors"></span><div class="header">
<p>
Next: <a href="#ntpdc-Bugs" accesskey="n" rel="next">ntpdc Bugs</a>, Previous: <a href="#ntpdc-See-Also" accesskey="p" rel="prev">ntpdc See Also</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-Authors-1"></span><h4 class="subsection">1.1.15 ntpdc Authors</h4>
<hr>
<span id="ntpdc-Bugs"></span><div class="header">
<p>
Previous: <a href="#ntpdc-Authors" accesskey="p" rel="prev">ntpdc Authors</a>, Up: <a href="#ntpdc-Invocation" accesskey="u" rel="up">ntpdc Invocation</a> &nbsp; </p>
</div>
<span id="ntpdc-Bugs-1"></span><h4 class="subsection">1.1.16 ntpdc Bugs</h4>
<hr>
<span id="Usage"></span><div class="header">
<p>
Previous: <a href="#ntpdc-Invocation" accesskey="p" rel="prev">ntpdc Invocation</a>, Up: <a href="#ntpdc-Description" accesskey="u" rel="up">ntpdc Description</a> &nbsp; </p>
</div>
<span id="Usage-1"></span><h3 class="section">1.2 Usage</h3>
<p>The simplest use of this program is as an unprivileged command to
check the current time, offset, and error in the local clock.
For example:
</p>
<div class="example">
<pre class="example">ntpdc ntpserver.somewhere
</pre></div>
<p>With suitable privilege, it can be run as a command or in a
<code>cron</code> job to reset the local clock from a reliable server, like
the <code>ntpdate</code> and <code>rdate</code> commands.
For example:
</p>
<div class="example">
<pre class="example">ntpdc -a ntpserver.somewhere
</pre></div>
<hr>
</body>
</html>
diff --git a/contrib/ntp/ntpdc/ntpdc.man.in b/contrib/ntp/ntpdc/ntpdc.man.in
index cd518f7b1e8a..151c23b0c5c1 100644
--- a/contrib/ntp/ntpdc/ntpdc.man.in
+++ b/contrib/ntp/ntpdc/ntpdc.man.in
@@ -1,880 +1,880 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc @NTPDC_MS@ "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpdc @NTPDC_MS@ "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:54 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:01 AM by AutoGen 5.18.16
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpdc\fP
\- vendor-specific NTPD control program
.SH SYNOPSIS
\f\*[B-Font]ntpdc\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ host ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpdc\fP
is deprecated.
Please use
\fCntpq\f[]\fR(@NTPQ_MS@)\f[] instead \- it can do everything
\f\*[B-Font]ntpdc\fP
used to do, and it does so using a much more sane interface.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntpdc\fP
is a utility program used to query
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
\f\*[B-Font]ntpdc\fP
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd's configuration file may also be specified at run time using
\f\*[B-Font]ntpdc\fP.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]cmd\f[], \f\*[B-Font]\-\-command\f[]=\f\*[I-Font]cmd\f[]
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-i\f[], \f\*[B-Font]\-\-interactive\f[]
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
.sp
Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
.TP
.NOP \f\*[B-Font]\-l\f[], \f\*[B-Font]\-\-listpeers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the 'listpeers' interactive command.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
numeric host addresses.
.sp
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.TP
.NOP \f\*[B-Font]\-s\f[], \f\*[B-Font]\-\-showpeers\f[]
Show a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'dmpeers' interactive command.
.TP
.NOP \f\*[B-Font]\-u\f[], \f\*[B-Font]\-\-unconnected\f[]
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPDC_<option-name>\fP or \fBNTPDC\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
If one or more request options are included on the command line
when
\f\*[B-Font]ntpdc\fP
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
\f\*[B-Font]ntpdc\fP
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
\f\*[B-Font]ntpdc\fP
utility will prompt for
commands if the standard input is a terminal device.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpdc\fP
utility uses NTP mode 7 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
\f\*[B-Font]ntpdc\fP
utility makes
no attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.sp \n(Ppu
.ne 2
The operation of
\f\*[B-Font]ntpdc\fP
are specific to the particular
implementation of the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon and can be expected to
work only with this and maybe some previous versions of the daemon.
Requests from a remote
\f\*[B-Font]ntpdc\fP
utility which affect the
state of the local server must be authenticated, which requires
both the remote program and local server share a common key and key
identifier.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding the host name forces DNS resolution to the IPv4 namespace,
while a
\f\*[B-Font]\-6\f[]
qualifier forces DNS resolution to the IPv6 namespace.
Specifying a command line option other than
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-n\f[]
will cause the specified query (queries) to be sent to
the indicated host(s) immediately.
Otherwise,
\f\*[B-Font]ntpdc\fP
will
attempt to read interactive format commands from the standard
input.
.SS "Interactive Commands"
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
The output of a
command is normally sent to the standard output, but optionally the
output of individual commands may be sent to a file by appending a
\[oq]\&>\[cq],
followed by a file name, to the command line.
.sp \n(Ppu
.ne 2
A number of interactive format commands are executed entirely
within the
\f\*[B-Font]ntpdc\fP
utility itself and do not result in NTP
mode 7 requests being sent to a server.
These are described
following.
.TP 7
.NOP \f\*[B-Font]\&?\f[] \f\*[I-Font]command_keyword\f[]
.TP 7
.NOP \f\*[B-Font]help\f[] \f\*[I-Font]command_keyword\f[]
A
\[oq]\f\*[B-Font]\&?\f[]\[cq]
will print a list of all the command
keywords known to this incarnation of
\f\*[B-Font]ntpdc\fP.
A
\[oq]\f\*[B-Font]\&?\f[]\[cq]
followed by a command keyword will print function and usage
information about the command.
This command is probably a better
source of information about
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
than this manual
page.
.TP 7
.NOP \f\*[B-Font]delay\f[] \f\*[I-Font]milliseconds\f[]
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
.TP 7
.NOP \f\*[B-Font]host\f[] \f\*[I-Font]hostname\f[]
Set the host to which future queries will be sent.
Hostname may
be either a host name or a numeric address.
.TP 7
.NOP \f\*[B-Font]hostnames\f[] [\f\*[B-Font]yes\f[] | \f\*[B-Font]no\f[]]
If
\f\*[B-Font]yes\f[]
is specified, host names are printed in
information displays.
If
\f\*[B-Font]no\f[]
is specified, numeric
addresses are printed instead.
The default is
\f\*[B-Font]yes\f[],
unless
modified using the command line
\f\*[B-Font]\-n\f[]
switch.
.TP 7
.NOP \f\*[B-Font]keyid\f[] \f\*[I-Font]keyid\f[]
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to a key number the server has been configured to use for this
purpose.
.TP 7
.NOP \f\*[B-Font]quit\f[]
Exit
\f\*[B-Font]ntpdc\fP.
.TP 7
.NOP \f\*[B-Font]passwd\f[]
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.TP 7
.NOP \f\*[B-Font]timeout\f[] \f\*[I-Font]milliseconds\f[]
Specify a timeout period for responses to server queries.
The
default is about 8000 milliseconds.
Note that since
\f\*[B-Font]ntpdc\fP
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.PP
.SS "Control Message Commands"
Query commands result in NTP mode 7 packets containing requests for
information being sent to the server.
These are read-only commands
in that they make no modification of the server configuration
state.
.TP 7
.NOP \f\*[B-Font]listpeers\f[]
Obtains and prints a brief list of the peers for which the
server is maintaining state.
These should include all configured
peer associations as well as those peers whose stratum is such that
they are considered by the server to be possible future
synchronization candidates.
.TP 7
.NOP \f\*[B-Font]peers\f[]
Obtains a list of peers for which the server is maintaining
state, along with a summary of that state.
Summary information
includes the address of the remote peer, the local interface
address (0.0.0.0 if a local address has yet to be determined), the
stratum of the remote peer (a stratum of 16 indicates the remote
peer is unsynchronized), the polling interval, in seconds, the
reachability register, in octal, and the current estimated delay,
offset and dispersion of the peer, all in seconds.
.sp \n(Ppu
.ne 2
The character in the left margin indicates the mode this peer
entry is operating in.
A
\[oq]\&+\[cq]
denotes symmetric active, a
\[oq]\&-\[cq]
indicates symmetric passive, a
\[oq]\&=\[cq]
means the
remote server is being polled in client mode, a
\[oq]\&^\[cq]
indicates that the server is broadcasting to this address, a
\[oq]\&~\[cq]
denotes that the remote peer is sending broadcasts and a
\[oq]\&~\[cq]
denotes that the remote peer is sending broadcasts and a
\[oq]\&*\[cq]
marks the peer the server is currently synchronizing
to.
.sp \n(Ppu
.ne 2
The contents of the host field may be one of four forms.
It may
be a host name, an IP address, a reference clock implementation
name with its parameter or
\fBREFCLK\f[]\fR()\f[]
On
\f\*[B-Font]hostnames\f[]
\f\*[B-Font]no\f[]
only IP-addresses
will be displayed.
.TP 7
.NOP \f\*[B-Font]dmpeers\f[]
A slightly different peer summary list.
Identical to the output
of the
\f\*[B-Font]peers\f[]
command, except for the character in the
leftmost column.
Characters only appear beside peers which were
included in the final stage of the clock selection algorithm.
A
\[oq]\&.\[cq]
indicates that this peer was cast off in the falseticker
detection, while a
\[oq]\&+\[cq]
indicates that the peer made it
through.
A
\[oq]\&*\[cq]
denotes the peer the server is currently
synchronizing with.
.TP 7
.NOP \f\*[B-Font]showpeer\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
Shows a detailed display of the current peer variables for one
or more peers.
Most of these values are described in the NTP
Version 2 specification.
.TP 7
.NOP \f\*[B-Font]pstats\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
Show per-peer statistic counters associated with the specified
peer(s).
.TP 7
.NOP \f\*[B-Font]clockstat\f[] \f\*[I-Font]clock_peer_address\f[] [\f\*[I-Font]...\f[]]
Obtain and print information concerning a peer clock.
The
values obtained provide information on the setting of fudge factors
and other clock performance information.
.TP 7
.NOP \f\*[B-Font]kerninfo\f[]
Obtain and print kernel phase-lock loop operating parameters.
This information is available only if the kernel has been specially
modified for a precision timekeeping function.
.TP 7
.NOP \f\*[B-Font]loopinfo\f[] [\f\*[B-Font]oneline\f[] | \f\*[B-Font]multiline\f[]]
Print the values of selected loop filter variables.
The loop
filter is the part of NTP which deals with adjusting the local
system clock.
The
\[oq]offset\[cq]
is the last offset given to the
loop filter by the packet processing code.
The
\[oq]frequency\[cq]
is the frequency error of the local clock in parts-per-million
(ppm).
The
\[oq]time_const\[cq]
controls the stiffness of the
phase-lock loop and thus the speed at which it can adapt to
oscillator drift.
The
\[oq]watchdog timer\[cq]
value is the number
of seconds which have elapsed since the last sample offset was
given to the loop filter.
The
\f\*[B-Font]oneline\f[]
and
\f\*[B-Font]multiline\f[]
options specify the format in which this
information is to be printed, with
\f\*[B-Font]multiline\f[]
as the
default.
.TP 7
.NOP \f\*[B-Font]sysinfo\f[]
Print a variety of system state variables, i.e., state related
to the local server.
All except the last four lines are described
in the NTP Version 3 specification, RFC-1305.
.sp \n(Ppu
.ne 2
The
\[oq]system flags\[cq]
show various system flags, some of
which can be set and cleared by the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
configuration commands, respectively.
These are
the
\f\*[B-Font]auth\f[],
\f\*[B-Font]bclient\f[],
\f\*[B-Font]monitor\f[],
\f\*[B-Font]pll\f[],
\f\*[B-Font]pps\f[]
and
\f\*[B-Font]stats\f[]
flags.
See the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
documentation for the meaning of these flags.
There
are two additional flags which are read only, the
\f\*[B-Font]kernel_pll\f[]
and
\f\*[B-Font]kernel_pps\f[].
These flags indicate
the synchronization status when the precision time kernel
modifications are in use.
The
\[oq]kernel_pll\[cq]
indicates that
the local clock is being disciplined by the kernel, while the
\[oq]kernel_pps\[cq]
indicates the kernel discipline is provided by the PPS
signal.
.sp \n(Ppu
.ne 2
The
\[oq]stability\[cq]
is the residual frequency error remaining
after the system frequency correction is applied and is intended for
maintenance and debugging.
In most architectures, this value will
initially decrease from as high as 500 ppm to a nominal value in
the range .01 to 0.1 ppm.
If it remains high for some time after
starting the daemon, something may be wrong with the local clock,
or the value of the kernel variable
\fIkern.clockrate.tick\f[]
may be
incorrect.
.sp \n(Ppu
.ne 2
The
\[oq]broadcastdelay\[cq]
shows the default broadcast delay,
as set by the
\f\*[B-Font]broadcastdelay\f[]
configuration command.
.sp \n(Ppu
.ne 2
The
\[oq]authdelay\[cq]
shows the default authentication delay,
as set by the
\f\*[B-Font]authdelay\f[]
configuration command.
.TP 7
.NOP \f\*[B-Font]sysstats\f[]
Print statistics counters maintained in the protocol
module.
.TP 7
.NOP \f\*[B-Font]memstats\f[]
Print statistics counters related to memory allocation
code.
.TP 7
.NOP \f\*[B-Font]iostats\f[]
Print statistics counters maintained in the input-output
module.
.TP 7
.NOP \f\*[B-Font]timerstats\f[]
Print statistics counters maintained in the timer/event queue
support code.
.TP 7
.NOP \f\*[B-Font]reslist\f[]
Obtain and print the server's restriction list.
This list is
(usually) printed in sorted order and may help to understand how
the restrictions are applied.
.TP 7
.NOP \f\*[B-Font]monlist\f[] [\f\*[I-Font]version\f[]]
Obtain and print traffic counts collected and maintained by the
monitor facility.
The version number should not normally need to be
specified.
.TP 7
.NOP \f\*[B-Font]clkbug\f[] \f\*[I-Font]clock_peer_address\f[] [\f\*[I-Font]...\f[]]
Obtain debugging information for a reference clock driver.
This
information is provided only by some clock drivers and is mostly
undecodable without a copy of the driver source in hand.
.PP
.SS "Runtime Configuration Requests"
All requests which cause state changes in the server are
authenticated by the server using a configured NTP key (the
facility can also be disabled by the server by not configuring a
key).
The key number and the corresponding key must also be made
known to
\f\*[B-Font]ntpdc\fP.
This can be done using the
\f\*[B-Font]keyid\f[]
and
\f\*[B-Font]passwd\f[]
commands, the latter of which will prompt at the terminal for a
password to use as the encryption key.
You will also be prompted
automatically for both the key number and password the first time a
command which would result in an authenticated request to the
server is given.
Authentication not only provides verification that
the requester has permission to make such changes, but also gives
an extra degree of protection again transmission errors.
.sp \n(Ppu
.ne 2
Authenticated requests always include a timestamp in the packet
data, which is included in the computation of the authentication
code.
This timestamp is compared by the server to its receive time
stamp.
If they differ by more than a small amount the request is
rejected.
This is done for two reasons.
First, it makes simple
replay attacks on the server, by someone who might be able to
overhear traffic on your LAN, much more difficult.
Second, it makes
it more difficult to request configuration changes to your server
from topologically remote hosts.
While the reconfiguration facility
will work well with a server on the local host, and may work
adequately between time-synchronized hosts on the same LAN, it will
work very poorly for more distant hosts.
As such, if reasonable
passwords are chosen, care is taken in the distribution and
protection of keys and appropriate source address restrictions are
applied, the run time reconfiguration facility should provide an
adequate level of security.
.sp \n(Ppu
.ne 2
The following commands all make authenticated requests.
.TP 7
.NOP \f\*[B-Font]addpeer\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Add a configured peer association at the given address and
operating in symmetric active mode.
Note that an existing
association with the same peer may be deleted when this command is
executed, or may simply be converted to conform to the new
configuration, as appropriate.
If the optional
\f\*[I-Font]keyid\f[]
is a
nonzero integer, all outgoing packets to the remote server will
have an authentication field attached encrypted with this key.
If
the value is 0 (or not given) no authentication will be done.
The
\f\*[I-Font]version\f[]
can be 1, 2 or 3 and defaults to 3.
The
\f\*[B-Font]prefer\f[]
keyword indicates a preferred peer (and thus will
be used primarily for clock synchronisation if possible).
The
preferred peer also determines the validity of the PPS signal \- if
the preferred peer is suitable for synchronisation so is the PPS
signal.
.TP 7
.NOP \f\*[B-Font]addserver\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Identical to the addpeer command, except that the operating
mode is client.
.TP 7
.NOP \f\*[B-Font]broadcast\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]keyid\f[]] [\f\*[I-Font]version\f[]] [\f\*[B-Font]prefer\f[]]
Identical to the addpeer command, except that the operating
mode is broadcast.
In this case a valid key identifier and key are
required.
The
\f\*[I-Font]peer_address\f[]
parameter can be the broadcast
address of the local network or a multicast group address assigned
to NTP.
If a multicast address, a multicast-capable kernel is
required.
.TP 7
.NOP \f\*[B-Font]unconfig\f[] \f\*[I-Font]peer_address\f[] [\f\*[I-Font]...\f[]]
This command causes the configured bit to be removed from the
specified peer(s).
In many cases this will cause the peer
association to be deleted.
When appropriate, however, the
association may persist in an unconfigured mode if the remote peer
is willing to continue on in this fashion.
.TP 7
.NOP \f\*[B-Font]fudge\f[] \f\*[I-Font]peer_address\f[] [\f\*[B-Font]time1\f[]] [\f\*[B-Font]time2\f[]] [\f\*[I-Font]stratum\f[]] [\f\*[I-Font]refid\f[]]
This command provides a way to set certain data for a reference
clock.
See the source listing for further information.
.TP 7
.NOP \f\*[B-Font]enable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]pps\f[] | \f\*[B-Font]stats\f[]]
.TP 7
.NOP \f\*[B-Font]disable\f[] [\f\*[B-Font]auth\f[] | \f\*[B-Font]bclient\f[] | \f\*[B-Font]calibrate\f[] | \f\*[B-Font]kernel\f[] | \f\*[B-Font]monitor\f[] | \f\*[B-Font]ntp\f[] | \f\*[B-Font]pps\f[] | \f\*[B-Font]stats\f[]]
These commands operate in the same way as the
\f\*[B-Font]enable\f[]
and
\f\*[B-Font]disable\f[]
configuration file commands of
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
.RS
.TP 7
.NOP \f\*[B-Font]auth\f[]
Enables the server to synchronize with unconfigured peers only
if the peer has been correctly authenticated using either public key
or private key cryptography.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]bclient\f[]
Enables the server to listen for a message from a broadcast or
multicast server, as in the multicastclient command with
default address.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]calibrate\f[]
Enables the calibrate feature for reference clocks.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]kernel\f[]
Enables the kernel time discipline, if available.
The default for this flag is enable if support is available, otherwise disable.
.TP 7
.NOP \f\*[B-Font]monitor\f[]
Enables the monitoring facility.
See the documentation here about the
\f\*[B-Font]monlist\f[]
command or further information.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]ntp\f[]
Enables time and frequency discipline.
In effect, this switch opens and closes the feedback loop,
which is useful for testing.
The default for this flag is enable.
.TP 7
.NOP \f\*[B-Font]pps\f[]
Enables the pulse-per-second (PPS) signal when frequency
and time is disciplined by the precision time kernel modifications.
See the
"A Kernel Model for Precision Timekeeping"
(available as part of the HTML documentation
provided in
\fI/usr/share/doc/ntp\f[])
page for further information.
The default for this flag is disable.
.TP 7
.NOP \f\*[B-Font]stats\f[]
Enables the statistics facility.
See the
\fIMonitoring\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[]
for further information.
The default for this flag is disable.
.RE
.TP 7
.NOP \f\*[B-Font]restrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] \f\*[I-Font]flag\f[] [\f\*[I-Font]...\f[]]
This command operates in the same way as the
\f\*[B-Font]restrict\f[]
configuration file commands of
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
.TP 7
.NOP \f\*[B-Font]unrestrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] \f\*[I-Font]flag\f[] [\f\*[I-Font]...\f[]]
Unrestrict the matching entry from the restrict list.
.TP 7
.NOP \f\*[B-Font]delrestrict\f[] \f\*[I-Font]address\f[] \f\*[I-Font]mask\f[] [\f\*[B-Font]ntpport\f[]]
Delete the matching entry from the restrict list.
.TP 7
.NOP \f\*[B-Font]readkeys\f[]
Causes the current set of authentication keys to be purged and
a new set to be obtained by rereading the keys file (which must
have been specified in the
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
configuration file).
This
allows encryption keys to be changed without restarting the
server.
.TP 7
.NOP \f\*[B-Font]trustedkey\f[] \f\*[I-Font]keyid\f[] [\f\*[I-Font]...\f[]]
.TP 7
.NOP \f\*[B-Font]untrustedkey\f[] \f\*[I-Font]keyid\f[] [\f\*[I-Font]...\f[]]
These commands operate in the same way as the
\f\*[B-Font]trustedkey\f[]
and
\f\*[B-Font]untrustedkey\f[]
configuration file
commands of
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
.TP 7
.NOP \f\*[B-Font]authinfo\f[]
Returns information concerning the authentication module,
including known keys and counts of encryptions and decryptions
which have been done.
.TP 7
.NOP \f\*[B-Font]traps\f[]
Display the traps set in the server.
See the source listing for
further information.
.TP 7
.NOP \f\*[B-Font]addtrap\f[] \f\*[I-Font]address\f[] [\f\*[I-Font]port\f[]] [\f\*[I-Font]interface\f[]]
Set a trap for asynchronous messages.
See the source listing
for further information.
.TP 7
.NOP \f\*[B-Font]clrtrap\f[] \f\*[I-Font]address\f[] [\f\*[I-Font]port\f[]] [\f\*[I-Font]interface\f[]]
Clear a trap for asynchronous messages.
See the source listing
for further information.
.TP 7
.NOP \f\*[B-Font]reset\f[]
Clear the statistics counters in various modules of the server.
See the source listing for further information.
.PP
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "SEE ALSO"
\fCntp.conf\f[]\fR(5)\f[],
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
David L. Mills,
\fINetwork Time Protocol (Version 3)\fR,
RFC1305
.PP
.SH AUTHORS
The formatting directives in this document came from FreeBSD.
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
The
\f\*[B-Font]ntpdc\fP
utility is a crude hack.
Much of the information it shows is
deadly boring and could only be loved by its implementer.
The
program was designed so that new (and temporary) features were easy
to hack in, at great expense to the program's ease of use.
Despite
this, the program is occasionally useful.
.sp \n(Ppu
.ne 2
Please report bugs to http://bugs.ntp.org .
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpdc\fP
option definitions.
diff --git a/contrib/ntp/ntpdc/ntpdc.mdoc.in b/contrib/ntp/ntpdc/ntpdc.mdoc.in
index 87b5dba2bdf8..1a7859c448e6 100644
--- a/contrib/ntp/ntpdc/ntpdc.mdoc.in
+++ b/contrib/ntp/ntpdc/ntpdc.mdoc.in
@@ -1,814 +1,814 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPDC @NTPDC_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:49:50 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:37:57 AM by AutoGen 5.18.16
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpdc
.Nd vendor-specific NTPD control program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ host ...]
.Pp
.Sh DESCRIPTION
.Nm
is deprecated.
Please use
.Xr ntpq @NTPQ_MS@ instead \- it can do everything
.Nm
used to do, and it does so using a much more sane interface.
.Pp
.Nm
is a utility program used to query
.Xr ntpd @NTPD_MS@
about its
current state and to request changes in that state.
It uses NTP mode 7 control message formats described in the source code.
The program may
be run either in interactive mode or controlled using command line
arguments.
Extensive state and statistics information is available
through the
.Nm
interface.
In addition, nearly all the
configuration options which can be specified at startup using
ntpd's configuration file may also be specified at run time using
.Nm .
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
.It Fl c Ar cmd , Fl \-command Ns = Ns Ar cmd
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl i , Fl \-interactive
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, listpeers, peers, showpeers.
.sp
Force ntpq to operate in interactive mode. Prompts will be written
to the standard output and commands read from the standard input.
.It Fl l , Fl \-listpeers
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary of
their state. This is equivalent to the 'listpeers' interactive command.
.It Fl n , Fl \-numeric
numeric host addresses.
.sp
Output all host addresses in dotted\-quad numeric format rather than
converting to the canonical host names.
.It Fl p , Fl \-peers
Print a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.It Fl s , Fl \-showpeers
Show a list of the peers.
This option must not appear in combination with any of the following options:
command.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'dmpeers' interactive command.
.It Fl u , Fl \-unconnected
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPDC_<option\-name>\fP or \fBNTPDC\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
If one or more request options are included on the command line
when
.Nm
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
.Nm
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
.Nm
utility will prompt for
commands if the standard input is a terminal device.
.Pp
The
.Nm
utility uses NTP mode 7 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
.Nm
utility makes
no attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.Pp
The operation of
.Nm
are specific to the particular
implementation of the
.Xr ntpd @NTPD_MS@
daemon and can be expected to
work only with this and maybe some previous versions of the daemon.
Requests from a remote
.Nm
utility which affect the
state of the local server must be authenticated, which requires
both the remote program and local server share a common key and key
identifier.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding the host name forces DNS resolution to the IPv4 namespace,
while a
.Fl 6
qualifier forces DNS resolution to the IPv6 namespace.
Specifying a command line option other than
.Fl i
or
.Fl n
will cause the specified query (queries) to be sent to
the indicated host(s) immediately.
Otherwise,
.Nm
will
attempt to read interactive format commands from the standard
input.
.Ss "Interactive Commands"
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
The output of a
command is normally sent to the standard output, but optionally the
output of individual commands may be sent to a file by appending a
.Ql \&> ,
followed by a file name, to the command line.
.Pp
A number of interactive format commands are executed entirely
within the
.Nm
utility itself and do not result in NTP
mode 7 requests being sent to a server.
These are described
following.
.Bl -tag -width indent
.It Ic \&? Ar command_keyword
.It Ic help Ar command_keyword
A
.Sq Ic \&?
will print a list of all the command
keywords known to this incarnation of
.Nm .
A
.Sq Ic \&?
followed by a command keyword will print function and usage
information about the command.
This command is probably a better
source of information about
.Xr ntpq @NTPQ_MS@
than this manual
page.
.It Ic delay Ar milliseconds
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
.It Ic host Ar hostname
Set the host to which future queries will be sent.
Hostname may
be either a host name or a numeric address.
.It Ic hostnames Op Cm yes | Cm no
If
.Cm yes
is specified, host names are printed in
information displays.
If
.Cm no
is specified, numeric
addresses are printed instead.
The default is
.Cm yes ,
unless
modified using the command line
.Fl n
switch.
.It Ic keyid Ar keyid
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to a key number the server has been configured to use for this
purpose.
.It Ic quit
Exit
.Nm .
.It Ic passwd
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.It Ic timeout Ar milliseconds
Specify a timeout period for responses to server queries.
The
default is about 8000 milliseconds.
Note that since
.Nm
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.El
.Ss "Control Message Commands"
Query commands result in NTP mode 7 packets containing requests for
information being sent to the server.
These are read\-only commands
in that they make no modification of the server configuration
state.
.Bl -tag -width indent
.It Ic listpeers
Obtains and prints a brief list of the peers for which the
server is maintaining state.
These should include all configured
peer associations as well as those peers whose stratum is such that
they are considered by the server to be possible future
synchronization candidates.
.It Ic peers
Obtains a list of peers for which the server is maintaining
state, along with a summary of that state.
Summary information
includes the address of the remote peer, the local interface
address (0.0.0.0 if a local address has yet to be determined), the
stratum of the remote peer (a stratum of 16 indicates the remote
peer is unsynchronized), the polling interval, in seconds, the
reachability register, in octal, and the current estimated delay,
offset and dispersion of the peer, all in seconds.
.Pp
The character in the left margin indicates the mode this peer
entry is operating in.
A
.Ql \&+
denotes symmetric active, a
.Ql \&\-
indicates symmetric passive, a
.Ql \&=
means the
remote server is being polled in client mode, a
.Ql \&^
indicates that the server is broadcasting to this address, a
.Ql \&~
denotes that the remote peer is sending broadcasts and a
.Ql \&~
denotes that the remote peer is sending broadcasts and a
.Ql \&*
marks the peer the server is currently synchronizing
to.
.Pp
The contents of the host field may be one of four forms.
It may
be a host name, an IP address, a reference clock implementation
name with its parameter or
.Fn REFCLK "implementation_number" "parameter" .
On
.Ic hostnames
.Cm no
only IP\-addresses
will be displayed.
.It Ic dmpeers
A slightly different peer summary list.
Identical to the output
of the
.Ic peers
command, except for the character in the
leftmost column.
Characters only appear beside peers which were
included in the final stage of the clock selection algorithm.
A
.Ql \&.
indicates that this peer was cast off in the falseticker
detection, while a
.Ql \&+
indicates that the peer made it
through.
A
.Ql \&*
denotes the peer the server is currently
synchronizing with.
.It Ic showpeer Ar peer_address Oo Ar ... Oc
Shows a detailed display of the current peer variables for one
or more peers.
Most of these values are described in the NTP
Version 2 specification.
.It Ic pstats Ar peer_address Oo Ar ... Oc
Show per\-peer statistic counters associated with the specified
peer(s).
.It Ic clockstat Ar clock_peer_address Oo Ar ... Oc
Obtain and print information concerning a peer clock.
The
values obtained provide information on the setting of fudge factors
and other clock performance information.
.It Ic kerninfo
Obtain and print kernel phase\-lock loop operating parameters.
This information is available only if the kernel has been specially
modified for a precision timekeeping function.
.It Ic loopinfo Op Cm oneline | Cm multiline
Print the values of selected loop filter variables.
The loop
filter is the part of NTP which deals with adjusting the local
system clock.
The
.Sq offset
is the last offset given to the
loop filter by the packet processing code.
The
.Sq frequency
is the frequency error of the local clock in parts\-per\-million
(ppm).
The
.Sq time_const
controls the stiffness of the
phase\-lock loop and thus the speed at which it can adapt to
oscillator drift.
The
.Sq watchdog timer
value is the number
of seconds which have elapsed since the last sample offset was
given to the loop filter.
The
.Cm oneline
and
.Cm multiline
options specify the format in which this
information is to be printed, with
.Cm multiline
as the
default.
.It Ic sysinfo
Print a variety of system state variables, i.e., state related
to the local server.
All except the last four lines are described
in the NTP Version 3 specification, RFC\-1305.
.Pp
The
.Sq system flags
show various system flags, some of
which can be set and cleared by the
.Ic enable
and
.Ic disable
configuration commands, respectively.
These are
the
.Cm auth ,
.Cm bclient ,
.Cm monitor ,
.Cm pll ,
.Cm pps
and
.Cm stats
flags.
See the
.Xr ntpd @NTPD_MS@
documentation for the meaning of these flags.
There
are two additional flags which are read only, the
.Cm kernel_pll
and
.Cm kernel_pps .
These flags indicate
the synchronization status when the precision time kernel
modifications are in use.
The
.Sq kernel_pll
indicates that
the local clock is being disciplined by the kernel, while the
.Sq kernel_pps
indicates the kernel discipline is provided by the PPS
signal.
.Pp
The
.Sq stability
is the residual frequency error remaining
after the system frequency correction is applied and is intended for
maintenance and debugging.
In most architectures, this value will
initially decrease from as high as 500 ppm to a nominal value in
the range .01 to 0.1 ppm.
If it remains high for some time after
starting the daemon, something may be wrong with the local clock,
or the value of the kernel variable
.Va kern.clockrate.tick
may be
incorrect.
.Pp
The
.Sq broadcastdelay
shows the default broadcast delay,
as set by the
.Ic broadcastdelay
configuration command.
.Pp
The
.Sq authdelay
shows the default authentication delay,
as set by the
.Ic authdelay
configuration command.
.It Ic sysstats
Print statistics counters maintained in the protocol
module.
.It Ic memstats
Print statistics counters related to memory allocation
code.
.It Ic iostats
Print statistics counters maintained in the input\-output
module.
.It Ic timerstats
Print statistics counters maintained in the timer/event queue
support code.
.It Ic reslist
Obtain and print the server's restriction list.
This list is
(usually) printed in sorted order and may help to understand how
the restrictions are applied.
.It Ic monlist Op Ar version
Obtain and print traffic counts collected and maintained by the
monitor facility.
The version number should not normally need to be
specified.
.It Ic clkbug Ar clock_peer_address Oo Ar ... Oc
Obtain debugging information for a reference clock driver.
This
information is provided only by some clock drivers and is mostly
undecodable without a copy of the driver source in hand.
.El
.Ss "Runtime Configuration Requests"
All requests which cause state changes in the server are
authenticated by the server using a configured NTP key (the
facility can also be disabled by the server by not configuring a
key).
The key number and the corresponding key must also be made
known to
.Nm .
This can be done using the
.Ic keyid
and
.Ic passwd
commands, the latter of which will prompt at the terminal for a
password to use as the encryption key.
You will also be prompted
automatically for both the key number and password the first time a
command which would result in an authenticated request to the
server is given.
Authentication not only provides verification that
the requester has permission to make such changes, but also gives
an extra degree of protection again transmission errors.
.Pp
Authenticated requests always include a timestamp in the packet
data, which is included in the computation of the authentication
code.
This timestamp is compared by the server to its receive time
stamp.
If they differ by more than a small amount the request is
rejected.
This is done for two reasons.
First, it makes simple
replay attacks on the server, by someone who might be able to
overhear traffic on your LAN, much more difficult.
Second, it makes
it more difficult to request configuration changes to your server
from topologically remote hosts.
While the reconfiguration facility
will work well with a server on the local host, and may work
adequately between time\-synchronized hosts on the same LAN, it will
work very poorly for more distant hosts.
As such, if reasonable
passwords are chosen, care is taken in the distribution and
protection of keys and appropriate source address restrictions are
applied, the run time reconfiguration facility should provide an
adequate level of security.
.Pp
The following commands all make authenticated requests.
.Bl -tag -width indent
.It Xo Ic addpeer Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Add a configured peer association at the given address and
operating in symmetric active mode.
Note that an existing
association with the same peer may be deleted when this command is
executed, or may simply be converted to conform to the new
configuration, as appropriate.
If the optional
.Ar keyid
is a
nonzero integer, all outgoing packets to the remote server will
have an authentication field attached encrypted with this key.
If
the value is 0 (or not given) no authentication will be done.
The
.Ar version
can be 1, 2 or 3 and defaults to 3.
The
.Cm prefer
keyword indicates a preferred peer (and thus will
be used primarily for clock synchronisation if possible).
The
preferred peer also determines the validity of the PPS signal \- if
the preferred peer is suitable for synchronisation so is the PPS
signal.
.It Xo Ic addserver Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Identical to the addpeer command, except that the operating
mode is client.
.It Xo Ic broadcast Ar peer_address
.Op Ar keyid
.Op Ar version
.Op Cm prefer
.Xc
Identical to the addpeer command, except that the operating
mode is broadcast.
In this case a valid key identifier and key are
required.
The
.Ar peer_address
parameter can be the broadcast
address of the local network or a multicast group address assigned
to NTP.
If a multicast address, a multicast\-capable kernel is
required.
.It Ic unconfig Ar peer_address Oo Ar ... Oc
This command causes the configured bit to be removed from the
specified peer(s).
In many cases this will cause the peer
association to be deleted.
When appropriate, however, the
association may persist in an unconfigured mode if the remote peer
is willing to continue on in this fashion.
.It Xo Ic fudge Ar peer_address
.Op Cm time1
.Op Cm time2
.Op Ar stratum
.Op Ar refid
.Xc
This command provides a way to set certain data for a reference
clock.
See the source listing for further information.
.It Xo Ic enable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm monitor | Cm ntp |
.Cm pps | Cm stats
.Oc
.Xc
.It Xo Ic disable
.Oo
.Cm auth | Cm bclient |
.Cm calibrate | Cm kernel |
.Cm monitor | Cm ntp |
.Cm pps | Cm stats
.Oc
.Xc
These commands operate in the same way as the
.Ic enable
and
.Ic disable
configuration file commands of
.Xr ntpd @NTPD_MS@ .
.Bl -tag -width indent
.It Cm auth
Enables the server to synchronize with unconfigured peers only
if the peer has been correctly authenticated using either public key
or private key cryptography.
The default for this flag is enable.
.It Cm bclient
Enables the server to listen for a message from a broadcast or
multicast server, as in the multicastclient command with
default address.
The default for this flag is disable.
.It Cm calibrate
Enables the calibrate feature for reference clocks.
The default for this flag is disable.
.It Cm kernel
Enables the kernel time discipline, if available.
The default for this flag is enable if support is available, otherwise disable.
.It Cm monitor
Enables the monitoring facility.
See the documentation here about the
.Cm monlist
command or further information.
The default for this flag is enable.
.It Cm ntp
Enables time and frequency discipline.
In effect, this switch opens and closes the feedback loop,
which is useful for testing.
The default for this flag is enable.
.It Cm pps
Enables the pulse\-per\-second (PPS) signal when frequency
and time is disciplined by the precision time kernel modifications.
See the
.Qq A Kernel Model for Precision Timekeeping
(available as part of the HTML documentation
provided in
.Pa /usr/share/doc/ntp )
page for further information.
The default for this flag is disable.
.It Cm stats
Enables the statistics facility.
See the
.Sx Monitoring Options
section of
.Xr ntp.conf 5
for further information.
The default for this flag is disable.
.El
.It Xo Ic restrict Ar address Ar mask
.Ar flag Oo Ar ... Oc
.Xc
This command operates in the same way as the
.Ic restrict
configuration file commands of
.Xr ntpd @NTPD_MS@ .
.It Xo Ic unrestrict Ar address Ar mask
.Ar flag Oo Ar ... Oc
.Xc
Unrestrict the matching entry from the restrict list.
.It Xo Ic delrestrict Ar address Ar mask
.Op Cm ntpport
.Xc
Delete the matching entry from the restrict list.
.It Ic readkeys
Causes the current set of authentication keys to be purged and
a new set to be obtained by rereading the keys file (which must
have been specified in the
.Xr ntpd @NTPD_MS@
configuration file).
This
allows encryption keys to be changed without restarting the
server.
.It Ic trustedkey Ar keyid Oo Ar ... Oc
.It Ic untrustedkey Ar keyid Oo Ar ... Oc
These commands operate in the same way as the
.Ic trustedkey
and
.Ic untrustedkey
configuration file
commands of
.Xr ntpd @NTPD_MS@ .
.It Ic authinfo
Returns information concerning the authentication module,
including known keys and counts of encryptions and decryptions
which have been done.
.It Ic traps
Display the traps set in the server.
See the source listing for
further information.
.It Xo Ic addtrap Ar address
.Op Ar port
.Op Ar interface
.Xc
Set a trap for asynchronous messages.
See the source listing
for further information.
.It Xo Ic clrtrap Ar address
.Op Ar port
.Op Ar interface
.Xc
Clear a trap for asynchronous messages.
See the source listing
for further information.
.It Ic reset
Clear the statistics counters in various modules of the server.
See the source listing for further information.
.El
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "SEE ALSO"
.Xr ntp.conf 5 ,
.Xr ntpd @NTPD_MS@
.Rs
.%A David L. Mills
.%T Network Time Protocol (Version 3)
.%O RFC1305
.Re
.Sh AUTHORS
The formatting directives in this document came from FreeBSD.
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
The
.Nm
utility is a crude hack.
Much of the information it shows is
deadly boring and could only be loved by its implementer.
The
program was designed so that new (and temporary) features were easy
to hack in, at great expense to the program's ease of use.
Despite
this, the program is occasionally useful.
.Pp
Please report bugs to http://bugs.ntp.org .
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpdc\fP
option definitions.
diff --git a/contrib/ntp/ntpq/invoke-ntpq.texi b/contrib/ntp/ntpq/invoke-ntpq.texi
index dd2a0038912b..715dbcba764e 100644
--- a/contrib/ntp/ntpq/invoke-ntpq.texi
+++ b/contrib/ntp/ntpq/invoke-ntpq.texi
@@ -1,1231 +1,1231 @@
@node ntpq Invocation
@section Invoking ntpq
@pindex ntpq
@cindex standard NTP query program
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:50:06 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:38:12 AM by AutoGen 5.18.16
# From the definitions ntpq-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
The
@code{ntpq}
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty-printed output
options being available.
The
@code{ntpq}
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
If one or more request options is included on the command line
when
@code{ntpq}
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
@code{ntpq}
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
@code{ntpq}
utility will prompt for
commands if the standard input is a terminal device.
@code{ntpq}
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
@code{ntpq}
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
Note that in contexts where a host name is expected, a
@code{-4}
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
@code{-6}
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
@quotedblleft{}NTP Debugging Techniques@quotedblright{}
page.
Specifying a
command line option other than
@code{-i}
or
@code{-n}
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
@code{ntpq}
will attempt to read
interactive format commands from the standard input.
@subsubsection Internal Commands
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
A
number of interactive format commands are executed entirely within
the
@code{ntpq}
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
@table @asis
@item @code{?} @code{[@kbd{command}]}
@item @code{help} @code{[@kbd{command}]}
A
@quoteleft{}?@quoteright{}
by itself will print a list of all the commands
known to
@code{ntpq}
A
@quoteleft{}?@quoteright{}
followed by a command name will print function and usage
information about the command.
@item @code{addvars} @kbd{name}@code{[=@kbd{value}]}@code{[,...]}
@item @code{rmvars} @kbd{name}@code{[,...]}
@item @code{clearvars}
@item @code{showvars}
The arguments to this command consist of a list of
items of the form
@kbd{name}@code{[=@kbd{value}]},
where the
.No = Ns Ar value
is ignored, and can be omitted,
in requests to the server to read variables.
The
@code{ntpq}
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
@code{readlist}
and
@code{writelist}
commands described below.
The
@code{addvars}
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma-separated and not contain white space.
The
@code{rmvars}
command can be used to remove individual variables from the list,
while the
@code{clearvars}
command removes all variables from the
list.
The
@code{showvars}
command displays the current list of optional variables.
@item @code{authenticate} @code{[@code{yes}|@code{no}]}
Normally
@code{ntpq}
does not authenticate requests unless
they are write requests.
The command
@code{authenticate} @code{yes}
causes
@code{ntpq}
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
@code{authenticate}
causes
@code{ntpq}
to display whether or not
it is currently authenticating requests.
@item @code{cooked}
Causes output from query commands to be "cooked", so that
variables which are recognized by
@code{ntpq}
will have their
values reformatted for human consumption.
Variables which
@code{ntpq}
could not decode completely are
marked with a trailing
@quoteleft{}?@quoteright{}.
@item @code{debug} @code{[@code{more}|@code{less}|@code{off}]}
With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
@item @code{delay} @code{[@kbd{milliseconds}]}
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
@item @code{drefid} @code{[@code{hash}|@code{ipv4}]}
Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
@item @code{exit}
Exit
@code{ntpq}
@item @code{host} @code{[@kbd{name}]}
Set the host to which future queries will be sent.
The
@kbd{name}
may be either a host name or a numeric address.
Without any arguments, displays the current host.
@item @code{hostnames} @code{[@code{yes}|@code{no}]}
If
@code{yes}
is specified, host names are printed in
information displays.
If
@code{no}
is specified, numeric
addresses are printed instead.
The default is
@code{yes},
unless
modified using the command line
@code{-n}
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
@item @code{keyid} @code{[@kbd{keyid}]}
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
@code{controlkey}
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
@kbd{keyid}.
@item @code{keytype} @code{[@kbd{digest}]}
Specify the digest algorithm to use for authenticating requests, with default
@code{MD5}.
If
@code{ntpq}
was built with OpenSSL support, and OpenSSL is installed,
@kbd{digest}
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
@code{keytype} @kbd{digest}
algorithm used is displayed.
@item @code{ntpversion} @code{[@code{1}|@code{2}|@code{3}|@code{4}]}
Sets the NTP version number which
@code{ntpq}
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn't exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
@item @code{passwd}
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
@item @code{poll} @code{[@kbd{n}]} @code{[@code{verbose}]}
Poll an NTP server in client mode
@kbd{n}
times.
Poll not implemented yet.
@item @code{quit}
Exit
@code{ntpq}
@item @code{raw}
Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
@item @code{timeout} @code{[@kbd{milliseconds}]}
Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
@code{ntpq}
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
@item @code{version}
Display the version of the
@code{ntpq}
program.
@end table
@subsubsection Control Message Commands
Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
@code{peers}
command, which sends a series of messages,
and the
@code{mreadlist}
and
@code{mreadvar}
commands, which iterate over a range of associations.
@table @asis
@item @code{apeers}
Display a list of peers in the form:
@example
[tally]remote refid assid st t when pool reach delay offset jitter
@end example
where the output is just like the
@code{peers}
command except that the
@code{refid}
is displayed in hex format and the association number is also displayed.
@item @code{associations}
Display a list of mobilized associations in the form:
@example
ind assid status conf reach auth condition last_event cnt
@end example
@table @asis
@item Sy Variable Ta Sy Description
@item @code{ind} @code{Ta} @code{index} @code{on} @code{this} @code{list}
@item @code{assid} @code{Ta} @code{association} @code{id}
@item @code{status} @code{Ta} @code{peer} @code{status} @code{word}
@item @code{conf} @code{Ta} @code{yes}: @code{No} @code{persistent,} @code{no}: @code{No} @code{ephemeral}
@item @code{reach} @code{Ta} @code{yes}: @code{No} @code{reachable,} @code{no}: @code{No} @code{unreachable}
@item @code{auth} @code{Ta} @code{ok}, @code{yes}, @code{bad} @code{No} @code{and} @code{none}
@item @code{condition} @code{Ta} @code{selection} @code{status} @code{(see} @code{the} @code{select} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
@item @code{last_event} @code{Ta} @code{event} @code{report} @code{(see} @code{the} @code{event} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
@item @code{cnt} @code{Ta} @code{event} @code{count} @code{(see} @code{the} @code{count} @code{No} @code{field} @code{of} @code{the} @code{peer} @code{status} @code{word)}
@end table
@item @code{authinfo}
Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
@item @code{clocklist} @code{[@kbd{associd}]}
@item @code{cl} @code{[@kbd{associd}]}
Display all clock variables in the variable list for those associations
supporting a reference clock.
@item @code{clockvar} @code{[@kbd{associd}]} @code{[@kbd{name}@code{[=@kbd{value}]}]}@code{[,...]}
@item @code{cv} @code{[@kbd{associd}]} @code{[@kbd{name}@code{[=@kbd{value}]}]}@code{[,...]}
Display a list of clock variables for those associations supporting a
reference clock.
@item @code{:config} @kbd{configuration command line}
Send the remainder of the command line, including whitespace, to the
server as a run-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
@item @code{config-from-file} @kbd{filename}
Send each line of
@kbd{filename}
to the server as run-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
@item @code{ifstats}
Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
@item @code{iostats}
Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
@item @code{kerninfo}
Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
@item @code{lassociations}
Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
@item @code{lopeers} @code{[@code{-4}|@code{-6}]}
Display a list of all peers and clients showing
@code{dstadr}
(associated with the given IP version).
@item @code{lpassociations}
Display the last obtained list of associations, including all clients.
@item @code{lpeers} @code{[@code{-4}|@code{-6}]}
Display a list of all peers and clients (associated with the given IP version).
@item @code{monstats}
Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
@item @code{mreadlist} @kbd{associdlo} @kbd{associdhi}
@item @code{mrl} @kbd{associdlo} @kbd{associdhi}
Perform the same function as the
@code{readlist}
command for a range of association ids.
@item @code{mreadvar} @kbd{associdlo} @kbd{associdhi} @code{[@kbd{name}]}@code{[,...]}
This range may be determined from the list displayed by any
command showing associations.
@item @code{mrv} @kbd{associdlo} @kbd{associdhi} @code{[@kbd{name}]}@code{[,...]}
Perform the same function as the
@code{readvar}
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
@item @code{mrulist} @code{[@code{limited} | @code{kod} | @code{mincount}=@kbd{count} | @code{laddr}=@kbd{localaddr} | @code{sort}=@code{[-]}@kbd{sortorder} | @code{resany}=@kbd{hexmask} | @code{resall}=@kbd{hexmask}]}
Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
@code{sort}=@code{[-]}@kbd{sortorder},
the options filter the list returned by
@code{ntpd(8)}.
The
@code{limited}
and
@code{kod}
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
@code{mincount}=@kbd{count}
option filters entries representing less than
@kbd{count}
packets.
The
@code{laddr}=@kbd{localaddr}
option filters entries for packets received on any local address other than
@kbd{localaddr}.
@code{resany}=@kbd{hexmask}
and
@code{resall}=@kbd{hexmask}
filter entries containing none or less than all, respectively, of the bits in
@kbd{hexmask},
which must begin with
@code{0x}.
The
@kbd{sortorder}
defaults to
@code{lstint}
and may be
@code{addr},
@code{avgint},
@code{count},
@code{lstint},
or any of those preceded by
@quoteleft{}-@quoteright{}
to reverse the sort order.
The output columns are:
@table @asis
@item Column
Description
@item @code{lstint}
Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
@code{ntpq}
@item @code{avgint}
Average interval in s between packets from this address.
@item @code{rstr}
Restriction flags associated with this address.
Most are copied unchanged from the matching
@code{restrict}
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
@item @code{r}
Rate control indicator, either
a period,
@code{L}
or
@code{K}
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
@item @code{m}
Packet mode.
@item @code{v}
Packet version number.
@item @code{count}
Packets received from this address.
@item @code{rport}
Source port of last packet from this address.
@item @code{remote} @code{address}
host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
@end table
@item @code{opeers} @code{[@code{-4} | @code{-6}]}
Obtain and print the old-style list of all peers and clients showing
@code{dstadr}
(associated with the given IP version),
rather than the
@code{refid}.
@item @code{passociations}
Perform the same function as the
@code{associations}
command,
except that it uses previously stored data rather than making a new query.
@item @code{peers}
Display a list of peers in the form:
@example
[tally]remote refid st t when pool reach delay offset jitter
@end example
@table @asis
@item Variable
Description
@item @code{[tally]}
single-character code indicating current value of the
@code{select}
field of the
.Lk decode.html#peer "peer status word"
@item @code{remote}
host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
@code{ntpq}
@code{-w}
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
@item @code{refid}
source IP address or
.Lk decode.html#kiss "'kiss code"
@item @code{st}
stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
@item @code{t}
@code{u}:
unicast or manycast client,
@code{b}:
broadcast or multicast client,
@code{p}:
pool source,
@code{l}:
local (reference clock),
@code{s}:
symmetric (peer),
@code{A}:
manycast server,
@code{B}:
broadcast server,
@code{M}:
multicast server
@item @code{when}
time in seconds, minutes, hours, or days since the last packet
was received, or
@quoteleft{}-@quoteright{}
if a packet has never been received
@item @code{poll}
poll interval (s)
@item @code{reach}
reach shift register (octal)
@item @code{delay}
roundtrip delay
@item @code{offset}
offset of server relative to this host
@item @code{jitter}
offset RMS error estimate.
@end table
@item @code{pstats} @kbd{associd}
Display the statistics for the peer with the given
@kbd{associd}:
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
@item @code{readlist} @code{[@kbd{associd}]}
@item @code{rl} @code{[@kbd{associd}]}
Display all system or peer variables.
If the
@kbd{associd}
is omitted, it is assumed to be zero.
@item @code{readvar} @code{[@kbd{associd} @kbd{name}@code{[=@kbd{value}]} @code{[, ...]}]}
@item @code{rv} @code{[@kbd{associd} @kbd{name}@code{[=@kbd{value}]} @code{[, ...]}]}
Display the specified system or peer variables.
If
@kbd{associd}
is zero, the variables are from the
@ref{System Variables}
name space, otherwise they are from the
@ref{Peer Variables}
name space.
The
@kbd{associd}
is required, as the same name can occur in both spaces.
If no
@kbd{name}
is included, all operative variables in the name space are displayed.
In this case only, if the
@kbd{associd}
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts-per-million (PPM).
Some NTP timestamps are represented in the format
@kbd{YYYY}@kbd{MM} @kbd{DD} @kbd{TTTT},
where
@kbd{YYYY}
is the year,
@kbd{MM}
the month of year,
@kbd{DD}
the day of month and
@kbd{TTTT}
the time of day.
@item @code{reslist}
Display the access control (restrict) list for
@code{ntpq}
Authentication is required.
@item @code{saveconfig} @kbd{filename}
Save the current configuration,
including any runtime modifications made by
@code{:config}
or
@code{config-from-file},
to the NTP server host file
@kbd{filename}.
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir "saveconfigdir"
appears in the
@code{ntpd(8)}
configuration file.
@kbd{filename}
can use
@code{date(1)}
format specifiers to substitute the current date and time, for
example,
@example
@code{saveconfig} @file{ntp-%Y%m%d-%H%M%S.conf}.
@end example
The filename used is stored in system variable
@code{savedconfig}.
Authentication is required.
@item @code{sysinfo}
Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
@item @code{sysstats}
Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
@item @code{timerstats}
Display interval timer counters:
time since reset, timer overruns, calls to transmit.
@item @code{writelist} @kbd{associd}
Set all system or peer variables included in the variable list.
@item @code{writevar} @kbd{associd} @kbd{name}=@kbd{value} @code{[, ...]}
Set the specified variables in the variable list.
If the
@kbd{associd}
is zero, the variables are from the
@ref{System Variables}
name space, otherwise they are from the
@ref{Peer Variables}
name space.
The
@kbd{associd}
is required, as the same name can occur in both spaces.
Authentication is required.
@end table
@subsubsection Status Words and Kiss Codes
The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per-association basis.
These words are displayed by the
@code{readlist}
and
@code{associations}
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html "Event Messages and Status Words"
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss "kiss codes" .
The original purpose was for kiss-o'-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
@subsubsection System Variables
The following system variables appear in the
@code{readlist}
billboard.
Not all variables are displayed in some configurations.
@table @asis
@item Variable
Description
@item @code{status}
.Lk decode.html#sys "system status word"
@item @code{version}
NTP software version and build time
@item @code{processor}
hardware platform and version
@item @code{system}
operating system and version
@item @code{leap}
leap warning indicator (0-3)
@item @code{stratum}
stratum (1-15)
@item @code{precision}
precision (log2 s)
@item @code{rootdelay}
total roundtrip delay to the primary reference clock
@item @code{rootdisp}
total dispersion to the primary reference clock
@item @code{refid}
reference id or
.Lk decode.html#kiss "kiss code"
@item @code{reftime}
reference time
@item @code{clock}
date and time of day
@item @code{peer}
system peer association id
@item @code{tc}
time constant and poll exponent (log2 s) (3-17)
@item @code{mintc}
minimum time constant (log2 s) (3-10)
@item @code{offset}
combined offset of server relative to this host
@item @code{frequency}
frequency drift (PPM) relative to hardware clock
@item @code{sys_jitter}
combined system jitter
@item @code{clk_wander}
clock frequency wander (PPM)
@item @code{clk_jitter}
clock jitter
@item @code{tai}
TAI-UTC offset (s)
@item @code{leapsec}
NTP seconds when the next leap second is/was inserted
@item @code{expire}
NTP seconds when the NIST leapseconds file expires
@end table
The jitter and wander statistics are exponentially-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
@table @asis
@item Variable
Description
@item @code{host}
Autokey host name for this host
@item @code{ident}
Autokey group name for this host
@item @code{flags}
host flags (see Autokey specification)
@item @code{digest}
OpenSSL message digest algorithm
@item @code{signature}
OpenSSL digest/signature scheme
@item @code{update}
NTP seconds at last signature update
@item @code{cert}
certificate subject, issuer and certificate flags
@item @code{until}
NTP seconds when the certificate expires
@end table
@subsubsection Peer Variables
The following peer variables appear in the
@code{readlist}
billboard for each association.
Not all variables are displayed in some configurations.
@table @asis
@item Variable
Description
@item @code{associd}
association id
@item @code{status}
.Lk decode.html#peer "peer status word"
@item @code{srcadr}
source (remote) IP address
@item @code{srcport}
source (remote) port
@item @code{dstadr}
destination (local) IP address
@item @code{dstport}
destination (local) port
@item @code{leap}
leap indicator (0-3)
@item @code{stratum}
stratum (0-15)
@item @code{precision}
precision (log2 s)
@item @code{rootdelay}
total roundtrip delay to the primary reference clock
@item @code{rootdisp}
total root dispersion to the primary reference clock
@item @code{refid}
reference id or
.Lk decode.html#kiss "kiss code"
@item @code{reftime}
reference time
@item @code{rec}
last packet received time
@item @code{reach}
reach register (octal)
@item @code{unreach}
unreach counter
@item @code{hmode}
host mode (1-6)
@item @code{pmode}
peer mode (1-5)
@item @code{hpoll}
host poll exponent (log2 s) (3-17)
@item @code{ppoll}
peer poll exponent (log2 s) (3-17)
@item @code{headway}
headway (see
.Lk rate.html "Rate Management and the Kiss-o'-Death Packet" )
@item @code{flash}
.Lk decode.html#flash "flash status word"
@item @code{keyid}
symmetric key id
@item @code{offset}
filter offset
@item @code{delay}
filter delay
@item @code{dispersion}
filter dispersion
@item @code{jitter}
filter jitter
@item @code{bias}
unicast/broadcast bias
@item @code{xleave}
interleave delay (see
.Lk xleave.html "NTP Interleaved Modes" )
@end table
The
@code{bias}
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
@code{xleave}
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
@table @asis
@item Variable
Description
@item @code{flags}
peer flags (see Autokey specification)
@item @code{host}
Autokey server name
@item @code{flags}
peer flags (see Autokey specification)
@item @code{signature}
OpenSSL digest/signature scheme
@item @code{initsequence}
initial key id
@item @code{initkey}
initial key index
@item @code{timestamp}
Autokey signature timestamp
@item @code{ident}
Autokey group name for this association
@end table
@subsubsection Clock Variables
The following clock variables appear in the
@code{clocklist}
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
@table @asis
@item Variable
Description
@item @code{associd}
association id
@item @code{status}
.Lk decode.html#clock "clock status word"
@item @code{device}
device description
@item @code{timecode}
ASCII time code string (specific to device)
@item @code{poll}
poll messages sent
@item @code{noreply}
no reply
@item @code{badformat}
bad format
@item @code{baddata}
bad date or time
@item @code{fudgetime1}
fudge time 1
@item @code{fudgetime2}
fudge time 2
@item @code{stratum}
driver stratum
@item @code{refid}
driver reference id
@item @code{flags}
driver flags
@end table
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpq} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntpq usage:: ntpq help/usage (@option{--help})
* ntpq ipv4:: ipv4 option (-4)
* ntpq ipv6:: ipv6 option (-6)
* ntpq command:: command option (-c)
* ntpq interactive:: interactive option (-i)
* ntpq numeric:: numeric option (-n)
* ntpq old-rv:: old-rv option
* ntpq peers:: peers option (-p)
* ntpq refid:: refid option (-r)
* ntpq unconnected:: unconnected option (-u)
* ntpq wide:: wide option (-w)
* ntpq config:: presetting/configuring ntpq
* ntpq exit status:: exit status
@end menu
@node ntpq usage
@subsection ntpq help/usage (@option{--help})
@cindex ntpq help
This is the automatically generated usage text for ntpq.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntpq - standard NTP query program - Ver. 4.2.8p16
+ntpq - standard NTP query program - Ver. 4.2.8p17
Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 name resolution
- prohibits the option 'ipv4'
-c Str command run a command and exit
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-i no interactive Force ntpq to operate in interactive mode
- prohibits these options:
command
peers
-n no numeric numeric host addresses
no old-rv Always output status line with readvar
-p no peers Print a list of the peers
- prohibits the option 'interactive'
-r KWd refid Set default display type for S2+ refids
-u no unconnected Use unconnected UDP to communicate with ntpd (default on Windows)
-w no wide Display the full 'remote' value
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-> opt save-opts save the option state to a config file
-< Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTPQ_*
The valid "refid" option keywords are:
hash ipv4
or an integer from 0 through 1
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node ntpq ipv4
@subsection ipv4 option (-4)
@cindex ntpq-ipv4
This is the ``force ipv4 name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv6.
@end itemize
Force resolution of following host names on the command line
to the IPv4 namespace.
@node ntpq ipv6
@subsection ipv6 option (-6)
@cindex ntpq-ipv6
This is the ``force ipv6 name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv4.
@end itemize
Force resolution of following host names on the command line
to the IPv6 namespace.
@node ntpq command
@subsection command option (-c)
@cindex ntpq-command
This is the ``run a command and exit'' option.
This option takes a string argument @file{cmd}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
@node ntpq interactive
@subsection interactive option (-i)
@cindex ntpq-interactive
This is the ``force ntpq to operate in interactive mode'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
command, peers.
@end itemize
Force @code{ntpq} to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
@node ntpq numeric
@subsection numeric option (-n)
@cindex ntpq-numeric
This is the ``numeric host addresses'' option.
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
@node ntpq old-rv
@subsection old-rv option
@cindex ntpq-old-rv
This is the ``always output status line with readvar'' option.
By default, @code{ntpq} now suppresses the @code{associd=...}
line that precedes the output of @code{readvar}
(alias @code{rv}) when a single variable is requested, such as
@code{ntpq -c "rv 0 offset"}.
This option causes @code{ntpq} to include both lines of output
for a single-variable @code{readvar}.
Using an environment variable to
preset this option in a script will enable both older and
newer @code{ntpq} to behave identically in this regard.
@node ntpq peers
@subsection peers option (-p)
@cindex ntpq-peers
This is the ``print a list of the peers'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
interactive.
@end itemize
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
@node ntpq refid
@subsection refid option (-r)
@cindex ntpq-refid
This is the ``set default display type for s2+ refids'' option.
This option takes a keyword argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
This option takes a keyword as its argument.
The argument sets an enumeration value that can be tested by comparing the option value macro (OPT_VALUE_REFID).
The available keywords are:
@example
hash ipv4
@end example
or their numeric equivalent.
@end itemize
Set the default display format for S2+ refids.
@node ntpq unconnected
@subsection unconnected option (-u)
@cindex ntpq-unconnected
This is the ``use unconnected udp to communicate with ntpd (default on windows)'' option.
Open an unconnected UDP association to ntpd (the default
on Windows).
@node ntpq wide
@subsection wide option (-w)
@cindex ntpq-wide
This is the ``display the full 'remote' value'' option.
Display the full value of the 'remote' value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
@node ntpq config
@subsection presetting/configuring ntpq
Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{NTPQ} and @code{NTPQ_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{NTPQ} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
@noindent
@code{libopts} will search in 2 places for configuration files:
@itemize @bullet
@item
$HOME
@item
$PWD
@end itemize
The environment variables @code{HOME}, and @code{PWD}
are expanded and replaced when @file{ntpq} runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named @file{.ntprc} is searched for
within that directory and processed.
Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
@example
[NTPQ]
@end example
@noindent
or by
@example
<?program ntpq>
@end example
@noindent
Do not mix these styles within one configuration file.
Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
<sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions. You simply note that it is a
hierarchicly valued option. @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node ntpq exit status
@subsection ntpq exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error. Please report
it to autogen-users@@lists.sourceforge.net. Thank you.
@end table
diff --git a/contrib/ntp/ntpq/ntpq-opts.c b/contrib/ntp/ntpq/ntpq-opts.c
index e6398fd724b4..3e176c057652 100644
--- a/contrib/ntp/ntpq/ntpq-opts.c
+++ b/contrib/ntp/ntpq/ntpq-opts.c
@@ -1,1251 +1,1251 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 02:49:56 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:03 AM by AutoGen 5.18.16
* From the definitions ntpq-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpq author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpq program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "ntpq-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpq_opt_strs+0)
#define zLicenseDescrip (ntpq_opt_strs+341)
/*
* global included definitions
*/
#ifdef __windows
extern int atoi(const char*);
#else
# include <stdlib.h>
#endif
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ntpq options
*/
static char const ntpq_opt_strs[2068] =
-/* 0 */ "ntpq 4.2.8p16\n"
+/* 0 */ "ntpq 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 341 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1009 */ "Force IPv4 name resolution\0"
/* 1036 */ "IPV4\0"
/* 1041 */ "ipv4\0"
/* 1046 */ "Force IPv6 name resolution\0"
/* 1073 */ "IPV6\0"
/* 1078 */ "ipv6\0"
/* 1083 */ "run a command and exit\0"
/* 1106 */ "COMMAND\0"
/* 1114 */ "command\0"
/* 1122 */ "Increase debug verbosity level\0"
/* 1153 */ "DEBUG_LEVEL\0"
/* 1165 */ "debug-level\0"
/* 1177 */ "Set the debug verbosity level\0"
/* 1207 */ "SET_DEBUG_LEVEL\0"
/* 1223 */ "set-debug-level\0"
/* 1239 */ "Force ntpq to operate in interactive mode\0"
/* 1281 */ "INTERACTIVE\0"
/* 1293 */ "interactive\0"
/* 1305 */ "numeric host addresses\0"
/* 1328 */ "NUMERIC\0"
/* 1336 */ "numeric\0"
/* 1344 */ "Always output status line with readvar\0"
/* 1383 */ "OLD_RV\0"
/* 1390 */ "old-rv\0"
/* 1397 */ "Print a list of the peers\0"
/* 1423 */ "PEERS\0"
/* 1429 */ "peers\0"
/* 1435 */ "Set default display type for S2+ refids\0"
/* 1475 */ "REFID\0"
/* 1481 */ "refid\0"
/* 1487 */ "Use unconnected UDP to communicate with ntpd (default on Windows)\0"
/* 1553 */ "UNCONNECTED\0"
/* 1565 */ "unconnected\0"
/* 1577 */ "Display the full 'remote' value\0"
/* 1609 */ "WIDE\0"
/* 1614 */ "wide\0"
/* 1619 */ "display extended usage information and exit\0"
/* 1663 */ "help\0"
/* 1668 */ "extended usage information passed thru pager\0"
/* 1713 */ "more-help\0"
/* 1723 */ "output version information and exit\0"
/* 1759 */ "version\0"
/* 1767 */ "save the option state to a config file\0"
/* 1806 */ "save-opts\0"
/* 1816 */ "load options from a config file\0"
/* 1848 */ "LOAD_OPTS\0"
/* 1858 */ "no-load-opts\0"
/* 1871 */ "no\0"
/* 1874 */ "NTPQ\0"
-/* 1879 */ "ntpq - standard NTP query program - Ver. 4.2.8p16\n"
+/* 1879 */ "ntpq - standard NTP query program - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
/* 1999 */ "$HOME\0"
/* 2005 */ ".\0"
/* 2007 */ ".ntprc\0"
/* 2014 */ "https://bugs.ntp.org, bugs@ntp.org\0"
-/* 2049 */ "ntpq 4.2.8p16\0"
+/* 2049 */ "ntpq 4.2.8p17\0"
/* 2063 */ "hash";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
#define IPV4_DESC (ntpq_opt_strs+1009)
/** Upper-cased name for the ipv4 option */
#define IPV4_NAME (ntpq_opt_strs+1036)
/** Name string for the ipv4 option */
#define IPV4_name (ntpq_opt_strs+1041)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv4 option */
#define IPV4_FLAGS (OPTST_DISABLED)
/**
* ipv6 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
#define IPV6_DESC (ntpq_opt_strs+1046)
/** Upper-cased name for the ipv6 option */
#define IPV6_NAME (ntpq_opt_strs+1073)
/** Name string for the ipv6 option */
#define IPV6_name (ntpq_opt_strs+1078)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv6 option */
#define IPV6_FLAGS (OPTST_DISABLED)
/**
* command option description:
*/
/** Descriptive text for the command option */
#define COMMAND_DESC (ntpq_opt_strs+1083)
/** Upper-cased name for the command option */
#define COMMAND_NAME (ntpq_opt_strs+1106)
/** Name string for the command option */
#define COMMAND_name (ntpq_opt_strs+1114)
/** Compiled in flag settings for the command option */
#define COMMAND_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
#define DEBUG_LEVEL_DESC (ntpq_opt_strs+1122)
/** Upper-cased name for the debug-level option */
#define DEBUG_LEVEL_NAME (ntpq_opt_strs+1153)
/** Name string for the debug-level option */
#define DEBUG_LEVEL_name (ntpq_opt_strs+1165)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
/**
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
#define SET_DEBUG_LEVEL_DESC (ntpq_opt_strs+1177)
/** Upper-cased name for the set-debug-level option */
#define SET_DEBUG_LEVEL_NAME (ntpq_opt_strs+1207)
/** Name string for the set-debug-level option */
#define SET_DEBUG_LEVEL_name (ntpq_opt_strs+1223)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* interactive option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the interactive option */
#define INTERACTIVE_DESC (ntpq_opt_strs+1239)
/** Upper-cased name for the interactive option */
#define INTERACTIVE_NAME (ntpq_opt_strs+1281)
/** Name string for the interactive option */
#define INTERACTIVE_name (ntpq_opt_strs+1293)
/** Other options that appear in conjunction with the interactive option */
static int const aInteractiveCantList[] = {
INDEX_OPT_COMMAND,
INDEX_OPT_PEERS, NO_EQUIVALENT };
/** Compiled in flag settings for the interactive option */
#define INTERACTIVE_FLAGS (OPTST_DISABLED)
/**
* numeric option description:
*/
/** Descriptive text for the numeric option */
#define NUMERIC_DESC (ntpq_opt_strs+1305)
/** Upper-cased name for the numeric option */
#define NUMERIC_NAME (ntpq_opt_strs+1328)
/** Name string for the numeric option */
#define NUMERIC_name (ntpq_opt_strs+1336)
/** Compiled in flag settings for the numeric option */
#define NUMERIC_FLAGS (OPTST_DISABLED)
/**
* old-rv option description:
*/
/** Descriptive text for the old-rv option */
#define OLD_RV_DESC (ntpq_opt_strs+1344)
/** Upper-cased name for the old-rv option */
#define OLD_RV_NAME (ntpq_opt_strs+1383)
/** Name string for the old-rv option */
#define OLD_RV_name (ntpq_opt_strs+1390)
/** Compiled in flag settings for the old-rv option */
#define OLD_RV_FLAGS (OPTST_DISABLED)
/**
* peers option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the peers option */
#define PEERS_DESC (ntpq_opt_strs+1397)
/** Upper-cased name for the peers option */
#define PEERS_NAME (ntpq_opt_strs+1423)
/** Name string for the peers option */
#define PEERS_name (ntpq_opt_strs+1429)
/** Other options that appear in conjunction with the peers option */
static int const aPeersCantList[] = {
INDEX_OPT_INTERACTIVE, NO_EQUIVALENT };
/** Compiled in flag settings for the peers option */
#define PEERS_FLAGS (OPTST_DISABLED)
/**
* refid option description:
*/
/** Descriptive text for the refid option */
#define REFID_DESC (ntpq_opt_strs+1435)
/** Upper-cased name for the refid option */
#define REFID_NAME (ntpq_opt_strs+1475)
/** Name string for the refid option */
#define REFID_name (ntpq_opt_strs+1481)
/** The compiled in default value for the refid option argument */
#define REFID_DFT_ARG ((char const*)REFID_IPV4)
/** Compiled in flag settings for the refid option */
#define REFID_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_ENUMERATION))
/**
* unconnected option description:
*/
/** Descriptive text for the unconnected option */
#define UNCONNECTED_DESC (ntpq_opt_strs+1487)
/** Upper-cased name for the unconnected option */
#define UNCONNECTED_NAME (ntpq_opt_strs+1553)
/** Name string for the unconnected option */
#define UNCONNECTED_name (ntpq_opt_strs+1565)
/** Compiled in flag settings for the unconnected option */
#define UNCONNECTED_FLAGS (OPTST_DISABLED)
/**
* wide option description:
*/
/** Descriptive text for the wide option */
#define WIDE_DESC (ntpq_opt_strs+1577)
/** Upper-cased name for the wide option */
#define WIDE_NAME (ntpq_opt_strs+1609)
/** Name string for the wide option */
#define WIDE_name (ntpq_opt_strs+1614)
/** Compiled in flag settings for the wide option */
#define WIDE_FLAGS (OPTST_DISABLED)
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ntpq_opt_strs+1619)
#define HELP_name (ntpq_opt_strs+1663)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ntpq_opt_strs+1668)
#define MORE_HELP_name (ntpq_opt_strs+1713)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (ntpq_opt_strs+1723)
#define VER_name (ntpq_opt_strs+1759)
#define SAVE_OPTS_DESC (ntpq_opt_strs+1767)
#define SAVE_OPTS_name (ntpq_opt_strs+1806)
#define LOAD_OPTS_DESC (ntpq_opt_strs+1816)
#define LOAD_OPTS_NAME (ntpq_opt_strs+1848)
#define NO_LOAD_OPTS_name (ntpq_opt_strs+1858)
#define LOAD_OPTS_pfx (ntpq_opt_strs+1871)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
*/
extern tOptProc
ntpOptionPrintVersion, ntpq_custom_opt_handler, optionBooleanVal,
optionNestedVal, optionNumericVal, optionPagedUsage,
optionResetOpt, optionStackArg, optionTimeDate,
optionTimeVal, optionUnstackArg, optionVendorOption;
static tOptProc
doOptDebug_Level, doOptRefid, doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ntpq Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ntpq program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_IPV4,
/* equiv idx, value */ 0, VALUE_OPT_IPV4,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV4_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv4 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv4CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV4_DESC, IPV4_NAME, IPV4_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_IPV6,
/* equiv idx, value */ 1, VALUE_OPT_IPV6,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV6_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv6 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv6CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV6_DESC, IPV6_NAME, IPV6_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_COMMAND,
/* equiv idx, value */ 2, VALUE_OPT_COMMAND,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ COMMAND_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --command */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ ntpq_custom_opt_handler,
/* desc, NAME, name */ COMMAND_DESC, COMMAND_NAME, COMMAND_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equiv idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptDebug_Level,
/* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equiv idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --set-debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 5, VALUE_OPT_INTERACTIVE,
/* equiv idx, value */ 5, VALUE_OPT_INTERACTIVE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ INTERACTIVE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --interactive */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aInteractiveCantList,
/* option proc */ NULL,
/* desc, NAME, name */ INTERACTIVE_DESC, INTERACTIVE_NAME, INTERACTIVE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 6, VALUE_OPT_NUMERIC,
/* equiv idx, value */ 6, VALUE_OPT_NUMERIC,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NUMERIC_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --numeric */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ NUMERIC_DESC, NUMERIC_NAME, NUMERIC_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 7, VALUE_OPT_OLD_RV,
/* equiv idx, value */ 7, VALUE_OPT_OLD_RV,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OLD_RV_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --old-rv */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ OLD_RV_DESC, OLD_RV_NAME, OLD_RV_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 8, VALUE_OPT_PEERS,
/* equiv idx, value */ 8, VALUE_OPT_PEERS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PEERS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --peers */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aPeersCantList,
/* option proc */ ntpq_custom_opt_handler,
/* desc, NAME, name */ PEERS_DESC, PEERS_NAME, PEERS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 9, VALUE_OPT_REFID,
/* equiv idx, value */ 9, VALUE_OPT_REFID,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ REFID_FLAGS, 0,
/* last opt argumnt */ { REFID_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptRefid,
/* desc, NAME, name */ REFID_DESC, REFID_NAME, REFID_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 10, VALUE_OPT_UNCONNECTED,
/* equiv idx, value */ 10, VALUE_OPT_UNCONNECTED,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ UNCONNECTED_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --unconnected */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ UNCONNECTED_DESC, UNCONNECTED_NAME, UNCONNECTED_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 11, VALUE_OPT_WIDE,
/* equiv idx, value */ 11, VALUE_OPT_WIDE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ WIDE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --wide */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ WIDE_DESC, WIDE_NAME, WIDE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionLoadOpt,
/* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
/* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpq. */
#define zPROGNAME (ntpq_opt_strs+1874)
/** Reference to the title line for ntpq usage. */
#define zUsageTitle (ntpq_opt_strs+1879)
/** ntpq configuration file name. */
#define zRcName (ntpq_opt_strs+2007)
/** Directories to search for ntpq config files. */
static char const * const apzHomeList[3] = {
ntpq_opt_strs+1999,
ntpq_opt_strs+2005,
NULL };
/** The ntpq program bug email address. */
#define zBugsAddr (ntpq_opt_strs+2014)
/** Clarification/explanation of what ntpq does. */
#define zExplain (NULL)
/** Extra detail explaining what ntpq does. */
#define zDetail (NULL)
/** The full version string for ntpq. */
#define zFullVersion (ntpq_opt_strs+2049)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define ntpq_full_usage (NULL)
#define ntpq_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = NTPQ_EXIT_SUCCESS;
optionUsage(&ntpqOptions, ex_code);
/* NOTREACHED */
exit(NTPQ_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug-level option.
*
* @param[in] pOptions the ntpq options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
{
/*
* Be sure the flag-code[0] handles special values for the options pointer
* viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
* ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
* reset its state.
*/
/* extracted from debug-opt.def, line 15 */
OPT_VALUE_SET_DEBUG_LEVEL++;
(void)pOptDesc;
(void)pOptions;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the refid option.
* Set the default display format for S2+ refids.
* @param[in] pOptions the ntpq options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptRefid(tOptions* pOptions, tOptDesc* pOptDesc)
{
/* extracted from optmain.tlib near line 945 */
static char const * const names[2] = {
ntpq_opt_strs+2063, ntpq_opt_strs+1041 };
if (pOptions <= OPTPROC_EMIT_LIMIT) {
(void) optionEnumerationVal(pOptions, pOptDesc, names, 2);
return; /* protect AutoOpts client code from internal callbacks */
}
pOptDesc->optArg.argEnum =
optionEnumerationVal(pOptions, pOptDesc, names, 2);
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ntpq.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ntpq
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ntpq_packager_info NULL
#else
/** Packager information for ntpq. */
static char const ntpq_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ntpq bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ntpq. The one structure that
* binds them all.
*/
tOptions ntpqOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_ENVIRON
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
INDEX_OPT_SAVE_OPTS, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
17 /* full option count */, 12 /* user option count */,
ntpq_full_usage, ntpq_short_usage,
NULL, NULL,
PKGDATADIR, ntpq_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ntpq program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(NTPQ_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the ntpqOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ntpqOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the ntpqOptions structure noted in the
comments below. The literal text is defined in ntpq_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ntpq_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via ntpqOptions.pzCopyright */
- puts(_("ntpq 4.2.8p16\n\
+ puts(_("ntpq 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via ntpqOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Force IPv4 name resolution"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Force IPv6 name resolution"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("run a command and exit"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Increase debug verbosity level"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Set the debug verbosity level"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Force ntpq to operate in interactive mode"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("numeric host addresses"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Always output status line with readvar"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Print a list of the peers"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Set default display type for S2+ refids"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Use unconnected UDP to communicate with ntpd (default on Windows)"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("Display the full 'remote' value"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("save the option state to a config file"));
/* referenced via ntpqOptions.pOptDesc->pzText */
puts(_("load options from a config file"));
/* referenced via ntpqOptions.pzUsageTitle */
- puts(_("ntpq - standard NTP query program - Ver. 4.2.8p16\n\
+ puts(_("ntpq - standard NTP query program - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpqOptions.pzFullVersion */
- puts(_("ntpq 4.2.8p16"));
+ puts(_("ntpq 4.2.8p17"));
/* referenced via ntpqOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ntpqOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* ntpq-opts.c ends here */
diff --git a/contrib/ntp/ntpq/ntpq-opts.h b/contrib/ntp/ntpq/ntpq-opts.h
index 43637fd268cf..60d2ba1278c6 100644
--- a/contrib/ntp/ntpq/ntpq-opts.h
+++ b/contrib/ntp/ntpq/ntpq-opts.h
@@ -1,323 +1,323 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 02:49:56 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:02 AM by AutoGen 5.18.16
* From the definitions ntpq-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpq author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpq program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ntpq program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_NTPQ_OPTS_H_GUARD
#define AUTOOPTS_NTPQ_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for ntpq
*/
typedef enum {
INDEX_OPT_IPV4 = 0,
INDEX_OPT_IPV6 = 1,
INDEX_OPT_COMMAND = 2,
INDEX_OPT_DEBUG_LEVEL = 3,
INDEX_OPT_SET_DEBUG_LEVEL = 4,
INDEX_OPT_INTERACTIVE = 5,
INDEX_OPT_NUMERIC = 6,
INDEX_OPT_OLD_RV = 7,
INDEX_OPT_PEERS = 8,
INDEX_OPT_REFID = 9,
INDEX_OPT_UNCONNECTED = 10,
INDEX_OPT_WIDE = 11,
INDEX_OPT_VERSION = 12,
INDEX_OPT_HELP = 13,
INDEX_OPT_MORE_HELP = 14,
INDEX_OPT_SAVE_OPTS = 15,
INDEX_OPT_LOAD_OPTS = 16
} teOptIndex;
/** count of all options for ntpq */
#define OPTION_CT 17
/** ntpq version */
-#define NTPQ_VERSION "4.2.8p16"
+#define NTPQ_VERSION "4.2.8p17"
/** Full ntpq version text */
-#define NTPQ_FULL_VERSION "ntpq 4.2.8p16"
+#define NTPQ_FULL_VERSION "ntpq 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(IPV4)
*/
#define DESC(n) (ntpqOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ntpq exit codes
*/
typedef enum {
NTPQ_EXIT_SUCCESS = 0,
NTPQ_EXIT_FAILURE = 1,
NTPQ_EXIT_USAGE_ERROR = 64,
NTPQ_EXIT_NO_CONFIG_INPUT = 66,
NTPQ_EXIT_LIBOPTS_FAILURE = 70
} ntpq_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef IPV4
# warning undefining IPV4 due to option name conflict
# undef IPV4
# endif
# ifdef IPV6
# warning undefining IPV6 due to option name conflict
# undef IPV6
# endif
# ifdef COMMAND
# warning undefining COMMAND due to option name conflict
# undef COMMAND
# endif
# ifdef DEBUG_LEVEL
# warning undefining DEBUG_LEVEL due to option name conflict
# undef DEBUG_LEVEL
# endif
# ifdef SET_DEBUG_LEVEL
# warning undefining SET_DEBUG_LEVEL due to option name conflict
# undef SET_DEBUG_LEVEL
# endif
# ifdef INTERACTIVE
# warning undefining INTERACTIVE due to option name conflict
# undef INTERACTIVE
# endif
# ifdef NUMERIC
# warning undefining NUMERIC due to option name conflict
# undef NUMERIC
# endif
# ifdef OLD_RV
# warning undefining OLD_RV due to option name conflict
# undef OLD_RV
# endif
# ifdef PEERS
# warning undefining PEERS due to option name conflict
# undef PEERS
# endif
# ifdef REFID
# warning undefining REFID due to option name conflict
# undef REFID
# endif
# ifdef UNCONNECTED
# warning undefining UNCONNECTED due to option name conflict
# undef UNCONNECTED
# endif
# ifdef WIDE
# warning undefining WIDE due to option name conflict
# undef WIDE
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef IPV4
# undef IPV6
# undef COMMAND
# undef DEBUG_LEVEL
# undef SET_DEBUG_LEVEL
# undef INTERACTIVE
# undef NUMERIC
# undef OLD_RV
# undef PEERS
# undef REFID
# undef UNCONNECTED
# undef WIDE
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_IPV4 '4'
#define VALUE_OPT_IPV6 '6'
#define VALUE_OPT_COMMAND 'c'
#define VALUE_OPT_DEBUG_LEVEL 'd'
#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
#define VALUE_OPT_INTERACTIVE 'i'
#define VALUE_OPT_NUMERIC 'n'
#define VALUE_OPT_OLD_RV 0x1001
#define VALUE_OPT_PEERS 'p'
#define VALUE_OPT_REFID 'r'
typedef enum {
REFID_HASH, REFID_IPV4
} te_Refid;
#define OPT_REFID_VAL2STR(_v) optionKeywordName(&DESC(REFID), (_v))
#define OPT_VALUE_REFID (DESC(REFID).optArg.argEnum)
#define VALUE_OPT_UNCONNECTED 'u'
#define VALUE_OPT_WIDE 'w'
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1002
/** option flag (value) for save-opts-value option */
#define VALUE_OPT_SAVE_OPTS '>'
/** option flag (value) for load-opts-value option */
#define VALUE_OPT_LOAD_OPTS '<'
#define SET_OPT_SAVE_OPTS(a) STMTS( \
DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ntpqOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ntpqOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ntpqOptions.curOptIdx = (n); \
ntpqOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ntpqOptions.pUsageProc)(&ntpqOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ntpq option descriptor.
*/
extern tOptions ntpqOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(ntpqOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ntpqOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ntpqOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ntpqOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_NTPQ_OPTS_H_GUARD */
/* ntpq-opts.h ends here */
diff --git a/contrib/ntp/ntpq/ntpq.1ntpqman b/contrib/ntp/ntpq/ntpq.1ntpqman
index 79f7f4cbc06c..e4f93b336110 100644
--- a/contrib/ntp/ntpq/ntpq.1ntpqman
+++ b/contrib/ntp/ntpq/ntpq.1ntpqman
@@ -1,1594 +1,1594 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq 1ntpqman "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpq 1ntpqman "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:08 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:15 AM by AutoGen 5.18.16
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpq\fP
\- standard NTP query program
.SH SYNOPSIS
\f\*[B-Font]ntpq\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ host ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpq\fP
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty-printed output
options being available.
The
\f\*[B-Font]ntpq\fP
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
.sp \n(Ppu
.ne 2
If one or more request options is included on the command line
when
\f\*[B-Font]ntpq\fP
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
\f\*[B-Font]ntpq\fP
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
\f\*[B-Font]ntpq\fP
utility will prompt for
commands if the standard input is a terminal device.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntpq\fP
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
\f\*[B-Font]ntpq\fP
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
\f\*[B-Font]\-6\f[]
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
\*[Lq]NTP Debugging Techniques\*[Rq]
page.
.sp \n(Ppu
.ne 2
Specifying a
command line option other than
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-n\f[]
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
\f\*[B-Font]ntpq\fP
will attempt to read
interactive format commands from the standard input.
.SS "Internal Commands"
.sp \n(Ppu
.ne 2
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
.sp \n(Ppu
.ne 2
A
number of interactive format commands are executed entirely within
the
\f\*[B-Font]ntpq\fP
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
.TP 15
.NOP \f\*[B-Font]?\f[] [\f\*[I-Font]command\f[]]
.br
.ns
.TP 15
.NOP \f\*[B-Font]help\f[] [\f\*[I-Font]command\f[]]
A
\[oq]\&?\[cq]
by itself will print a list of all the commands
known to
\f\*[B-Font]ntpq\fP.
A
\[oq]\&?\[cq]
followed by a command name will print function and usage
information about the command.
.br
.ns
.TP 15
.NOP \f\*[B-Font]addvars\f[] \f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][,...]
.br
.ns
.TP 15
.NOP \f\*[B-Font]rmvars\f[] \f\*[I-Font]name\f[][,...]
.br
.ns
.TP 15
.NOP \f\*[B-Font]clearvars\f[]
.br
.ns
.TP 15
.NOP \f\*[B-Font]showvars\f[]
The arguments to this command consist of a list of
items of the form
\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]],
where the
.NOP \&=\f\*[I-Font]value\f[]
is ignored, and can be omitted,
in requests to the server to read variables.
The
\f\*[B-Font]ntpq\fP
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
\f\*[B-Font]readlist\f[]
and
\f\*[B-Font]writelist\f[]
commands described below.
The
\f\*[B-Font]addvars\f[]
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma-separated and not contain white space.
The
\f\*[B-Font]rmvars\f[]
command can be used to remove individual variables from the list,
while the
\f\*[B-Font]clearvars\f[]
command removes all variables from the
list.
The
\f\*[B-Font]showvars\f[]
command displays the current list of optional variables.
.br
.ns
.TP 15
.NOP \f\*[B-Font]authenticate\f[] [\f\*[B-Font]yes\f[]|\f\*[B-Font]no\f[]]
Normally
\f\*[B-Font]ntpq\fP
does not authenticate requests unless
they are write requests.
The command
\f\*[B-Font]authenticate\f[] \f\*[B-Font]yes\f[]
causes
\f\*[B-Font]ntpq\fP
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
\f\*[B-Font]authenticate\f[]
causes
\f\*[B-Font]ntpq\fP
to display whether or not
it is currently authenticating requests.
.br
.ns
.TP 15
.NOP \f\*[B-Font]cooked\f[]
Causes output from query commands to be "cooked", so that
variables which are recognized by
\f\*[B-Font]ntpq\fP
will have their
values reformatted for human consumption.
Variables which
\f\*[B-Font]ntpq\fP
could not decode completely are
marked with a trailing
\[oq]\&?\[cq].
.br
.ns
.TP 15
.NOP \f\*[B-Font]debug\f[] [\f\*[B-Font]more\f[]|\f\*[B-Font]less\f[]|\f\*[B-Font]off\f[]]
With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
.br
.ns
.TP 15
.NOP \f\*[B-Font]delay\f[] [\f\*[I-Font]milliseconds\f[]]
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
.br
.ns
.TP 15
.NOP \f\*[B-Font]drefid\f[] [\f\*[B-Font]hash\f[]|\f\*[B-Font]ipv4\f[]]
Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
.br
.ns
.TP 15
.NOP \f\*[B-Font]exit\f[]
Exit
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 15
.NOP \f\*[B-Font]host\f[] [\f\*[I-Font]name\f[]]
Set the host to which future queries will be sent.
The
\f\*[I-Font]name\f[]
may be either a host name or a numeric address.
Without any arguments, displays the current host.
.br
.ns
.TP 15
.NOP \f\*[B-Font]hostnames\f[] [\f\*[B-Font]yes\f[]|\f\*[B-Font]no\f[]]
If
\f\*[B-Font]yes\f[]
is specified, host names are printed in
information displays.
If
\f\*[B-Font]no\f[]
is specified, numeric
addresses are printed instead.
The default is
\f\*[B-Font]yes\f[],
unless
modified using the command line
\f\*[B-Font]\-n\f[]
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
.br
.ns
.TP 15
.NOP \f\*[B-Font]keyid\f[] [\f\*[I-Font]keyid\f[]]
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
\f\*[B-Font]controlkey\f[]
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
\f\*[I-Font]keyid\f[].
.br
.ns
.TP 15
.NOP \f\*[B-Font]keytype\f[] [\f\*[I-Font]digest\f[]]
Specify the digest algorithm to use for authenticating requests, with default
\f\*[B-Font]MD5\f[].
If
\f\*[B-Font]ntpq\fP
was built with OpenSSL support, and OpenSSL is installed,
\f\*[I-Font]digest\f[]
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
\f\*[B-Font]keytype\f[] \f\*[I-Font]digest\f[]
algorithm used is displayed.
.br
.ns
.TP 15
.NOP \f\*[B-Font]ntpversion\f[] [\f\*[B-Font]1\f[]|\f\*[B-Font]2\f[]|\f\*[B-Font]3\f[]|\f\*[B-Font]4\f[]]
Sets the NTP version number which
\f\*[B-Font]ntpq\fP
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn't exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
.br
.ns
.TP 15
.NOP \f\*[B-Font]passwd\f[]
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.br
.ns
.TP 15
.NOP \f\*[B-Font]poll\f[] [\f\*[I-Font]n\f[]] [\f\*[B-Font]verbose\f[]]
Poll an NTP server in client mode
\f\*[I-Font]n\f[]
times.
Poll not implemented yet.
.br
.ns
.TP 15
.NOP \f\*[B-Font]quit\f[]
Exit
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 15
.NOP \f\*[B-Font]raw\f[]
Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
.br
.ns
.TP 15
.NOP \f\*[B-Font]timeout\f[] [\f\*[I-Font]milliseconds\f[]]
Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
\f\*[B-Font]ntpq\fP
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.br
.ns
.TP 15
.NOP \f\*[B-Font]version\f[]
Display the version of the
\f\*[B-Font]ntpq\fP
program.
.PP
.SS "Control Message Commands"
Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
\f\*[B-Font]peers\f[]
command, which sends a series of messages,
and the
\f\*[B-Font]mreadlist\f[]
and
\f\*[B-Font]mreadvar\f[]
commands, which iterate over a range of associations.
.TP 10
.NOP \f\*[B-Font]apeers\f[]
Display a list of peers in the form:
.Dl [tally]remote refid assid st t when pool reach delay offset jitter
where the output is just like the
\f\*[B-Font]peers\f[]
command except that the
\f\*[B-Font]refid\f[]
is displayed in hex format and the association number is also displayed.
.br
.ns
.TP 10
.NOP \f\*[B-Font]associations\f[]
Display a list of mobilized associations in the form:
.Dl ind assid status conf reach auth condition last_event cnt
.RS
.IP \fB\(bu\fP 2
.IP \fB\(bu\fP 2 \f\*[B-Font]ind\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]index\f[] \f\*[B-Font]on\f[] \f\*[B-Font]this\f[] \f\*[B-Font]list\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]assid\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]association\f[] \f\*[B-Font]id\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]status\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]conf\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]yes\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]persistent,\f[] \f\*[B-Font]no\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]ephemeral\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]reach\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]yes\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]reachable,\f[] \f\*[B-Font]no\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]unreachable\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]auth\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]ok\f[], \f\*[B-Font]yes\f[], \f\*[B-Font]bad\f[] \f\*[B-Font]No\f[] \f\*[B-Font]and\f[] \f\*[B-Font]none\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]condition\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]selection\f[] \f\*[B-Font]status\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]select\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]last_event\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]event\f[] \f\*[B-Font]report\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]event\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]cnt\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]event\f[] \f\*[B-Font]count\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]count\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]authinfo\f[]
Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
.br
.ns
.TP 10
.NOP \f\*[B-Font]clocklist\f[] [\f\*[I-Font]associd\f[]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]cl\f[] [\f\*[I-Font]associd\f[]]
Display all clock variables in the variable list for those associations
supporting a reference clock.
.br
.ns
.TP 10
.NOP \f\*[B-Font]clockvar\f[] [\f\*[I-Font]associd\f[]] [\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][] ,...]
.br
.ns
.TP 10
.NOP \f\*[B-Font]cv\f[] [\f\*[I-Font]associd\f[]] [\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][] ,...]
Display a list of clock variables for those associations supporting a
reference clock.
.br
.ns
.TP 10
.NOP \f\*[B-Font]:config\f[] \f\*[I-Font]configuration command line\f[]
Send the remainder of the command line, including whitespace, to the
server as a run-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]config-from-file\f[] \f\*[I-Font]filename\f[]
Send each line of
\f\*[I-Font]filename\f[]
to the server as run-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]ifstats\f[]
Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]iostats\f[]
Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
.br
.ns
.TP 10
.NOP \f\*[B-Font]kerninfo\f[]
Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lassociations\f[]
Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lopeers\f[] [\f\*[B-Font]\-4\f[]|\f\*[B-Font]\-6\f[]]
Display a list of all peers and clients showing
\f\*[B-Font]dstadr\f[]
(associated with the given IP version).
.br
.ns
.TP 10
.NOP \f\*[B-Font]lpassociations\f[]
Display the last obtained list of associations, including all clients.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lpeers\f[] [\f\*[B-Font]\-4\f[]|\f\*[B-Font]\-6\f[]]
Display a list of all peers and clients (associated with the given IP version).
.br
.ns
.TP 10
.NOP \f\*[B-Font]monstats\f[]
Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mreadlist\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[]
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrl\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[]
Perform the same function as the
\f\*[B-Font]readlist\f[]
command for a range of association ids.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mreadvar\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[] [\f\*[I-Font]name\f[]][,...]
This range may be determined from the list displayed by any
command showing associations.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrv\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[] [\f\*[I-Font]name\f[]][,...]
Perform the same function as the
\f\*[B-Font]readvar\f[]
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrulist\f[] [\f\*[B-Font]limited\f[] | \f\*[B-Font]kod\f[] | \f\*[B-Font]mincount\f[]\&=\f\*[I-Font]count\f[] | \f\*[B-Font]laddr\f[]\&=\f\*[I-Font]localaddr\f[] | \f\*[B-Font]sort\f[]\&=[\&-]\f\*[I-Font]sortorder\f[] | \f\*[B-Font]resany\f[]\&=\f\*[I-Font]hexmask\f[] | \f\*[B-Font]resall\f[]\&=\f\*[I-Font]hexmask\f[]]
Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
\f\*[B-Font]sort\f[]\&=[\&-]\f\*[I-Font]sortorder\f[],
the options filter the list returned by
\fCntpd\f[]\fR(8)\f[].
The
\f\*[B-Font]limited\f[]
and
\f\*[B-Font]kod\f[]
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
\f\*[B-Font]mincount\f[]=\f\*[I-Font]count\f[]
option filters entries representing less than
\f\*[I-Font]count\f[]
packets.
The
\f\*[B-Font]laddr\f[]=\f\*[I-Font]localaddr\f[]
option filters entries for packets received on any local address other than
\f\*[I-Font]localaddr\f[].
\f\*[B-Font]resany\f[]=\f\*[I-Font]hexmask\f[]
and
\f\*[B-Font]resall\f[]=\f\*[I-Font]hexmask\f[]
filter entries containing none or less than all, respectively, of the bits in
\f\*[I-Font]hexmask\f[],
which must begin with
\f\*[B-Font]0x\f[].
The
\f\*[I-Font]sortorder\f[]
defaults to
\f\*[B-Font]lstint\f[]
and may be
\f\*[B-Font]addr\f[],
\f\*[B-Font]avgint\f[],
\f\*[B-Font]count\f[],
\f\*[B-Font]lstint\f[],
or any of those preceded by
\[oq]\&-\[cq]
to reverse the sort order.
The output columns are:
.RS
.TP 10
.NOP Column
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]lstint\f[]
Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 10
.NOP \f\*[B-Font]avgint\f[]
Average interval in s between packets from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]rstr\f[]
Restriction flags associated with this address.
Most are copied unchanged from the matching
\f\*[B-Font]restrict\f[]
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
.br
.ns
.TP 10
.NOP \f\*[B-Font]r\f[]
Rate control indicator, either
a period,
\f\*[B-Font]L\f[]
or
\f\*[B-Font]K\f[]
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
.br
.ns
.TP 10
.NOP \f\*[B-Font]m\f[]
Packet mode.
.br
.ns
.TP 10
.NOP \f\*[B-Font]v\f[]
Packet version number.
.br
.ns
.TP 10
.NOP \f\*[B-Font]count\f[]
Packets received from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]rport\f[]
Source port of last packet from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]remote\f[] \f\*[B-Font]address\f[]
host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]opeers\f[] [\f\*[B-Font]\-4\f[] | \f\*[B-Font]\-6\f[]]
Obtain and print the old-style list of all peers and clients showing
\f\*[B-Font]dstadr\f[]
(associated with the given IP version),
rather than the
\f\*[B-Font]refid\f[].
.br
.ns
.TP 10
.NOP \f\*[B-Font]passociations\f[]
Perform the same function as the
\f\*[B-Font]associations\f[]
command,
except that it uses previously stored data rather than making a new query.
.br
.ns
.TP 10
.NOP \f\*[B-Font]peers\f[]
Display a list of peers in the form:
.Dl [tally]remote refid st t when pool reach delay offset jitter
.RS
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font][tally]\f[]
single-character code indicating current value of the
\f\*[B-Font]select\f[]
field of the
.Lk decode.html#peer "peer status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]remote\f[]
host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
\f\*[B-Font]ntpq\fP
\f\*[B-Font]\-w\f[]
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
source IP address or
.Lk decode.html#kiss "'kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]st\f[]
stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
.br
.ns
.TP 10
.NOP \f\*[B-Font]t\f[]
\f\*[B-Font]u\f[]:
unicast or manycast client,
\f\*[B-Font]b\f[]:
broadcast or multicast client,
\f\*[B-Font]p\f[]:
pool source,
\f\*[B-Font]l\f[]:
local (reference clock),
\f\*[B-Font]s\f[]:
symmetric (peer),
\f\*[B-Font]A\f[]:
manycast server,
\f\*[B-Font]B\f[]:
broadcast server,
\f\*[B-Font]M\f[]:
multicast server
.br
.ns
.TP 10
.NOP \f\*[B-Font]when\f[]
time in seconds, minutes, hours, or days since the last packet
was received, or
\[oq]\&-\[cq]
if a packet has never been received
.br
.ns
.TP 10
.NOP \f\*[B-Font]poll\f[]
poll interval (s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]reach\f[]
reach shift register (octal)
.br
.ns
.TP 10
.NOP \f\*[B-Font]delay\f[]
roundtrip delay
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
offset of server relative to this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]jitter\f[]
offset RMS error estimate.
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]pstats\f[] \f\*[I-Font]associd\f[]
Display the statistics for the peer with the given
\f\*[I-Font]associd\f[]:
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
.br
.ns
.TP 10
.NOP \f\*[B-Font]readlist\f[] [\f\*[I-Font]associd\f[]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]rl\f[] [\f\*[I-Font]associd\f[]]
Display all system or peer variables.
If the
\f\*[I-Font]associd\f[]
is omitted, it is assumed to be zero.
.br
.ns
.TP 10
.NOP \f\*[B-Font]readvar\f[] [\f\*[I-Font]associd\f[] \f\*[I-Font]name\f[][=\f\*[I-Font]value\f[]] [, ...]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]rv\f[] [\f\*[I-Font]associd\f[] \f\*[I-Font]name\f[][=\f\*[I-Font]value\f[]] [, ...]]
Display the specified system or peer variables.
If
\f\*[I-Font]associd\f[]
is zero, the variables are from the
\fISystem\f[] \fIVariables\f[]
name space, otherwise they are from the
\fIPeer\f[] \fIVariables\f[]
name space.
The
\f\*[I-Font]associd\f[]
is required, as the same name can occur in both spaces.
If no
\f\*[I-Font]name\f[]
is included, all operative variables in the name space are displayed.
In this case only, if the
\f\*[I-Font]associd\f[]
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts-per-million (PPM).
Some NTP timestamps are represented in the format
\f\*[I-Font]YYYY\f[]\f\*[I-Font]MM\f[] \f\*[I-Font]DD\f[] \f\*[I-Font]TTTT\f[],
where
\f\*[I-Font]YYYY\f[]
is the year,
\f\*[I-Font]MM\f[]
the month of year,
\f\*[I-Font]DD\f[]
the day of month and
\f\*[I-Font]TTTT\f[]
the time of day.
.br
.ns
.TP 10
.NOP \f\*[B-Font]reslist\f[]
Display the access control (restrict) list for
\f\*[B-Font]ntpq\fP.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]saveconfig\f[] \f\*[I-Font]filename\f[]
Save the current configuration,
including any runtime modifications made by
\f\*[B-Font]:config\f[]
or
\f\*[B-Font]config-from-file\f[],
to the NTP server host file
\f\*[I-Font]filename\f[].
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir "saveconfigdir"
appears in the
\fCntpd\f[]\fR(8)\f[]
configuration file.
\f\*[I-Font]filename\f[]
can use
\fCdate\f[]\fR(1)\f[]
format specifiers to substitute the current date and time, for
example,
.in +4
\f\*[B-Font]saveconfig\f[] \fIntp-%Y%m%d-%H%M%S.conf\f[].
.in -4
The filename used is stored in system variable
\f\*[B-Font]savedconfig\f[].
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]sysinfo\f[]
Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
.br
.ns
.TP 10
.NOP \f\*[B-Font]sysstats\f[]
Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
.br
.ns
.TP 10
.NOP \f\*[B-Font]timerstats\f[]
Display interval timer counters:
time since reset, timer overruns, calls to transmit.
.br
.ns
.TP 10
.NOP \f\*[B-Font]writelist\f[] \f\*[I-Font]associd\f[]
Set all system or peer variables included in the variable list.
.br
.ns
.TP 10
.NOP \f\*[B-Font]writevar\f[] \f\*[I-Font]associd\f[] \f\*[I-Font]name\f[]=\f\*[I-Font]value\f[] [, ...]
Set the specified variables in the variable list.
If the
\f\*[I-Font]associd\f[]
is zero, the variables are from the
\fISystem\f[] \fIVariables\f[]
name space, otherwise they are from the
\fIPeer\f[] \fIVariables\f[]
name space.
The
\f\*[I-Font]associd\f[]
is required, as the same name can occur in both spaces.
Authentication is required.
.PP
.SS Status Words and Kiss Codes
The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per-association basis.
These words are displayed by the
\f\*[B-Font]readlist\f[]
and
\f\*[B-Font]associations\f[]
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html "Event Messages and Status Words"
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
.sp \n(Ppu
.ne 2
Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss "kiss codes" .
The original purpose was for kiss-o'-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
.SS System Variables
The following system variables appear in the
\f\*[B-Font]readlist\f[]
billboard.
Not all variables are displayed in some configurations.
.sp \n(Ppu
.ne 2
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#sys "system status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]version\f[]
NTP software version and build time
.br
.ns
.TP 10
.NOP \f\*[B-Font]processor\f[]
hardware platform and version
.br
.ns
.TP 10
.NOP \f\*[B-Font]system\f[]
operating system and version
.br
.ns
.TP 10
.NOP \f\*[B-Font]leap\f[]
leap warning indicator (0-3)
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
stratum (1-15)
.br
.ns
.TP 10
.NOP \f\*[B-Font]precision\f[]
precision (log2 s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdelay\f[]
total roundtrip delay to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdisp\f[]
total dispersion to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
reference id or
.Lk decode.html#kiss "kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]reftime\f[]
reference time
.br
.ns
.TP 10
.NOP \f\*[B-Font]clock\f[]
date and time of day
.br
.ns
.TP 10
.NOP \f\*[B-Font]peer\f[]
system peer association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]tc\f[]
time constant and poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]mintc\f[]
minimum time constant (log2 s) (3-10)
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
combined offset of server relative to this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]frequency\f[]
frequency drift (PPM) relative to hardware clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]sys_jitter\f[]
combined system jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]clk_wander\f[]
clock frequency wander (PPM)
.br
.ns
.TP 10
.NOP \f\*[B-Font]clk_jitter\f[]
clock jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]tai\f[]
TAI-UTC offset (s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]leapsec\f[]
NTP seconds when the next leap second is/was inserted
.br
.ns
.TP 10
.NOP \f\*[B-Font]expire\f[]
NTP seconds when the NIST leapseconds file expires
.PP
The jitter and wander statistics are exponentially-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
.sp \n(Ppu
.ne 2
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]host\f[]
Autokey host name for this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]ident\f[]
Autokey group name for this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
host flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]digest\f[]
OpenSSL message digest algorithm
.br
.ns
.TP 10
.NOP \f\*[B-Font]signature\f[]
OpenSSL digest/signature scheme
.br
.ns
.TP 10
.NOP \f\*[B-Font]update\f[]
NTP seconds at last signature update
.br
.ns
.TP 10
.NOP \f\*[B-Font]cert\f[]
certificate subject, issuer and certificate flags
.br
.ns
.TP 10
.NOP \f\*[B-Font]until\f[]
NTP seconds when the certificate expires
.PP
.SS Peer Variables
The following peer variables appear in the
\f\*[B-Font]readlist\f[]
billboard for each association.
Not all variables are displayed in some configurations.
.sp \n(Ppu
.ne 2
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]associd\f[]
association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#peer "peer status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]srcadr\f[]
source (remote) IP address
.br
.ns
.TP 10
.NOP \f\*[B-Font]srcport\f[]
source (remote) port
.br
.ns
.TP 10
.NOP \f\*[B-Font]dstadr\f[]
destination (local) IP address
.br
.ns
.TP 10
.NOP \f\*[B-Font]dstport\f[]
destination (local) port
.br
.ns
.TP 10
.NOP \f\*[B-Font]leap\f[]
leap indicator (0-3)
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
stratum (0-15)
.br
.ns
.TP 10
.NOP \f\*[B-Font]precision\f[]
precision (log2 s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdelay\f[]
total roundtrip delay to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdisp\f[]
total root dispersion to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
reference id or
.Lk decode.html#kiss "kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]reftime\f[]
reference time
.br
.ns
.TP 10
.NOP \f\*[B-Font]rec\f[]
last packet received time
.br
.ns
.TP 10
.NOP \f\*[B-Font]reach\f[]
reach register (octal)
.br
.ns
.TP 10
.NOP \f\*[B-Font]unreach\f[]
unreach counter
.br
.ns
.TP 10
.NOP \f\*[B-Font]hmode\f[]
host mode (1-6)
.br
.ns
.TP 10
.NOP \f\*[B-Font]pmode\f[]
peer mode (1-5)
.br
.ns
.TP 10
.NOP \f\*[B-Font]hpoll\f[]
host poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]ppoll\f[]
peer poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]headway\f[]
headway (see
.Lk rate.html "Rate Management and the Kiss-o'-Death Packet" )
.br
.ns
.TP 10
.NOP \f\*[B-Font]flash\f[]
.Lk decode.html#flash "flash status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]keyid\f[]
symmetric key id
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
filter offset
.br
.ns
.TP 10
.NOP \f\*[B-Font]delay\f[]
filter delay
.br
.ns
.TP 10
.NOP \f\*[B-Font]dispersion\f[]
filter dispersion
.br
.ns
.TP 10
.NOP \f\*[B-Font]jitter\f[]
filter jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]bias\f[]
unicast/broadcast bias
.br
.ns
.TP 10
.NOP \f\*[B-Font]xleave\f[]
interleave delay (see
.Lk xleave.html "NTP Interleaved Modes" )
.PP
The
\f\*[B-Font]bias\f[]
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
\f\*[B-Font]xleave\f[]
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
.sp \n(Ppu
.ne 2
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
peer flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]host\f[]
Autokey server name
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
peer flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]signature\f[]
OpenSSL digest/signature scheme
.br
.ns
.TP 10
.NOP \f\*[B-Font]initsequence\f[]
initial key id
.br
.ns
.TP 10
.NOP \f\*[B-Font]initkey\f[]
initial key index
.br
.ns
.TP 10
.NOP \f\*[B-Font]timestamp\f[]
Autokey signature timestamp
.br
.ns
.TP 10
.NOP \f\*[B-Font]ident\f[]
Autokey group name for this association
.PP
.SS Clock Variables
The following clock variables appear in the
\f\*[B-Font]clocklist\f[]
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]associd\f[]
association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#clock "clock status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]device\f[]
device description
.br
.ns
.TP 10
.NOP \f\*[B-Font]timecode\f[]
ASCII time code string (specific to device)
.br
.ns
.TP 10
.NOP \f\*[B-Font]poll\f[]
poll messages sent
.br
.ns
.TP 10
.NOP \f\*[B-Font]noreply\f[]
no reply
.br
.ns
.TP 10
.NOP \f\*[B-Font]badformat\f[]
bad format
.br
.ns
.TP 10
.NOP \f\*[B-Font]baddata\f[]
bad date or time
.br
.ns
.TP 10
.NOP \f\*[B-Font]fudgetime1\f[]
fudge time 1
.br
.ns
.TP 10
.NOP \f\*[B-Font]fudgetime2\f[]
fudge time 2
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
driver stratum
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
driver reference id
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
driver flags
.PP
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]cmd\f[], \f\*[B-Font]\-\-command\f[]=\f\*[I-Font]cmd\f[]
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-i\f[], \f\*[B-Font]\-\-interactive\f[]
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, peers.
.sp
Force \fBntpq\fP to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
numeric host addresses.
.sp
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
.TP
.NOP \f\*[B-Font]\-\-old\-rv\f[]
Always output status line with readvar.
.sp
By default, \fBntpq\fP now suppresses the \fBassocid=...\fP
line that precedes the output of \fBreadvar\fP
(alias \fBrv\fP) when a single variable is requested, such as
\fBntpq \-c "rv 0 offset"\fP.
This option causes \fBntpq\fP to include both lines of output
for a single-variable \fBreadvar\fP.
Using an environment variable to
preset this option in a script will enable both older and
newer \fBntpq\fP to behave identically in this regard.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
interactive.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]keyword\f[], \f\*[B-Font]\-\-refid\f[]=\f\*[I-Font]keyword\f[]
Set default display type for S2+ refids.
This option takes a keyword as its argument. The argument sets an enumeration value that can
be tested by comparing them against the option value macro.
The available keywords are:
.in +4
.nf
.na
hash ipv4
.fi
or their numeric equivalent.
.in -4
.sp
The default
\f\*[I-Font]keyword\f[]
for this option is:
.ti +4
ipv4
.sp
Set the default display format for S2+ refids.
.TP
.NOP \f\*[B-Font]\-u\f[], \f\*[B-Font]\-\-unconnected\f[]
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.TP
.NOP \f\*[B-Font]\-w\f[], \f\*[B-Font]\-\-wide\f[]
Display the full 'remote' value.
.sp
Display the full value of the 'remote' value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPQ_<option-name>\fP or \fBNTPQ\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpq\fP
option definitions.
diff --git a/contrib/ntp/ntpq/ntpq.1ntpqmdoc b/contrib/ntp/ntpq/ntpq.1ntpqmdoc
index 9515506c71b5..9ce7db9484d3 100644
--- a/contrib/ntp/ntpq/ntpq.1ntpqmdoc
+++ b/contrib/ntp/ntpq/ntpq.1ntpqmdoc
@@ -1,1060 +1,1060 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPQ 1ntpqmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:04 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:10 AM by AutoGen 5.18.16
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpq
.Nd standard NTP query program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ host ...]
.Pp
.Sh DESCRIPTION
.Pp
The
.Nm
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty\-printed output
options being available.
The
.Nm
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
.Pp
If one or more request options is included on the command line
when
.Nm
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
.Nm
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
.Nm
utility will prompt for
commands if the standard input is a terminal device.
.Pp
.Nm
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
.Nm
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
.Fl 6
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
.Dq NTP Debugging Techniques
page.
.Pp
Specifying a
command line option other than
.Fl i
or
.Fl n
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
.Nm
will attempt to read
interactive format commands from the standard input.
.Ss "Internal Commands"
.Pp
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
.Pp
A
number of interactive format commands are executed entirely within
the
.Nm
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
.Bl -tag -width "help [command]" -compact -offset indent
.It Ic ? Op Ar command
.It Ic help Op Ar command
A
.Ql \&?
by itself will print a list of all the commands
known to
.Nm .
A
.Ql \&?
followed by a command name will print function and usage
information about the command.
.It Ic addvars Ar name Ns Oo \&= Ns Ar value Oc Ns Op ,...
.It Ic rmvars Ar name Ns Op ,...
.It Ic clearvars
.It Ic showvars
The arguments to this command consist of a list of
items of the form
.Ar name Ns Op \&= Ns Ar value ,
where the
.No \&= Ns Ar value
is ignored, and can be omitted,
in requests to the server to read variables.
The
.Nm
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
.Ic readlist
and
.Ic writelist
commands described below.
The
.Ic addvars
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma\-separated and not contain white space.
The
.Ic rmvars
command can be used to remove individual variables from the list,
while the
.Ic clearvars
command removes all variables from the
list.
The
.Ic showvars
command displays the current list of optional variables.
.It Ic authenticate Op Cm yes Ns | Ns Cm no
Normally
.Nm
does not authenticate requests unless
they are write requests.
The command
.Ic authenticate Cm yes
causes
.Nm
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
.Ic authenticate
causes
.Nm
to display whether or not
it is currently authenticating requests.
.It Ic cooked
Causes output from query commands to be "cooked", so that
variables which are recognized by
.Nm
will have their
values reformatted for human consumption.
Variables which
.Nm
could not decode completely are
marked with a trailing
.Ql \&? .
.It Ic debug Op Cm more Ns | Ns Cm less Ns | Ns Cm off
With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
.It Ic delay Op Ar milliseconds
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
.It Ic drefid Op Cm hash Ns | Ns Cm ipv4
Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
.It Ic exit
Exit
.Nm .
.It Ic host Op Ar name
Set the host to which future queries will be sent.
The
.Ar name
may be either a host name or a numeric address.
Without any arguments, displays the current host.
.It Ic hostnames Op Cm yes Ns | Ns Cm no
If
.Cm yes
is specified, host names are printed in
information displays.
If
.Cm no
is specified, numeric
addresses are printed instead.
The default is
.Cm yes ,
unless
modified using the command line
.Fl n
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
.It Ic keyid Op Ar keyid
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
.Cm controlkey
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
.Ar keyid .
.It Ic keytype Op Ar digest
Specify the digest algorithm to use for authenticating requests, with default
.Cm MD5 .
If
.Nm
was built with OpenSSL support, and OpenSSL is installed,
.Ar digest
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
.Ic keytype Ar digest
algorithm used is displayed.
.It Ic ntpversion Op Cm 1 Ns | Ns Cm 2 Ns | Ns Cm 3 Ns | Ns Cm 4
Sets the NTP version number which
.Nm
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn't exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
.It Ic passwd
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.It Ic poll Oo Ar n Oc Op Cm verbose
Poll an NTP server in client mode
.Ar n
times.
Poll not implemented yet.
.It Ic quit
Exit
.Nm .
.It Ic raw
Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
.It Ic timeout Op Ar milliseconds
Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
.Nm
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.It Ic version
Display the version of the
.Nm
program.
.El
.Ss "Control Message Commands"
Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
.Ic peers
command, which sends a series of messages,
and the
.Ic mreadlist
and
.Ic mreadvar
commands, which iterate over a range of associations.
.Bl -tag -width "something" -compact -offset indent
.It Ic apeers
Display a list of peers in the form:
.Dl [tally]remote refid assid st t when pool reach delay offset jitter
where the output is just like the
.Ic peers
command except that the
.Cm refid
is displayed in hex format and the association number is also displayed.
.It Ic associations
Display a list of mobilized associations in the form:
.Dl ind assid status conf reach auth condition last_event cnt
.Bl -column -offset indent ".Sy Variable" "see the select field of the peer status word"
.It Sy Variable Ta Sy Description
.It Cm ind Ta index on this list
.It Cm assid Ta association id
.It Cm status Ta peer status word
.It Cm conf Ta Cm yes : No persistent, Cm no : No ephemeral
.It Cm reach Ta Cm yes : No reachable, Cm no : No unreachable
.It Cm auth Ta Cm ok , Cm yes , Cm bad No and Cm none
.It Cm condition Ta selection status \&(see the Cm select No field of the peer status word\&)
.It Cm last_event Ta event report \&(see the Cm event No field of the peer status word\&)
.It Cm cnt Ta event count \&(see the Cm count No field of the peer status word\&)
.El
.It Ic authinfo
Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
.It Ic clocklist Op Ar associd
.It Ic cl Op Ar associd
Display all clock variables in the variable list for those associations
supporting a reference clock.
.It Ic clockvar Oo Ar associd Oc Oo Ar name Ns Oo \&= Ns Ar value Oc Ns Oc Ns Op ,...
.It Ic cv Oo Ar associd Oc Oo Ar name Ns Oo \&= Ns Ar value Oc Ns Oc Ns Op ,...
Display a list of clock variables for those associations supporting a
reference clock.
.It Ic :config Ar "configuration command line"
Send the remainder of the command line, including whitespace, to the
server as a run\-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
.It Ic config\-from\-file Ar filename
Send each line of
.Ar filename
to the server as run\-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
.It Ic ifstats
Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
.It Ic iostats
Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
.It Ic kerninfo
Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
.It Ic lassociations
Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
.It Ic lopeers Op Fl 4 Ns | Ns Fl 6
Display a list of all peers and clients showing
.Cm dstadr
(associated with the given IP version).
.It Ic lpassociations
Display the last obtained list of associations, including all clients.
.It Ic lpeers Op Fl 4 Ns | Ns Fl 6
Display a list of all peers and clients (associated with the given IP version).
.It Ic monstats
Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
.It Ic mreadlist Ar associdlo Ar associdhi
.It Ic mrl Ar associdlo Ar associdhi
Perform the same function as the
.Ic readlist
command for a range of association ids.
.It Ic mreadvar Ar associdlo Ar associdhi Oo Ar name Oc Ns Op ,...
This range may be determined from the list displayed by any
command showing associations.
.It Ic mrv Ar associdlo Ar associdhi Oo Ar name Oc Ns Op ,...
Perform the same function as the
.Ic readvar
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
.It Xo Ic mrulist Oo Cm limited | Cm kod | Cm mincount Ns \&= Ns Ar count |
.Cm laddr Ns \&= Ns Ar localaddr | Cm sort Ns \&= Ns Oo \&\- Oc Ns Ar sortorder |
.Cm resany Ns \&= Ns Ar hexmask | Cm resall Ns \&= Ns Ar hexmask Oc
.Xc
Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
.Cm sort Ns \&= Ns Oo \&\- Oc Ns Ar sortorder ,
the options filter the list returned by
.Xr ntpd 8 .
The
.Cm limited
and
.Cm kod
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
.Cm mincount Ns = Ns Ar count
option filters entries representing less than
.Ar count
packets.
The
.Cm laddr Ns = Ns Ar localaddr
option filters entries for packets received on any local address other than
.Ar localaddr .
.Cm resany Ns = Ns Ar hexmask
and
.Cm resall Ns = Ns Ar hexmask
filter entries containing none or less than all, respectively, of the bits in
.Ar hexmask ,
which must begin with
.Cm 0x .
The
.Ar sortorder
defaults to
.Cm lstint
and may be
.Cm addr ,
.Cm avgint ,
.Cm count ,
.Cm lstint ,
or any of those preceded by
.Ql \&\-
to reverse the sort order.
The output columns are:
.Bl -tag -width "something" -compact -offset indent
.It Column
Description
.It Ic lstint
Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
.Nm .
.It Ic avgint
Average interval in s between packets from this address.
.It Ic rstr
Restriction flags associated with this address.
Most are copied unchanged from the matching
.Ic restrict
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
.It Ic r
Rate control indicator, either
a period,
.Ic L
or
.Ic K
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
.It Ic m
Packet mode.
.It Ic v
Packet version number.
.It Ic count
Packets received from this address.
.It Ic rport
Source port of last packet from this address.
.It Ic remote address
host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
.El
.It Ic opeers Op Fl 4 | Fl 6
Obtain and print the old\-style list of all peers and clients showing
.Cm dstadr
(associated with the given IP version),
rather than the
.Cm refid .
.It Ic passociations
Perform the same function as the
.Ic associations
command,
except that it uses previously stored data rather than making a new query.
.It Ic peers
Display a list of peers in the form:
.Dl [tally]remote refid st t when pool reach delay offset jitter
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm [tally]
single\-character code indicating current value of the
.Ic select
field of the
.Lk decode.html#peer "peer status word"
.It Cm remote
host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
.Nm
.Fl w
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
.It Cm refid
source IP address or
.Lk decode.html#kiss "'kiss code"
.It Cm st
stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
.It Cm t
.Ic u :
unicast or manycast client,
.Ic b :
broadcast or multicast client,
.Ic p :
pool source,
.Ic l :
local (reference clock),
.Ic s :
symmetric (peer),
.Ic A :
manycast server,
.Ic B :
broadcast server,
.Ic M :
multicast server
.It Cm when
time in seconds, minutes, hours, or days since the last packet
was received, or
.Ql \&\-
if a packet has never been received
.It Cm poll
poll interval (s)
.It Cm reach
reach shift register (octal)
.It Cm delay
roundtrip delay
.It Cm offset
offset of server relative to this host
.It Cm jitter
offset RMS error estimate.
.El
.It Ic pstats Ar associd
Display the statistics for the peer with the given
.Ar associd :
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
.It Ic readlist Op Ar associd
.It Ic rl Op Ar associd
Display all system or peer variables.
If the
.Ar associd
is omitted, it is assumed to be zero.
.It Ic readvar Op Ar associd Ar name Ns Oo Ns = Ns Ar value Oc Op , ...
.It Ic rv Op Ar associd Ar name Ns Oo Ns = Ns Ar value Oc Op , ...
Display the specified system or peer variables.
If
.Ar associd
is zero, the variables are from the
.Sx System Variables
name space, otherwise they are from the
.Sx Peer Variables
name space.
The
.Ar associd
is required, as the same name can occur in both spaces.
If no
.Ar name
is included, all operative variables in the name space are displayed.
In this case only, if the
.Ar associd
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts\-per\-million (PPM).
Some NTP timestamps are represented in the format
.Ar YYYY Ns Ar MM Ar DD Ar TTTT ,
where
.Ar YYYY
is the year,
.Ar MM
the month of year,
.Ar DD
the day of month and
.Ar TTTT
the time of day.
.It Ic reslist
Display the access control (restrict) list for
.Nm .
Authentication is required.
.It Ic saveconfig Ar filename
Save the current configuration,
including any runtime modifications made by
.Ic :config
or
.Ic config\-from\-file ,
to the NTP server host file
.Ar filename .
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir "saveconfigdir"
appears in the
.Xr ntpd 8
configuration file.
.Ar filename
can use
.Xr date 1
format specifiers to substitute the current date and time, for
example,
.D1 Ic saveconfig Pa ntp\-%Y%m%d\-%H%M%S.conf .
The filename used is stored in system variable
.Cm savedconfig .
Authentication is required.
.It Ic sysinfo
Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
.It Ic sysstats
Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
.It Ic timerstats
Display interval timer counters:
time since reset, timer overruns, calls to transmit.
.It Ic writelist Ar associd
Set all system or peer variables included in the variable list.
.It Ic writevar Ar associd Ar name Ns = Ns Ar value Op , ...
Set the specified variables in the variable list.
If the
.Ar associd
is zero, the variables are from the
.Sx System Variables
name space, otherwise they are from the
.Sx Peer Variables
name space.
The
.Ar associd
is required, as the same name can occur in both spaces.
Authentication is required.
.El
.Ss Status Words and Kiss Codes
The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per\-association basis.
These words are displayed by the
.Ic readlist
and
.Ic associations
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html "Event Messages and Status Words"
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
.Pp
Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss "kiss codes" .
The original purpose was for kiss\-o'\-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
.Ss System Variables
The following system variables appear in the
.Ic readlist
billboard.
Not all variables are displayed in some configurations.
.Pp
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm status
.Lk decode.html#sys "system status word"
.It Cm version
NTP software version and build time
.It Cm processor
hardware platform and version
.It Cm system
operating system and version
.It Cm leap
leap warning indicator (0\-3)
.It Cm stratum
stratum (1\-15)
.It Cm precision
precision (log2 s)
.It Cm rootdelay
total roundtrip delay to the primary reference clock
.It Cm rootdisp
total dispersion to the primary reference clock
.It Cm refid
reference id or
.Lk decode.html#kiss "kiss code"
.It Cm reftime
reference time
.It Ic clock
date and time of day
.It Cm peer
system peer association id
.It Cm tc
time constant and poll exponent (log2 s) (3\-17)
.It Cm mintc
minimum time constant (log2 s) (3\-10)
.It Cm offset
combined offset of server relative to this host
.It Cm frequency
frequency drift (PPM) relative to hardware clock
.It Cm sys_jitter
combined system jitter
.It Cm clk_wander
clock frequency wander (PPM)
.It Cm clk_jitter
clock jitter
.It Cm tai
TAI\-UTC offset (s)
.It Cm leapsec
NTP seconds when the next leap second is/was inserted
.It Cm expire
NTP seconds when the NIST leapseconds file expires
.El
The jitter and wander statistics are exponentially\-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
.Pp
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm host
Autokey host name for this host
.It Cm ident
Autokey group name for this host
.It Cm flags
host flags (see Autokey specification)
.It Cm digest
OpenSSL message digest algorithm
.It Cm signature
OpenSSL digest/signature scheme
.It Cm update
NTP seconds at last signature update
.It Cm cert
certificate subject, issuer and certificate flags
.It Cm until
NTP seconds when the certificate expires
.El
.Ss Peer Variables
The following peer variables appear in the
.Ic readlist
billboard for each association.
Not all variables are displayed in some configurations.
.Pp
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm associd
association id
.It Cm status
.Lk decode.html#peer "peer status word"
.It Cm srcadr
source (remote) IP address
.It Cm srcport
source (remote) port
.It Cm dstadr
destination (local) IP address
.It Cm dstport
destination (local) port
.It Cm leap
leap indicator (0\-3)
.It Cm stratum
stratum (0\-15)
.It Cm precision
precision (log2 s)
.It Cm rootdelay
total roundtrip delay to the primary reference clock
.It Cm rootdisp
total root dispersion to the primary reference clock
.It Cm refid
reference id or
.Lk decode.html#kiss "kiss code"
.It Cm reftime
reference time
.It Cm rec
last packet received time
.It Cm reach
reach register (octal)
.It Cm unreach
unreach counter
.It Cm hmode
host mode (1\-6)
.It Cm pmode
peer mode (1\-5)
.It Cm hpoll
host poll exponent (log2 s) (3\-17)
.It Cm ppoll
peer poll exponent (log2 s) (3\-17)
.It Cm headway
headway (see
.Lk rate.html "Rate Management and the Kiss\-o'\-Death Packet" )
.It Cm flash
.Lk decode.html#flash "flash status word"
.It Cm keyid
symmetric key id
.It Cm offset
filter offset
.It Cm delay
filter delay
.It Cm dispersion
filter dispersion
.It Cm jitter
filter jitter
.It Cm bias
unicast/broadcast bias
.It Cm xleave
interleave delay (see
.Lk xleave.html "NTP Interleaved Modes" )
.El
The
.Cm bias
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
.Cm xleave
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
.Pp
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm flags
peer flags (see Autokey specification)
.It Cm host
Autokey server name
.It Cm flags
peer flags (see Autokey specification)
.It Cm signature
OpenSSL digest/signature scheme
.It Cm initsequence
initial key id
.It Cm initkey
initial key index
.It Cm timestamp
Autokey signature timestamp
.It Cm ident
Autokey group name for this association
.El
.Ss Clock Variables
The following clock variables appear in the
.Ic clocklist
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm associd
association id
.It Cm status
.Lk decode.html#clock "clock status word"
.It Cm device
device description
.It Cm timecode
ASCII time code string (specific to device)
.It Cm poll
poll messages sent
.It Cm noreply
no reply
.It Cm badformat
bad format
.It Cm baddata
bad date or time
.It Cm fudgetime1
fudge time 1
.It Cm fudgetime2
fudge time 2
.It Cm stratum
driver stratum
.It Cm refid
driver reference id
.It Cm flags
driver flags
.El
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force resolution of following host names on the command line
to the IPv6 namespace.
.It Fl c Ar cmd , Fl \-command Ns = Ns Ar cmd
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl i , Fl \-interactive
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, peers.
.sp
Force \fBntpq\fP to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
.It Fl n , Fl \-numeric
numeric host addresses.
.sp
Output all host addresses in dotted\-quad numeric format rather than
converting to the canonical host names.
.It Fl \-old\-rv
Always output status line with readvar.
.sp
By default, \fBntpq\fP now suppresses the \fBassocid=...\fP
line that precedes the output of \fBreadvar\fP
(alias \fBrv\fP) when a single variable is requested, such as
\fBntpq \-c "rv 0 offset"\fP.
This option causes \fBntpq\fP to include both lines of output
for a single\-variable \fBreadvar\fP.
Using an environment variable to
preset this option in a script will enable both older and
newer \fBntpq\fP to behave identically in this regard.
.It Fl p , Fl \-peers
Print a list of the peers.
This option must not appear in combination with any of the following options:
interactive.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.It Fl r Ar keyword , Fl \-refid Ns = Ns Ar keyword
Set default display type for S2+ refids.
This option takes a keyword as its argument. The argument sets an enumeration value that can
be tested by comparing them against the option value macro.
The available keywords are:
.in +4
.nf
.na
hash ipv4
.fi
or their numeric equivalent.
.in -4
.sp
The default
.Ar keyword
for this option is:
.ti +4
ipv4
.sp
Set the default display format for S2+ refids.
.It Fl u , Fl \-unconnected
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.It Fl w , Fl \-wide
Display the full 'remote' value.
.sp
Display the full value of the 'remote' value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPQ_<option\-name>\fP or \fBNTPQ\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpq\fP
option definitions.
diff --git a/contrib/ntp/ntpq/ntpq.html b/contrib/ntp/ntpq/ntpq.html
index 38a674378f89..1ca91e4f3cd4 100644
--- a/contrib/ntp/ntpq/ntpq.html
+++ b/contrib/ntp/ntpq/ntpq.html
@@ -1,2111 +1,2111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ntpq: Network Time Protocol Query User&rsquo;s Manual</title>
<meta name="description" content="ntpq: Network Time Protocol Query User&rsquo;s Manual">
<meta name="keywords" content="ntpq: Network Time Protocol Query User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">ntpq: Network Time Protocol Query User&rsquo;s Manual</h1>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntpq-Description" accesskey="n" rel="next">ntpq Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="ntpq_003a-Network-Time-Protocol-Query-User-Manual"></span><h1 class="top">ntpq: Network Time Protocol Query User Manual</h1>
<p>The <code>ntpq</code> utility program is used to
monitor the operational status
and determine the performance of
<code>ntpd</code>, the NTP daemon.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntpq</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntpq</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpq-Description" accesskey="1">ntpq Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-Invocation" accesskey="2">ntpq Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntpq
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="3">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Internal-Commands" accesskey="4">Internal Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Control-Message-Commands" accesskey="5">Control Message Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Status-Words-and-Kiss-Codes" accesskey="6">Status Words and Kiss Codes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#System-Variables" accesskey="7">System Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Peer-Variables" accesskey="8">Peer Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Clock-Variables" accesskey="9">Clock Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntpq-Description"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>The <code>ntpq</code> utility program is used to monitor NTP daemon <code>ntpd</code> operations and determine performance.
It uses the standard NTP mode 6 control message formats defined in
Appendix B of the NTPv3 specification RFC1305.
The same formats are used in NTPv4, although some of the variable names have changed and new ones added.
The description on this page is for the NTPv4 variables.
</p>
<p>The program can be run either in interactive mode or controlled using command line arguments. Requests to read and write arbitrary variables can be assembled, with raw and pretty-printed output options being available. The <code>ntpq</code> can also obtain and print a list of peers in a common format by sending multiple queries to the server.
</p>
<p>If one or more request options is included on the command line when <code>ntpq</code> is executed, each of the requests will be sent to the NTP servers running on each of the hosts given as command line arguments, or on localhost by default. If no request options are given, <code>ntpq</code> will attempt to read commands from the standard input and execute these on the NTP server running on the first host given on the command line, again defaulting to localhost when no other host is specified. <code>ntpq</code> will prompt for commands if the standard input is a terminal device.
</p>
<p><code>ntpq</code> uses NTP mode 6 packets to communicate with the NTP server, and hence can be used to query any compatible server on the network which permits it. Note that since NTP is a UDP protocol this communication will be somewhat unreliable, especially over large distances in terms of network topology. <code>ntpq</code> makes one attempt to retransmit requests, and will time requests out if the remote host is not heard from within a suitable timeout time.
</p>
<p>Note that in contexts where a host name is expected, a <code>-4</code> qualifier preceding the host name forces DNS resolution to the IPv4 namespace, while a <code>-6</code> qualifier forces DNS resolution to the IPv6 namespace.
</p>
<p>For examples and usage, see the <a href="debug.html">NTP Debugging Techniques</a> page.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpq-Invocation" accesskey="1">Invoking ntpq</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="2">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Internal-Commands" accesskey="3">Internal Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Control-Message-Commands" accesskey="4">Control Message Commands</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Status-Words-and-Kiss-Codes" accesskey="5">Status Words and Kiss Codes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#System-Variables" accesskey="6">System Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Peer-Variables" accesskey="7">Peer Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Clock-Variables" accesskey="8">Clock Variables</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntpq-Invocation"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#ntpq-Description" accesskey="p" rel="prev">ntpq Description</a>, Up: <a href="#ntpq-Description" accesskey="u" rel="up">ntpq Description</a> &nbsp; </p>
</div>
<span id="Invoking-ntpq"></span><h3 class="section">1.1 Invoking ntpq</h3>
<span id="index-ntpq"></span>
<span id="index-standard-NTP-query-program"></span>
<p>The
<code>ntpq</code>
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty-printed output
options being available.
The
<code>ntpq</code>
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
</p>
<p>If one or more request options is included on the command line
when
<code>ntpq</code>
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
<code>ntpq</code>
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
<code>ntpq</code>
utility will prompt for
commands if the standard input is a terminal device.
</p>
<p><code>ntpq</code>
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
<code>ntpq</code>
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
</p>
<p>Note that in contexts where a host name is expected, a
<code>-4</code>
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
<code>-6</code>
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
&ldquo;NTP Debugging Techniques&rdquo;
page.
</p>
<p>Specifying a
command line option other than
<code>-i</code>
or
<code>-n</code>
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
<code>ntpq</code>
will attempt to read
interactive format commands from the standard input.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpq-usage" accesskey="1">ntpq help/usage (<samp>--help</samp>)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-ipv4" accesskey="2">ipv4 option (-4)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-ipv6" accesskey="3">ipv6 option (-6)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-command" accesskey="4">command option (-c)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-interactive" accesskey="5">interactive option (-i)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-numeric" accesskey="6">numeric option (-n)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-old_002drv" accesskey="7">old-rv option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-peers" accesskey="8">peers option (-p)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-refid" accesskey="9">refid option (-r)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-unconnected">unconnected option (-u)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-wide">wide option (-w)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-config">presetting/configuring ntpq</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-exit-status">ntpq exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<span id="Internal-Commands-1"></span><h4 class="subsection">1.1.1 Internal Commands</h4>
<p>Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
</p>
<p>A
number of interactive format commands are executed entirely within
the
<code>ntpq</code>
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
</p><dl compact="compact">
<dt><code>?</code> <code>[<kbd>command</kbd>]</code></dt>
<dt><code>help</code> <code>[<kbd>command</kbd>]</code></dt>
<dd><p>A
&lsquo;?&rsquo;
by itself will print a list of all the commands
known to
<code>ntpq</code>
A
&lsquo;?&rsquo;
followed by a command name will print function and usage
information about the command.
</p></dd>
<dt><code>addvars</code> <kbd>name</kbd><code>[=<kbd>value</kbd>]</code><code>[,...]</code></dt>
<dt><code>rmvars</code> <kbd>name</kbd><code>[,...]</code></dt>
<dt><code>clearvars</code></dt>
<dt><code>showvars</code></dt>
<dd><p>The arguments to this command consist of a list of
items of the form
<kbd>name</kbd><code>[=<kbd>value</kbd>]</code>,
where the
.No = Ns Ar value
is ignored, and can be omitted,
in requests to the server to read variables.
The
<code>ntpq</code>
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
<code>readlist</code>
and
<code>writelist</code>
commands described below.
The
<code>addvars</code>
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma-separated and not contain white space.
The
<code>rmvars</code>
command can be used to remove individual variables from the list,
while the
<code>clearvars</code>
command removes all variables from the
list.
The
<code>showvars</code>
command displays the current list of optional variables.
</p></dd>
<dt><code>authenticate</code> <code>[<code>yes</code>|<code>no</code>]</code></dt>
<dd><p>Normally
<code>ntpq</code>
does not authenticate requests unless
they are write requests.
The command
<code>authenticate</code> <code>yes</code>
causes
<code>ntpq</code>
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
<code>authenticate</code>
causes
<code>ntpq</code>
to display whether or not
it is currently authenticating requests.
</p></dd>
<dt><code>cooked</code></dt>
<dd><p>Causes output from query commands to be &quot;cooked&quot;, so that
variables which are recognized by
<code>ntpq</code>
will have their
values reformatted for human consumption.
Variables which
<code>ntpq</code>
could not decode completely are
marked with a trailing
&lsquo;?&rsquo;.
</p></dd>
<dt><code>debug</code> <code>[<code>more</code>|<code>less</code>|<code>off</code>]</code></dt>
<dd><p>With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
</p></dd>
<dt><code>delay</code> <code>[<kbd>milliseconds</kbd>]</code></dt>
<dd><p>Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
</p></dd>
<dt><code>drefid</code> <code>[<code>hash</code>|<code>ipv4</code>]</code></dt>
<dd><p>Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
</p></dd>
<dt><code>exit</code></dt>
<dd><p>Exit
<code>ntpq</code>
</p></dd>
<dt><code>host</code> <code>[<kbd>name</kbd>]</code></dt>
<dd><p>Set the host to which future queries will be sent.
The
<kbd>name</kbd>
may be either a host name or a numeric address.
Without any arguments, displays the current host.
</p></dd>
<dt><code>hostnames</code> <code>[<code>yes</code>|<code>no</code>]</code></dt>
<dd><p>If
<code>yes</code>
is specified, host names are printed in
information displays.
If
<code>no</code>
is specified, numeric
addresses are printed instead.
The default is
<code>yes</code>,
unless
modified using the command line
<code>-n</code>
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
</p></dd>
<dt><code>keyid</code> <code>[<kbd>keyid</kbd>]</code></dt>
<dd><p>This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
<code>controlkey</code>
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
<kbd>keyid</kbd>.
</p></dd>
<dt><code>keytype</code> <code>[<kbd>digest</kbd>]</code></dt>
<dd><p>Specify the digest algorithm to use for authenticating requests, with default
<code>MD5</code>.
If
<code>ntpq</code>
was built with OpenSSL support, and OpenSSL is installed,
<kbd>digest</kbd>
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
<code>keytype</code> <kbd>digest</kbd>
algorithm used is displayed.
</p></dd>
<dt><code>ntpversion</code> <code>[<code>1</code>|<code>2</code>|<code>3</code>|<code>4</code>]</code></dt>
<dd><p>Sets the NTP version number which
<code>ntpq</code>
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn&rsquo;t exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
</p></dd>
<dt><code>passwd</code></dt>
<dd><p>This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
</p></dd>
<dt><code>poll</code> <code>[<kbd>n</kbd>]</code> <code>[<code>verbose</code>]</code></dt>
<dd><p>Poll an NTP server in client mode
<kbd>n</kbd>
times.
Poll not implemented yet.
</p></dd>
<dt><code>quit</code></dt>
<dd><p>Exit
<code>ntpq</code>
</p></dd>
<dt><code>raw</code></dt>
<dd><p>Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
</p></dd>
<dt><code>timeout</code> <code>[<kbd>milliseconds</kbd>]</code></dt>
<dd><p>Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
<code>ntpq</code>
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
</p></dd>
<dt><code>version</code></dt>
<dd><p>Display the version of the
<code>ntpq</code>
program.
</p></dd>
</dl>
<span id="Control-Message-Commands-1"></span><h4 class="subsubsection">1.1.1.1 Control Message Commands</h4>
<p>Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
<code>peers</code>
command, which sends a series of messages,
and the
<code>mreadlist</code>
and
<code>mreadvar</code>
commands, which iterate over a range of associations.
</p><dl compact="compact">
<dt><code>apeers</code></dt>
<dd><p>Display a list of peers in the form:
</p><div class="example">
<pre class="example">[tally]remote refid assid st t when pool reach delay offset jitter
</pre></div>
<p>where the output is just like the
<code>peers</code>
command except that the
<code>refid</code>
is displayed in hex format and the association number is also displayed.
</p></dd>
<dt><code>associations</code></dt>
<dd><p>Display a list of mobilized associations in the form:
</p><div class="example">
<pre class="example">ind assid status conf reach auth condition last_event cnt
</pre></div>
<dl compact="compact">
<dt>Sy Variable Ta Sy Description</dt>
<dt><code>ind</code> <code>Ta</code> <code>index</code> <code>on</code> <code>this</code> <code>list</code></dt>
<dt><code>assid</code> <code>Ta</code> <code>association</code> <code>id</code></dt>
<dt><code>status</code> <code>Ta</code> <code>peer</code> <code>status</code> <code>word</code></dt>
<dt><code>conf</code> <code>Ta</code> <code>yes</code>: <code>No</code> <code>persistent,</code> <code>no</code>: <code>No</code> <code>ephemeral</code></dt>
<dt><code>reach</code> <code>Ta</code> <code>yes</code>: <code>No</code> <code>reachable,</code> <code>no</code>: <code>No</code> <code>unreachable</code></dt>
<dt><code>auth</code> <code>Ta</code> <code>ok</code>, <code>yes</code>, <code>bad</code> <code>No</code> <code>and</code> <code>none</code></dt>
<dt><code>condition</code> <code>Ta</code> <code>selection</code> <code>status</code> <code>(see</code> <code>the</code> <code>select</code> <code>No</code> <code>field</code> <code>of</code> <code>the</code> <code>peer</code> <code>status</code> <code>word)</code></dt>
<dt><code>last_event</code> <code>Ta</code> <code>event</code> <code>report</code> <code>(see</code> <code>the</code> <code>event</code> <code>No</code> <code>field</code> <code>of</code> <code>the</code> <code>peer</code> <code>status</code> <code>word)</code></dt>
<dt><code>cnt</code> <code>Ta</code> <code>event</code> <code>count</code> <code>(see</code> <code>the</code> <code>count</code> <code>No</code> <code>field</code> <code>of</code> <code>the</code> <code>peer</code> <code>status</code> <code>word)</code></dt>
</dl>
</dd>
<dt><code>authinfo</code></dt>
<dd><p>Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
</p></dd>
<dt><code>clocklist</code> <code>[<kbd>associd</kbd>]</code></dt>
<dt><code>cl</code> <code>[<kbd>associd</kbd>]</code></dt>
<dd><p>Display all clock variables in the variable list for those associations
supporting a reference clock.
</p></dd>
<dt><code>clockvar</code> <code>[<kbd>associd</kbd>]</code> <code>[<kbd>name</kbd><code>[=<kbd>value</kbd>]</code>]</code><code>[,...]</code></dt>
<dt><code>cv</code> <code>[<kbd>associd</kbd>]</code> <code>[<kbd>name</kbd><code>[=<kbd>value</kbd>]</code>]</code><code>[,...]</code></dt>
<dd><p>Display a list of clock variables for those associations supporting a
reference clock.
</p></dd>
<dt><code>:config</code> <kbd>configuration command line</kbd></dt>
<dd><p>Send the remainder of the command line, including whitespace, to the
server as a run-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
</p></dd>
<dt><code>config-from-file</code> <kbd>filename</kbd></dt>
<dd><p>Send each line of
<kbd>filename</kbd>
to the server as run-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
</p></dd>
<dt><code>ifstats</code></dt>
<dd><p>Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
</p></dd>
<dt><code>iostats</code></dt>
<dd><p>Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
</p></dd>
<dt><code>kerninfo</code></dt>
<dd><p>Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
</p></dd>
<dt><code>lassociations</code></dt>
<dd><p>Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
</p></dd>
<dt><code>lopeers</code> <code>[<code>-4</code>|<code>-6</code>]</code></dt>
<dd><p>Display a list of all peers and clients showing
<code>dstadr</code>
(associated with the given IP version).
</p></dd>
<dt><code>lpassociations</code></dt>
<dd><p>Display the last obtained list of associations, including all clients.
</p></dd>
<dt><code>lpeers</code> <code>[<code>-4</code>|<code>-6</code>]</code></dt>
<dd><p>Display a list of all peers and clients (associated with the given IP version).
</p></dd>
<dt><code>monstats</code></dt>
<dd><p>Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
</p></dd>
<dt><code>mreadlist</code> <kbd>associdlo</kbd> <kbd>associdhi</kbd></dt>
<dt><code>mrl</code> <kbd>associdlo</kbd> <kbd>associdhi</kbd></dt>
<dd><p>Perform the same function as the
<code>readlist</code>
command for a range of association ids.
</p></dd>
<dt><code>mreadvar</code> <kbd>associdlo</kbd> <kbd>associdhi</kbd> <code>[<kbd>name</kbd>]</code><code>[,...]</code></dt>
<dd><p>This range may be determined from the list displayed by any
command showing associations.
</p></dd>
<dt><code>mrv</code> <kbd>associdlo</kbd> <kbd>associdhi</kbd> <code>[<kbd>name</kbd>]</code><code>[,...]</code></dt>
<dd><p>Perform the same function as the
<code>readvar</code>
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
</p></dd>
<dt><code>mrulist</code> <code>[<code>limited</code> | <code>kod</code> | <code>mincount</code>=<kbd>count</kbd> | <code>laddr</code>=<kbd>localaddr</kbd> | <code>sort</code>=<code>[-]</code><kbd>sortorder</kbd> | <code>resany</code>=<kbd>hexmask</kbd> | <code>resall</code>=<kbd>hexmask</kbd>]</code></dt>
<dd><p>Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
<code>sort</code>=<code>[-]</code><kbd>sortorder</kbd>,
the options filter the list returned by
<code>ntpd(8)</code>.
The
<code>limited</code>
and
<code>kod</code>
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
<code>mincount</code>=<kbd>count</kbd>
option filters entries representing less than
<kbd>count</kbd>
packets.
The
<code>laddr</code>=<kbd>localaddr</kbd>
option filters entries for packets received on any local address other than
<kbd>localaddr</kbd>.
<code>resany</code>=<kbd>hexmask</kbd>
and
<code>resall</code>=<kbd>hexmask</kbd>
filter entries containing none or less than all, respectively, of the bits in
<kbd>hexmask</kbd>,
which must begin with
<code>0x</code>.
The
<kbd>sortorder</kbd>
defaults to
<code>lstint</code>
and may be
<code>addr</code>,
<code>avgint</code>,
<code>count</code>,
<code>lstint</code>,
or any of those preceded by
&lsquo;-&rsquo;
to reverse the sort order.
The output columns are:
</p><dl compact="compact">
<dt>Column</dt>
<dd><p>Description
</p></dd>
<dt><code>lstint</code></dt>
<dd><p>Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
<code>ntpq</code>
</p></dd>
<dt><code>avgint</code></dt>
<dd><p>Average interval in s between packets from this address.
</p></dd>
<dt><code>rstr</code></dt>
<dd><p>Restriction flags associated with this address.
Most are copied unchanged from the matching
<code>restrict</code>
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
</p></dd>
<dt><code>r</code></dt>
<dd><p>Rate control indicator, either
a period,
<code>L</code>
or
<code>K</code>
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
</p></dd>
<dt><code>m</code></dt>
<dd><p>Packet mode.
</p></dd>
<dt><code>v</code></dt>
<dd><p>Packet version number.
</p></dd>
<dt><code>count</code></dt>
<dd><p>Packets received from this address.
</p></dd>
<dt><code>rport</code></dt>
<dd><p>Source port of last packet from this address.
</p></dd>
<dt><code>remote</code> <code>address</code></dt>
<dd><p>host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
</p></dd>
</dl>
</dd>
<dt><code>opeers</code> <code>[<code>-4</code> | <code>-6</code>]</code></dt>
<dd><p>Obtain and print the old-style list of all peers and clients showing
<code>dstadr</code>
(associated with the given IP version),
rather than the
<code>refid</code>.
</p></dd>
<dt><code>passociations</code></dt>
<dd><p>Perform the same function as the
<code>associations</code>
command,
except that it uses previously stored data rather than making a new query.
</p></dd>
<dt><code>peers</code></dt>
<dd><p>Display a list of peers in the form:
</p><div class="example">
<pre class="example">[tally]remote refid st t when pool reach delay offset jitter
</pre></div>
<dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>[tally]</code></dt>
<dd><p>single-character code indicating current value of the
<code>select</code>
field of the
.Lk decode.html#peer &quot;peer status word&quot;
</p></dd>
<dt><code>remote</code></dt>
<dd><p>host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
<code>ntpq</code>
<code>-w</code>
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
</p></dd>
<dt><code>refid</code></dt>
<dd><p>source IP address or
.Lk decode.html#kiss &quot;&rsquo;kiss code&quot;
</p></dd>
<dt><code>st</code></dt>
<dd><p>stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
</p></dd>
<dt><code>t</code></dt>
<dd><p><code>u</code>:
unicast or manycast client,
<code>b</code>:
broadcast or multicast client,
<code>p</code>:
pool source,
<code>l</code>:
local (reference clock),
<code>s</code>:
symmetric (peer),
<code>A</code>:
manycast server,
<code>B</code>:
broadcast server,
<code>M</code>:
multicast server
</p></dd>
<dt><code>when</code></dt>
<dd><p>time in seconds, minutes, hours, or days since the last packet
was received, or
&lsquo;-&rsquo;
if a packet has never been received
</p></dd>
<dt><code>poll</code></dt>
<dd><p>poll interval (s)
</p></dd>
<dt><code>reach</code></dt>
<dd><p>reach shift register (octal)
</p></dd>
<dt><code>delay</code></dt>
<dd><p>roundtrip delay
</p></dd>
<dt><code>offset</code></dt>
<dd><p>offset of server relative to this host
</p></dd>
<dt><code>jitter</code></dt>
<dd><p>offset RMS error estimate.
</p></dd>
</dl>
</dd>
<dt><code>pstats</code> <kbd>associd</kbd></dt>
<dd><p>Display the statistics for the peer with the given
<kbd>associd</kbd>:
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
</p></dd>
<dt><code>readlist</code> <code>[<kbd>associd</kbd>]</code></dt>
<dt><code>rl</code> <code>[<kbd>associd</kbd>]</code></dt>
<dd><p>Display all system or peer variables.
If the
<kbd>associd</kbd>
is omitted, it is assumed to be zero.
</p></dd>
<dt><code>readvar</code> <code>[<kbd>associd</kbd> <kbd>name</kbd><code>[=<kbd>value</kbd>]</code> <code>[, ...]</code>]</code></dt>
<dt><code>rv</code> <code>[<kbd>associd</kbd> <kbd>name</kbd><code>[=<kbd>value</kbd>]</code> <code>[, ...]</code>]</code></dt>
<dd><p>Display the specified system or peer variables.
If
<kbd>associd</kbd>
is zero, the variables are from the
<a href="#System-Variables">System Variables</a>
name space, otherwise they are from the
<a href="#Peer-Variables">Peer Variables</a>
name space.
The
<kbd>associd</kbd>
is required, as the same name can occur in both spaces.
If no
<kbd>name</kbd>
is included, all operative variables in the name space are displayed.
In this case only, if the
<kbd>associd</kbd>
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts-per-million (PPM).
Some NTP timestamps are represented in the format
<kbd>YYYY</kbd><kbd>MM</kbd> <kbd>DD</kbd> <kbd>TTTT</kbd>,
where
<kbd>YYYY</kbd>
is the year,
<kbd>MM</kbd>
the month of year,
<kbd>DD</kbd>
the day of month and
<kbd>TTTT</kbd>
the time of day.
</p></dd>
<dt><code>reslist</code></dt>
<dd><p>Display the access control (restrict) list for
<code>ntpq</code>
Authentication is required.
</p></dd>
<dt><code>saveconfig</code> <kbd>filename</kbd></dt>
<dd><p>Save the current configuration,
including any runtime modifications made by
<code>:config</code>
or
<code>config-from-file</code>,
to the NTP server host file
<kbd>filename</kbd>.
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir &quot;saveconfigdir&quot;
appears in the
<code>ntpd(8)</code>
configuration file.
<kbd>filename</kbd>
can use
<code>date(1)</code>
format specifiers to substitute the current date and time, for
example,
</p><div class="example">
<pre class="example"><code>saveconfig</code> <samp>ntp-%Y%m%d-%H%M%S.conf</samp>.
</pre></div>
<p>The filename used is stored in system variable
<code>savedconfig</code>.
Authentication is required.
</p></dd>
<dt><code>sysinfo</code></dt>
<dd><p>Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
</p></dd>
<dt><code>sysstats</code></dt>
<dd><p>Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
</p></dd>
<dt><code>timerstats</code></dt>
<dd><p>Display interval timer counters:
time since reset, timer overruns, calls to transmit.
</p></dd>
<dt><code>writelist</code> <kbd>associd</kbd></dt>
<dd><p>Set all system or peer variables included in the variable list.
</p></dd>
<dt><code>writevar</code> <kbd>associd</kbd> <kbd>name</kbd>=<kbd>value</kbd> <code>[, ...]</code></dt>
<dd><p>Set the specified variables in the variable list.
If the
<kbd>associd</kbd>
is zero, the variables are from the
<a href="#System-Variables">System Variables</a>
name space, otherwise they are from the
<a href="#Peer-Variables">Peer Variables</a>
name space.
The
<kbd>associd</kbd>
is required, as the same name can occur in both spaces.
Authentication is required.
</p></dd>
</dl>
<span id="Status-Words-and-Kiss-Codes-1"></span><h4 class="subsubsection">1.1.1.2 Status Words and Kiss Codes</h4>
<p>The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per-association basis.
These words are displayed by the
<code>readlist</code>
and
<code>associations</code>
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html &quot;Event Messages and Status Words&quot;
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
</p>
<p>Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss &quot;kiss codes&quot; .
The original purpose was for kiss-o&rsquo;-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
</p>
<span id="System-Variables-1"></span><h4 class="subsubsection">1.1.1.3 System Variables</h4>
<p>The following system variables appear in the
<code>readlist</code>
billboard.
Not all variables are displayed in some configurations.
</p>
<dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>status</code></dt>
<dd><p>.Lk decode.html#sys &quot;system status word&quot;
</p></dd>
<dt><code>version</code></dt>
<dd><p>NTP software version and build time
</p></dd>
<dt><code>processor</code></dt>
<dd><p>hardware platform and version
</p></dd>
<dt><code>system</code></dt>
<dd><p>operating system and version
</p></dd>
<dt><code>leap</code></dt>
<dd><p>leap warning indicator (0-3)
</p></dd>
<dt><code>stratum</code></dt>
<dd><p>stratum (1-15)
</p></dd>
<dt><code>precision</code></dt>
<dd><p>precision (log2 s)
</p></dd>
<dt><code>rootdelay</code></dt>
<dd><p>total roundtrip delay to the primary reference clock
</p></dd>
<dt><code>rootdisp</code></dt>
<dd><p>total dispersion to the primary reference clock
</p></dd>
<dt><code>refid</code></dt>
<dd><p>reference id or
.Lk decode.html#kiss &quot;kiss code&quot;
</p></dd>
<dt><code>reftime</code></dt>
<dd><p>reference time
</p></dd>
<dt><code>clock</code></dt>
<dd><p>date and time of day
</p></dd>
<dt><code>peer</code></dt>
<dd><p>system peer association id
</p></dd>
<dt><code>tc</code></dt>
<dd><p>time constant and poll exponent (log2 s) (3-17)
</p></dd>
<dt><code>mintc</code></dt>
<dd><p>minimum time constant (log2 s) (3-10)
</p></dd>
<dt><code>offset</code></dt>
<dd><p>combined offset of server relative to this host
</p></dd>
<dt><code>frequency</code></dt>
<dd><p>frequency drift (PPM) relative to hardware clock
</p></dd>
<dt><code>sys_jitter</code></dt>
<dd><p>combined system jitter
</p></dd>
<dt><code>clk_wander</code></dt>
<dd><p>clock frequency wander (PPM)
</p></dd>
<dt><code>clk_jitter</code></dt>
<dd><p>clock jitter
</p></dd>
<dt><code>tai</code></dt>
<dd><p>TAI-UTC offset (s)
</p></dd>
<dt><code>leapsec</code></dt>
<dd><p>NTP seconds when the next leap second is/was inserted
</p></dd>
<dt><code>expire</code></dt>
<dd><p>NTP seconds when the NIST leapseconds file expires
</p></dd>
</dl>
<p>The jitter and wander statistics are exponentially-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
</p>
<p>When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
</p><dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>host</code></dt>
<dd><p>Autokey host name for this host
</p></dd>
<dt><code>ident</code></dt>
<dd><p>Autokey group name for this host
</p></dd>
<dt><code>flags</code></dt>
<dd><p>host flags (see Autokey specification)
</p></dd>
<dt><code>digest</code></dt>
<dd><p>OpenSSL message digest algorithm
</p></dd>
<dt><code>signature</code></dt>
<dd><p>OpenSSL digest/signature scheme
</p></dd>
<dt><code>update</code></dt>
<dd><p>NTP seconds at last signature update
</p></dd>
<dt><code>cert</code></dt>
<dd><p>certificate subject, issuer and certificate flags
</p></dd>
<dt><code>until</code></dt>
<dd><p>NTP seconds when the certificate expires
</p></dd>
</dl>
<span id="Peer-Variables-1"></span><h4 class="subsubsection">1.1.1.4 Peer Variables</h4>
<p>The following peer variables appear in the
<code>readlist</code>
billboard for each association.
Not all variables are displayed in some configurations.
</p>
<dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>associd</code></dt>
<dd><p>association id
</p></dd>
<dt><code>status</code></dt>
<dd><p>.Lk decode.html#peer &quot;peer status word&quot;
</p></dd>
<dt><code>srcadr</code></dt>
<dd><p>source (remote) IP address
</p></dd>
<dt><code>srcport</code></dt>
<dd><p>source (remote) port
</p></dd>
<dt><code>dstadr</code></dt>
<dd><p>destination (local) IP address
</p></dd>
<dt><code>dstport</code></dt>
<dd><p>destination (local) port
</p></dd>
<dt><code>leap</code></dt>
<dd><p>leap indicator (0-3)
</p></dd>
<dt><code>stratum</code></dt>
<dd><p>stratum (0-15)
</p></dd>
<dt><code>precision</code></dt>
<dd><p>precision (log2 s)
</p></dd>
<dt><code>rootdelay</code></dt>
<dd><p>total roundtrip delay to the primary reference clock
</p></dd>
<dt><code>rootdisp</code></dt>
<dd><p>total root dispersion to the primary reference clock
</p></dd>
<dt><code>refid</code></dt>
<dd><p>reference id or
.Lk decode.html#kiss &quot;kiss code&quot;
</p></dd>
<dt><code>reftime</code></dt>
<dd><p>reference time
</p></dd>
<dt><code>rec</code></dt>
<dd><p>last packet received time
</p></dd>
<dt><code>reach</code></dt>
<dd><p>reach register (octal)
</p></dd>
<dt><code>unreach</code></dt>
<dd><p>unreach counter
</p></dd>
<dt><code>hmode</code></dt>
<dd><p>host mode (1-6)
</p></dd>
<dt><code>pmode</code></dt>
<dd><p>peer mode (1-5)
</p></dd>
<dt><code>hpoll</code></dt>
<dd><p>host poll exponent (log2 s) (3-17)
</p></dd>
<dt><code>ppoll</code></dt>
<dd><p>peer poll exponent (log2 s) (3-17)
</p></dd>
<dt><code>headway</code></dt>
<dd><p>headway (see
.Lk rate.html &quot;Rate Management and the Kiss-o&rsquo;-Death Packet&quot; )
</p></dd>
<dt><code>flash</code></dt>
<dd><p>.Lk decode.html#flash &quot;flash status word&quot;
</p></dd>
<dt><code>keyid</code></dt>
<dd><p>symmetric key id
</p></dd>
<dt><code>offset</code></dt>
<dd><p>filter offset
</p></dd>
<dt><code>delay</code></dt>
<dd><p>filter delay
</p></dd>
<dt><code>dispersion</code></dt>
<dd><p>filter dispersion
</p></dd>
<dt><code>jitter</code></dt>
<dd><p>filter jitter
</p></dd>
<dt><code>bias</code></dt>
<dd><p>unicast/broadcast bias
</p></dd>
<dt><code>xleave</code></dt>
<dd><p>interleave delay (see
.Lk xleave.html &quot;NTP Interleaved Modes&quot; )
</p></dd>
</dl>
<p>The
<code>bias</code>
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
<code>xleave</code>
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
</p>
<p>When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
</p><dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>flags</code></dt>
<dd><p>peer flags (see Autokey specification)
</p></dd>
<dt><code>host</code></dt>
<dd><p>Autokey server name
</p></dd>
<dt><code>flags</code></dt>
<dd><p>peer flags (see Autokey specification)
</p></dd>
<dt><code>signature</code></dt>
<dd><p>OpenSSL digest/signature scheme
</p></dd>
<dt><code>initsequence</code></dt>
<dd><p>initial key id
</p></dd>
<dt><code>initkey</code></dt>
<dd><p>initial key index
</p></dd>
<dt><code>timestamp</code></dt>
<dd><p>Autokey signature timestamp
</p></dd>
<dt><code>ident</code></dt>
<dd><p>Autokey group name for this association
</p></dd>
</dl>
<span id="Clock-Variables-1"></span><h4 class="subsubsection">1.1.1.5 Clock Variables</h4>
<p>The following clock variables appear in the
<code>clocklist</code>
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
</p><dl compact="compact">
<dt>Variable</dt>
<dd><p>Description
</p></dd>
<dt><code>associd</code></dt>
<dd><p>association id
</p></dd>
<dt><code>status</code></dt>
<dd><p>.Lk decode.html#clock &quot;clock status word&quot;
</p></dd>
<dt><code>device</code></dt>
<dd><p>device description
</p></dd>
<dt><code>timecode</code></dt>
<dd><p>ASCII time code string (specific to device)
</p></dd>
<dt><code>poll</code></dt>
<dd><p>poll messages sent
</p></dd>
<dt><code>noreply</code></dt>
<dd><p>no reply
</p></dd>
<dt><code>badformat</code></dt>
<dd><p>bad format
</p></dd>
<dt><code>baddata</code></dt>
<dd><p>bad date or time
</p></dd>
<dt><code>fudgetime1</code></dt>
<dd><p>fudge time 1
</p></dd>
<dt><code>fudgetime2</code></dt>
<dd><p>fudge time 2
</p></dd>
<dt><code>stratum</code></dt>
<dd><p>driver stratum
</p></dd>
<dt><code>refid</code></dt>
<dd><p>driver reference id
</p></dd>
<dt><code>flags</code></dt>
<dd><p>driver flags
</p></dd>
</dl>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntpq</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpq-usage" accesskey="1">ntpq usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntpq help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-ipv4" accesskey="2">ntpq ipv4</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv4 option (-4)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-ipv6" accesskey="3">ntpq ipv6</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv6 option (-6)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-command" accesskey="4">ntpq command</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">command option (-c)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-interactive" accesskey="5">ntpq interactive</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">interactive option (-i)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-numeric" accesskey="6">ntpq numeric</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">numeric option (-n)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-old_002drv" accesskey="7">ntpq old-rv</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">old-rv option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-peers" accesskey="8">ntpq peers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">peers option (-p)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-refid" accesskey="9">ntpq refid</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">refid option (-r)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-unconnected">ntpq unconnected</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">unconnected option (-u)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-wide">ntpq wide</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">wide option (-w)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-config">ntpq config</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">presetting/configuring ntpq
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpq-exit-status">ntpq exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="ntpq-usage"></span><div class="header">
<p>
Next: <a href="#ntpq-ipv4" accesskey="n" rel="next">ntpq ipv4</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="ntpq-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1.2 ntpq help/usage (<samp>--help</samp>)</h4>
<span id="index-ntpq-help"></span>
<p>This is the automatically generated usage text for ntpq.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p16
+<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p17
Usage: ntpq [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 name resolution
- prohibits the option 'ipv4'
-c Str command run a command and exit
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-i no interactive Force ntpq to operate in interactive mode
- prohibits these options:
command
peers
-n no numeric numeric host addresses
no old-rv Always output status line with readvar
-p no peers Print a list of the peers
- prohibits the option 'interactive'
-r KWd refid Set default display type for S2+ refids
-u no unconnected Use unconnected UDP to communicate with ntpd (default on Windows)
-w no wide Display the full 'remote' value
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-&gt; opt save-opts save the option state to a config file
-&lt; Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTPQ_*
The valid &quot;refid&quot; option keywords are:
hash ipv4
or an integer from 0 through 1
Please send bug reports to: &lt;https://bugs.ntp.org, bugs@ntp.org&gt;
</pre></div>
<hr>
<span id="ntpq-ipv4"></span><div class="header">
<p>
Next: <a href="#ntpq-ipv6" accesskey="n" rel="next">ntpq ipv6</a>, Previous: <a href="#ntpq-usage" accesskey="p" rel="prev">ntpq usage</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="ipv4-option-_0028_002d4_0029"></span><h4 class="subsection">1.1.3 ipv4 option (-4)</h4>
<span id="index-ntpq_002dipv4"></span>
<p>This is the &ldquo;force ipv4 name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv6.
</li></ul>
<p>Force resolution of following host names on the command line
to the IPv4 namespace.
</p><hr>
<span id="ntpq-ipv6"></span><div class="header">
<p>
Next: <a href="#ntpq-command" accesskey="n" rel="next">ntpq command</a>, Previous: <a href="#ntpq-ipv4" accesskey="p" rel="prev">ntpq ipv4</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="ipv6-option-_0028_002d6_0029"></span><h4 class="subsection">1.1.4 ipv6 option (-6)</h4>
<span id="index-ntpq_002dipv6"></span>
<p>This is the &ldquo;force ipv6 name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv4.
</li></ul>
<p>Force resolution of following host names on the command line
to the IPv6 namespace.
</p><hr>
<span id="ntpq-command"></span><div class="header">
<p>
Next: <a href="#ntpq-interactive" accesskey="n" rel="next">ntpq interactive</a>, Previous: <a href="#ntpq-ipv6" accesskey="p" rel="prev">ntpq ipv6</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="command-option-_0028_002dc_0029"></span><h4 class="subsection">1.1.5 command option (-c)</h4>
<span id="index-ntpq_002dcommand"></span>
<p>This is the &ldquo;run a command and exit&rdquo; option.
This option takes a string argument <samp>cmd</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
</p><hr>
<span id="ntpq-interactive"></span><div class="header">
<p>
Next: <a href="#ntpq-numeric" accesskey="n" rel="next">ntpq numeric</a>, Previous: <a href="#ntpq-command" accesskey="p" rel="prev">ntpq command</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="interactive-option-_0028_002di_0029"></span><h4 class="subsection">1.1.6 interactive option (-i)</h4>
<span id="index-ntpq_002dinteractive"></span>
<p>This is the &ldquo;force ntpq to operate in interactive mode&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
command, peers.
</li></ul>
<p>Force <code>ntpq</code> to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
</p><hr>
<span id="ntpq-numeric"></span><div class="header">
<p>
Next: <a href="#ntpq-old_002drv" accesskey="n" rel="next">ntpq old-rv</a>, Previous: <a href="#ntpq-interactive" accesskey="p" rel="prev">ntpq interactive</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="numeric-option-_0028_002dn_0029"></span><h4 class="subsection">1.1.7 numeric option (-n)</h4>
<span id="index-ntpq_002dnumeric"></span>
<p>This is the &ldquo;numeric host addresses&rdquo; option.
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
</p><hr>
<span id="ntpq-old_002drv"></span><div class="header">
<p>
Next: <a href="#ntpq-peers" accesskey="n" rel="next">ntpq peers</a>, Previous: <a href="#ntpq-numeric" accesskey="p" rel="prev">ntpq numeric</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="old_002drv-option"></span><h4 class="subsection">1.1.8 old-rv option</h4>
<span id="index-ntpq_002dold_002drv"></span>
<p>This is the &ldquo;always output status line with readvar&rdquo; option.
By default, <code>ntpq</code> now suppresses the <code>associd=...</code>
line that precedes the output of <code>readvar</code>
(alias <code>rv</code>) when a single variable is requested, such as
<code>ntpq -c &quot;rv 0 offset&quot;</code>.
This option causes <code>ntpq</code> to include both lines of output
for a single-variable <code>readvar</code>.
Using an environment variable to
preset this option in a script will enable both older and
newer <code>ntpq</code> to behave identically in this regard.
</p><hr>
<span id="ntpq-peers"></span><div class="header">
<p>
Next: <a href="#ntpq-refid" accesskey="n" rel="next">ntpq refid</a>, Previous: <a href="#ntpq-old_002drv" accesskey="p" rel="prev">ntpq old-rv</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="peers-option-_0028_002dp_0029"></span><h4 class="subsection">1.1.9 peers option (-p)</h4>
<span id="index-ntpq_002dpeers"></span>
<p>This is the &ldquo;print a list of the peers&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
interactive.
</li></ul>
<p>Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the &rsquo;peers&rsquo; interactive command.
</p><hr>
<span id="ntpq-refid"></span><div class="header">
<p>
Next: <a href="#ntpq-unconnected" accesskey="n" rel="next">ntpq unconnected</a>, Previous: <a href="#ntpq-peers" accesskey="p" rel="prev">ntpq peers</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="refid-option-_0028_002dr_0029"></span><h4 class="subsection">1.1.10 refid option (-r)</h4>
<span id="index-ntpq_002drefid"></span>
<p>This is the &ldquo;set default display type for s2+ refids&rdquo; option.
This option takes a keyword argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> This option takes a keyword as its argument.
The argument sets an enumeration value that can be tested by comparing the option value macro (OPT_VALUE_REFID).
The available keywords are:
<div class="example">
<pre class="example"> hash ipv4
</pre></div>
<p>or their numeric equivalent.
</p></li></ul>
<p>Set the default display format for S2+ refids.
</p><hr>
<span id="ntpq-unconnected"></span><div class="header">
<p>
Next: <a href="#ntpq-wide" accesskey="n" rel="next">ntpq wide</a>, Previous: <a href="#ntpq-refid" accesskey="p" rel="prev">ntpq refid</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="unconnected-option-_0028_002du_0029"></span><h4 class="subsection">1.1.11 unconnected option (-u)</h4>
<span id="index-ntpq_002dunconnected"></span>
<p>This is the &ldquo;use unconnected udp to communicate with ntpd (default on windows)&rdquo; option.
Open an unconnected UDP association to ntpd (the default
on Windows).
</p><hr>
<span id="ntpq-wide"></span><div class="header">
<p>
Next: <a href="#ntpq-config" accesskey="n" rel="next">ntpq config</a>, Previous: <a href="#ntpq-unconnected" accesskey="p" rel="prev">ntpq unconnected</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="wide-option-_0028_002dw_0029"></span><h4 class="subsection">1.1.12 wide option (-w)</h4>
<span id="index-ntpq_002dwide"></span>
<p>This is the &ldquo;display the full &rsquo;remote&rsquo; value&rdquo; option.
Display the full value of the &rsquo;remote&rsquo; value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
</p>
<hr>
<span id="ntpq-config"></span><div class="header">
<p>
Next: <a href="#ntpq-exit-status" accesskey="n" rel="next">ntpq exit status</a>, Previous: <a href="#ntpq-wide" accesskey="p" rel="prev">ntpq wide</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="presetting_002fconfiguring-ntpq"></span><h4 class="subsection">1.1.13 presetting/configuring ntpq</h4>
<p>Any option that is not marked as <i>not presettable</i> may be preset by
loading values from configuration (&quot;rc&quot; or &quot;ini&quot;) files, and values from environment variables named <code>NTPQ</code> and <code>NTPQ_&lt;OPTION_NAME&gt;</code>. <code>&lt;OPTION_NAME&gt;</code> must be one of
the options listed above in upper case and segmented with underscores.
The <code>NTPQ</code> variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
</p>
<p><code>libopts</code> will search in 2 places for configuration files:
</p><ul>
<li> $HOME
</li><li> $PWD
</li></ul>
<p>The environment variables <code>HOME</code>, and <code>PWD</code>
are expanded and replaced when <samp>ntpq</samp> runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named <samp>.ntprc</samp> is searched for
within that directory and processed.
</p>
<p>Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
</p>
<p>Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
</p><div class="example">
<pre class="example">[NTPQ]
</pre></div>
<p>or by
</p><div class="example">
<pre class="example">&lt;?program ntpq&gt;
</pre></div>
<p>Do not mix these styles within one configuration file.
</p>
<p>Compound values and carefully constructed string values may also be
specified using XML syntax:
</p><div class="example">
<pre class="example">&lt;option-name&gt;
&lt;sub-opt&gt;...&amp;lt;...&amp;gt;...&lt;/sub-opt&gt;
&lt;/option-name&gt;
</pre></div>
<p>yielding an <code>option-name.sub-opt</code> string value of
</p><div class="example">
<pre class="example">&quot;...&lt;...&gt;...&quot;
</pre></div>
<p><code>AutoOpts</code> does not track suboptions. You simply note that it is a
hierarchicly valued option. <code>AutoOpts</code> does provide a means for searching
the associated name/value pair list (see: optionFindValue).
</p>
<p>The command line options relating to configuration and/or usage help are:
</p>
<span id="version-_0028_002d_0029"></span><h4 class="subsubheading">version (-)</h4>
<p>Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>version</samp>&rsquo;</dt>
<dd><p>Only print the version. This is the default.
</p></dd>
<dt>&lsquo;<samp>copyright</samp>&rsquo;</dt>
<dd><p>Name the copyright usage licensing terms.
</p></dd>
<dt>&lsquo;<samp>verbose</samp>&rsquo;</dt>
<dd><p>Print the full copyright usage licensing terms.
</p></dd>
</dl>
<hr>
<span id="ntpq-exit-status"></span><div class="header">
<p>
Previous: <a href="#ntpq-config" accesskey="p" rel="prev">ntpq config</a>, Up: <a href="#ntpq-Invocation" accesskey="u" rel="up">ntpq Invocation</a> &nbsp; </p>
</div>
<span id="ntpq-exit-status-1"></span><h4 class="subsection">1.1.14 ntpq exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
<dt>&lsquo;<samp>66 (EX_NOINPUT)</samp>&rsquo;</dt>
<dd><p>A specified configuration file could not be loaded.
</p></dd>
<dt>&lsquo;<samp>70 (EX_SOFTWARE)</samp>&rsquo;</dt>
<dd><p>libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
</p></dd>
</dl>
<hr>
<span id="Usage"></span><div class="header">
<p>
Next: <a href="#Internal-Commands" accesskey="n" rel="next">Internal Commands</a>, Previous: <a href="#ntpq-Description" accesskey="p" rel="prev">ntpq Description</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Usage-1"></span><h3 class="section">1.2 Usage</h3>
<table>
<thead><tr><th width="23%">What</th><th width="23%">Default</th><th width="5%">Flag</th><th width="15%">Option</th></tr></thead>
<tr><td width="23%">configuration file</td><td width="23%"><code>/etc/ntp.conf</code></td><td width="5%"><code>-c</code></td><td width="15%"><code>conffile</code></td></tr>
<tr><td width="23%">frequency file</td><td width="23%">none</td><td width="5%"><code>-f</code></td><td width="15%"><code>driftfile</code></td></tr>
<tr><td width="23%">leapseconds file</td><td width="23%">none</td><td width="5%"></td><td width="15%"><code>leapfile</code></td></tr>
<tr><td width="23%">process ID file</td><td width="23%">none</td><td width="5%"><code>-p</code></td><td width="15%"><code>pidfile</code></td></tr>
<tr><td width="23%">log file</td><td width="23%">system log</td><td width="5%"><code>-l</code></td><td width="15%"><code>logfile</code></td></tr>
<tr><td width="23%">include file</td><td width="23%">none</td><td width="5%">none</td><td width="15%"><code>includefile</code></td></tr>
<tr><td width="23%">statistics path</td><td width="23%"><code>/var/NTP</code></td><td width="5%"><code>-s</code></td><td width="15%"><code>statsdir</code></td></tr>
<tr><td width="23%">keys path</td><td width="23%"><code>/usr/local/etc</code></td><td width="5%"><code>-k</code></td><td width="15%"><code>keysdir</code></td></tr>
</table>
<hr>
<span id="Internal-Commands"></span><div class="header">
<p>
Next: <a href="#Control-Message-Commands" accesskey="n" rel="next">Control Message Commands</a>, Previous: <a href="#Usage" accesskey="p" rel="prev">Usage</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Internal-Commands-2"></span><h3 class="section">1.3 Internal Commands</h3>
<p>Interactive format commands consist of a keyword followed by zero to four arguments. Only enough characters of the full keyword to uniquely identify the command need be typed. The output of a command is normally sent to the standard output, but optionally the output of individual commands may be sent to a file by appending a <code>&gt;</code>, followed by a file name, to the command line. A number of interactive format commands are executed entirely within the <code>ntpq</code> program itself and do not result in NTP mode-6 requests being sent to a server. These are described following.
</p>
<dl compact="compact">
<dt><code><span id="help"></span><code>? [</code><kbd>command_keyword</kbd><code>]</code></code></dt>
<dt><code><code>help [</code><kbd>command_keyword</kbd><code>]</code></code></dt>
<dd><p>A <code>?</code> by itself will print a list of all the command keywords known to <code>ntpq</code>. A <code>?</code> followed by a command keyword will print function and usage information about the command.
</p>
</dd>
<dt><code><span id="addvars"></span>&gt;<code>addvars <kbd>name</kbd> [ = <kbd>value</kbd>] [...]</code></code></dt>
<dt><code><code>rmvars <kbd>name</kbd> [...]</code></code></dt>
<dt><code><code>clearvars</code>&lt;/dt&gt;</code></dt>
<dd><p>The arguments to these commands consist of a list of items of the form
<code><kbd>name</kbd> = <kbd>value</kbd></code>, where the <code>= <kbd>value</kbd></code> is ignored,
and can be omitted in read requests.
<code>ntpq</code> maintains an internal list in which data to be included
in control messages can be assembled, and sent using the <code>readlist</code>
and <code>writelist</code> commands described below.
The <code>addvars</code> command allows variables and optional values
to be added to the list.
If more than one variable is to be added
the list should be comma-separated and not contain white space.
The <code>rmvars</code> command can be used to remove individual variables
from the list,
while the <code>clearlist</code> command removes all variables from the list.
</p>
</dd>
<dt><code><span id="cooked"></span><code>cooked</code></code></dt>
<dd><p>Display server messages in prettyprint format.
</p>
</dd>
<dt><code><span id="debug"></span><code>debug more | less | off</code></code></dt>
<dd><p>Turns internal query program debugging on and off.
</p>
</dd>
<dt><code><span id="delay"></span><code>delay <kbd>milliseconds</kbd></code></code></dt>
<dd><p>Specify a time interval to be added to timestamps included in requests which require authentication. This is used to enable (unreliable) server reconfiguration over long delay network paths or between machines whose clocks are unsynchronized. Actually the server does not now require timestamps in authenticated requests, so this command may be obsolete.
</p>
</dd>
<dt><code><span id="host"></span><code>host <kbd>name</kbd></code></code></dt>
<dd><p>Set the host to which future queries will be sent.
The name may be either a DNS name or a numeric address.
</p>
</dd>
<dt><code><span id="hostnames"></span><code>hostnames [yes | no]</code></code></dt>
<dd><p>If <code>yes</code> is specified, host names are printed in information displays.
If <code>no</code> is specified, numeric addresses are printed instead.
The default is <code>yes</code>,
unless modified using the command line <code>-n</code> switch.
</p>
</dd>
<dt><code><span id="keyid"></span><code>keyid <kbd>keyid</kbd></code></code></dt>
<dd><p>This command specifies the key number to be used
to authenticate configuration requests.
This must correspond to a key ID configured in <code>ntp.conf</code> for this purpose.
</p>
</dd>
<dt><code><span id="keytype"></span><code>keytype</code></code></dt>
<dd><p>Specify the digest algorithm to use for authenticated requests,
with default <code>MD5</code>.
If the OpenSSL library is installed,
digest can be be any message digest algorithm supported by the library.
The current selections are: <code>AES128CMAC</code>, <code>MD2</code>, <code>MD4</code>, <code>MD5</code>, <code>MDC2</code>, <code>RIPEMD160</code>, <code>SHA</code> and <code>SHA1</code>.
</p>
</dd>
<dt><code><span id="ntpversion"></span><code>ntpversion 1 | 2 | 3 | 4</code></code></dt>
<dd><p>Sets the NTP version number which <code>ntpq</code> claims in packets.
Defaults to 2.
Note that mode-6 control messages (and modes, for that matter)
didn&rsquo;t exist in NTP version 1.
</p>
</dd>
<dt><code><span id="passwd"></span><code>passwd</code></code></dt>
<dd><p>This command prompts for a password to authenticate requests.
The password must correspond to the key ID configured in <code>ntp.conf</code> for this purpose.
</p>
</dd>
<dt><code><span id="quit"></span><code>quit</code></code></dt>
<dd><p>Exit <code>ntpq</code>.
</p>
</dd>
<dt><code><span id="raw"></span><code>raw</code></code></dt>
<dd><p>Display server messages as received and without reformatting.
</p>
</dd>
<dt><code><span id="timeout"></span><code>timeout <kbd>milliseconds</kbd></code></code></dt>
<dd><p>Specify a timeout period for responses to server queries.
The default is about 5000 milliseconds.
Note that since <code>ntpq</code> retries each query once after a timeout
the total waiting time for a timeout will be twice the timeout value set.
</p>
</dd>
</dl>
<hr>
<span id="Control-Message-Commands"></span><div class="header">
<p>
Next: <a href="#Status-Words-and-Kiss-Codes" accesskey="n" rel="next">Status Words and Kiss Codes</a>, Previous: <a href="#Internal-Commands" accesskey="p" rel="prev">Internal Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Control-Message-Commands-2"></span><h3 class="section">1.4 Control Message Commands</h3>
<p>Association IDs are used to identify system, peer and clock variables.
System variables are assigned an association ID of zero and system name space,
while each association is assigned a nonzero association ID and peer namespace.
Most control commands send a single mode-6 message to the server
and expect a single response message.
The exceptions are the <code>peers</code> command,
which sends a series of messages,
and the <code>mreadlist</code> and <code>mreadvar</code> commands,
which iterate over a range of associations.
</p>
<span id="as"></span><dl compact="compact">
<dt><code><code>associations</code></code></dt>
<dd><p>Display a list of mobilized associations in the form:
<br>
<code>ind assid status conf reach auth condition last_event cnt</code>
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="40%">Description</th></tr></thead>
<tr><td width="10%"><code>ind</code></td><td width="40%">index on this list</td></tr>
<tr><td width="10%"><code>assid</code></td><td width="40%">association ID</td></tr>
<tr><td width="10%"><code>status</code></td><td width="40%"><a href="decode.html#peer">peer status word</a></td></tr>
<tr><td width="10%"><code>conf</code></td><td width="40%"><code>yes</code>: persistent, <code>no</code>: ephemeral</td></tr>
<tr><td width="10%"><code>reach</code></td><td width="40%"><code>yes</code>: reachable, <code>no</code>: unreachable</td></tr>
<tr><td width="10%"><code>auth</code></td><td width="40%"><code>ok</code>, <code>yes</code>, <code>bad</code> and <code>none</code></td></tr>
<tr><td width="10%"><code>condition</code></td><td width="40%">selection status (see the <code>select</code> field of the <a href="decode.html#peer">peer status word</a>)</td></tr>
<tr><td width="10%"><code>last_event</code></td><td width="40%">event report (see the <code>event</code> field of the <a href="decode.html#peer">peer status word</a>)</td></tr>
<tr><td width="10%"><code>cnt</code>
event count (see the <code>count</code> field of the <a href="decode.html#peer">peer status word</a>)</td></tr>
</table>
</dd>
<dt><code><span id="cv"></span>clockvar <kbd>assocID</kbd> [<kbd>name</kbd> [ = <kbd>value</kbd> [...]] [...]]</code></dt>
<dt><code>cv <kbd>assocID</kbd> [<kbd>name</kbd> [ = <kbd>value</kbd> [...] ][...]]</code></dt>
<dd><p>Display a list of &lsquo;clock variables&rsquo; for those associations supporting a reference clock.
</p>
</dd>
<dt><code><span id="g_t_003aconfig"></span>:config [...]</code></dt>
<dd><p>Send the remainder of the command line, including whitespace, to the server
as a run-time configuration command in the same format
as the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
</p>
</dd>
<dt><code><span id="config_002dfrom_002dfile"></span>config-from-file <kbd>filename</kbd></code></dt>
<dd><p>Send the each line of <kbd>filename</kbd> to the server as
run-time configuration commands in the same format as the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
</p>
</dd>
<dt><code><span id="ifstats"></span>ifstats</code></dt>
<dd><p>Display statistics for each local network address.
Authentication is required.
</p>
</dd>
<dt><code><span id="iostats"></span>iostats</code></dt>
<dd><p>Display network and reference clock I/O statistics.
</p>
</dd>
<dt><code><span id="kerninfo"></span>kerninfo</code></dt>
<dd><p>Display kernel loop and PPS statistics.
As with other ntpq output, times are in milliseconds.
The precision value displayed is in milliseconds as well,
unlike the precision system variable.
</p>
</dd>
<dt><code><span id="lassoc"></span>lassociations</code></dt>
<dd><p>Perform the same function as the associations command,
except display mobilized and unmobilized associations.
</p>
</dd>
<dt><code><span id="monstats"></span>monstats</code></dt>
<dd><p>Display monitor facility statistics.
</p>
</dd>
<dt><code><span id="mrulist"></span>mrulist [limited | kod | mincount=<kbd>count</kbd> | laddr=<kbd>localaddr</kbd> | sort=<kbd>sortorder</kbd> | resany=<kbd>hexmask</kbd> | resall=<kbd>hexmask</kbd>]</code></dt>
<dd><p>Obtain and print traffic counts collected and maintained by
the monitor facility.
With the exception of <code>sort=<kbd>sortorder</kbd></code>,
the options filter the list returned by <code>ntpd</code>.
The <code>limited</code> and <code>kod</code> options return only entries
representing client addresses from which the last packet received
triggered either discarding or a KoD response.
The <code>mincount=<kbd>count</kbd></code> option filters entries representing
less than <code><kbd>count</kbd></code> packets.
The <code>laddr=<kbd>localaddr</kbd></code> option filters entries for packets
received on any local address other than <code><kbd>localaddr</kbd></code>.
<code>resany=<kbd>hexmask</kbd></code> and <code>resall=<kbd>hexmask</kbd></code>
filter entries containing none or less than all, respectively,
of the bits in <code><kbd>hexmask</kbd></code>, which must begin with <code>0x</code>.
<br>
The <code><kbd>sortorder</kbd></code> defaults to <code>lstint</code> and may be any of
<code>addr</code>, <code>count</code>, <code>avgint</code>, <code>lstint</code>, or
any of those preceded by a minus sign (hyphen) to reverse the sort order.
The output columns are:
</p>
<table>
<thead><tr><th width="10%">Column</th><th width="40%">Description</th></tr></thead>
<tr><td width="10%"><code>lstint</code></td><td width="40%">Interval in s between the receipt of the most recent packet from this
address and the completion of the retrieval of the MRU list by <code>ntpq</code></td></tr>
<tr><td width="10%"><code>avgint</code></td><td width="40%">Average interval in s between packets from this address.</td></tr>
<tr><td width="10%"><code>rstr</code></td><td width="40%">Restriction flags associated with this address.
Most are copied unchanged from the matching <code>restrict</code> command,
however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.</td></tr>
<tr><td width="10%"><code>r</code></td><td width="40%">Rate control indicator, either a period, <code>L</code> or <code>K</code> for
no rate control response, rate limiting by discarding, or
rate limiting with a KoD response, respectively.</td></tr>
<tr><td width="10%"><code>m</code></td><td width="40%">Packet mode.</td></tr>
<tr><td width="10%"><code>v</code></td><td width="40%">Packet version number.</td></tr>
<tr><td width="10%"><code>count</code></td><td width="40%">Packets received from this address.</td></tr>
<tr><td width="10%"><code>rport</code></td><td width="40%">Source port of last packet from this address.</td></tr>
<tr><td width="10%"><code>remote address</code></td><td width="40%">DNS name, numeric address, or address followed by claimed DNS name which
could not be verified in parentheses.</td></tr>
</table>
</dd>
<dt><code><span id="mreadvar"></span><code>mreadvar <kbd>assocID</kbd> <kbd>assocID</kbd> [ <kbd>variable_name</kbd> [ = <kbd>value</kbd>[ ... ]</code></code></dt>
<dt><code><span id="mrv"></span><code>mrv <kbd>assocID</kbd> <kbd>assocID</kbd> [ <kbd>variable_name</kbd> [ = <kbd>value</kbd>[ ... ]</code></code></dt>
<dd><p>Perform the same function as the <code>readvar</code> command,
except for a range of association IDs.
This range is determined from the association list cached by
the most recent <code>associations</code> command.
</p>
</dd>
<dt><code><span id="passoc"></span><code>passociations</code></code></dt>
<dd><p>Perform the same function as the <code>associations command</code>, except that
it uses previously stored data rather than making a new query.
</p>
</dd>
<dt><code><span id="pe"></span><code>peers</code></code></dt>
<dd><p>Display a list of peers in the form:
<br>
<code>[tally]remote refid st t when pool reach delay offset jitter</code>
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>[tally]</code></td><td width="20%">single-character code indicating current value of the <code>select</code> field
of the <a href="decode.html#peer">peer status word</a>.</td></tr>
<tr><td width="10%"><code>remote</code></td><td width="20%">host name (or IP number) of peer</td></tr>
<tr><td width="10%"><code>refid</code></td><td width="20%">association ID or <a href="decode.html#kiss">kiss code</a>.</td></tr>
<tr><td width="10%"><code>st</code></td><td width="20%">stratum</td></tr>
<tr><td width="10%"><code>t</code></td><td width="20%"><code>u</code>: unicast or manycast client,
<code>b</code>: broadcast or multicast client,
<code>l</code>: local (reference clock),
<code>s</code>: symmetric (peer),
<code>A</code>: manycast server,
<code>B</code>: broadcast server,
<code>M</code>: multicast server.</td></tr>
<tr><td width="10%"><code>when</code></td><td width="20%">sec/min/hr since last received packet</td></tr>
<tr><td width="10%"><code>poll</code></td><td width="20%">poll interval (log(2) s)</td></tr>
<tr><td width="10%"><code>reach</code></td><td width="20%">reach shift register (octal)</td></tr>
<tr><td width="10%"><code>delay</code></td><td width="20%">roundtrip delay</td></tr>
<tr><td width="10%"><code>offset</code></td><td width="20%">offset of server relative to this host</td></tr>
<tr><td width="10%"><code>jitter</code></td><td width="20%">jitter</td></tr>
</table>
</dd>
<dt><code><span id="rv"></span>readvar <kbd>assocID</kbd> <kbd>name</kbd> [ = <kbd>value</kbd> ] [,...]</code></dt>
<dt><code>rv <kbd>assocID</kbd> [ <kbd>name</kbd> ] [,...]</code></dt>
<dd><p>Display the specified variables.
If <code><kbd>assocID</kbd></code> is zero,
the variables are from the &lsquo;system variables&rsquo; name space,
otherwise they are from the &lsquo;peer variables&rsquo; name space.
The <kbd>assocID</kbd> is required, as the same name can occur in both spaces.
If no <kbd>name</kbd> is included,
all operative variables in the name space are displayed.
In this case only, if the <code><kbd>assocID</kbd></code> is omitted, it is assumed zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds and
frequency values in parts-per-million (PPM).
Some NTP timestamps are represented in the format YYYYMMDDTTTT,
where YYYY is the year, MM the month of year, DD the day of month and
TTTT the time of day.
</p>
</dd>
<dt><code><span id="saveconfig"></span><code>saveconfig <kbd>filename</kbd></code></code></dt>
<dd><p>Write the current configuration, including any runtime modifications
given with <code>:config</code> or <code>config-from-file</code>,
to the ntpd host&rsquo;s file <kbd>filename</kbd>.
This command will be rejected by the server unless
<a href="miscopt.html#saveconfigdir">saveconfigdir</a>
appears in the <code>ntpd</code> configuration file.
<kbd>filename</kbd> can use <code>strftime()</code> format specifiers
to substitute the current date and time, for example,
<code>saveconfig ntp-%Y%m%d-%H%M%S.conf</code>.
The filename used is stored in system variable <code>savedconfig</code>.
Authentication is required.
</p>
</dd>
<dt><code><span id="writevar"></span>writevar <kbd>assocID</kbd> <kbd>name</kbd> = <kbd>value</kbd> [,...]</code></dt>
<dd><p>Write the specified variables.
If the <code><kbd>assocID</kbd></code> is zero, the variables are from the
&lsquo;system variables&rsquo; name space, otherwise they are from the
&lsquo;peer variables&rsquo; name space.
The <code><kbd>assocID</kbd></code> is required,
as the same name can occur in both spaces.
</p>
</dd>
<dt><code><span id="sysinfo"></span><code>sysinfo</code></code></dt>
<dd><p>Display operational summary.
</p>
</dd>
<dt><code><span id="sysstats"></span><code>sysstats</code></code></dt>
<dd><p>Print statistics counters maintained in the protocol module.
</p>
</dd>
</dl>
<hr>
<span id="Status-Words-and-Kiss-Codes"></span><div class="header">
<p>
Next: <a href="#System-Variables" accesskey="n" rel="next">System Variables</a>, Previous: <a href="#Control-Message-Commands" accesskey="p" rel="prev">Control Message Commands</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Status-Words-and-Kiss-Codes-2"></span><h3 class="section">1.5 Status Words and Kiss Codes</h3>
<p>The current state of the operating program is shown
in a set of status words maintained by the system
and each association separately.
These words are displayed in the <code>rv</code> and <code>as</code> commands
both in hexadecimal and decoded short tip strings.
The codes, tips and short explanations are on the
<a href="decode.html">Event Messages and Status Words</a> page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
</p>
<p>Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
<a href="decode.html#kiss">kiss codes</a>.
The original purpose was for kiss-o&rsquo;-death (KoD) packets sent
by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
</p>
<hr>
<span id="System-Variables"></span><div class="header">
<p>
Next: <a href="#Peer-Variables" accesskey="n" rel="next">Peer Variables</a>, Previous: <a href="#Status-Words-and-Kiss-Codes" accesskey="p" rel="prev">Status Words and Kiss Codes</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="System-Variables-2"></span><h3 class="section">1.6 System Variables</h3>
<p>The following system variables appear in the <code>rv</code> billboard.
Not all variables are displayed in some configurations.
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>status</code></td><td width="20%"><a href="decode.html#sys">system status word</a></td></tr>
<tr><td width="10%"><code>version</code></td><td width="20%">NTP software version and build time</td></tr>
<tr><td width="10%"><code>processor</code></td><td width="20%">hardware platform and version</td></tr>
<tr><td width="10%"><code>system</code></td><td width="20%">operating system and version</td></tr>
<tr><td width="10%"><code>leap</code></td><td width="20%">leap warning indicator (0-3)</td></tr>
<tr><td width="10%"><code>stratum</code></td><td width="20%">stratum (1-15)</td></tr>
<tr><td width="10%"><code>precision</code></td><td width="20%">precision (log(2) s)</td></tr>
<tr><td width="10%"><code>rootdelay</code></td><td width="20%">total roundtrip delay to the primary reference clock</td></tr>
<tr><td width="10%"><code>rootdisp</code></td><td width="20%">total dispersion to the primary reference clock</td></tr>
<tr><td width="10%"><code>peer</code></td><td width="20%">system peer association ID</td></tr>
<tr><td width="10%"><code>tc</code>
time constant and poll exponent (log(2) s) (3-17)</td></tr>
<tr><td width="10%"><code>mintc</code>
minimum time constant (log(2) s) (3-10)</td></tr>
<tr><td width="10%"><code>clock</code></td><td width="20%">date and time of day</td></tr>
<tr><td width="10%"><code>refid</code>
reference ID or <a href="decode.html#kiss">kiss code</a></td></tr>
<tr><td width="10%"><code>reftime</code></td><td width="20%">reference time</td></tr>
<tr><td width="10%"><code>offset</code></td><td width="20%">combined offset of server relative to this host</td></tr>
<tr><td width="10%"><code>sys_jitter</code></td><td width="20%">combined system jitter</td></tr>
<tr><td width="10%"><code>frequency</code></td><td width="20%">frequency offset (PPM) relative to hardware clock</td></tr>
<tr><td width="10%"><code>clk_wander</code></td><td width="20%">clock frequency wander (PPM)</td></tr>
<tr><td width="10%"><code>clk_jitter</code></td><td width="20%">clock jitter</td></tr>
<tr><td width="10%"><code>tai</code></td><td width="20%">TAI-UTC offset (s)</td></tr>
<tr><td width="10%"><code>leapsec</code></td><td width="20%">NTP seconds when the next leap second is/was inserted</td></tr>
<tr><td width="10%"><code>expire</code></td><td width="20%">NTP seconds when the NIST leapseconds file expires</td></tr>
</table>
<p>The jitter and wander statistics are exponentially-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
</p>
<p>When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed, including some or all of the
following, depending on the particular Autokey dance:
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>host</code></td><td width="20%">Autokey host name for this host</td></tr>
<tr><td width="10%"><code>ident</code></td><td width="20%">Autokey group name for this host</td></tr>
<tr><td width="10%"><code>flags</code></td><td width="20%">host flags (see Autokey specification)</td></tr>
<tr><td width="10%"><code>digest</code></td><td width="20%">OpenSSL message digest algorithm</td></tr>
<tr><td width="10%"><code>signature</code></td><td width="20%">OpenSSL digest/signature scheme</td></tr>
<tr><td width="10%"><code>update</code></td><td width="20%">NTP seconds at last signature update</td></tr>
<tr><td width="10%"><code>cert</code></td><td width="20%">certificate subject, issuer and certificate flags</td></tr>
<tr><td width="10%"><code>until</code></td><td width="20%">NTP seconds when the certificate expires</td></tr>
</table>
<hr>
<span id="Peer-Variables"></span><div class="header">
<p>
Next: <a href="#Clock-Variables" accesskey="n" rel="next">Clock Variables</a>, Previous: <a href="#System-Variables" accesskey="p" rel="prev">System Variables</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Peer-Variables-2"></span><h3 class="section">1.7 Peer Variables</h3>
<p>The following peer variables appear in the <code>rv</code> billboard
for each association.
Not all variables are displayed in some configurations.
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>associd</code></td><td width="20%">association ID</td></tr>
<tr><td width="10%"><code>status</code></td><td width="20%"><a href="decode.html#peer">peer status word</a></td></tr>
<tr><td width="10%"><code>srcadr</code></td><td width="20%">source (remote) IP address and port</td></tr>
<tr><td width="10%"><code>dstadr</code></td><td width="20%">destination (local) IP address and port</td></tr>
<tr><td width="10%"><code>leap</code></td><td width="20%">leap indicator (0-3)</td></tr>
<tr><td width="10%"><code>stratum</code></td><td width="20%">stratum (0-15)</td></tr>
<tr><td width="10%"><code>precision</code></td><td width="20%">precision (log(2) s)</td></tr>
<tr><td width="10%"><code>rootdelay</code></td><td width="20%">total roundtrip delay to the primary reference clock</td></tr>
<tr><td width="10%"><code>rootdisp</code></td><td width="20%">total root dispersion to the primary reference clock</td></tr>
<tr><td width="10%"><code>refid</code></td><td width="20%">reference ID or <a href="decode.html#kiss">kiss code</a></td></tr>
<tr><td width="10%"><code>reftime</code></td><td width="20%">reference time</td></tr>
<tr><td width="10%"><code>reach</code></td><td width="20%">reach register (octal)</td></tr>
<tr><td width="10%"><code>unreach</code></td><td width="20%">unreach counter</td></tr>
<tr><td width="10%"><code>hmode</code></td><td width="20%">host mode (1-6)</td></tr>
<tr><td width="10%"><code>pmode</code></td><td width="20%">peer mode (1-5)</td></tr>
<tr><td width="10%"><code>hpoll</code></td><td width="20%">host poll exponent (log(2) s) (3-17)</td></tr>
<tr><td width="10%"><code>ppoll</code></td><td width="20%">peer poll exponent (log(2) s) (3-17)</td></tr>
<tr><td width="10%"><code>headway</code></td><td width="20%">headway (see <a href="rate.html">Rate Management and the Kiss-o&rsquo;-Death Packet</a>)</td></tr>
<tr><td width="10%"><code>flash</code></td><td width="20%"><a href="decode.html#flash">flash status word</a></td></tr>
<tr><td width="10%"><code>offset</code></td><td width="20%">filter offset</td></tr>
<tr><td width="10%"><code>delay</code></td><td width="20%">filter delay</td></tr>
<tr><td width="10%"><code>dispersion</code></td><td width="20%">filter dispersion</td></tr>
<tr><td width="10%"><code>jitter</code></td><td width="20%">filter jitter</td></tr>
<tr><td width="10%"><code>ident</code></td><td width="20%">Autokey group name for this association</td></tr>
<tr><td width="10%"><code>bias</code></td><td width="20%">unicast/broadcast bias</td></tr>
<tr><td width="10%"><code>xleave</code></td><td width="20%">interleave delay (see <a href="xleave.html">NTP Interleaved Modes</a>)</td></tr>
</table>
<p>The bias variable is calculated when the first broadcast packet is received
after the calibration volley. It represents the offset of the broadcast
subgraph relative to the unicast subgraph. The xleave variable appears
only the interleaved symmetric and interleaved modes. It represents
the internal queuing, buffering and transmission delays for the preceding
packet.
</p>
<p>When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>flags</code></td><td width="20%">peer flags (see Autokey specification)</td></tr>
<tr><td width="10%"><code>host</code></td><td width="20%">Autokey server name</td></tr>
<tr><td width="10%"><code>flags</code></td><td width="20%">peer flags (see Autokey specification)</td></tr>
<tr><td width="10%"><code>signature</code></td><td width="20%">OpenSSL digest/signature scheme</td></tr>
<tr><td width="10%"><code>initsequence</code></td><td width="20%">initial key ID</td></tr>
<tr><td width="10%"><code>initkey</code></td><td width="20%">initial key index</td></tr>
<tr><td width="10%"><code>timestamp</code></td><td width="20%">Autokey signature timestamp</td></tr>
</table>
<hr>
<span id="Clock-Variables"></span><div class="header">
<p>
Previous: <a href="#Peer-Variables" accesskey="p" rel="prev">Peer Variables</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Clock-Variables-2"></span><h3 class="section">1.8 Clock Variables</h3>
<p>The following clock variables appear in the <code>cv</code> billboard for each association with a reference clock. Not all variables are displayed in some configurations.
</p>
<table>
<thead><tr><th width="10%">Variable</th><th width="20%">Description</th></tr></thead>
<tr><td width="10%"><code>associd</code></td><td width="20%">association ID</td></tr>
<tr><td width="10%"><code>status</code></td><td width="20%"><a href="decode.html#clock">clock status word</a></td></tr>
<tr><td width="10%"><code>device</code></td><td width="20%">device description</td></tr>
<tr><td width="10%"><code>timecode</code></td><td width="20%">ASCII time code string (specific to device)</td></tr>
<tr><td width="10%"><code>poll</code></td><td width="20%">poll messages sent</td></tr>
<tr><td width="10%"><code>noreply</code></td><td width="20%">no reply</td></tr>
<tr><td width="10%"><code>badformat</code></td><td width="20%">bad format</td></tr>
<tr><td width="10%"><code>baddata</code></td><td width="20%">bad date or time</td></tr>
<tr><td width="10%"><code>fudgetime1</code></td><td width="20%">fudge time 1</td></tr>
<tr><td width="10%"><code>fudgetime2</code></td><td width="20%">fudge time 2</td></tr>
<tr><td width="10%"><code>stratum</code></td><td width="20%">driver stratum</td></tr>
<tr><td width="10%"><code>refid</code></td><td width="20%">driver reference ID</td></tr>
<tr><td width="10%"><code>flags</code></td><td width="20%">driver flags</td></tr>
</table>
<hr>
</body>
</html>
diff --git a/contrib/ntp/ntpq/ntpq.man.in b/contrib/ntp/ntpq/ntpq.man.in
index d5e8932d116c..12c085baf761 100644
--- a/contrib/ntp/ntpq/ntpq.man.in
+++ b/contrib/ntp/ntpq/ntpq.man.in
@@ -1,1594 +1,1594 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq @NTPQ_MS@ "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpq @NTPQ_MS@ "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:08 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:15 AM by AutoGen 5.18.16
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpq\fP
\- standard NTP query program
.SH SYNOPSIS
\f\*[B-Font]ntpq\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ host ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntpq\fP
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty-printed output
options being available.
The
\f\*[B-Font]ntpq\fP
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
.sp \n(Ppu
.ne 2
If one or more request options is included on the command line
when
\f\*[B-Font]ntpq\fP
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
\f\*[B-Font]ntpq\fP
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
\f\*[B-Font]ntpq\fP
utility will prompt for
commands if the standard input is a terminal device.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntpq\fP
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
\f\*[B-Font]ntpq\fP
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.sp \n(Ppu
.ne 2
Note that in contexts where a host name is expected, a
\f\*[B-Font]\-4\f[]
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
\f\*[B-Font]\-6\f[]
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
\*[Lq]NTP Debugging Techniques\*[Rq]
page.
.sp \n(Ppu
.ne 2
Specifying a
command line option other than
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-n\f[]
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
\f\*[B-Font]ntpq\fP
will attempt to read
interactive format commands from the standard input.
.SS "Internal Commands"
.sp \n(Ppu
.ne 2
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
.sp \n(Ppu
.ne 2
A
number of interactive format commands are executed entirely within
the
\f\*[B-Font]ntpq\fP
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
.TP 15
.NOP \f\*[B-Font]?\f[] [\f\*[I-Font]command\f[]]
.br
.ns
.TP 15
.NOP \f\*[B-Font]help\f[] [\f\*[I-Font]command\f[]]
A
\[oq]\&?\[cq]
by itself will print a list of all the commands
known to
\f\*[B-Font]ntpq\fP.
A
\[oq]\&?\[cq]
followed by a command name will print function and usage
information about the command.
.br
.ns
.TP 15
.NOP \f\*[B-Font]addvars\f[] \f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][,...]
.br
.ns
.TP 15
.NOP \f\*[B-Font]rmvars\f[] \f\*[I-Font]name\f[][,...]
.br
.ns
.TP 15
.NOP \f\*[B-Font]clearvars\f[]
.br
.ns
.TP 15
.NOP \f\*[B-Font]showvars\f[]
The arguments to this command consist of a list of
items of the form
\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]],
where the
.NOP \&=\f\*[I-Font]value\f[]
is ignored, and can be omitted,
in requests to the server to read variables.
The
\f\*[B-Font]ntpq\fP
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
\f\*[B-Font]readlist\f[]
and
\f\*[B-Font]writelist\f[]
commands described below.
The
\f\*[B-Font]addvars\f[]
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma-separated and not contain white space.
The
\f\*[B-Font]rmvars\f[]
command can be used to remove individual variables from the list,
while the
\f\*[B-Font]clearvars\f[]
command removes all variables from the
list.
The
\f\*[B-Font]showvars\f[]
command displays the current list of optional variables.
.br
.ns
.TP 15
.NOP \f\*[B-Font]authenticate\f[] [\f\*[B-Font]yes\f[]|\f\*[B-Font]no\f[]]
Normally
\f\*[B-Font]ntpq\fP
does not authenticate requests unless
they are write requests.
The command
\f\*[B-Font]authenticate\f[] \f\*[B-Font]yes\f[]
causes
\f\*[B-Font]ntpq\fP
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
\f\*[B-Font]authenticate\f[]
causes
\f\*[B-Font]ntpq\fP
to display whether or not
it is currently authenticating requests.
.br
.ns
.TP 15
.NOP \f\*[B-Font]cooked\f[]
Causes output from query commands to be "cooked", so that
variables which are recognized by
\f\*[B-Font]ntpq\fP
will have their
values reformatted for human consumption.
Variables which
\f\*[B-Font]ntpq\fP
could not decode completely are
marked with a trailing
\[oq]\&?\[cq].
.br
.ns
.TP 15
.NOP \f\*[B-Font]debug\f[] [\f\*[B-Font]more\f[]|\f\*[B-Font]less\f[]|\f\*[B-Font]off\f[]]
With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
.br
.ns
.TP 15
.NOP \f\*[B-Font]delay\f[] [\f\*[I-Font]milliseconds\f[]]
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
.br
.ns
.TP 15
.NOP \f\*[B-Font]drefid\f[] [\f\*[B-Font]hash\f[]|\f\*[B-Font]ipv4\f[]]
Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
.br
.ns
.TP 15
.NOP \f\*[B-Font]exit\f[]
Exit
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 15
.NOP \f\*[B-Font]host\f[] [\f\*[I-Font]name\f[]]
Set the host to which future queries will be sent.
The
\f\*[I-Font]name\f[]
may be either a host name or a numeric address.
Without any arguments, displays the current host.
.br
.ns
.TP 15
.NOP \f\*[B-Font]hostnames\f[] [\f\*[B-Font]yes\f[]|\f\*[B-Font]no\f[]]
If
\f\*[B-Font]yes\f[]
is specified, host names are printed in
information displays.
If
\f\*[B-Font]no\f[]
is specified, numeric
addresses are printed instead.
The default is
\f\*[B-Font]yes\f[],
unless
modified using the command line
\f\*[B-Font]\-n\f[]
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
.br
.ns
.TP 15
.NOP \f\*[B-Font]keyid\f[] [\f\*[I-Font]keyid\f[]]
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
\f\*[B-Font]controlkey\f[]
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
\f\*[I-Font]keyid\f[].
.br
.ns
.TP 15
.NOP \f\*[B-Font]keytype\f[] [\f\*[I-Font]digest\f[]]
Specify the digest algorithm to use for authenticating requests, with default
\f\*[B-Font]MD5\f[].
If
\f\*[B-Font]ntpq\fP
was built with OpenSSL support, and OpenSSL is installed,
\f\*[I-Font]digest\f[]
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
\f\*[B-Font]keytype\f[] \f\*[I-Font]digest\f[]
algorithm used is displayed.
.br
.ns
.TP 15
.NOP \f\*[B-Font]ntpversion\f[] [\f\*[B-Font]1\f[]|\f\*[B-Font]2\f[]|\f\*[B-Font]3\f[]|\f\*[B-Font]4\f[]]
Sets the NTP version number which
\f\*[B-Font]ntpq\fP
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn't exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
.br
.ns
.TP 15
.NOP \f\*[B-Font]passwd\f[]
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.br
.ns
.TP 15
.NOP \f\*[B-Font]poll\f[] [\f\*[I-Font]n\f[]] [\f\*[B-Font]verbose\f[]]
Poll an NTP server in client mode
\f\*[I-Font]n\f[]
times.
Poll not implemented yet.
.br
.ns
.TP 15
.NOP \f\*[B-Font]quit\f[]
Exit
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 15
.NOP \f\*[B-Font]raw\f[]
Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
.br
.ns
.TP 15
.NOP \f\*[B-Font]timeout\f[] [\f\*[I-Font]milliseconds\f[]]
Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
\f\*[B-Font]ntpq\fP
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.br
.ns
.TP 15
.NOP \f\*[B-Font]version\f[]
Display the version of the
\f\*[B-Font]ntpq\fP
program.
.PP
.SS "Control Message Commands"
Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
\f\*[B-Font]peers\f[]
command, which sends a series of messages,
and the
\f\*[B-Font]mreadlist\f[]
and
\f\*[B-Font]mreadvar\f[]
commands, which iterate over a range of associations.
.TP 10
.NOP \f\*[B-Font]apeers\f[]
Display a list of peers in the form:
.Dl [tally]remote refid assid st t when pool reach delay offset jitter
where the output is just like the
\f\*[B-Font]peers\f[]
command except that the
\f\*[B-Font]refid\f[]
is displayed in hex format and the association number is also displayed.
.br
.ns
.TP 10
.NOP \f\*[B-Font]associations\f[]
Display a list of mobilized associations in the form:
.Dl ind assid status conf reach auth condition last_event cnt
.RS
.IP \fB\(bu\fP 2
.IP \fB\(bu\fP 2 \f\*[B-Font]ind\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]index\f[] \f\*[B-Font]on\f[] \f\*[B-Font]this\f[] \f\*[B-Font]list\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]assid\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]association\f[] \f\*[B-Font]id\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]status\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]conf\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]yes\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]persistent,\f[] \f\*[B-Font]no\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]ephemeral\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]reach\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]yes\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]reachable,\f[] \f\*[B-Font]no\f[]: \f\*[B-Font]No\f[] \f\*[B-Font]unreachable\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]auth\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]ok\f[], \f\*[B-Font]yes\f[], \f\*[B-Font]bad\f[] \f\*[B-Font]No\f[] \f\*[B-Font]and\f[] \f\*[B-Font]none\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]condition\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]selection\f[] \f\*[B-Font]status\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]select\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]last_event\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]event\f[] \f\*[B-Font]report\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]event\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.IP \fB\(bu\fP 2 \f\*[B-Font]cnt\f[] \f\*[B-Font]Ta\f[] \f\*[B-Font]event\f[] \f\*[B-Font]count\f[] \f\*[B-Font]\&(see\f[] \f\*[B-Font]the\f[] \f\*[B-Font]count\f[] \f\*[B-Font]No\f[] \f\*[B-Font]field\f[] \f\*[B-Font]of\f[] \f\*[B-Font]the\f[] \f\*[B-Font]peer\f[] \f\*[B-Font]status\f[] \f\*[B-Font]word\&)\f[]
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]authinfo\f[]
Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
.br
.ns
.TP 10
.NOP \f\*[B-Font]clocklist\f[] [\f\*[I-Font]associd\f[]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]cl\f[] [\f\*[I-Font]associd\f[]]
Display all clock variables in the variable list for those associations
supporting a reference clock.
.br
.ns
.TP 10
.NOP \f\*[B-Font]clockvar\f[] [\f\*[I-Font]associd\f[]] [\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][] ,...]
.br
.ns
.TP 10
.NOP \f\*[B-Font]cv\f[] [\f\*[I-Font]associd\f[]] [\f\*[I-Font]name\f[][\&=\f\*[I-Font]value\f[]][] ,...]
Display a list of clock variables for those associations supporting a
reference clock.
.br
.ns
.TP 10
.NOP \f\*[B-Font]:config\f[] \f\*[I-Font]configuration command line\f[]
Send the remainder of the command line, including whitespace, to the
server as a run-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]config-from-file\f[] \f\*[I-Font]filename\f[]
Send each line of
\f\*[I-Font]filename\f[]
to the server as run-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]ifstats\f[]
Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]iostats\f[]
Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
.br
.ns
.TP 10
.NOP \f\*[B-Font]kerninfo\f[]
Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lassociations\f[]
Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lopeers\f[] [\f\*[B-Font]\-4\f[]|\f\*[B-Font]\-6\f[]]
Display a list of all peers and clients showing
\f\*[B-Font]dstadr\f[]
(associated with the given IP version).
.br
.ns
.TP 10
.NOP \f\*[B-Font]lpassociations\f[]
Display the last obtained list of associations, including all clients.
.br
.ns
.TP 10
.NOP \f\*[B-Font]lpeers\f[] [\f\*[B-Font]\-4\f[]|\f\*[B-Font]\-6\f[]]
Display a list of all peers and clients (associated with the given IP version).
.br
.ns
.TP 10
.NOP \f\*[B-Font]monstats\f[]
Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mreadlist\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[]
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrl\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[]
Perform the same function as the
\f\*[B-Font]readlist\f[]
command for a range of association ids.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mreadvar\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[] [\f\*[I-Font]name\f[]][,...]
This range may be determined from the list displayed by any
command showing associations.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrv\f[] \f\*[I-Font]associdlo\f[] \f\*[I-Font]associdhi\f[] [\f\*[I-Font]name\f[]][,...]
Perform the same function as the
\f\*[B-Font]readvar\f[]
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
.br
.ns
.TP 10
.NOP \f\*[B-Font]mrulist\f[] [\f\*[B-Font]limited\f[] | \f\*[B-Font]kod\f[] | \f\*[B-Font]mincount\f[]\&=\f\*[I-Font]count\f[] | \f\*[B-Font]laddr\f[]\&=\f\*[I-Font]localaddr\f[] | \f\*[B-Font]sort\f[]\&=[\&-]\f\*[I-Font]sortorder\f[] | \f\*[B-Font]resany\f[]\&=\f\*[I-Font]hexmask\f[] | \f\*[B-Font]resall\f[]\&=\f\*[I-Font]hexmask\f[]]
Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
\f\*[B-Font]sort\f[]\&=[\&-]\f\*[I-Font]sortorder\f[],
the options filter the list returned by
\fCntpd\f[]\fR(8)\f[].
The
\f\*[B-Font]limited\f[]
and
\f\*[B-Font]kod\f[]
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
\f\*[B-Font]mincount\f[]=\f\*[I-Font]count\f[]
option filters entries representing less than
\f\*[I-Font]count\f[]
packets.
The
\f\*[B-Font]laddr\f[]=\f\*[I-Font]localaddr\f[]
option filters entries for packets received on any local address other than
\f\*[I-Font]localaddr\f[].
\f\*[B-Font]resany\f[]=\f\*[I-Font]hexmask\f[]
and
\f\*[B-Font]resall\f[]=\f\*[I-Font]hexmask\f[]
filter entries containing none or less than all, respectively, of the bits in
\f\*[I-Font]hexmask\f[],
which must begin with
\f\*[B-Font]0x\f[].
The
\f\*[I-Font]sortorder\f[]
defaults to
\f\*[B-Font]lstint\f[]
and may be
\f\*[B-Font]addr\f[],
\f\*[B-Font]avgint\f[],
\f\*[B-Font]count\f[],
\f\*[B-Font]lstint\f[],
or any of those preceded by
\[oq]\&-\[cq]
to reverse the sort order.
The output columns are:
.RS
.TP 10
.NOP Column
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]lstint\f[]
Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
\f\*[B-Font]ntpq\fP.
.br
.ns
.TP 10
.NOP \f\*[B-Font]avgint\f[]
Average interval in s between packets from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]rstr\f[]
Restriction flags associated with this address.
Most are copied unchanged from the matching
\f\*[B-Font]restrict\f[]
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
.br
.ns
.TP 10
.NOP \f\*[B-Font]r\f[]
Rate control indicator, either
a period,
\f\*[B-Font]L\f[]
or
\f\*[B-Font]K\f[]
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
.br
.ns
.TP 10
.NOP \f\*[B-Font]m\f[]
Packet mode.
.br
.ns
.TP 10
.NOP \f\*[B-Font]v\f[]
Packet version number.
.br
.ns
.TP 10
.NOP \f\*[B-Font]count\f[]
Packets received from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]rport\f[]
Source port of last packet from this address.
.br
.ns
.TP 10
.NOP \f\*[B-Font]remote\f[] \f\*[B-Font]address\f[]
host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]opeers\f[] [\f\*[B-Font]\-4\f[] | \f\*[B-Font]\-6\f[]]
Obtain and print the old-style list of all peers and clients showing
\f\*[B-Font]dstadr\f[]
(associated with the given IP version),
rather than the
\f\*[B-Font]refid\f[].
.br
.ns
.TP 10
.NOP \f\*[B-Font]passociations\f[]
Perform the same function as the
\f\*[B-Font]associations\f[]
command,
except that it uses previously stored data rather than making a new query.
.br
.ns
.TP 10
.NOP \f\*[B-Font]peers\f[]
Display a list of peers in the form:
.Dl [tally]remote refid st t when pool reach delay offset jitter
.RS
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font][tally]\f[]
single-character code indicating current value of the
\f\*[B-Font]select\f[]
field of the
.Lk decode.html#peer "peer status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]remote\f[]
host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
\f\*[B-Font]ntpq\fP
\f\*[B-Font]\-w\f[]
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
source IP address or
.Lk decode.html#kiss "'kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]st\f[]
stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
.br
.ns
.TP 10
.NOP \f\*[B-Font]t\f[]
\f\*[B-Font]u\f[]:
unicast or manycast client,
\f\*[B-Font]b\f[]:
broadcast or multicast client,
\f\*[B-Font]p\f[]:
pool source,
\f\*[B-Font]l\f[]:
local (reference clock),
\f\*[B-Font]s\f[]:
symmetric (peer),
\f\*[B-Font]A\f[]:
manycast server,
\f\*[B-Font]B\f[]:
broadcast server,
\f\*[B-Font]M\f[]:
multicast server
.br
.ns
.TP 10
.NOP \f\*[B-Font]when\f[]
time in seconds, minutes, hours, or days since the last packet
was received, or
\[oq]\&-\[cq]
if a packet has never been received
.br
.ns
.TP 10
.NOP \f\*[B-Font]poll\f[]
poll interval (s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]reach\f[]
reach shift register (octal)
.br
.ns
.TP 10
.NOP \f\*[B-Font]delay\f[]
roundtrip delay
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
offset of server relative to this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]jitter\f[]
offset RMS error estimate.
.RE
.br
.ns
.TP 10
.NOP \f\*[B-Font]pstats\f[] \f\*[I-Font]associd\f[]
Display the statistics for the peer with the given
\f\*[I-Font]associd\f[]:
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
.br
.ns
.TP 10
.NOP \f\*[B-Font]readlist\f[] [\f\*[I-Font]associd\f[]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]rl\f[] [\f\*[I-Font]associd\f[]]
Display all system or peer variables.
If the
\f\*[I-Font]associd\f[]
is omitted, it is assumed to be zero.
.br
.ns
.TP 10
.NOP \f\*[B-Font]readvar\f[] [\f\*[I-Font]associd\f[] \f\*[I-Font]name\f[][=\f\*[I-Font]value\f[]] [, ...]]
.br
.ns
.TP 10
.NOP \f\*[B-Font]rv\f[] [\f\*[I-Font]associd\f[] \f\*[I-Font]name\f[][=\f\*[I-Font]value\f[]] [, ...]]
Display the specified system or peer variables.
If
\f\*[I-Font]associd\f[]
is zero, the variables are from the
\fISystem\f[] \fIVariables\f[]
name space, otherwise they are from the
\fIPeer\f[] \fIVariables\f[]
name space.
The
\f\*[I-Font]associd\f[]
is required, as the same name can occur in both spaces.
If no
\f\*[I-Font]name\f[]
is included, all operative variables in the name space are displayed.
In this case only, if the
\f\*[I-Font]associd\f[]
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts-per-million (PPM).
Some NTP timestamps are represented in the format
\f\*[I-Font]YYYY\f[]\f\*[I-Font]MM\f[] \f\*[I-Font]DD\f[] \f\*[I-Font]TTTT\f[],
where
\f\*[I-Font]YYYY\f[]
is the year,
\f\*[I-Font]MM\f[]
the month of year,
\f\*[I-Font]DD\f[]
the day of month and
\f\*[I-Font]TTTT\f[]
the time of day.
.br
.ns
.TP 10
.NOP \f\*[B-Font]reslist\f[]
Display the access control (restrict) list for
\f\*[B-Font]ntpq\fP.
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]saveconfig\f[] \f\*[I-Font]filename\f[]
Save the current configuration,
including any runtime modifications made by
\f\*[B-Font]:config\f[]
or
\f\*[B-Font]config-from-file\f[],
to the NTP server host file
\f\*[I-Font]filename\f[].
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir "saveconfigdir"
appears in the
\fCntpd\f[]\fR(8)\f[]
configuration file.
\f\*[I-Font]filename\f[]
can use
\fCdate\f[]\fR(1)\f[]
format specifiers to substitute the current date and time, for
example,
.in +4
\f\*[B-Font]saveconfig\f[] \fIntp-%Y%m%d-%H%M%S.conf\f[].
.in -4
The filename used is stored in system variable
\f\*[B-Font]savedconfig\f[].
Authentication is required.
.br
.ns
.TP 10
.NOP \f\*[B-Font]sysinfo\f[]
Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
.br
.ns
.TP 10
.NOP \f\*[B-Font]sysstats\f[]
Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
.br
.ns
.TP 10
.NOP \f\*[B-Font]timerstats\f[]
Display interval timer counters:
time since reset, timer overruns, calls to transmit.
.br
.ns
.TP 10
.NOP \f\*[B-Font]writelist\f[] \f\*[I-Font]associd\f[]
Set all system or peer variables included in the variable list.
.br
.ns
.TP 10
.NOP \f\*[B-Font]writevar\f[] \f\*[I-Font]associd\f[] \f\*[I-Font]name\f[]=\f\*[I-Font]value\f[] [, ...]
Set the specified variables in the variable list.
If the
\f\*[I-Font]associd\f[]
is zero, the variables are from the
\fISystem\f[] \fIVariables\f[]
name space, otherwise they are from the
\fIPeer\f[] \fIVariables\f[]
name space.
The
\f\*[I-Font]associd\f[]
is required, as the same name can occur in both spaces.
Authentication is required.
.PP
.SS Status Words and Kiss Codes
The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per-association basis.
These words are displayed by the
\f\*[B-Font]readlist\f[]
and
\f\*[B-Font]associations\f[]
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html "Event Messages and Status Words"
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
.sp \n(Ppu
.ne 2
Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss "kiss codes" .
The original purpose was for kiss-o'-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
.SS System Variables
The following system variables appear in the
\f\*[B-Font]readlist\f[]
billboard.
Not all variables are displayed in some configurations.
.sp \n(Ppu
.ne 2
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#sys "system status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]version\f[]
NTP software version and build time
.br
.ns
.TP 10
.NOP \f\*[B-Font]processor\f[]
hardware platform and version
.br
.ns
.TP 10
.NOP \f\*[B-Font]system\f[]
operating system and version
.br
.ns
.TP 10
.NOP \f\*[B-Font]leap\f[]
leap warning indicator (0-3)
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
stratum (1-15)
.br
.ns
.TP 10
.NOP \f\*[B-Font]precision\f[]
precision (log2 s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdelay\f[]
total roundtrip delay to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdisp\f[]
total dispersion to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
reference id or
.Lk decode.html#kiss "kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]reftime\f[]
reference time
.br
.ns
.TP 10
.NOP \f\*[B-Font]clock\f[]
date and time of day
.br
.ns
.TP 10
.NOP \f\*[B-Font]peer\f[]
system peer association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]tc\f[]
time constant and poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]mintc\f[]
minimum time constant (log2 s) (3-10)
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
combined offset of server relative to this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]frequency\f[]
frequency drift (PPM) relative to hardware clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]sys_jitter\f[]
combined system jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]clk_wander\f[]
clock frequency wander (PPM)
.br
.ns
.TP 10
.NOP \f\*[B-Font]clk_jitter\f[]
clock jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]tai\f[]
TAI-UTC offset (s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]leapsec\f[]
NTP seconds when the next leap second is/was inserted
.br
.ns
.TP 10
.NOP \f\*[B-Font]expire\f[]
NTP seconds when the NIST leapseconds file expires
.PP
The jitter and wander statistics are exponentially-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
.sp \n(Ppu
.ne 2
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]host\f[]
Autokey host name for this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]ident\f[]
Autokey group name for this host
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
host flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]digest\f[]
OpenSSL message digest algorithm
.br
.ns
.TP 10
.NOP \f\*[B-Font]signature\f[]
OpenSSL digest/signature scheme
.br
.ns
.TP 10
.NOP \f\*[B-Font]update\f[]
NTP seconds at last signature update
.br
.ns
.TP 10
.NOP \f\*[B-Font]cert\f[]
certificate subject, issuer and certificate flags
.br
.ns
.TP 10
.NOP \f\*[B-Font]until\f[]
NTP seconds when the certificate expires
.PP
.SS Peer Variables
The following peer variables appear in the
\f\*[B-Font]readlist\f[]
billboard for each association.
Not all variables are displayed in some configurations.
.sp \n(Ppu
.ne 2
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]associd\f[]
association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#peer "peer status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]srcadr\f[]
source (remote) IP address
.br
.ns
.TP 10
.NOP \f\*[B-Font]srcport\f[]
source (remote) port
.br
.ns
.TP 10
.NOP \f\*[B-Font]dstadr\f[]
destination (local) IP address
.br
.ns
.TP 10
.NOP \f\*[B-Font]dstport\f[]
destination (local) port
.br
.ns
.TP 10
.NOP \f\*[B-Font]leap\f[]
leap indicator (0-3)
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
stratum (0-15)
.br
.ns
.TP 10
.NOP \f\*[B-Font]precision\f[]
precision (log2 s)
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdelay\f[]
total roundtrip delay to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]rootdisp\f[]
total root dispersion to the primary reference clock
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
reference id or
.Lk decode.html#kiss "kiss code"
.br
.ns
.TP 10
.NOP \f\*[B-Font]reftime\f[]
reference time
.br
.ns
.TP 10
.NOP \f\*[B-Font]rec\f[]
last packet received time
.br
.ns
.TP 10
.NOP \f\*[B-Font]reach\f[]
reach register (octal)
.br
.ns
.TP 10
.NOP \f\*[B-Font]unreach\f[]
unreach counter
.br
.ns
.TP 10
.NOP \f\*[B-Font]hmode\f[]
host mode (1-6)
.br
.ns
.TP 10
.NOP \f\*[B-Font]pmode\f[]
peer mode (1-5)
.br
.ns
.TP 10
.NOP \f\*[B-Font]hpoll\f[]
host poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]ppoll\f[]
peer poll exponent (log2 s) (3-17)
.br
.ns
.TP 10
.NOP \f\*[B-Font]headway\f[]
headway (see
.Lk rate.html "Rate Management and the Kiss-o'-Death Packet" )
.br
.ns
.TP 10
.NOP \f\*[B-Font]flash\f[]
.Lk decode.html#flash "flash status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]keyid\f[]
symmetric key id
.br
.ns
.TP 10
.NOP \f\*[B-Font]offset\f[]
filter offset
.br
.ns
.TP 10
.NOP \f\*[B-Font]delay\f[]
filter delay
.br
.ns
.TP 10
.NOP \f\*[B-Font]dispersion\f[]
filter dispersion
.br
.ns
.TP 10
.NOP \f\*[B-Font]jitter\f[]
filter jitter
.br
.ns
.TP 10
.NOP \f\*[B-Font]bias\f[]
unicast/broadcast bias
.br
.ns
.TP 10
.NOP \f\*[B-Font]xleave\f[]
interleave delay (see
.Lk xleave.html "NTP Interleaved Modes" )
.PP
The
\f\*[B-Font]bias\f[]
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
\f\*[B-Font]xleave\f[]
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
.sp \n(Ppu
.ne 2
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
peer flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]host\f[]
Autokey server name
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
peer flags (see Autokey specification)
.br
.ns
.TP 10
.NOP \f\*[B-Font]signature\f[]
OpenSSL digest/signature scheme
.br
.ns
.TP 10
.NOP \f\*[B-Font]initsequence\f[]
initial key id
.br
.ns
.TP 10
.NOP \f\*[B-Font]initkey\f[]
initial key index
.br
.ns
.TP 10
.NOP \f\*[B-Font]timestamp\f[]
Autokey signature timestamp
.br
.ns
.TP 10
.NOP \f\*[B-Font]ident\f[]
Autokey group name for this association
.PP
.SS Clock Variables
The following clock variables appear in the
\f\*[B-Font]clocklist\f[]
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
.TP 10
.NOP Variable
Description
.br
.ns
.TP 10
.NOP \f\*[B-Font]associd\f[]
association id
.br
.ns
.TP 10
.NOP \f\*[B-Font]status\f[]
.Lk decode.html#clock "clock status word"
.br
.ns
.TP 10
.NOP \f\*[B-Font]device\f[]
device description
.br
.ns
.TP 10
.NOP \f\*[B-Font]timecode\f[]
ASCII time code string (specific to device)
.br
.ns
.TP 10
.NOP \f\*[B-Font]poll\f[]
poll messages sent
.br
.ns
.TP 10
.NOP \f\*[B-Font]noreply\f[]
no reply
.br
.ns
.TP 10
.NOP \f\*[B-Font]badformat\f[]
bad format
.br
.ns
.TP 10
.NOP \f\*[B-Font]baddata\f[]
bad date or time
.br
.ns
.TP 10
.NOP \f\*[B-Font]fudgetime1\f[]
fudge time 1
.br
.ns
.TP 10
.NOP \f\*[B-Font]fudgetime2\f[]
fudge time 2
.br
.ns
.TP 10
.NOP \f\*[B-Font]stratum\f[]
driver stratum
.br
.ns
.TP 10
.NOP \f\*[B-Font]refid\f[]
driver reference id
.br
.ns
.TP 10
.NOP \f\*[B-Font]flags\f[]
driver flags
.PP
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force resolution of following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force resolution of following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]cmd\f[], \f\*[B-Font]\-\-command\f[]=\f\*[I-Font]cmd\f[]
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-i\f[], \f\*[B-Font]\-\-interactive\f[]
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, peers.
.sp
Force \fBntpq\fP to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
numeric host addresses.
.sp
Output all host addresses in dotted-quad numeric format rather than
converting to the canonical host names.
.TP
.NOP \f\*[B-Font]\-\-old\-rv\f[]
Always output status line with readvar.
.sp
By default, \fBntpq\fP now suppresses the \fBassocid=...\fP
line that precedes the output of \fBreadvar\fP
(alias \fBrv\fP) when a single variable is requested, such as
\fBntpq \-c "rv 0 offset"\fP.
This option causes \fBntpq\fP to include both lines of output
for a single-variable \fBreadvar\fP.
Using an environment variable to
preset this option in a script will enable both older and
newer \fBntpq\fP to behave identically in this regard.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Print a list of the peers.
This option must not appear in combination with any of the following options:
interactive.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]keyword\f[], \f\*[B-Font]\-\-refid\f[]=\f\*[I-Font]keyword\f[]
Set default display type for S2+ refids.
This option takes a keyword as its argument. The argument sets an enumeration value that can
be tested by comparing them against the option value macro.
The available keywords are:
.in +4
.nf
.na
hash ipv4
.fi
or their numeric equivalent.
.in -4
.sp
The default
\f\*[I-Font]keyword\f[]
for this option is:
.ti +4
ipv4
.sp
Set the default display format for S2+ refids.
.TP
.NOP \f\*[B-Font]\-u\f[], \f\*[B-Font]\-\-unconnected\f[]
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.TP
.NOP \f\*[B-Font]\-w\f[], \f\*[B-Font]\-\-wide\f[]
Display the full 'remote' value.
.sp
Display the full value of the 'remote' value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPQ_<option-name>\fP or \fBNTPQ\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpq\fP
option definitions.
diff --git a/contrib/ntp/ntpq/ntpq.mdoc.in b/contrib/ntp/ntpq/ntpq.mdoc.in
index 26070bd9a46d..d5ace4c4fd43 100644
--- a/contrib/ntp/ntpq/ntpq.mdoc.in
+++ b/contrib/ntp/ntpq/ntpq.mdoc.in
@@ -1,1060 +1,1060 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPQ @NTPQ_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:04 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:10 AM by AutoGen 5.18.16
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpq
.Nd standard NTP query program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ host ...]
.Pp
.Sh DESCRIPTION
.Pp
The
.Nm
utility program is used to query NTP servers to monitor NTP operations
and performance, requesting
information about current state and/or changes in that state.
The program may be run either in interactive mode or controlled using
command line arguments.
Requests to read and write arbitrary
variables can be assembled, with raw and pretty\-printed output
options being available.
The
.Nm
utility can also obtain and print a
list of peers in a common format by sending multiple queries to the
server.
.Pp
If one or more request options is included on the command line
when
.Nm
is executed, each of the requests will be sent
to the NTP servers running on each of the hosts given as command
line arguments, or on localhost by default.
If no request options
are given,
.Nm
will attempt to read commands from the
standard input and execute these on the NTP server running on the
first host given on the command line, again defaulting to localhost
when no other host is specified.
The
.Nm
utility will prompt for
commands if the standard input is a terminal device.
.Pp
.Nm
uses NTP mode 6 packets to communicate with the
NTP server, and hence can be used to query any compatible server on
the network which permits it.
Note that since NTP is a UDP protocol
this communication will be somewhat unreliable, especially over
large distances in terms of network topology.
The
.Nm
utility makes
one attempt to retransmit requests, and will time requests out if
the remote host is not heard from within a suitable timeout
time.
.Pp
Note that in contexts where a host name is expected, a
.Fl 4
qualifier preceding the host name forces resolution to the IPv4
namespace, while a
.Fl 6
qualifier forces resolution to the IPv6 namespace.
For examples and usage, see the
.Dq NTP Debugging Techniques
page.
.Pp
Specifying a
command line option other than
.Fl i
or
.Fl n
will
cause the specified query (queries) to be sent to the indicated
host(s) immediately.
Otherwise,
.Nm
will attempt to read
interactive format commands from the standard input.
.Ss "Internal Commands"
.Pp
Interactive format commands consist of a keyword followed by zero
to four arguments.
Only enough characters of the full keyword to
uniquely identify the command need be typed.
.Pp
A
number of interactive format commands are executed entirely within
the
.Nm
utility itself and do not result in NTP
requests being sent to a server.
These are described following.
.Bl -tag -width "help [command]" -compact -offset indent
.It Ic ? Op Ar command
.It Ic help Op Ar command
A
.Ql \&?
by itself will print a list of all the commands
known to
.Nm .
A
.Ql \&?
followed by a command name will print function and usage
information about the command.
.It Ic addvars Ar name Ns Oo \&= Ns Ar value Oc Ns Op ,...
.It Ic rmvars Ar name Ns Op ,...
.It Ic clearvars
.It Ic showvars
The arguments to this command consist of a list of
items of the form
.Ar name Ns Op \&= Ns Ar value ,
where the
.No \&= Ns Ar value
is ignored, and can be omitted,
in requests to the server to read variables.
The
.Nm
utility maintains an internal list in which data to be included in
messages can be assembled, and displayed or set using the
.Ic readlist
and
.Ic writelist
commands described below.
The
.Ic addvars
command allows variables and their optional values to be added to
the list.
If more than one variable is to be added, the list should
be comma\-separated and not contain white space.
The
.Ic rmvars
command can be used to remove individual variables from the list,
while the
.Ic clearvars
command removes all variables from the
list.
The
.Ic showvars
command displays the current list of optional variables.
.It Ic authenticate Op Cm yes Ns | Ns Cm no
Normally
.Nm
does not authenticate requests unless
they are write requests.
The command
.Ic authenticate Cm yes
causes
.Nm
to send authentication with all requests it
makes.
Authenticated requests causes some servers to handle
requests slightly differently.
The command
.Ic authenticate
causes
.Nm
to display whether or not
it is currently authenticating requests.
.It Ic cooked
Causes output from query commands to be "cooked", so that
variables which are recognized by
.Nm
will have their
values reformatted for human consumption.
Variables which
.Nm
could not decode completely are
marked with a trailing
.Ql \&? .
.It Ic debug Op Cm more Ns | Ns Cm less Ns | Ns Cm off
With no argument, displays the current debug level.
Otherwise, the debugging level is changed as indicated.
.It Ic delay Op Ar milliseconds
Specify a time interval to be added to timestamps included in
requests which require authentication.
This is used to enable
(unreliable) server reconfiguration over long delay network paths
or between machines whose clocks are unsynchronized.
Actually the
server does not now require timestamps in authenticated requests,
so this command may be obsolete.
Without any arguments, displays the current delay.
.It Ic drefid Op Cm hash Ns | Ns Cm ipv4
Display refids as IPv4 or hash.
Without any arguments, displays whether refids are shown as IPv4
addresses or hashes.
.It Ic exit
Exit
.Nm .
.It Ic host Op Ar name
Set the host to which future queries will be sent.
The
.Ar name
may be either a host name or a numeric address.
Without any arguments, displays the current host.
.It Ic hostnames Op Cm yes Ns | Ns Cm no
If
.Cm yes
is specified, host names are printed in
information displays.
If
.Cm no
is specified, numeric
addresses are printed instead.
The default is
.Cm yes ,
unless
modified using the command line
.Fl n
switch.
Without any arguments, displays whether host names or numeric addresses
are shown.
.It Ic keyid Op Ar keyid
This command allows the specification of a key number to be
used to authenticate configuration requests.
This must correspond
to the
.Cm controlkey
key number the server has been configured to use for this
purpose.
Without any arguments, displays the current
.Ar keyid .
.It Ic keytype Op Ar digest
Specify the digest algorithm to use for authenticating requests, with default
.Cm MD5 .
If
.Nm
was built with OpenSSL support, and OpenSSL is installed,
.Ar digest
can be any message digest algorithm supported by OpenSSL.
If no argument is given, the current
.Ic keytype Ar digest
algorithm used is displayed.
.It Ic ntpversion Op Cm 1 Ns | Ns Cm 2 Ns | Ns Cm 3 Ns | Ns Cm 4
Sets the NTP version number which
.Nm
claims in
packets.
Defaults to 3, and note that mode 6 control messages (and
modes, for that matter) didn't exist in NTP version 1.
There appear
to be no servers left which demand version 1.
With no argument, displays the current NTP version that will be used
when communicating with servers.
.It Ic passwd
This command prompts you to type in a password (which will not
be echoed) which will be used to authenticate configuration
requests.
The password must correspond to the key configured for
use by the NTP server for this purpose if such requests are to be
successful.
.It Ic poll Oo Ar n Oc Op Cm verbose
Poll an NTP server in client mode
.Ar n
times.
Poll not implemented yet.
.It Ic quit
Exit
.Nm .
.It Ic raw
Causes all output from query commands is printed as received
from the remote server.
The only formating/interpretation done on
the data is to transform nonascii data into a printable (but barely
understandable) form.
.It Ic timeout Op Ar milliseconds
Specify a timeout period for responses to server queries.
The
default is about 5000 milliseconds.
Without any arguments, displays the current timeout period.
Note that since
.Nm
retries each query once after a timeout, the total waiting time for
a timeout will be twice the timeout value set.
.It Ic version
Display the version of the
.Nm
program.
.El
.Ss "Control Message Commands"
Association ids are used to identify system, peer and clock variables.
System variables are assigned an association id of zero and system name
space, while each association is assigned a nonzero association id and
peer namespace.
Most control commands send a single message to the server and expect a
single response message.
The exceptions are the
.Ic peers
command, which sends a series of messages,
and the
.Ic mreadlist
and
.Ic mreadvar
commands, which iterate over a range of associations.
.Bl -tag -width "something" -compact -offset indent
.It Ic apeers
Display a list of peers in the form:
.Dl [tally]remote refid assid st t when pool reach delay offset jitter
where the output is just like the
.Ic peers
command except that the
.Cm refid
is displayed in hex format and the association number is also displayed.
.It Ic associations
Display a list of mobilized associations in the form:
.Dl ind assid status conf reach auth condition last_event cnt
.Bl -column -offset indent ".Sy Variable" "see the select field of the peer status word"
.It Sy Variable Ta Sy Description
.It Cm ind Ta index on this list
.It Cm assid Ta association id
.It Cm status Ta peer status word
.It Cm conf Ta Cm yes : No persistent, Cm no : No ephemeral
.It Cm reach Ta Cm yes : No reachable, Cm no : No unreachable
.It Cm auth Ta Cm ok , Cm yes , Cm bad No and Cm none
.It Cm condition Ta selection status \&(see the Cm select No field of the peer status word\&)
.It Cm last_event Ta event report \&(see the Cm event No field of the peer status word\&)
.It Cm cnt Ta event count \&(see the Cm count No field of the peer status word\&)
.El
.It Ic authinfo
Display the authentication statistics counters:
time since reset, stored keys, free keys, key lookups, keys not found,
uncached keys, expired keys, encryptions, decryptions.
.It Ic clocklist Op Ar associd
.It Ic cl Op Ar associd
Display all clock variables in the variable list for those associations
supporting a reference clock.
.It Ic clockvar Oo Ar associd Oc Oo Ar name Ns Oo \&= Ns Ar value Oc Ns Oc Ns Op ,...
.It Ic cv Oo Ar associd Oc Oo Ar name Ns Oo \&= Ns Ar value Oc Ns Oc Ns Op ,...
Display a list of clock variables for those associations supporting a
reference clock.
.It Ic :config Ar "configuration command line"
Send the remainder of the command line, including whitespace, to the
server as a run\-time configuration command in the same format as a line
in the configuration file.
This command is experimental until further notice and clarification.
Authentication is of course required.
.It Ic config\-from\-file Ar filename
Send each line of
.Ar filename
to the server as run\-time configuration commands in the same format as
lines in the configuration file.
This command is experimental until further notice and clarification.
Authentication is required.
.It Ic ifstats
Display status and statistics counters for each local network interface address:
interface number, interface name and address or broadcast, drop, flag,
ttl, mc, received, sent, send failed, peers, uptime.
Authentication is required.
.It Ic iostats
Display network and reference clock I/O statistics:
time since reset, receive buffers, free receive buffers, used receive buffers,
low water refills, dropped packets, ignored packets, received packets,
packets sent, packet send failures, input wakeups, useful input wakeups.
.It Ic kerninfo
Display kernel loop and PPS statistics:
associd, status, pll offset, pll frequency, maximum error,
estimated error, kernel status, pll time constant, precision,
frequency tolerance, pps frequency, pps stability, pps jitter,
calibration interval, calibration cycles, jitter exceeded,
stability exceeded, calibration errors.
As with other ntpq output, times are in milliseconds; very small values
may be shown as exponentials.
The precision value displayed is in milliseconds as well, unlike the
precision system variable.
.It Ic lassociations
Perform the same function as the associations command, except display
mobilized and unmobilized associations, including all clients.
.It Ic lopeers Op Fl 4 Ns | Ns Fl 6
Display a list of all peers and clients showing
.Cm dstadr
(associated with the given IP version).
.It Ic lpassociations
Display the last obtained list of associations, including all clients.
.It Ic lpeers Op Fl 4 Ns | Ns Fl 6
Display a list of all peers and clients (associated with the given IP version).
.It Ic monstats
Display monitor facility status, statistics, and limits:
enabled, addresses, peak addresses, maximum addresses,
reclaim above count, reclaim older than, kilobytes, maximum kilobytes.
.It Ic mreadlist Ar associdlo Ar associdhi
.It Ic mrl Ar associdlo Ar associdhi
Perform the same function as the
.Ic readlist
command for a range of association ids.
.It Ic mreadvar Ar associdlo Ar associdhi Oo Ar name Oc Ns Op ,...
This range may be determined from the list displayed by any
command showing associations.
.It Ic mrv Ar associdlo Ar associdhi Oo Ar name Oc Ns Op ,...
Perform the same function as the
.Ic readvar
command for a range of association ids.
This range may be determined from the list displayed by any
command showing associations.
.It Xo Ic mrulist Oo Cm limited | Cm kod | Cm mincount Ns \&= Ns Ar count |
.Cm laddr Ns \&= Ns Ar localaddr | Cm sort Ns \&= Ns Oo \&\- Oc Ns Ar sortorder |
.Cm resany Ns \&= Ns Ar hexmask | Cm resall Ns \&= Ns Ar hexmask Oc
.Xc
Display traffic counts of the most recently seen source addresses
collected and maintained by the monitor facility.
With the exception of
.Cm sort Ns \&= Ns Oo \&\- Oc Ns Ar sortorder ,
the options filter the list returned by
.Xr ntpd 8 .
The
.Cm limited
and
.Cm kod
options return only entries representing client addresses from which the
last packet received triggered either discarding or a KoD response.
The
.Cm mincount Ns = Ns Ar count
option filters entries representing less than
.Ar count
packets.
The
.Cm laddr Ns = Ns Ar localaddr
option filters entries for packets received on any local address other than
.Ar localaddr .
.Cm resany Ns = Ns Ar hexmask
and
.Cm resall Ns = Ns Ar hexmask
filter entries containing none or less than all, respectively, of the bits in
.Ar hexmask ,
which must begin with
.Cm 0x .
The
.Ar sortorder
defaults to
.Cm lstint
and may be
.Cm addr ,
.Cm avgint ,
.Cm count ,
.Cm lstint ,
or any of those preceded by
.Ql \&\-
to reverse the sort order.
The output columns are:
.Bl -tag -width "something" -compact -offset indent
.It Column
Description
.It Ic lstint
Interval in seconds between the receipt of the most recent packet from
this address and the completion of the retrieval of the MRU list by
.Nm .
.It Ic avgint
Average interval in s between packets from this address.
.It Ic rstr
Restriction flags associated with this address.
Most are copied unchanged from the matching
.Ic restrict
command, however 0x400 (kod) and 0x20 (limited) flags are cleared unless
the last packet from this address triggered a rate control response.
.It Ic r
Rate control indicator, either
a period,
.Ic L
or
.Ic K
for no rate control response,
rate limiting by discarding, or rate limiting with a KoD response, respectively.
.It Ic m
Packet mode.
.It Ic v
Packet version number.
.It Ic count
Packets received from this address.
.It Ic rport
Source port of last packet from this address.
.It Ic remote address
host or DNS name, numeric address, or address followed by
claimed DNS name which could not be verified in parentheses.
.El
.It Ic opeers Op Fl 4 | Fl 6
Obtain and print the old\-style list of all peers and clients showing
.Cm dstadr
(associated with the given IP version),
rather than the
.Cm refid .
.It Ic passociations
Perform the same function as the
.Ic associations
command,
except that it uses previously stored data rather than making a new query.
.It Ic peers
Display a list of peers in the form:
.Dl [tally]remote refid st t when pool reach delay offset jitter
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm [tally]
single\-character code indicating current value of the
.Ic select
field of the
.Lk decode.html#peer "peer status word"
.It Cm remote
host name (or IP number) of peer.
The value displayed will be truncated to 15 characters unless the
.Nm
.Fl w
option is given, in which case the full value will be displayed
on the first line, and if too long,
the remaining data will be displayed on the next line.
.It Cm refid
source IP address or
.Lk decode.html#kiss "'kiss code"
.It Cm st
stratum: 0 for local reference clocks, 1 for servers with local
reference clocks, ..., 16 for unsynchronized server clocks
.It Cm t
.Ic u :
unicast or manycast client,
.Ic b :
broadcast or multicast client,
.Ic p :
pool source,
.Ic l :
local (reference clock),
.Ic s :
symmetric (peer),
.Ic A :
manycast server,
.Ic B :
broadcast server,
.Ic M :
multicast server
.It Cm when
time in seconds, minutes, hours, or days since the last packet
was received, or
.Ql \&\-
if a packet has never been received
.It Cm poll
poll interval (s)
.It Cm reach
reach shift register (octal)
.It Cm delay
roundtrip delay
.It Cm offset
offset of server relative to this host
.It Cm jitter
offset RMS error estimate.
.El
.It Ic pstats Ar associd
Display the statistics for the peer with the given
.Ar associd :
associd, status, remote host, local address, time last received,
time until next send, reachability change, packets sent,
packets received, bad authentication, bogus origin, duplicate,
bad dispersion, bad reference time, candidate order.
.It Ic readlist Op Ar associd
.It Ic rl Op Ar associd
Display all system or peer variables.
If the
.Ar associd
is omitted, it is assumed to be zero.
.It Ic readvar Op Ar associd Ar name Ns Oo Ns = Ns Ar value Oc Op , ...
.It Ic rv Op Ar associd Ar name Ns Oo Ns = Ns Ar value Oc Op , ...
Display the specified system or peer variables.
If
.Ar associd
is zero, the variables are from the
.Sx System Variables
name space, otherwise they are from the
.Sx Peer Variables
name space.
The
.Ar associd
is required, as the same name can occur in both spaces.
If no
.Ar name
is included, all operative variables in the name space are displayed.
In this case only, if the
.Ar associd
is omitted, it is assumed to be zero.
Multiple names are specified with comma separators and without whitespace.
Note that time values are represented in milliseconds
and frequency values in parts\-per\-million (PPM).
Some NTP timestamps are represented in the format
.Ar YYYY Ns Ar MM Ar DD Ar TTTT ,
where
.Ar YYYY
is the year,
.Ar MM
the month of year,
.Ar DD
the day of month and
.Ar TTTT
the time of day.
.It Ic reslist
Display the access control (restrict) list for
.Nm .
Authentication is required.
.It Ic saveconfig Ar filename
Save the current configuration,
including any runtime modifications made by
.Ic :config
or
.Ic config\-from\-file ,
to the NTP server host file
.Ar filename .
This command will be rejected by the server unless
.Lk miscopt.html#saveconfigdir "saveconfigdir"
appears in the
.Xr ntpd 8
configuration file.
.Ar filename
can use
.Xr date 1
format specifiers to substitute the current date and time, for
example,
.D1 Ic saveconfig Pa ntp\-%Y%m%d\-%H%M%S.conf .
The filename used is stored in system variable
.Cm savedconfig .
Authentication is required.
.It Ic sysinfo
Display system operational summary:
associd, status, system peer, system peer mode, leap indicator,
stratum, log2 precision, root delay, root dispersion,
reference id, reference time, system jitter, clock jitter,
clock wander, broadcast delay, symm. auth. delay.
.It Ic sysstats
Display system uptime and packet counts maintained in the
protocol module:
uptime, sysstats reset, packets received, current version,
older version, bad length or format, authentication failed,
declined, restricted, rate limited, KoD responses,
processed for time.
.It Ic timerstats
Display interval timer counters:
time since reset, timer overruns, calls to transmit.
.It Ic writelist Ar associd
Set all system or peer variables included in the variable list.
.It Ic writevar Ar associd Ar name Ns = Ns Ar value Op , ...
Set the specified variables in the variable list.
If the
.Ar associd
is zero, the variables are from the
.Sx System Variables
name space, otherwise they are from the
.Sx Peer Variables
name space.
The
.Ar associd
is required, as the same name can occur in both spaces.
Authentication is required.
.El
.Ss Status Words and Kiss Codes
The current state of the operating program is shown
in a set of status words
maintained by the system.
Status information is also available on a per\-association basis.
These words are displayed by the
.Ic readlist
and
.Ic associations
commands both in hexadecimal and in decoded short tip strings.
The codes, tips and short explanations are documented on the
.Lk decode.html "Event Messages and Status Words"
page.
The page also includes a list of system and peer messages,
the code for the latest of which is included in the status word.
.Pp
Information resulting from protocol machine state transitions
is displayed using an informal set of ASCII strings called
.Lk decode.html#kiss "kiss codes" .
The original purpose was for kiss\-o'\-death (KoD) packets
sent by the server to advise the client of an unusual condition.
They are now displayed, when appropriate,
in the reference identifier field in various billboards.
.Ss System Variables
The following system variables appear in the
.Ic readlist
billboard.
Not all variables are displayed in some configurations.
.Pp
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm status
.Lk decode.html#sys "system status word"
.It Cm version
NTP software version and build time
.It Cm processor
hardware platform and version
.It Cm system
operating system and version
.It Cm leap
leap warning indicator (0\-3)
.It Cm stratum
stratum (1\-15)
.It Cm precision
precision (log2 s)
.It Cm rootdelay
total roundtrip delay to the primary reference clock
.It Cm rootdisp
total dispersion to the primary reference clock
.It Cm refid
reference id or
.Lk decode.html#kiss "kiss code"
.It Cm reftime
reference time
.It Ic clock
date and time of day
.It Cm peer
system peer association id
.It Cm tc
time constant and poll exponent (log2 s) (3\-17)
.It Cm mintc
minimum time constant (log2 s) (3\-10)
.It Cm offset
combined offset of server relative to this host
.It Cm frequency
frequency drift (PPM) relative to hardware clock
.It Cm sys_jitter
combined system jitter
.It Cm clk_wander
clock frequency wander (PPM)
.It Cm clk_jitter
clock jitter
.It Cm tai
TAI\-UTC offset (s)
.It Cm leapsec
NTP seconds when the next leap second is/was inserted
.It Cm expire
NTP seconds when the NIST leapseconds file expires
.El
The jitter and wander statistics are exponentially\-weighted RMS averages.
The system jitter is defined in the NTPv4 specification;
the clock jitter statistic is computed by the clock discipline module.
.Pp
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional system variables are displayed,
including some or all of the following,
depending on the particular Autokey dance:
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm host
Autokey host name for this host
.It Cm ident
Autokey group name for this host
.It Cm flags
host flags (see Autokey specification)
.It Cm digest
OpenSSL message digest algorithm
.It Cm signature
OpenSSL digest/signature scheme
.It Cm update
NTP seconds at last signature update
.It Cm cert
certificate subject, issuer and certificate flags
.It Cm until
NTP seconds when the certificate expires
.El
.Ss Peer Variables
The following peer variables appear in the
.Ic readlist
billboard for each association.
Not all variables are displayed in some configurations.
.Pp
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm associd
association id
.It Cm status
.Lk decode.html#peer "peer status word"
.It Cm srcadr
source (remote) IP address
.It Cm srcport
source (remote) port
.It Cm dstadr
destination (local) IP address
.It Cm dstport
destination (local) port
.It Cm leap
leap indicator (0\-3)
.It Cm stratum
stratum (0\-15)
.It Cm precision
precision (log2 s)
.It Cm rootdelay
total roundtrip delay to the primary reference clock
.It Cm rootdisp
total root dispersion to the primary reference clock
.It Cm refid
reference id or
.Lk decode.html#kiss "kiss code"
.It Cm reftime
reference time
.It Cm rec
last packet received time
.It Cm reach
reach register (octal)
.It Cm unreach
unreach counter
.It Cm hmode
host mode (1\-6)
.It Cm pmode
peer mode (1\-5)
.It Cm hpoll
host poll exponent (log2 s) (3\-17)
.It Cm ppoll
peer poll exponent (log2 s) (3\-17)
.It Cm headway
headway (see
.Lk rate.html "Rate Management and the Kiss\-o'\-Death Packet" )
.It Cm flash
.Lk decode.html#flash "flash status word"
.It Cm keyid
symmetric key id
.It Cm offset
filter offset
.It Cm delay
filter delay
.It Cm dispersion
filter dispersion
.It Cm jitter
filter jitter
.It Cm bias
unicast/broadcast bias
.It Cm xleave
interleave delay (see
.Lk xleave.html "NTP Interleaved Modes" )
.El
The
.Cm bias
variable is calculated when the first broadcast packet is received
after the calibration volley.
It represents the offset of the broadcast subgraph relative to the
unicast subgraph.
The
.Cm xleave
variable appears only for the interleaved symmetric and interleaved modes.
It represents the internal queuing, buffering and transmission delays
for the preceding packet.
.Pp
When the NTPv4 daemon is compiled with the OpenSSL software library,
additional peer variables are displayed, including the following:
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm flags
peer flags (see Autokey specification)
.It Cm host
Autokey server name
.It Cm flags
peer flags (see Autokey specification)
.It Cm signature
OpenSSL digest/signature scheme
.It Cm initsequence
initial key id
.It Cm initkey
initial key index
.It Cm timestamp
Autokey signature timestamp
.It Cm ident
Autokey group name for this association
.El
.Ss Clock Variables
The following clock variables appear in the
.Ic clocklist
billboard for each association with a reference clock.
Not all variables are displayed in some configurations.
.Bl -tag -width "something" -compact -offset indent
.It Variable
Description
.It Cm associd
association id
.It Cm status
.Lk decode.html#clock "clock status word"
.It Cm device
device description
.It Cm timecode
ASCII time code string (specific to device)
.It Cm poll
poll messages sent
.It Cm noreply
no reply
.It Cm badformat
bad format
.It Cm baddata
bad date or time
.It Cm fudgetime1
fudge time 1
.It Cm fudgetime2
fudge time 2
.It Cm stratum
driver stratum
.It Cm refid
driver reference id
.It Cm flags
driver flags
.El
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force resolution of following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force resolution of following host names on the command line
to the IPv6 namespace.
.It Fl c Ar cmd , Fl \-command Ns = Ns Ar cmd
run a command and exit.
This option may appear an unlimited number of times.
.sp
The following argument is interpreted as an interactive format command
and is added to the list of commands to be executed on the specified
host(s).
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl i , Fl \-interactive
Force ntpq to operate in interactive mode.
This option must not appear in combination with any of the following options:
command, peers.
.sp
Force \fBntpq\fP to operate in interactive mode.
Prompts will be written to the standard output and
commands read from the standard input.
.It Fl n , Fl \-numeric
numeric host addresses.
.sp
Output all host addresses in dotted\-quad numeric format rather than
converting to the canonical host names.
.It Fl \-old\-rv
Always output status line with readvar.
.sp
By default, \fBntpq\fP now suppresses the \fBassocid=...\fP
line that precedes the output of \fBreadvar\fP
(alias \fBrv\fP) when a single variable is requested, such as
\fBntpq \-c "rv 0 offset"\fP.
This option causes \fBntpq\fP to include both lines of output
for a single\-variable \fBreadvar\fP.
Using an environment variable to
preset this option in a script will enable both older and
newer \fBntpq\fP to behave identically in this regard.
.It Fl p , Fl \-peers
Print a list of the peers.
This option must not appear in combination with any of the following options:
interactive.
.sp
Print a list of the peers known to the server as well as a summary
of their state. This is equivalent to the 'peers' interactive command.
.It Fl r Ar keyword , Fl \-refid Ns = Ns Ar keyword
Set default display type for S2+ refids.
This option takes a keyword as its argument. The argument sets an enumeration value that can
be tested by comparing them against the option value macro.
The available keywords are:
.in +4
.nf
.na
hash ipv4
.fi
or their numeric equivalent.
.in -4
.sp
The default
.Ar keyword
for this option is:
.ti +4
ipv4
.sp
Set the default display format for S2+ refids.
.It Fl u , Fl \-unconnected
Use unconnected UDP to communicate with ntpd (default on Windows).
.sp
Open an unconnected UDP association to ntpd (the default
on Windows).
.It Fl w , Fl \-wide
Display the full 'remote' value.
.sp
Display the full value of the 'remote' value. If this requires
more than 15 characters, display the full value, emit a newline,
and continue the data display properly indented on the next line.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPQ_<option\-name>\fP or \fBNTPQ\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpq\fP
option definitions.
diff --git a/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi b/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
index a01a9f2310d5..3f99a3f35f6f 100644
--- a/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
+++ b/contrib/ntp/ntpsnmpd/invoke-ntpsnmpd.texi
@@ -1,188 +1,188 @@
@node ntpsnmpd Invocation
@section Invoking ntpsnmpd
@pindex ntpsnmpd
@cindex NTP SNMP MIB agent
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsnmpd.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:02:43 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:38:20 AM by AutoGen 5.18.16
# From the definitions ntpsnmpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{ntpsnmpd}
is an SNMP MIB agent designed to interface with
@code{ntpd(1ntpdmdoc)}.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpsnmpd} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntpsnmpd usage:: ntpsnmpd help/usage (@option{--help})
* ntpsnmpd agentxsocket:: agentxsocket option
* ntpsnmpd config:: presetting/configuring ntpsnmpd
* ntpsnmpd exit status:: exit status
* ntpsnmpd Usage:: Usage
* ntpsnmpd Notes:: Notes
* ntpsnmpd Authors:: Authors
@end menu
@node ntpsnmpd usage
@subsection ntpsnmpd help/usage (@option{--help})
@cindex ntpsnmpd help
This is the automatically generated usage text for ntpsnmpd.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p16
Usage: ntpsnmpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
Flg Arg Option-Name Description
-n no nofork Do not fork
-p no syslog Log to syslog()
Str agentxsocket The socket address ntpsnmpd uses to connect to net-snmpd
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-> opt save-opts save the option state to a config file
-< Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTPSNMPD_*
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node ntpsnmpd agentxsocket
@subsection agentxsocket option
@cindex ntpsnmpd-agentxsocket
This is the ``the socket address ntpsnmpd uses to connect to net-snmpd'' option.
This option takes a string argument.
[<transport-specifier>:]<transport-address>
The default "agent X socket" is the Unix Domain socket
@file{unix:/var/agentx/master}.
Another common alternative is @file{tcp:localhost:705}.
@node ntpsnmpd config
@subsection presetting/configuring ntpsnmpd
Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{NTPSNMPD} and @code{NTPSNMPD_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{NTPSNMPD} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
@noindent
@code{libopts} will search in 2 places for configuration files:
@itemize @bullet
@item
$HOME
@item
$PWD
@end itemize
The environment variables @code{HOME}, and @code{PWD}
are expanded and replaced when @file{ntpsnmpd} runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named @file{.ntprc} is searched for
within that directory and processed.
Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
@example
[NTPSNMPD]
@end example
@noindent
or by
@example
<?program ntpsnmpd>
@end example
@noindent
Do not mix these styles within one configuration file.
Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
<sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions. You simply note that it is a
hierarchicly valued option. @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node ntpsnmpd exit status
@subsection ntpsnmpd exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error. Please report
it to autogen-users@@lists.sourceforge.net. Thank you.
@end table
@node ntpsnmpd Usage
@subsection ntpsnmpd Usage
@node ntpsnmpd Notes
@subsection ntpsnmpd Notes
@node ntpsnmpd Authors
@subsection ntpsnmpd Authors
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
index c95e2bbf29f2..f13108da18d2 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.c
@@ -1,913 +1,913 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 02:50:10 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:17 AM by AutoGen 5.18.16
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpsnmpd author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpsnmpd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "ntpsnmpd-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpsnmpd_opt_strs+0)
#define zLicenseDescrip (ntpsnmpd_opt_strs+345)
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ntpsnmpd options
*/
static char const ntpsnmpd_opt_strs[1614] =
-/* 0 */ "ntpsnmpd 4.2.8p16\n"
+/* 0 */ "ntpsnmpd 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 345 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1013 */ "Do not fork\0"
/* 1025 */ "NOFORK\0"
/* 1032 */ "nofork\0"
/* 1039 */ "Log to syslog()\0"
/* 1055 */ "SYSLOG\0"
/* 1062 */ "syslog\0"
/* 1069 */ "The socket address ntpsnmpd uses to connect to net-snmpd\0"
/* 1126 */ "AGENTXSOCKET\0"
/* 1139 */ "agentxsocket\0"
/* 1152 */ "unix:/var/agentx/master\0"
/* 1176 */ "display extended usage information and exit\0"
/* 1220 */ "help\0"
/* 1225 */ "extended usage information passed thru pager\0"
/* 1270 */ "more-help\0"
/* 1280 */ "output version information and exit\0"
/* 1316 */ "version\0"
/* 1324 */ "save the option state to a config file\0"
/* 1363 */ "save-opts\0"
/* 1373 */ "load options from a config file\0"
/* 1405 */ "LOAD_OPTS\0"
/* 1415 */ "no-load-opts\0"
/* 1428 */ "no\0"
/* 1431 */ "NTPSNMPD\0"
-/* 1440 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p16\n"
+/* 1440 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
/* 1544 */ "$HOME\0"
/* 1550 */ ".\0"
/* 1552 */ ".ntprc\0"
/* 1559 */ "https://bugs.ntp.org, bugs@ntp.org\0"
/* 1594 */ "\n\0"
-/* 1596 */ "ntpsnmpd 4.2.8p16";
+/* 1596 */ "ntpsnmpd 4.2.8p17";
/**
* nofork option description:
*/
/** Descriptive text for the nofork option */
#define NOFORK_DESC (ntpsnmpd_opt_strs+1013)
/** Upper-cased name for the nofork option */
#define NOFORK_NAME (ntpsnmpd_opt_strs+1025)
/** Name string for the nofork option */
#define NOFORK_name (ntpsnmpd_opt_strs+1032)
/** Compiled in flag settings for the nofork option */
#define NOFORK_FLAGS (OPTST_DISABLED)
/**
* syslog option description:
*/
/** Descriptive text for the syslog option */
#define SYSLOG_DESC (ntpsnmpd_opt_strs+1039)
/** Upper-cased name for the syslog option */
#define SYSLOG_NAME (ntpsnmpd_opt_strs+1055)
/** Name string for the syslog option */
#define SYSLOG_name (ntpsnmpd_opt_strs+1062)
/** Compiled in flag settings for the syslog option */
#define SYSLOG_FLAGS (OPTST_DISABLED)
/**
* agentXSocket option description:
*/
/** Descriptive text for the agentXSocket option */
#define AGENTXSOCKET_DESC (ntpsnmpd_opt_strs+1069)
/** Upper-cased name for the agentXSocket option */
#define AGENTXSOCKET_NAME (ntpsnmpd_opt_strs+1126)
/** Name string for the agentXSocket option */
#define AGENTXSOCKET_name (ntpsnmpd_opt_strs+1139)
/** The compiled in default value for the agentXSocket option argument */
#define AGENTXSOCKET_DFT_ARG (ntpsnmpd_opt_strs+1152)
/** Compiled in flag settings for the agentXSocket option */
#define AGENTXSOCKET_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ntpsnmpd_opt_strs+1176)
#define HELP_name (ntpsnmpd_opt_strs+1220)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ntpsnmpd_opt_strs+1225)
#define MORE_HELP_name (ntpsnmpd_opt_strs+1270)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (ntpsnmpd_opt_strs+1280)
#define VER_name (ntpsnmpd_opt_strs+1316)
#define SAVE_OPTS_DESC (ntpsnmpd_opt_strs+1324)
#define SAVE_OPTS_name (ntpsnmpd_opt_strs+1363)
#define LOAD_OPTS_DESC (ntpsnmpd_opt_strs+1373)
#define LOAD_OPTS_NAME (ntpsnmpd_opt_strs+1405)
#define NO_LOAD_OPTS_name (ntpsnmpd_opt_strs+1415)
#define LOAD_OPTS_pfx (ntpsnmpd_opt_strs+1428)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
*/
extern tOptProc
ntpOptionPrintVersion, optionBooleanVal, optionNestedVal,
optionNumericVal, optionPagedUsage, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ntpsnmpd Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ntpsnmpd program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_NOFORK,
/* equiv idx, value */ 0, VALUE_OPT_NOFORK,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NOFORK_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --nofork */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ NOFORK_DESC, NOFORK_NAME, NOFORK_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_SYSLOG,
/* equiv idx, value */ 1, VALUE_OPT_SYSLOG,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SYSLOG_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --syslog */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SYSLOG_DESC, SYSLOG_NAME, SYSLOG_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_AGENTXSOCKET,
/* equiv idx, value */ 2, VALUE_OPT_AGENTXSOCKET,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ AGENTXSOCKET_FLAGS, 0,
/* last opt argumnt */ { AGENTXSOCKET_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ AGENTXSOCKET_DESC, AGENTXSOCKET_NAME, AGENTXSOCKET_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionLoadOpt,
/* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
/* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpsnmpd. */
#define zPROGNAME (ntpsnmpd_opt_strs+1431)
/** Reference to the title line for ntpsnmpd usage. */
#define zUsageTitle (ntpsnmpd_opt_strs+1440)
/** ntpsnmpd configuration file name. */
#define zRcName (ntpsnmpd_opt_strs+1552)
/** Directories to search for ntpsnmpd config files. */
static char const * const apzHomeList[3] = {
ntpsnmpd_opt_strs+1544,
ntpsnmpd_opt_strs+1550,
NULL };
/** The ntpsnmpd program bug email address. */
#define zBugsAddr (ntpsnmpd_opt_strs+1559)
/** Clarification/explanation of what ntpsnmpd does. */
#define zExplain (ntpsnmpd_opt_strs+1594)
/** Extra detail explaining what ntpsnmpd does. */
#define zDetail (NULL)
/** The full version string for ntpsnmpd. */
#define zFullVersion (ntpsnmpd_opt_strs+1596)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define ntpsnmpd_full_usage (NULL)
#define ntpsnmpd_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = NTPSNMPD_EXIT_SUCCESS;
optionUsage(&ntpsnmpdOptions, ex_code);
/* NOTREACHED */
exit(NTPSNMPD_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ntpsnmpd.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ntpsnmpd
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ntpsnmpd_packager_info NULL
#else
/** Packager information for ntpsnmpd. */
static char const ntpsnmpd_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ntpsnmpd bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ntpsnmpd. The one structure that
* binds them all.
*/
tOptions ntpsnmpdOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_ENVIRON
+ OPTPROC_NO_ARGS
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
INDEX_OPT_SAVE_OPTS, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
8 /* full option count */, 3 /* user option count */,
ntpsnmpd_full_usage, ntpsnmpd_short_usage,
NULL, NULL,
PKGDATADIR, ntpsnmpd_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ntpsnmpd program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(NTPSNMPD_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the ntpsnmpdOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ntpsnmpdOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the ntpsnmpdOptions structure noted in the
comments below. The literal text is defined in ntpsnmpd_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ntpsnmpd_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via ntpsnmpdOptions.pzCopyright */
- puts(_("ntpsnmpd 4.2.8p16\n\
+ puts(_("ntpsnmpd 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via ntpsnmpdOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("Do not fork"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("Log to syslog()"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("The socket address ntpsnmpd uses to connect to net-snmpd"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("save the option state to a config file"));
/* referenced via ntpsnmpdOptions.pOptDesc->pzText */
puts(_("load options from a config file"));
/* referenced via ntpsnmpdOptions.pzUsageTitle */
- puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p16\n\
+ puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
/* referenced via ntpsnmpdOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpsnmpdOptions.pzFullVersion */
- puts(_("ntpsnmpd 4.2.8p16"));
+ puts(_("ntpsnmpd 4.2.8p17"));
/* referenced via ntpsnmpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ntpsnmpdOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* ntpsnmpd-opts.c ends here */
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
index 360948a3be66..d5239d2e3050 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd-opts.h
@@ -1,252 +1,252 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 02:50:10 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:16 AM by AutoGen 5.18.16
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntpsnmpd author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntpsnmpd program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ntpsnmpd program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_NTPSNMPD_OPTS_H_GUARD
#define AUTOOPTS_NTPSNMPD_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for ntpsnmpd
*/
typedef enum {
INDEX_OPT_NOFORK = 0,
INDEX_OPT_SYSLOG = 1,
INDEX_OPT_AGENTXSOCKET = 2,
INDEX_OPT_VERSION = 3,
INDEX_OPT_HELP = 4,
INDEX_OPT_MORE_HELP = 5,
INDEX_OPT_SAVE_OPTS = 6,
INDEX_OPT_LOAD_OPTS = 7
} teOptIndex;
/** count of all options for ntpsnmpd */
#define OPTION_CT 8
/** ntpsnmpd version */
-#define NTPSNMPD_VERSION "4.2.8p16"
+#define NTPSNMPD_VERSION "4.2.8p17"
/** Full ntpsnmpd version text */
-#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p16"
+#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(NOFORK)
*/
#define DESC(n) (ntpsnmpdOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ntpsnmpd exit codes
*/
typedef enum {
NTPSNMPD_EXIT_SUCCESS = 0,
NTPSNMPD_EXIT_FAILURE = 1,
NTPSNMPD_EXIT_USAGE_ERROR = 64,
NTPSNMPD_EXIT_NO_CONFIG_INPUT = 66,
NTPSNMPD_EXIT_LIBOPTS_FAILURE = 70
} ntpsnmpd_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef NOFORK
# warning undefining NOFORK due to option name conflict
# undef NOFORK
# endif
# ifdef SYSLOG
# warning undefining SYSLOG due to option name conflict
# undef SYSLOG
# endif
# ifdef AGENTXSOCKET
# warning undefining AGENTXSOCKET due to option name conflict
# undef AGENTXSOCKET
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef NOFORK
# undef SYSLOG
# undef AGENTXSOCKET
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_NOFORK 'n'
#define VALUE_OPT_SYSLOG 'p'
#define VALUE_OPT_AGENTXSOCKET 0x1001
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1002
/** option flag (value) for save-opts-value option */
#define VALUE_OPT_SAVE_OPTS '>'
/** option flag (value) for load-opts-value option */
#define VALUE_OPT_LOAD_OPTS '<'
#define SET_OPT_SAVE_OPTS(a) STMTS( \
DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ntpsnmpdOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ntpsnmpdOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ntpsnmpdOptions.curOptIdx = (n); \
ntpsnmpdOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ntpsnmpdOptions.pUsageProc)(&ntpsnmpdOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ntpsnmpd option descriptor.
*/
extern tOptions ntpsnmpdOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(ntpsnmpdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ntpsnmpdOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ntpsnmpdOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ntpsnmpdOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_NTPSNMPD_OPTS_H_GUARD */
/* ntpsnmpd-opts.h ends here */
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
index 47d048b7967e..29f12c6c913d 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
@@ -1,203 +1,203 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd 1ntpsnmpdman "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpsnmpd 1ntpsnmpdman "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:16:36 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:21 AM by AutoGen 5.18.16
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpsnmpd\fP
\- NTP SNMP MIB agent
.SH SYNOPSIS
\f\*[B-Font]ntpsnmpd\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpsnmpd\fP
is an SNMP MIB agent designed to interface with
\fCntpd\f[]\fR(1ntpdmdoc)\f[].
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-nofork\f[]
Do not fork.
.sp
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-syslog\f[]
Log to syslog().
.sp
.TP
.NOP \f\*[B-Font]\-\-agentxsocket\f[]=\f\*[I-Font]string\f[]
The socket address ntpsnmpd uses to connect to net-snmpd.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
unix:/var/agentx/master
.sp
[<transport-specifier>:]<transport-address>
The default "agent X socket" is the Unix Domain socket
\fIunix:/var/agentx/master\fP.
Another common alternative is \fItcp:localhost:705\fP.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPSNMPD_<option-name>\fP or \fBNTPSNMPD\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
\f\*[B-Font]ntpsnmpd\fP
currently uses a private MIB OID,
\[oq]enterprises.5597\[cq],
which is the Meinberg top level OEM OID, and
\[oq]99\[cq]
is the temporary working space for this project.
The final OID has to be registered with IANA
and this is done by the RFC Editor
when the NTPv4 MIB RFC is standardized.
.sp \n(Ppu
.ne 2
If you have
\fCsnmpwalk\f[]\fR(1)\f[]
installed you can run
.Dl % snmpwalk \-v2c \-c public localhost enterprises.5597.99
to see a list of all currently supported NTP MIB objects
and their current values.
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Heiko Gerstung"
.br
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
The following objects are currently supported:
.sp \n(Ppu
.ne 2
.TP 29
.NOP \f[C]ntpEntSoftwareName\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVersion\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVersionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVendor\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSystemType\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeResolution\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeResolutionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimePrecision\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimePrecisionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeDistance\f[]
please fill me in...
.PP
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntpsnmpd\fP
option definitions.
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
index 33df8211c178..be353c7468ce 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
@@ -1,144 +1,144 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPSNMPD 1ntpsnmpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:11 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:18 AM by AutoGen 5.18.16
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpsnmpd
.Nd NTP SNMP MIB agent
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
is an SNMP MIB agent designed to interface with
.Xr ntpd 1ntpdmdoc .
.Sh "OPTIONS"
.Bl -tag
.It Fl n , Fl \-nofork
Do not fork.
.sp
.It Fl p , Fl \-syslog
Log to syslog().
.sp
.It Fl \-agentxsocket Ns = Ns Ar string
The socket address ntpsnmpd uses to connect to net\-snmpd.
The default
.Ar string
for this option is:
.ti +4
unix:/var/agentx/master
.sp
[<transport\-specifier>:]<transport\-address>
The default "agent X socket" is the Unix Domain socket
\fIunix:/var/agentx/master\fP.
Another common alternative is \fItcp:localhost:705\fP.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPSNMPD_<option\-name>\fP or \fBNTPSNMPD\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Nm
currently uses a private MIB OID,
.Ql enterprises.5597 ,
which is the Meinberg top level OEM OID, and
.Ql 99
is the temporary working space for this project.
The final OID has to be registered with IANA
and this is done by the RFC Editor
when the NTPv4 MIB RFC is standardized.
.Pp
If you have
.Xr snmpwalk 1
installed you can run
.Dl % snmpwalk \-v2c \-c public localhost enterprises.5597.99
to see a list of all currently supported NTP MIB objects
and their current values.
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Heiko Gerstung"
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
The following objects are currently supported:
.Pp
.Bl -tag -width ".Li ntpEntSoftwareVersionVal" -compact -offset indent
.It Li ntpEntSoftwareName
please fill me in...
.It Li ntpEntSoftwareVersion
please fill me in...
.It Li ntpEntSoftwareVersionVal
please fill me in...
.It Li ntpEntSoftwareVendor
please fill me in...
.It Li ntpEntSystemType
please fill me in...
.It Li ntpEntTimeResolution
please fill me in...
.It Li ntpEntTimeResolutionVal
please fill me in...
.It Li ntpEntTimePrecision
please fill me in...
.It Li ntpEntTimePrecisionVal
please fill me in...
.It Li ntpEntTimeDistance
please fill me in...
.El
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntpsnmpd\fP
option definitions.
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.html b/contrib/ntp/ntpsnmpd/ntpsnmpd.html
index 141d1e249e81..e31de98c7b90 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd.html
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.html
@@ -1,101 +1,101 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ntpsnmpd: Network Time Protocol SNMP Daemon User&rsquo;s Manual</title>
<meta name="description" content="ntpsnmpd: Network Time Protocol SNMP Daemon User&rsquo;s Manual">
<meta name="keywords" content="ntpsnmpd: Network Time Protocol SNMP Daemon User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">ntpsnmpd: Network Time Protocol SNMP Daemon User&rsquo;s Manual</h1>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#ntpsnmpd-Description" accesskey="n" rel="next">ntpsnmpd Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="ntpsnmpd_003a-Network-Time-Protocol-Query-User-Manual"></span><h1 class="top">ntpsnmpd: Network Time Protocol Query User Manual</h1>
<p>The <code>ntpsnmpd</code> utility program is used to monitor NTP daemon <code>ntpd</code>
operations and determine performance. It uses the standard NTP mode 6 control
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntpsnmpd</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntpsnmpd</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpsnmpd-Description" accesskey="1">ntpsnmpd Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; ntpsnmpd Invocation</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntpsnmpd
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="3">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
</table>
<hr>
<span id="ntpsnmpd-Description"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>The <code>ntpsnmpd</code> utility program provides an SNMP MIB agent for <code>ntpd</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="1">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="Usage"></span><div class="header">
<p>
Previous: <a href="#ntpsnmpd-Description" accesskey="p" rel="prev">ntpsnmpd Description</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Usage-1"></span><h3 class="section">1.1 Usage</h3>
<p>(what should we say here?)
</p><hr>
</body>
</html>
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in b/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
index 06bfdbb3dd48..7080d07b3310 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.man.in
@@ -1,203 +1,203 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd @NTPSNMPD_MS@ "31 May 2023" "4.2.8p16" "User Commands"
+.TH ntpsnmpd @NTPSNMPD_MS@ "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:16:36 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:21 AM by AutoGen 5.18.16
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpsnmpd\fP
\- NTP SNMP MIB agent
.SH SYNOPSIS
\f\*[B-Font]ntpsnmpd\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpsnmpd\fP
is an SNMP MIB agent designed to interface with
\fCntpd\f[]\fR(@NTPD_MS@)\f[].
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-nofork\f[]
Do not fork.
.sp
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-syslog\f[]
Log to syslog().
.sp
.TP
.NOP \f\*[B-Font]\-\-agentxsocket\f[]=\f\*[I-Font]string\f[]
The socket address ntpsnmpd uses to connect to net-snmpd.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
unix:/var/agentx/master
.sp
[<transport-specifier>:]<transport-address>
The default "agent X socket" is the Unix Domain socket
\fIunix:/var/agentx/master\fP.
Another common alternative is \fItcp:localhost:705\fP.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPSNMPD_<option-name>\fP or \fBNTPSNMPD\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
\f\*[B-Font]ntpsnmpd\fP
currently uses a private MIB OID,
\[oq]enterprises.5597\[cq],
which is the Meinberg top level OEM OID, and
\[oq]99\[cq]
is the temporary working space for this project.
The final OID has to be registered with IANA
and this is done by the RFC Editor
when the NTPv4 MIB RFC is standardized.
.sp \n(Ppu
.ne 2
If you have
\fCsnmpwalk\f[]\fR(1)\f[]
installed you can run
.Dl % snmpwalk \-v2c \-c public localhost enterprises.5597.99
to see a list of all currently supported NTP MIB objects
and their current values.
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Heiko Gerstung"
.br
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
The following objects are currently supported:
.sp \n(Ppu
.ne 2
.TP 29
.NOP \f[C]ntpEntSoftwareName\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVersion\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVersionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSoftwareVendor\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntSystemType\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeResolution\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeResolutionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimePrecision\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimePrecisionVal\f[]
please fill me in...
.br
.ns
.TP 29
.NOP \f[C]ntpEntTimeDistance\f[]
please fill me in...
.PP
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntpsnmpd\fP
option definitions.
diff --git a/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in b/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
index 242092f566e7..b0f89d34b309 100644
--- a/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
+++ b/contrib/ntp/ntpsnmpd/ntpsnmpd.mdoc.in
@@ -1,144 +1,144 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPSNMPD @NTPSNMPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:50:11 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:18 AM by AutoGen 5.18.16
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpsnmpd
.Nd NTP SNMP MIB agent
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
is an SNMP MIB agent designed to interface with
.Xr ntpd @NTPD_MS@ .
.Sh "OPTIONS"
.Bl -tag
.It Fl n , Fl \-nofork
Do not fork.
.sp
.It Fl p , Fl \-syslog
Log to syslog().
.sp
.It Fl \-agentxsocket Ns = Ns Ar string
The socket address ntpsnmpd uses to connect to net\-snmpd.
The default
.Ar string
for this option is:
.ti +4
unix:/var/agentx/master
.sp
[<transport\-specifier>:]<transport\-address>
The default "agent X socket" is the Unix Domain socket
\fIunix:/var/agentx/master\fP.
Another common alternative is \fItcp:localhost:705\fP.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTPSNMPD_<option\-name>\fP or \fBNTPSNMPD\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Nm
currently uses a private MIB OID,
.Ql enterprises.5597 ,
which is the Meinberg top level OEM OID, and
.Ql 99
is the temporary working space for this project.
The final OID has to be registered with IANA
and this is done by the RFC Editor
when the NTPv4 MIB RFC is standardized.
.Pp
If you have
.Xr snmpwalk 1
installed you can run
.Dl % snmpwalk \-v2c \-c public localhost enterprises.5597.99
to see a list of all currently supported NTP MIB objects
and their current values.
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Heiko Gerstung"
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
The following objects are currently supported:
.Pp
.Bl -tag -width ".Li ntpEntSoftwareVersionVal" -compact -offset indent
.It Li ntpEntSoftwareName
please fill me in...
.It Li ntpEntSoftwareVersion
please fill me in...
.It Li ntpEntSoftwareVersionVal
please fill me in...
.It Li ntpEntSoftwareVendor
please fill me in...
.It Li ntpEntSystemType
please fill me in...
.It Li ntpEntTimeResolution
please fill me in...
.It Li ntpEntTimeResolutionVal
please fill me in...
.It Li ntpEntTimePrecision
please fill me in...
.It Li ntpEntTimePrecisionVal
please fill me in...
.It Li ntpEntTimeDistance
please fill me in...
.El
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntpsnmpd\fP
option definitions.
diff --git a/contrib/ntp/packageinfo.sh b/contrib/ntp/packageinfo.sh
index c07441837e24..0ee08b67086d 100644
--- a/contrib/ntp/packageinfo.sh
+++ b/contrib/ntp/packageinfo.sh
@@ -1,107 +1,107 @@
#
# packageinfo.sh - set shell variables with version components
#
# This file is sourced by other scripts and does not need execute
# permission or the #! shell selector.
#
# Most changes to this file are fully or semi-automated using the
# UpdatePoint script on the ntp.org tarball build machine. Changes
# required by the typical ntp.org release sequences are below.
#
## DEV:
#
# To bump the -dev point (p) number, UpdatePoint needs no changes here.
#
# To start a -RC cycle in -dev leading to the next -stable release,
# set prerelease=rc.
#
# To move from dev -RC to new -stable and -dev major/minor version, set
# minor and/or major to the new version, repotype to match the new
# minor version, empty prerelease, and set point=NEW. UpdatePoint
# will empty point and rcpoint, and set betapoint=0.
#
## STABLE:
#
# To start a -stable beta cycle, which normally occurs before a -stable
# -RC1 during the runup to a -stable point release, UpdatePoint needs
# no changes here. Both betapoint and point will be incremented, and
# prerelease will be set to beta.
#
# To move on from -stable beta to RC set prerelease=rc.
#
# To fall back from -stable RC to beta set prerelease=beta.
#
# To skip over -stable beta1 directly to -RC1, set prerelease=rc.
#
# To skip all -stable prereleases and move from one primary or point
# release directly to the next point release, set rcpoint=GO.
#
##
#
# To see what UpdatePoint will do without modifying packageinfo.sh as it
# does by default, use the -t/--test option before the repo type:
#
# shell# scripts/build/UpdatePoint -t stable
#
# repotype must be stable or dev
repotype=stable
# post-4.2.8:
# version=Major.Minor
# 4.2.8 and before:
# version=Protocol.Major.Minor
# odd minor numbers are for -dev, even minor numbers are for -stable
# UpdatePoint will fail if repotype is inconsistent with minor.
proto=4
major=2
minor=8
case "${proto}.${major}" in
4.[012])
version=${proto}.${major}.${minor}
;;
*) version=${major}.${minor}
;;
esac
# Special. Normally unused. A suffix.
#special=ag
special=
# prerelease can be empty, 'beta', or 'rc'.
prerelease=
# ChangeLog starting tag (see also CommitLog-4.1.0)
CLTAG=NTP_4_2_0
### post-4.2.8:
### Point number, after "major.minor.", normally modified by script.
### 4.2.8 and before:
### Point number, after "p", normally modified by script.
# 3 cases:
# - Numeric values increment
# - empty 'increments' to 1
# - NEW 'increments' to empty
-point=16
+point=17
### betapoint is normally modified by script.
# ntp-stable Beta number (betapoint)
# Should be zeroed at release, and left at zero until first beta.
# The first beta is -beta1.
# betapoint is always zero in ntp-dev.
betapoint=
### rcpoint is normally modified by script except for GO.
# RC number (rcpoint)
# for ntp-dev, always empty as RC numbers are not used, nor is GO.
# For ntp-stable:
# if prerelease is 'rc':
# - Numeric values increment
# - GO triggers a release
# - - rcpoint is emptied
# - - betapoint is set to 0
# - - prerelease is emptied
# else (not in RC)
# - rcpoint is empty and unused (for now).
rcpoint=
diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
index fed967e5137d..e1d2216c31d8 100644
--- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
+++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
@@ -1,108 +1,108 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:21 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:10 AM by AutoGen 5.18.16
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]calc_tickadj\fP
\- Calculates optimal value for tick given ntp drift file.
.SH SYNOPSIS
\f\*[B-Font]calc_tickadj\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The \fBcalc_tickadj\fP script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
.sp
The example output of
.br
.in +4
.nf
$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
.in -4
.fi
.sp
means the following. If tick on that box is 10,000, by making the value 9999
we'll shift the box from its current drift of \-23.159 to a drift of 81.699, and
in doing so we'll speed the clock up a little every second instead of slowing
the clock down a little.
.sp
If 'tick' on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
.sp
\fBcalc_tickadj\fP tries to determine the the tick value by using
\fBtickadj\fP program from ntp package. If this doesn't work you can specify
current tick manually on command line.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-d\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-drift\-file\f[]=\f\*[I-Font]string\f[]
Ntp drift file to use.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/etc/ntp/drift
.sp
Use the specified drift file for calculations
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-tick\f[]=\f\*[I-Font]number\f[]
Tick value of this host.
This option takes an integer number as its argument.
.sp
The current tick which to adjustment will be calculated
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBcalc_tickadj\fP
option definitions.
diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
index ce5185e0daf3..71507c329099 100644
--- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
+++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
@@ -1,84 +1,84 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:14:57 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:12 AM by AutoGen 5.18.16
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm calc_tickadj
.Nd Calculates "optimal" value for tick given ntp drift file.
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
The \fBcalc_tickadj\fP script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
.sp
The example output of
.Bd -literal -offset indent
$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
.Ed
.sp
means the following. If tick on that box is 10,000, by making the value 9999
we'll shift the box from its current drift of \-23.159 to a drift of 81.699, and
in doing so we'll speed the clock up a little every second instead of slowing
the clock down a little.
.sp
If 'tick' on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
.sp
\fBcalc_tickadj\fP tries to determine the the tick value by using
\fBtickadj\fP program from ntp package. If this doesn't work you can specify
current tick manually on command line.
.Sh "OPTIONS"
.Bl -tag
.It Fl d Ar string , Fl \-drift\-file Ns = Ns Ar string
Ntp drift file to use.
The default
.Ar string
for this option is:
.ti +4
/etc/ntp/drift
.sp
Use the specified drift file for calculations
.It Fl t Ar number , Fl \-tick Ns = Ns Ar number
Tick value of this host.
This option takes an integer number as its argument.
.sp
The current tick which to adjustment will be calculated
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBcalc_tickadj\fP
option definitions.
diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
index 15fb970e08b1..fb583099b5d8 100644
--- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
+++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.html
@@ -1,201 +1,201 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>calc_tickadj User&rsquo;s Manual</title>
<meta name="description" content="calc_tickadj User&rsquo;s Manual">
<meta name="keywords" content="calc_tickadj User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">calc_tickadj User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="calc_005ftickadj-User_0027s-Manual"></span><h1 class="top">calc_tickadj User&rsquo;s Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>calc_tickadj</code> program.
-This document applies to version 4.2.8p16 of <code>calc_tickadj</code>.
+This document applies to version 4.2.8p17 of <code>calc_tickadj</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Invoking-calc_005ftickadj" href="#toc-Invoking-calc_005ftickadj">1 Invoking calc_tickadj</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; calc_tickadj Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-Invocation" accesskey="2">calc_tickadj Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking calc_tickadj
</td></tr>
</table>
<hr>
<span id="calc_005ftickadj-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-calc_005ftickadj"></span><h2 class="chapter">1 Invoking calc_tickadj</h2>
<span id="index-calc_005ftickadj"></span>
<span id="index-Calculates-_0022optimal_0022-value-for-tick-given-ntp-drift-file_002e"></span>
<p>The <code>calc_tickadj</code> script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
</p>
<p>The example output of
</p><div class="example">
<pre class="example">$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
</pre></div>
<p>means the following. If tick on that box is 10,000, by making the value 9999
we&rsquo;ll shift the box from its current drift of -23.159 to a drift of 81.699, and
in doing so we&rsquo;ll speed the clock up a little every second instead of slowing
the clock down a little.
</p>
<p>If &rsquo;tick&rsquo; on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
</p>
<p><code>calc_tickadj</code> tries to determine the the tick value by using
<code>tickadj</code> program from ntp package. If this doesn&rsquo;t work you can specify
current tick manually on command line.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>calc_tickadj</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-usage" accesskey="1">calc_tickadj usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">calc_tickadj help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-drift_002dfile" accesskey="2">calc_tickadj drift-file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">drift-file option (-d)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-tick" accesskey="3">calc_tickadj tick</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">tick option (-t)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-exit-status" accesskey="4">calc_tickadj exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="calc_005ftickadj-usage"></span><div class="header">
<p>
Next: <a href="#calc_005ftickadj-drift_002dfile" accesskey="n" rel="next">calc_tickadj drift-file</a>, Up: <a href="#calc_005ftickadj-Invocation" accesskey="u" rel="up">calc_tickadj Invocation</a> &nbsp; </p>
</div>
<span id="calc_005ftickadj-help_002fusage-_0028_002d_002dhelp_0029"></span><h3 class="section">1.1 calc_tickadj help/usage (<samp>--help</samp>)</h3>
<span id="index-calc_005ftickadj-help"></span>
<p>This is the automatically generated usage text for calc_tickadj.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
<pre class="example">calc_tickadj - Calculates &quot;optimal&quot; value for tick given ntp drift file. - Ver. 4.2.8p15
USAGE: calc_tickadj [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
-d, --drift-file=str Ntp drift file to use
-t, --tick=num Tick value of this host
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-drift_002dfile" accesskey="1">drift-file option (-d)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-tick" accesskey="2">tick option (-t)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#calc_005ftickadj-exit-status" accesskey="3">calc_tickadj exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="calc_005ftickadj-drift_002dfile"></span><div class="header">
<p>
Next: <a href="#calc_005ftickadj-tick" accesskey="n" rel="next">calc_tickadj tick</a>, Previous: <a href="#calc_005ftickadj-usage" accesskey="p" rel="prev">calc_tickadj usage</a>, Up: <a href="#calc_005ftickadj-usage" accesskey="u" rel="up">calc_tickadj usage</a> &nbsp; </p>
</div>
<span id="drift_002dfile-option-_0028_002dd_0029"></span><h4 class="subsection">1.1.1 drift-file option (-d)</h4>
<span id="index-calc_005ftickadj_002ddrift_002dfile"></span>
<p>This is the &ldquo;ntp drift file to use&rdquo; option.
This option takes a string argument.
Use the specified drift file for calculations
</p><hr>
<span id="calc_005ftickadj-tick"></span><div class="header">
<p>
Next: <a href="#calc_005ftickadj-exit-status" accesskey="n" rel="next">calc_tickadj exit status</a>, Previous: <a href="#calc_005ftickadj-drift_002dfile" accesskey="p" rel="prev">calc_tickadj drift-file</a>, Up: <a href="#calc_005ftickadj-usage" accesskey="u" rel="up">calc_tickadj usage</a> &nbsp; </p>
</div>
<span id="tick-option-_0028_002dt_0029"></span><h4 class="subsection">1.1.2 tick option (-t)</h4>
<span id="index-calc_005ftickadj_002dtick"></span>
<p>This is the &ldquo;tick value of this host&rdquo; option.
This option takes a number argument.
The current tick which to adjustment will be calculated
</p><hr>
<span id="calc_005ftickadj-exit-status"></span><div class="header">
<p>
Previous: <a href="#calc_005ftickadj-tick" accesskey="p" rel="prev">calc_tickadj tick</a>, Up: <a href="#calc_005ftickadj-usage" accesskey="u" rel="up">calc_tickadj usage</a> &nbsp; </p>
</div>
<span id="calc_005ftickadj-exit-status-1"></span><h4 class="subsection">1.1.3 calc_tickadj exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
index fed967e5137d..e1d2216c31d8 100644
--- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
+++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.man.in
@@ -1,108 +1,108 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:21 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:10 AM by AutoGen 5.18.16
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]calc_tickadj\fP
\- Calculates optimal value for tick given ntp drift file.
.SH SYNOPSIS
\f\*[B-Font]calc_tickadj\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
The \fBcalc_tickadj\fP script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
.sp
The example output of
.br
.in +4
.nf
$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
.in -4
.fi
.sp
means the following. If tick on that box is 10,000, by making the value 9999
we'll shift the box from its current drift of \-23.159 to a drift of 81.699, and
in doing so we'll speed the clock up a little every second instead of slowing
the clock down a little.
.sp
If 'tick' on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
.sp
\fBcalc_tickadj\fP tries to determine the the tick value by using
\fBtickadj\fP program from ntp package. If this doesn't work you can specify
current tick manually on command line.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-d\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-drift\-file\f[]=\f\*[I-Font]string\f[]
Ntp drift file to use.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/etc/ntp/drift
.sp
Use the specified drift file for calculations
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-tick\f[]=\f\*[I-Font]number\f[]
Tick value of this host.
This option takes an integer number as its argument.
.sp
The current tick which to adjustment will be calculated
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBcalc_tickadj\fP
option definitions.
diff --git a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
index ce5185e0daf3..71507c329099 100644
--- a/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
+++ b/contrib/ntp/scripts/calc_tickadj/calc_tickadj.mdoc.in
@@ -1,84 +1,84 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:14:57 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:12 AM by AutoGen 5.18.16
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm calc_tickadj
.Nd Calculates "optimal" value for tick given ntp drift file.
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
The \fBcalc_tickadj\fP script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
.sp
The example output of
.Bd -literal -offset indent
$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
.Ed
.sp
means the following. If tick on that box is 10,000, by making the value 9999
we'll shift the box from its current drift of \-23.159 to a drift of 81.699, and
in doing so we'll speed the clock up a little every second instead of slowing
the clock down a little.
.sp
If 'tick' on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
.sp
\fBcalc_tickadj\fP tries to determine the the tick value by using
\fBtickadj\fP program from ntp package. If this doesn't work you can specify
current tick manually on command line.
.Sh "OPTIONS"
.Bl -tag
.It Fl d Ar string , Fl \-drift\-file Ns = Ns Ar string
Ntp drift file to use.
The default
.Ar string
for this option is:
.ti +4
/etc/ntp/drift
.sp
Use the specified drift file for calculations
.It Fl t Ar number , Fl \-tick Ns = Ns Ar number
Tick value of this host.
This option takes an integer number as its argument.
.sp
The current tick which to adjustment will be calculated
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBcalc_tickadj\fP
option definitions.
diff --git a/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi b/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
index 5b64a0512487..6d0ce24f0096 100644
--- a/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
+++ b/contrib/ntp/scripts/calc_tickadj/invoke-calc_tickadj.texi
@@ -1,102 +1,102 @@
@node calc_tickadj Invocation
@section Invoking calc_tickadj
@pindex calc_tickadj
@cindex Calculates "optimal" value for tick given ntp drift file.
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:23 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:13 AM by AutoGen 5.18.16
# From the definitions calc_tickadj-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
The @code{calc_tickadj} script uses provided ntp drift file to generate optimal
tick value. Generally, ntpd can do better job if the drift value is the
smallest possible number.
The example output of
@example
$ ./calc_tickadj
81.699 (drift)
9999 usec; 9999779 nsec
$ cat /etc/ntp/drift
-23.159
@end example
means the following. If tick on that box is 10,000, by making the value 9999
we'll shift the box from its current drift of -23.159 to a drift of 81.699, and
in doing so we'll speed the clock up a little every second instead of slowing
the clock down a little.
If 'tick' on that box is 10,000,000 then by setting it to 9999779 the drift
value will be somewhere around 0.0.
@code{calc_tickadj} tries to determine the the tick value by using
@code{tickadj} program from ntp package. If this doesn't work you can specify
current tick manually on command line.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{calc_tickadj} program.
@menu
* calc_tickadj usage:: calc_tickadj help/usage (@option{--help})
* calc_tickadj drift-file:: drift-file option (-d)
* calc_tickadj tick:: tick option (-t)
* calc_tickadj exit status:: exit status
@end menu
@node calc_tickadj usage
@subsection calc_tickadj help/usage (@option{--help})
@cindex calc_tickadj help
This is the automatically generated usage text for calc_tickadj.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
calc_tickadj - Calculates "optimal" value for tick given ntp drift file. - Ver. 4.2.8p15
USAGE: calc_tickadj [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-d, --drift-file=str Ntp drift file to use
-t, --tick=num Tick value of this host
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node calc_tickadj drift-file
@subsection drift-file option (-d)
@cindex calc_tickadj-drift-file
This is the ``ntp drift file to use'' option.
This option takes a string argument.
Use the specified drift file for calculations
@node calc_tickadj tick
@subsection tick option (-t)
@cindex calc_tickadj-tick
This is the ``tick value of this host'' option.
This option takes a number argument.
The current tick which to adjustment will be calculated
@node calc_tickadj exit status
@subsection calc_tickadj exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
diff --git a/contrib/ntp/scripts/invoke-plot_summary.texi b/contrib/ntp/scripts/invoke-plot_summary.texi
index 30b54985877d..65faebaa7d97 100644
--- a/contrib/ntp/scripts/invoke-plot_summary.texi
+++ b/contrib/ntp/scripts/invoke-plot_summary.texi
@@ -1,121 +1,121 @@
@node plot_summary Invocation
@section Invoking plot_summary
@pindex plot_summary
@cindex plot statistics generated by summary script
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:36 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:36 AM by AutoGen 5.18.16
# From the definitions plot_summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{plot_summary} program.
@menu
* plot_summary usage:: plot_summary help/usage (@option{--help})
* plot_summary directory:: directory option
* plot_summary identifier:: identifier option
* plot_summary peer:: peer option
* plot_summary plot-term:: plot-term option
* plot_summary output-file:: output-file option
* plot_summary exit status:: exit status
@end menu
@node plot_summary usage
@subsection plot_summary help/usage (@option{--help})
@cindex plot_summary help
This is the automatically generated usage text for plot_summary.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8p16
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p17
USAGE: plot_summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Where the summary files are
--identifier=str Origin of the data
--offset-limit=float Limit of absolute offset
--peer=str Peers to generate plots for
- may appear multiple times
--plot-term=str Gnuplot terminal
--output-file=str Output file
--dont-wait Don't wait for keystroke between plots
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node plot_summary directory
@subsection directory option
@cindex plot_summary-directory
This is the ``where the summary files are'' option.
This option takes a string argument.
The directory where the @code{plot_summary} will search for the
*_summary files generated by @code{summary} script.
@node plot_summary identifier
@subsection identifier option
@cindex plot_summary-identifier
This is the ``origin of the data'' option.
This option takes a string argument.
Where does the plotted data come from, default to string "host" plus
current hostname
@node plot_summary peer
@subsection peer option
@cindex plot_summary-peer
This is the ``peers to generate plots for'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
@node plot_summary plot-term
@subsection plot-term option
@cindex plot_summary-plot-term
This is the ``gnuplot terminal'' option.
This option takes a string argument.
This is string is passed directly to the @code{gnuplot set terminal}
command. Default is @code{x11} if @code{DISPLAY} is set and
@code{dumb} is it's not'. See output from @code(gnuplot -e "set
terminal") for the list of available options.
@node plot_summary output-file
@subsection output-file option
@cindex plot_summary-output-file
This is the ``output file'' option.
This option takes a str argument.
Output file for @code{gnuplot}, default to stdout.
@node plot_summary exit status
@subsection plot_summary exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
diff --git a/contrib/ntp/scripts/invoke-summary.texi b/contrib/ntp/scripts/invoke-summary.texi
index 7994844cfe5d..1b82c93397b7 100644
--- a/contrib/ntp/scripts/invoke-summary.texi
+++ b/contrib/ntp/scripts/invoke-summary.texi
@@ -1,103 +1,103 @@
@node summary Invocation
@section Invoking summary
@pindex summary
@cindex compute various stastics from NTP stat files
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-summary.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:40 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:40 AM by AutoGen 5.18.16
# From the definitions summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{summary} program.
@menu
* summary usage:: summary help/usage (@option{--help})
* summary directory:: directory option
* summary end-date:: end-date option
* summary output-directory:: output-directory option
* summary start-date:: start-date option
* summary exit status:: exit status
@end menu
@node summary usage
@subsection summary help/usage (@option{--help})
@cindex summary help
This is the automatically generated usage text for summary.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-summary - compute various stastics from NTP stat files - Ver. 4.2.8p16
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p17
USAGE: summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Directory containing stat files
--end-date=num End date
--output-directory=str Output directory
--peer-dist-limit=float Peer dist limit
--skip-time-steps=float Ignore time offsets larger that this
--start-date=num Start date
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node summary directory
@subsection directory option
@cindex summary-directory
This is the ``directory containing stat files'' option.
This option takes a string argument.
The directory where @code{ntpd} will search for .stat files generated
by @code{ntpd}.
@node summary end-date
@subsection end-date option
@cindex summary-end-date
This is the ``end date'' option.
This option takes a number argument.
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use @code{date -u +%Y%m%d})
to get the timestamp.
@node summary output-directory
@subsection output-directory option
@cindex summary-output-directory
This is the ``output directory'' option.
This option takes a str argument.
The output directory @code{summary} will write all output files to.
@node summary start-date
@subsection start-date option
@cindex summary-start-date
This is the ``start date'' option.
This option takes a num argument.
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
@node summary exit status
@subsection summary exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
diff --git a/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi b/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
index cfeef3275b84..138a43d9b2fc 100644
--- a/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
+++ b/contrib/ntp/scripts/ntp-wait/invoke-ntp-wait.texi
@@ -1,114 +1,114 @@
@node ntp-wait Invocation
@section Invoking ntp-wait
@pindex ntp-wait
@cindex Wait for ntpd to stabilize the system clock
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:00 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:17 AM by AutoGen 5.18.16
# From the definitions ntp-wait-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{ntp-wait}
will send at most
@kbd{num-tries}
queries to
@code{ntpd(8)},
sleeping for
@kbd{secs-between-tries}
after each status return that says
@code{ntpd(8)}
has not yet produced a synchronized and stable system clock.
@code{ntp-wait}
will do this quietly, unless the
@code{-v}
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
@kbd{ntpd} @kbd{-g}
has set the time.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntp-wait} program.
@menu
* ntp-wait usage:: ntp-wait help/usage (@option{--help})
* ntp-wait tries:: tries option (-n)
* ntp-wait sleep:: sleep option (-s)
* ntp-wait verbose:: verbose option (-v)
* ntp-wait exit status:: exit status
* ntp-wait Authors:: Authors
* ntp-wait Notes:: Notes
@end menu
@node ntp-wait usage
@subsection ntp-wait help/usage (@option{--help})
@cindex ntp-wait help
This is the automatically generated usage text for ntp-wait.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p16
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p17
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-n, --tries=num Number of times to check ntpd
-s, --sleep=num How long to sleep between tries
-v, --verbose Be verbose
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node ntp-wait tries
@subsection tries option (-n)
@cindex ntp-wait-tries
This is the ``number of times to check ntpd'' option.
This option takes a number argument.
The maximum number of times we will check @code{ntpd} to see if
it has been able to synchronize and stabilize the system clock.
@node ntp-wait sleep
@subsection sleep option (-s)
@cindex ntp-wait-sleep
This is the ``how long to sleep between tries'' option.
This option takes a number argument @file{secs-between-tries}.
We will sleep for @file{secs-between-tries} after each query
of @code{ntpd} that returns "the time is not yet stable".
@node ntp-wait verbose
@subsection verbose option (-v)
@cindex ntp-wait-verbose
This is the ``be verbose'' option.
By default, @code{ntp-wait} is silent.
With this option, @code{ntp-wait} will provide status information.
@node ntp-wait exit status
@subsection ntp-wait exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
@node ntp-wait Authors
@subsection ntp-wait Authors
@node ntp-wait Notes
@subsection ntp-wait Notes
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait-opts b/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
index 45418bd38d99..944d4c1404ab 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait-opts
@@ -1,62 +1,62 @@
# EDIT THIS FILE WITH CAUTION (ntp-wait-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 07:14:58 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:15 AM by AutoGen 5.18.16
# From the definitions ntp-wait-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'tries' => '100',
'sleep' => '6',
'verbose' => '',
'help' => '', 'more-help' => ''
};
my $argument = '';
my $ret = GetOptionsFromArray($args, $opts, (
'tries|n=i', 'sleep|s=i', 'verbose|v',
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p16
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p17
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
-n, --tries=num Number of times to check ntpd
-s, --sleep=num How long to sleep between tries
-v, --verbose Be verbose
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
index a8b161e8df6b..1a01d97b5729 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitman
@@ -1,122 +1,122 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait 1ntp-waitman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntp-wait 1ntp-waitman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:25 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:18 AM by AutoGen 5.18.16
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp-wait\fP
\- Wait for ntpd to stabilize the system clock
.SH SYNOPSIS
\f\*[B-Font]ntp-wait\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntp-wait\fP
will send at most
\f\*[I-Font]num-tries\f[]
queries to
\fCntpd\f[]\fR(8)\f[],
sleeping for
\f\*[I-Font]secs-between-tries\f[]
after each status return that says
\fCntpd\f[]\fR(8)\f[]
has not yet produced a synchronized and stable system clock.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntp-wait\fP
will do this quietly, unless the
\f\*[B-Font]\-v\f[]
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
\f\*[I-Font]ntpd\f[] \f\*[I-Font]\-g\f[]
has set the time.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-tries\f[]=\f\*[I-Font]number\f[]
Number of times to check ntpd.
This option takes an integer number as its argument.
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
100
.sp
The maximum number of times we will check \fBntpd\fP to see if
it has been able to synchronize and stabilize the system clock.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]secs\-between\-tries\f[], \f\*[B-Font]\-\-sleep\f[]=\f\*[I-Font]secs\-between\-tries\f[]
How long to sleep between tries.
This option takes an integer number as its argument.
The default
\f\*[I-Font]secs\-between\-tries\f[]
for this option is:
.ti +4
6
.sp
We will sleep for \fIsecs-between-tries\fP after each query
of \fBntpd\fP that returns "the time is not yet stable".
.TP
.NOP \f\*[B-Font]\-v\f[], \f\*[B-Font]\-\-verbose\f[]
Be verbose.
.sp
By default, \fBntp-wait\fP is silent.
With this option, \fBntp-wait\fP will provide status information.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Harlan Stenn"
.br
.SH NOTES
This document corresponds to version @VERSION@ of NTP.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp-wait\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
index 6953f46384d5..cb5ad0252df6 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
@@ -1,95 +1,95 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_WAIT 1ntp-waitmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:14:59 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:15 AM by AutoGen 5.18.16
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp-wait
.Nd Wait for ntpd to stabilize the system clock
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
will send at most
.Ar num\-tries
queries to
.Xr ntpd 8 ,
sleeping for
.Ar secs\-between\-tries
after each status return that says
.Xr ntpd 8
has not yet produced a synchronized and stable system clock.
.Pp
.Nm
will do this quietly, unless the
.Fl v
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
.Ar ntpd \-g
has set the time.
.Sh "OPTIONS"
.Bl -tag
.It Fl n Ar number , Fl \-tries Ns = Ns Ar number
Number of times to check ntpd.
This option takes an integer number as its argument.
The default
.Ar number
for this option is:
.ti +4
100
.sp
The maximum number of times we will check \fBntpd\fP to see if
it has been able to synchronize and stabilize the system clock.
.It Fl s Ar secs\-between\-tries , Fl \-sleep Ns = Ns Ar secs\-between\-tries
How long to sleep between tries.
This option takes an integer number as its argument.
The default
.Ar secs\-between\-tries
for this option is:
.ti +4
6
.sp
We will sleep for \fIsecs\-between\-tries\fP after each query
of \fBntpd\fP that returns "the time is not yet stable".
.It Fl v , Fl \-verbose
Be verbose.
.sp
By default, \fBntp\-wait\fP is silent.
With this option, \fBntp\-wait\fP will provide status information.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Harlan Stenn"
.Sh NOTES
This document corresponds to version @VERSION@ of NTP.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp\-wait\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.html b/contrib/ntp/scripts/ntp-wait/ntp-wait.html
index d5e16aff4474..282f5db6e517 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait.html
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.html
@@ -1,229 +1,229 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ntp-wait User&rsquo;s Manual</title>
<meta name="description" content="Ntp-wait User&rsquo;s Manual">
<meta name="keywords" content="Ntp-wait User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Ntp-wait User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<h1 class="node-heading">Top</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntp-wait</code> program.
</p>
<p>If there are time-sensitive applications,
the proper sequence of events is to
run <code>ntpd -g</code> as early as possible,
then invoke all of the non-time-sensitive process,
run <code>ntp-wait</code> to block
until the system&rsquo;s time has stabilized and synchronized,
and only then start any applicaitons (like database servers) that require
accurate and stable time.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntp-wait</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntp-wait</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<li><a id="stoc-Invoking-ntp_002dwait" href="#toc-Invoking-ntp_002dwait">1 Invoking ntp-wait</a></li>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; ntp-wait Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-Invocation" accesskey="2">ntp-wait Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntp-wait
</td></tr>
</table>
<hr>
<span id="ntp_002dwait-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-ntp_002dwait"></span><h3 class="section">1 Invoking ntp-wait</h3>
<span id="index-ntp_002dwait"></span>
<span id="index-Wait-for-ntpd-to-stabilize-the-system-clock"></span>
<p><code>ntp-wait</code>
will send at most
<kbd>num-tries</kbd>
queries to
<code>ntpd(8)</code>,
sleeping for
<kbd>secs-between-tries</kbd>
after each status return that says
<code>ntpd(8)</code>
has not yet produced a synchronized and stable system clock.
</p>
<p><code>ntp-wait</code>
will do this quietly, unless the
<code>-v</code>
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
<kbd>ntpd</kbd> <kbd>-g</kbd>
has set the time.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp-wait</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-usage" accesskey="1">ntp-wait usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntp-wait help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-tries" accesskey="2">ntp-wait tries</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">tries option (-n)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-sleep" accesskey="3">ntp-wait sleep</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">sleep option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-verbose" accesskey="4">ntp-wait verbose</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">verbose option (-v)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-exit-status" accesskey="5">ntp-wait exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-Authors" accesskey="6">ntp-wait Authors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Authors
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dwait-Notes" accesskey="7">ntp-wait Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notes
</td></tr>
</table>
<hr>
<span id="ntp_002dwait-usage"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-tries" accesskey="n" rel="next">ntp-wait tries</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dwait-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1 ntp-wait help/usage (<samp>--help</samp>)</h4>
<span id="index-ntp_002dwait-help"></span>
<p>This is the automatically generated usage text for ntp-wait.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p16
+<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p17
USAGE: ntp-wait [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
-n, --tries=num Number of times to check ntpd
-s, --sleep=num How long to sleep between tries
-v, --verbose Be verbose
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<hr>
<span id="ntp_002dwait-tries"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-sleep" accesskey="n" rel="next">ntp-wait sleep</a>, Previous: <a href="#ntp_002dwait-usage" accesskey="p" rel="prev">ntp-wait usage</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="tries-option-_0028_002dn_0029"></span><h4 class="subsection">1.2 tries option (-n)</h4>
<span id="index-ntp_002dwait_002dtries"></span>
<p>This is the &ldquo;number of times to check ntpd&rdquo; option.
This option takes a number argument.
The maximum number of times we will check <code>ntpd</code> to see if
it has been able to synchronize and stabilize the system clock.
</p><hr>
<span id="ntp_002dwait-sleep"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-verbose" accesskey="n" rel="next">ntp-wait verbose</a>, Previous: <a href="#ntp_002dwait-tries" accesskey="p" rel="prev">ntp-wait tries</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="sleep-option-_0028_002ds_0029"></span><h4 class="subsection">1.3 sleep option (-s)</h4>
<span id="index-ntp_002dwait_002dsleep"></span>
<p>This is the &ldquo;how long to sleep between tries&rdquo; option.
This option takes a number argument <samp>secs-between-tries</samp>.
We will sleep for <samp>secs-between-tries</samp> after each query
of <code>ntpd</code> that returns &quot;the time is not yet stable&quot;.
</p><hr>
<span id="ntp_002dwait-verbose"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-exit-status" accesskey="n" rel="next">ntp-wait exit status</a>, Previous: <a href="#ntp_002dwait-sleep" accesskey="p" rel="prev">ntp-wait sleep</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="verbose-option-_0028_002dv_0029"></span><h4 class="subsection">1.4 verbose option (-v)</h4>
<span id="index-ntp_002dwait_002dverbose"></span>
<p>This is the &ldquo;be verbose&rdquo; option.
By default, <code>ntp-wait</code> is silent.
With this option, <code>ntp-wait</code> will provide status information.
</p><hr>
<span id="ntp_002dwait-exit-status"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-Authors" accesskey="n" rel="next">ntp-wait Authors</a>, Previous: <a href="#ntp_002dwait-verbose" accesskey="p" rel="prev">ntp-wait verbose</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dwait-exit-status-1"></span><h4 class="subsection">1.5 ntp-wait exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
<span id="ntp_002dwait-Authors"></span><div class="header">
<p>
Next: <a href="#ntp_002dwait-Notes" accesskey="n" rel="next">ntp-wait Notes</a>, Previous: <a href="#ntp_002dwait-exit-status" accesskey="p" rel="prev">ntp-wait exit status</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dwait-Authors-1"></span><h4 class="subsection">1.6 ntp-wait Authors</h4>
<hr>
<span id="ntp_002dwait-Notes"></span><div class="header">
<p>
Previous: <a href="#ntp_002dwait-Authors" accesskey="p" rel="prev">ntp-wait Authors</a>, Up: <a href="#ntp_002dwait-Invocation" accesskey="u" rel="up">ntp-wait Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dwait-Notes-1"></span><h4 class="subsection">1.7 ntp-wait Notes</h4>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in b/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
index 49b543ada260..4e9b184b847f 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.man.in
@@ -1,122 +1,122 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait @NTP_WAIT_MS@ "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntp-wait @NTP_WAIT_MS@ "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:25 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:18 AM by AutoGen 5.18.16
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp-wait\fP
\- Wait for ntpd to stabilize the system clock
.SH SYNOPSIS
\f\*[B-Font]ntp-wait\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntp-wait\fP
will send at most
\f\*[I-Font]num-tries\f[]
queries to
\fCntpd\f[]\fR(8)\f[],
sleeping for
\f\*[I-Font]secs-between-tries\f[]
after each status return that says
\fCntpd\f[]\fR(8)\f[]
has not yet produced a synchronized and stable system clock.
.sp \n(Ppu
.ne 2
\f\*[B-Font]ntp-wait\fP
will do this quietly, unless the
\f\*[B-Font]\-v\f[]
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
\f\*[I-Font]ntpd\f[] \f\*[I-Font]\-g\f[]
has set the time.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-tries\f[]=\f\*[I-Font]number\f[]
Number of times to check ntpd.
This option takes an integer number as its argument.
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
100
.sp
The maximum number of times we will check \fBntpd\fP to see if
it has been able to synchronize and stabilize the system clock.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]secs\-between\-tries\f[], \f\*[B-Font]\-\-sleep\f[]=\f\*[I-Font]secs\-between\-tries\f[]
How long to sleep between tries.
This option takes an integer number as its argument.
The default
\f\*[I-Font]secs\-between\-tries\f[]
for this option is:
.ti +4
6
.sp
We will sleep for \fIsecs-between-tries\fP after each query
of \fBntpd\fP that returns "the time is not yet stable".
.TP
.NOP \f\*[B-Font]\-v\f[], \f\*[B-Font]\-\-verbose\f[]
Be verbose.
.sp
By default, \fBntp-wait\fP is silent.
With this option, \fBntp-wait\fP will provide status information.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Harlan Stenn"
.br
.SH NOTES
This document corresponds to version @VERSION@ of NTP.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp-wait\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in b/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
index 9403f4c78750..35e7a2ab06fd 100644
--- a/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
+++ b/contrib/ntp/scripts/ntp-wait/ntp-wait.mdoc.in
@@ -1,95 +1,95 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_WAIT @NTP_WAIT_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:14:59 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:15 AM by AutoGen 5.18.16
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp-wait
.Nd Wait for ntpd to stabilize the system clock
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
will send at most
.Ar num\-tries
queries to
.Xr ntpd 8 ,
sleeping for
.Ar secs\-between\-tries
after each status return that says
.Xr ntpd 8
has not yet produced a synchronized and stable system clock.
.Pp
.Nm
will do this quietly, unless the
.Fl v
flag is provided.
This can be useful at boot time, to delay the boot sequence until after
.Ar ntpd \-g
has set the time.
.Sh "OPTIONS"
.Bl -tag
.It Fl n Ar number , Fl \-tries Ns = Ns Ar number
Number of times to check ntpd.
This option takes an integer number as its argument.
The default
.Ar number
for this option is:
.ti +4
100
.sp
The maximum number of times we will check \fBntpd\fP to see if
it has been able to synchronize and stabilize the system clock.
.It Fl s Ar secs\-between\-tries , Fl \-sleep Ns = Ns Ar secs\-between\-tries
How long to sleep between tries.
This option takes an integer number as its argument.
The default
.Ar secs\-between\-tries
for this option is:
.ti +4
6
.sp
We will sleep for \fIsecs\-between\-tries\fP after each query
of \fBntpd\fP that returns "the time is not yet stable".
.It Fl v , Fl \-verbose
Be verbose.
.sp
By default, \fBntp\-wait\fP is silent.
With this option, \fBntp\-wait\fP will provide status information.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Harlan Stenn"
.Sh NOTES
This document corresponds to version @VERSION@ of NTP.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp\-wait\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi b/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
index 732930c99c63..d81aa76d21d2 100644
--- a/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
+++ b/contrib/ntp/scripts/ntpsweep/invoke-ntpsweep.texi
@@ -1,118 +1,118 @@
@node ntpsweep Invocation
@section Invoking ntpsweep
@pindex ntpsweep
@cindex Print various informations about given ntp servers
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsweep.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:26 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:20 AM by AutoGen 5.18.16
# From the definitions ntpsweep-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{ntpsweep}
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntpsweep} program.
@menu
* ntpsweep usage:: ntpsweep help/usage (@option{--help})
* ntpsweep host-list:: host-list option (-l)
* ntpsweep peers:: peers option (-p)
* ntpsweep maxlevel:: maxlevel option (-m)
* ntpsweep strip:: strip option (-s)
* ntpsweep host:: host option (-h)
* ntpsweep exit status:: exit status
@end menu
@node ntpsweep usage
@subsection ntpsweep help/usage (@option{--help})
@cindex ntpsweep help
This is the automatically generated usage text for ntpsweep.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p16
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p17
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
- may appear multiple times
-p, --peers Recursively list all peers a host synchronizes to
-m, --maxlevel=num Traverse peers up to this level (4 is a reasonable number)
-s, --strip=str Strip this string from hostnames
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node ntpsweep host-list
@subsection host-list option (-l)
@cindex ntpsweep-host-list
This is the ``host to execute actions on'' option.
This option takes a string argument.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
Use this option to specify the host on which this script operates.
May appear multiple times.
@node ntpsweep peers
@subsection peers option (-p)
@cindex ntpsweep-peers
This is the ``recursively list all peers a host synchronizes to'' option.
This option has no @samp{doc} documentation.
@node ntpsweep maxlevel
@subsection maxlevel option (-m)
@cindex ntpsweep-maxlevel
This is the ``traverse peers up to this level (4 is a reasonable number)'' option.
This option takes a number argument.
This option has no @samp{doc} documentation.
@node ntpsweep strip
@subsection strip option (-s)
@cindex ntpsweep-strip
This is the ``strip this string from hostnames'' option.
This option takes a string argument.
This option has no @samp{doc} documentation.
@node ntpsweep host
@subsection host option (-h)
@cindex ntpsweep-host
This is the ``specify a single host'' option.
This option takes a string argument.
This option has no @samp{doc} documentation.
@strong{NOTE}@strong{: THIS OPTION IS DEPRECATED}
@node ntpsweep exit status
@subsection ntpsweep exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep-opts b/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
index de933c8845c8..61bfb34159f0 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep-opts
@@ -1,67 +1,67 @@
# EDIT THIS FILE WITH CAUTION (ntpsweep-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:02 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:20 AM by AutoGen 5.18.16
# From the definitions ntpsweep-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'host-list' => [],
'peers' => '',
'maxlevel' => '',
'strip' => '',
'host' => '',
'help' => '', 'more-help' => ''
};
my $argument = '[hostfile]';
my $ret = GetOptionsFromArray($args, $opts, (
'host-list|l=s', 'peers|p', 'maxlevel|m=i',
'strip|s=s', 'host|h=s',
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p16
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p17
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
- may appear multiple times
-p, --peers Recursively list all peers a host synchronizes to
-m, --maxlevel=num Traverse peers up to this level (4 is a reasonable number)
-s, --strip=str Strip this string from hostnames
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
index c1ff4d749f9f..e609f54128ee 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepman
@@ -1,97 +1,97 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntpsweep 1ntpsweepman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:29 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:23 AM by AutoGen 5.18.16
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpsweep\fP
\- Print various informations about given ntp servers
.SH SYNOPSIS
\f\*[B-Font]ntpsweep\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[hostfile]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpsweep\fP
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\-list\f[]=\f\*[I-Font]string\f[]
Host to execute actions on.
This option may appear an unlimited number of times.
.sp
Use this option to specify the host on which this script operates.
May appear multiple times.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Recursively list all peers a host synchronizes to.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-maxlevel\f[]=\f\*[I-Font]number\f[]
Traverse peers up to this level (4 is a reasonable number).
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-strip\f[]=\f\*[I-Font]string\f[]
Strip this string from hostnames.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-h\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\f[]=\f\*[I-Font]string\f[]
Specify a single host.
.sp
This option has not been fully documented.
.sp
.B
NOTE: THIS OPTION IS DEPRECATED
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpsweep\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
index 8e1376da62ae..37b9e81f20f7 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
@@ -1,75 +1,75 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:28 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:22 AM by AutoGen 5.18.16
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpsweep
.Nd Print various informations about given ntp servers
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[hostfile]
.Pp
.Sh DESCRIPTION
.Nm
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
.Sh "OPTIONS"
.Bl -tag
.It Fl l Ar string , Fl \-host\-list Ns = Ns Ar string
Host to execute actions on.
This option may appear an unlimited number of times.
.sp
Use this option to specify the host on which this script operates.
May appear multiple times.
.It Fl p , Fl \-peers
Recursively list all peers a host synchronizes to.
.sp
This option has not been fully documented.
.It Fl m Ar number , Fl \-maxlevel Ns = Ns Ar number
Traverse peers up to this level (4 is a reasonable number).
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.It Fl s Ar string , Fl \-strip Ns = Ns Ar string
Strip this string from hostnames.
.sp
This option has not been fully documented.
.It Fl h Ar string , Fl \-host Ns = Ns Ar string
Specify a single host.
.sp
This option has not been fully documented.
.sp
.B
NOTE: THIS OPTION IS DEPRECATED
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpsweep\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.html b/contrib/ntp/scripts/ntpsweep/ntpsweep.html
index 8615b6bd08e5..bca4b02986cf 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep.html
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.html
@@ -1,222 +1,222 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ntpsweep User&rsquo;s Manual</title>
<meta name="description" content="ntpsweep User&rsquo;s Manual">
<meta name="keywords" content="ntpsweep User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">ntpsweep User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<h1 class="node-heading">Top</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntpsweep</code> program.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntpsweep</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntpsweep</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<li><a id="stoc-Invoking-ntpsweep" href="#toc-Invoking-ntpsweep">1 Invoking ntpsweep</a></li>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; ntpsweep Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-Invocation" accesskey="2">ntpsweep Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntpsweep
</td></tr>
</table>
<hr>
<span id="ntpsweep-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-ntpsweep"></span><h3 class="section">1 Invoking ntpsweep</h3>
<span id="index-ntpsweep"></span>
<span id="index-Print-various-informations-about-given-ntp-servers"></span>
<p><code>ntpsweep</code>
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntpsweep</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-usage" accesskey="1">ntpsweep usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntpsweep help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-host_002dlist" accesskey="2">ntpsweep host-list</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">host-list option (-l)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-peers" accesskey="3">ntpsweep peers</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">peers option (-p)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-maxlevel" accesskey="4">ntpsweep maxlevel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">maxlevel option (-m)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-strip" accesskey="5">ntpsweep strip</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">strip option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-host" accesskey="6">ntpsweep host</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">host option (-h)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntpsweep-exit-status" accesskey="7">ntpsweep exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="ntpsweep-usage"></span><div class="header">
<p>
Next: <a href="#ntpsweep-host_002dlist" accesskey="n" rel="next">ntpsweep host-list</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="ntpsweep-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1 ntpsweep help/usage (<samp>--help</samp>)</h4>
<span id="index-ntpsweep-help"></span>
<p>This is the automatically generated usage text for ntpsweep.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p16
+<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p17
USAGE: ntpsweep [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [hostfile]
-l, --host-list=str Host to execute actions on
- may appear multiple times
-p, --peers Recursively list all peers a host synchronizes to
-m, --maxlevel=num Traverse peers up to this level (4 is a reasonable number)
-s, --strip=str Strip this string from hostnames
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<hr>
<span id="ntpsweep-host_002dlist"></span><div class="header">
<p>
Next: <a href="#ntpsweep-peers" accesskey="n" rel="next">ntpsweep peers</a>, Previous: <a href="#ntpsweep-usage" accesskey="p" rel="prev">ntpsweep usage</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="host_002dlist-option-_0028_002dl_0029"></span><h4 class="subsection">1.2 host-list option (-l)</h4>
<span id="index-ntpsweep_002dhost_002dlist"></span>
<p>This is the &ldquo;host to execute actions on&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>Use this option to specify the host on which this script operates.
May appear multiple times.
</p><hr>
<span id="ntpsweep-peers"></span><div class="header">
<p>
Next: <a href="#ntpsweep-maxlevel" accesskey="n" rel="next">ntpsweep maxlevel</a>, Previous: <a href="#ntpsweep-host_002dlist" accesskey="p" rel="prev">ntpsweep host-list</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="peers-option-_0028_002dp_0029"></span><h4 class="subsection">1.3 peers option (-p)</h4>
<span id="index-ntpsweep_002dpeers"></span>
<p>This is the &ldquo;recursively list all peers a host synchronizes to&rdquo; option.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p><hr>
<span id="ntpsweep-maxlevel"></span><div class="header">
<p>
Next: <a href="#ntpsweep-strip" accesskey="n" rel="next">ntpsweep strip</a>, Previous: <a href="#ntpsweep-peers" accesskey="p" rel="prev">ntpsweep peers</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="maxlevel-option-_0028_002dm_0029"></span><h4 class="subsection">1.4 maxlevel option (-m)</h4>
<span id="index-ntpsweep_002dmaxlevel"></span>
<p>This is the &ldquo;traverse peers up to this level (4 is a reasonable number)&rdquo; option.
This option takes a number argument.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p><hr>
<span id="ntpsweep-strip"></span><div class="header">
<p>
Next: <a href="#ntpsweep-host" accesskey="n" rel="next">ntpsweep host</a>, Previous: <a href="#ntpsweep-maxlevel" accesskey="p" rel="prev">ntpsweep maxlevel</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="strip-option-_0028_002ds_0029"></span><h4 class="subsection">1.5 strip option (-s)</h4>
<span id="index-ntpsweep_002dstrip"></span>
<p>This is the &ldquo;strip this string from hostnames&rdquo; option.
This option takes a string argument.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p><hr>
<span id="ntpsweep-host"></span><div class="header">
<p>
Next: <a href="#ntpsweep-exit-status" accesskey="n" rel="next">ntpsweep exit status</a>, Previous: <a href="#ntpsweep-strip" accesskey="p" rel="prev">ntpsweep strip</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="host-option-_0028_002dh_0029"></span><h4 class="subsection">1.6 host option (-h)</h4>
<span id="index-ntpsweep_002dhost"></span>
<p>This is the &ldquo;specify a single host&rdquo; option.
This option takes a string argument.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p>
<p><strong>NOTE</strong><strong>: THIS OPTION IS DEPRECATED</strong>
</p><hr>
<span id="ntpsweep-exit-status"></span><div class="header">
<p>
Previous: <a href="#ntpsweep-host" accesskey="p" rel="prev">ntpsweep host</a>, Up: <a href="#ntpsweep-Invocation" accesskey="u" rel="up">ntpsweep Invocation</a> &nbsp; </p>
</div>
<span id="ntpsweep-exit-status-1"></span><h4 class="subsection">1.7 ntpsweep exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in b/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
index c1ff4d749f9f..e609f54128ee 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.man.in
@@ -1,97 +1,97 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntpsweep 1ntpsweepman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:29 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:23 AM by AutoGen 5.18.16
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntpsweep\fP
\- Print various informations about given ntp servers
.SH SYNOPSIS
\f\*[B-Font]ntpsweep\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[hostfile]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]ntpsweep\fP
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\-list\f[]=\f\*[I-Font]string\f[]
Host to execute actions on.
This option may appear an unlimited number of times.
.sp
Use this option to specify the host on which this script operates.
May appear multiple times.
.TP
.NOP \f\*[B-Font]\-p\f[], \f\*[B-Font]\-\-peers\f[]
Recursively list all peers a host synchronizes to.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-maxlevel\f[]=\f\*[I-Font]number\f[]
Traverse peers up to this level (4 is a reasonable number).
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-strip\f[]=\f\*[I-Font]string\f[]
Strip this string from hostnames.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-h\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\f[]=\f\*[I-Font]string\f[]
Specify a single host.
.sp
This option has not been fully documented.
.sp
.B
NOTE: THIS OPTION IS DEPRECATED
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntpsweep\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in b/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
index 8e1376da62ae..37b9e81f20f7 100644
--- a/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
+++ b/contrib/ntp/scripts/ntpsweep/ntpsweep.mdoc.in
@@ -1,75 +1,75 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:28 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:22 AM by AutoGen 5.18.16
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntpsweep
.Nd Print various informations about given ntp servers
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[hostfile]
.Pp
.Sh DESCRIPTION
.Nm
prints per host the NTP stratum level, the clock offset in seconds, the daemon
version, the operating system and the processor. Optionally recursing through
all peers.
.Sh "OPTIONS"
.Bl -tag
.It Fl l Ar string , Fl \-host\-list Ns = Ns Ar string
Host to execute actions on.
This option may appear an unlimited number of times.
.sp
Use this option to specify the host on which this script operates.
May appear multiple times.
.It Fl p , Fl \-peers
Recursively list all peers a host synchronizes to.
.sp
This option has not been fully documented.
.It Fl m Ar number , Fl \-maxlevel Ns = Ns Ar number
Traverse peers up to this level (4 is a reasonable number).
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.It Fl s Ar string , Fl \-strip Ns = Ns Ar string
Strip this string from hostnames.
.sp
This option has not been fully documented.
.It Fl h Ar string , Fl \-host Ns = Ns Ar string
Specify a single host.
.sp
This option has not been fully documented.
.sp
.B
NOTE: THIS OPTION IS DEPRECATED
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntpsweep\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi b/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
index 0beb1d3f2223..0169c0eb6a97 100644
--- a/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
+++ b/contrib/ntp/scripts/ntptrace/invoke-ntptrace.texi
@@ -1,109 +1,109 @@
@node ntptrace Invocation
@section Invoking ntptrace
@pindex ntptrace
@cindex Trace peers of an NTP server
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntptrace.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:04 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:27 AM by AutoGen 5.18.16
# From the definitions ntptrace-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{ntptrace} is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
@example
% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
@end example
On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
@code{ntptrace}; this is why it is not always zero for "localhost"), the host
synchronization distance, and (only for stratum-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC-1305.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntptrace} program.
@menu
* ntptrace usage:: ntptrace help/usage (@option{--help})
* ntptrace numeric:: numeric option (-n)
* ntptrace max-hosts:: max-hosts option (-m)
* ntptrace host:: host option (-r)
* ntptrace exit status:: exit status
@end menu
@node ntptrace usage
@subsection ntptrace help/usage (@option{--help})
@cindex ntptrace help
This is the automatically generated usage text for ntptrace.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p16
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p17
USAGE: ntptrace [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
-m, --max-hosts=num Maximum number of peers to trace
-r, --host=str Single remote host
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
@end example
@exampleindent 4
@node ntptrace numeric
@subsection numeric option (-n)
@cindex ntptrace-numeric
This is the ``print ip addresses instead of hostnames'' option.
Output hosts as dotted-quad numeric format rather than converting to
the canonical host names.
@node ntptrace max-hosts
@subsection max-hosts option (-m)
@cindex ntptrace-max-hosts
This is the ``maximum number of peers to trace'' option.
This option takes a number argument.
This option has no @samp{doc} documentation.
@node ntptrace host
@subsection host option (-r)
@cindex ntptrace-host
This is the ``single remote host'' option.
This option takes a string argument.
This option has no @samp{doc} documentation.
@node ntptrace exit status
@subsection ntptrace exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace-opts b/contrib/ntp/scripts/ntptrace/ntptrace-opts
index 19b166d50013..ea17cb0f66c9 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace-opts
+++ b/contrib/ntp/scripts/ntptrace/ntptrace-opts
@@ -1,62 +1,62 @@
# EDIT THIS FILE WITH CAUTION (ntptrace-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:03 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:25 AM by AutoGen 5.18.16
# From the definitions ntptrace-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'numeric' => '',
'max-hosts' => '99',
'host' => '127.0.0.1',
'help' => '', 'more-help' => ''
};
my $argument = '[host]';
my $ret = GetOptionsFromArray($args, $opts, (
'numeric|n', 'max-hosts|m=i', 'host|r=s',
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8p16
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p17
USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
-m, --max-hosts=num Maximum number of peers to trace
-r, --host=str Single remote host
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
index 12ea969f1c85..c1833697961a 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
+++ b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptraceman
@@ -1,114 +1,114 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace 1ntptraceman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntptrace 1ntptraceman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:31 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:28 AM by AutoGen 5.18.16
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntptrace\fP
\- Trace peers of an NTP server
.SH SYNOPSIS
\f\*[B-Font]ntptrace\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[host]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\fBntptrace\fP is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
.sp
If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
.sp
.br
.in +4
.nf
% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
.in -4
.fi
.sp
On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
\fBntptrace\fP; this is why it is not always zero for "localhost"), the host
synchronization distance, and (only for stratum\-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC\-1305.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
Print IP addresses instead of hostnames.
.sp
Output hosts as dotted-quad numeric format rather than converting to
the canonical host names.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-max\-hosts\f[]=\f\*[I-Font]number\f[]
Maximum number of peers to trace.
This option takes an integer number as its argument.
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
99
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\f[]=\f\*[I-Font]string\f[]
Single remote host.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
127.0.0.1
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntptrace\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
index 90443c861517..d42f63a644fc 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
+++ b/contrib/ntp/scripts/ntptrace/ntptrace.1ntptracemdoc
@@ -1,91 +1,91 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPTRACE 1ntptracemdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:15:03 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:25 AM by AutoGen 5.18.16
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntptrace
.Nd Trace peers of an NTP server
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[host]
.Pp
.Sh DESCRIPTION
\fBntptrace\fP is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
.sp
If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
.sp
.Bd -literal -offset indent
% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
.Ed
.sp
On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
\fBntptrace\fP; this is why it is not always zero for "localhost"), the host
synchronization distance, and (only for stratum\-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC\-1305.
.Sh "OPTIONS"
.Bl -tag
.It Fl n , Fl \-numeric
Print IP addresses instead of hostnames.
.sp
Output hosts as dotted\-quad numeric format rather than converting to
the canonical host names.
.It Fl m Ar number , Fl \-max\-hosts Ns = Ns Ar number
Maximum number of peers to trace.
This option takes an integer number as its argument.
The default
.Ar number
for this option is:
.ti +4
99
.sp
This option has not been fully documented.
.It Fl r Ar string , Fl \-host Ns = Ns Ar string
Single remote host.
The default
.Ar string
for this option is:
.ti +4
127.0.0.1
.sp
This option has not been fully documented.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntptrace\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.html b/contrib/ntp/scripts/ntptrace/ntptrace.html
index a837ae498723..594c9ef59cd7 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace.html
+++ b/contrib/ntp/scripts/ntptrace/ntptrace.html
@@ -1,216 +1,216 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ntptrace User&rsquo;s Manual</title>
<meta name="description" content="Ntptrace User&rsquo;s Manual">
<meta name="keywords" content="Ntptrace User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Ntptrace User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="Simple-Network-Time-Protocol-User-Manual"></span><h1 class="top">Simple Network Time Protocol User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntptrace</code> program.
-This document applies to version 4.2.8p16 of <code>ntptrace</code>.
+This document applies to version 4.2.8p17 of <code>ntptrace</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Invoking-ntptrace" href="#toc-Invoking-ntptrace">1 Invoking ntptrace</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; ntptrace Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-Invocation" accesskey="2">ntptrace Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntptrace
</td></tr>
</table>
<hr>
<span id="ntptrace-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-ntptrace"></span><h2 class="chapter">1 Invoking ntptrace</h2>
<span id="index-ntptrace"></span>
<span id="index-Trace-peers-of-an-NTP-server"></span>
<p><code>ntptrace</code> is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
</p>
<p>If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
</p>
<div class="example">
<pre class="example">% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
</pre></div>
<p>On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
<code>ntptrace</code>; this is why it is not always zero for &quot;localhost&quot;), the host
synchronization distance, and (only for stratum-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC-1305.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntptrace</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-usage" accesskey="1">ntptrace usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntptrace help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-numeric" accesskey="2">ntptrace numeric</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">numeric option (-n)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-max_002dhosts" accesskey="3">ntptrace max-hosts</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">max-hosts option (-m)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-host" accesskey="4">ntptrace host</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">host option (-r)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-exit-status" accesskey="5">ntptrace exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="ntptrace-usage"></span><div class="header">
<p>
Next: <a href="#ntptrace-numeric" accesskey="n" rel="next">ntptrace numeric</a>, Up: <a href="#ntptrace-Invocation" accesskey="u" rel="up">ntptrace Invocation</a> &nbsp; </p>
</div>
<span id="ntptrace-help_002fusage-_0028_002d_002dhelp_0029"></span><h3 class="section">1.1 ntptrace help/usage (<samp>--help</samp>)</h3>
<span id="index-ntptrace-help"></span>
<p>This is the automatically generated usage text for ntptrace.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p16
+<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p17
USAGE: ntptrace [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
-m, --max-hosts=num Maximum number of peers to trace
-r, --host=str Single remote host
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-numeric" accesskey="1">numeric option (-n)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-max_002dhosts" accesskey="2">max-hosts option (-m)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-host" accesskey="3">host option (-r)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntptrace-exit-status" accesskey="4">ntptrace exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="ntptrace-numeric"></span><div class="header">
<p>
Next: <a href="#ntptrace-max_002dhosts" accesskey="n" rel="next">ntptrace max-hosts</a>, Previous: <a href="#ntptrace-usage" accesskey="p" rel="prev">ntptrace usage</a>, Up: <a href="#ntptrace-usage" accesskey="u" rel="up">ntptrace usage</a> &nbsp; </p>
</div>
<span id="numeric-option-_0028_002dn_0029"></span><h4 class="subsection">1.1.1 numeric option (-n)</h4>
<span id="index-ntptrace_002dnumeric"></span>
<p>This is the &ldquo;print ip addresses instead of hostnames&rdquo; option.
Output hosts as dotted-quad numeric format rather than converting to
the canonical host names.
</p><hr>
<span id="ntptrace-max_002dhosts"></span><div class="header">
<p>
Next: <a href="#ntptrace-host" accesskey="n" rel="next">ntptrace host</a>, Previous: <a href="#ntptrace-numeric" accesskey="p" rel="prev">ntptrace numeric</a>, Up: <a href="#ntptrace-usage" accesskey="u" rel="up">ntptrace usage</a> &nbsp; </p>
</div>
<span id="max_002dhosts-option-_0028_002dm_0029"></span><h4 class="subsection">1.1.2 max-hosts option (-m)</h4>
<span id="index-ntptrace_002dmax_002dhosts"></span>
<p>This is the &ldquo;maximum number of peers to trace&rdquo; option.
This option takes a number argument.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p><hr>
<span id="ntptrace-host"></span><div class="header">
<p>
Next: <a href="#ntptrace-exit-status" accesskey="n" rel="next">ntptrace exit status</a>, Previous: <a href="#ntptrace-max_002dhosts" accesskey="p" rel="prev">ntptrace max-hosts</a>, Up: <a href="#ntptrace-usage" accesskey="u" rel="up">ntptrace usage</a> &nbsp; </p>
</div>
<span id="host-option-_0028_002dr_0029"></span><h4 class="subsection">1.1.3 host option (-r)</h4>
<span id="index-ntptrace_002dhost"></span>
<p>This is the &ldquo;single remote host&rdquo; option.
This option takes a string argument.
This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p><hr>
<span id="ntptrace-exit-status"></span><div class="header">
<p>
Previous: <a href="#ntptrace-host" accesskey="p" rel="prev">ntptrace host</a>, Up: <a href="#ntptrace-usage" accesskey="u" rel="up">ntptrace usage</a> &nbsp; </p>
</div>
<span id="ntptrace-exit-status-1"></span><h4 class="subsection">1.1.4 ntptrace exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.man.in b/contrib/ntp/scripts/ntptrace/ntptrace.man.in
index a87d865a4b72..db4e5ab6c3aa 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace.man.in
+++ b/contrib/ntp/scripts/ntptrace/ntptrace.man.in
@@ -1,114 +1,114 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace @NTPTRACE_MS@ "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntptrace @NTPTRACE_MS@ "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:31 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:28 AM by AutoGen 5.18.16
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntptrace\fP
\- Trace peers of an NTP server
.SH SYNOPSIS
\f\*[B-Font]ntptrace\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[host]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\fBntptrace\fP is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
.sp
If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
.sp
.br
.in +4
.nf
% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
.in -4
.fi
.sp
On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
\fBntptrace\fP; this is why it is not always zero for "localhost"), the host
synchronization distance, and (only for stratum\-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC\-1305.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-n\f[], \f\*[B-Font]\-\-numeric\f[]
Print IP addresses instead of hostnames.
.sp
Output hosts as dotted-quad numeric format rather than converting to
the canonical host names.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-max\-hosts\f[]=\f\*[I-Font]number\f[]
Maximum number of peers to trace.
This option takes an integer number as its argument.
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
99
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-r\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-host\f[]=\f\*[I-Font]string\f[]
Single remote host.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
127.0.0.1
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBntptrace\fP
option definitions.
diff --git a/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in b/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
index 125b951187c2..1d64345f1689 100644
--- a/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
+++ b/contrib/ntp/scripts/ntptrace/ntptrace.mdoc.in
@@ -1,91 +1,91 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTPTRACE @NTPTRACE_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:15:03 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:25 AM by AutoGen 5.18.16
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntptrace
.Nd Trace peers of an NTP server
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[host]
.Pp
.Sh DESCRIPTION
\fBntptrace\fP is a perl script that uses the ntpq utility program to follow
the chain of NTP servers from a given host back to the primary time source. For
ntptrace to work properly, each of these servers must implement the NTP Control
and Monitoring Protocol specified in RFC 1305 and enable NTP Mode 6 packets.
.sp
If given no arguments, ntptrace starts with localhost. Here is an example of
the output from ntptrace:
.sp
.Bd -literal -offset indent
% ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135
server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu:
stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB'
.Ed
.sp
On each line, the fields are (left to right): the host name, the host stratum,
the time offset between that host and the local host (as measured by
\fBntptrace\fP; this is why it is not always zero for "localhost"), the host
synchronization distance, and (only for stratum\-1 servers) the reference clock
ID. All times are given in seconds. Note that the stratum is the server hop
count to the primary source, while the synchronization distance is the
estimated error relative to the primary source. These terms are precisely
defined in RFC\-1305.
.Sh "OPTIONS"
.Bl -tag
.It Fl n , Fl \-numeric
Print IP addresses instead of hostnames.
.sp
Output hosts as dotted\-quad numeric format rather than converting to
the canonical host names.
.It Fl m Ar number , Fl \-max\-hosts Ns = Ns Ar number
Maximum number of peers to trace.
This option takes an integer number as its argument.
The default
.Ar number
for this option is:
.ti +4
99
.sp
This option has not been fully documented.
.It Fl r Ar string , Fl \-host Ns = Ns Ar string
Single remote host.
The default
.Ar string
for this option is:
.ti +4
127.0.0.1
.sp
This option has not been fully documented.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBntptrace\fP
option definitions.
diff --git a/contrib/ntp/scripts/plot_summary-opts b/contrib/ntp/scripts/plot_summary-opts
index e451204d66b9..10e2fdfaec7f 100644
--- a/contrib/ntp/scripts/plot_summary-opts
+++ b/contrib/ntp/scripts/plot_summary-opts
@@ -1,73 +1,73 @@
# EDIT THIS FILE WITH CAUTION (plot_summary-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:08 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:35 AM by AutoGen 5.18.16
# From the definitions plot_summary-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'directory' => '/tmp',
'identifier' => '',
'offset-limit' => '0.128',
'peer' => [],
'plot-term' => '',
'output-file' => '',
'dont-wait' => '',
'help' => '', 'more-help' => ''
};
my $argument = '';
my $ret = GetOptionsFromArray($args, $opts, (
'directory=s', 'identifier=s', 'offset-limit=f',
'peer=s', 'plot-term=s', 'output-file=s',
'dont-wait',
'help|?', 'more-help'));
$usage = <<'USAGE';
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8p16
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p17
USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Where the summary files are
--identifier=str Origin of the data
--offset-limit=float Limit of absolute offset
--peer=str Peers to generate plots for
- may appear multiple times
--plot-term=str Gnuplot terminal
--output-file=str Output file
--dont-wait Don't wait for keystroke between plots
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/plot_summary.1plot_summaryman b/contrib/ntp/scripts/plot_summary.1plot_summaryman
index 26a2f8dfc523..14bc3202139b 100644
--- a/contrib/ntp/scripts/plot_summary.1plot_summaryman
+++ b/contrib/ntp/scripts/plot_summary.1plot_summaryman
@@ -1,114 +1,114 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH plot_summary 1plot_summaryman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:37 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:37 AM by AutoGen 5.18.16
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]plot_summary\fP
\- plot statistics generated by summary script
.SH SYNOPSIS
\f\*[B-Font]plot_summary\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH "DESCRIPTION"
There is no description for this command.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-directory\f[]=\f\*[I-Font]string\f[]
Where the summary files are.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/tmp
.sp
The directory where the \fBplot_summary\fP will search for the
*_summary files generated by \fBsummary\fP script.
.TP
.NOP \f\*[B-Font]\-\-identifier\f[]=\f\*[I-Font]string\f[]
Origin of the data.
.sp
Where does the plotted data come from, default to string "host" plus
current hostname
.TP
.NOP \f\*[B-Font]\-\-offset\-limit\f[]=\f\*[I-Font]float\f[]
Limit of absolute offset.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
0.128
.sp
.TP
.NOP \f\*[B-Font]\-\-peer\f[]=\f\*[I-Font]string\f[]
Peers to generate plots for.
This option may appear an unlimited number of times.
.sp
By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
.TP
.NOP \f\*[B-Font]\-\-plot\-term\f[]=\f\*[I-Font]string\f[]
Gnuplot terminal.
.sp
This is string is passed directly to the \fBgnuplot set terminal\fP
command. Default is \fBx11\fP if \fBDISPLAY\fP is set and
\fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set
terminal") for the list of available options.
.TP
.NOP \f\*[B-Font]\-\-output\-file\f[]=\f\*[I-Font]str\f[]
Output file.
.sp
Output file for \fBgnuplot\fP, default to stdout.
.TP
.NOP \f\*[B-Font]\-\-dont\-wait\f[]
Don't wait for keystroke between plots.
.sp
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBplot_summary\fP
option definitions.
diff --git a/contrib/ntp/scripts/plot_summary.1plot_summarymdoc b/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
index 1fb81452eb34..338e8e5debac 100644
--- a/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
+++ b/contrib/ntp/scripts/plot_summary.1plot_summarymdoc
@@ -1,88 +1,88 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:39 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:38 AM by AutoGen 5.18.16
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm plot_summary
.Nd plot statistics generated by summary script
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh "DESCRIPTION"
There is no description for this command.
.Sh "OPTIONS"
.Bl -tag
.It Fl \-directory Ns = Ns Ar string
Where the summary files are.
The default
.Ar string
for this option is:
.ti +4
/tmp
.sp
The directory where the \fBplot_summary\fP will search for the
*_summary files generated by \fBsummary\fP script.
.It Fl \-identifier Ns = Ns Ar string
Origin of the data.
.sp
Where does the plotted data come from, default to string "host" plus
current hostname
.It Fl \-offset\-limit Ns = Ns Ar float
Limit of absolute offset.
The default
.Ar float
for this option is:
.ti +4
0.128
.sp
.It Fl \-peer Ns = Ns Ar string
Peers to generate plots for.
This option may appear an unlimited number of times.
.sp
By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
.It Fl \-plot\-term Ns = Ns Ar string
Gnuplot terminal.
.sp
This is string is passed directly to the \fBgnuplot set terminal\fP
command. Default is \fBx11\fP if \fBDISPLAY\fP is set and
\fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set
terminal") for the list of available options.
.It Fl \-output\-file Ns = Ns Ar str
Output file.
.sp
Output file for \fBgnuplot\fP, default to stdout.
.It Fl \-dont\-wait
Don't wait for keystroke between plots.
.sp
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBplot_summary\fP
option definitions.
diff --git a/contrib/ntp/scripts/plot_summary.html b/contrib/ntp/scripts/plot_summary.html
index c6ac597463a9..fc944c708e11 100644
--- a/contrib/ntp/scripts/plot_summary.html
+++ b/contrib/ntp/scripts/plot_summary.html
@@ -1,240 +1,240 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Plot_summary User&rsquo;s Manual</title>
<meta name="description" content="Plot_summary User&rsquo;s Manual">
<meta name="keywords" content="Plot_summary User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Plot_summary User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="Plot_005fsummary-User-Manual"></span><h1 class="top">Plot_summary User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>plot_summary</code> program.
-This document applies to version 4.2.8p16 of <code>plot_summary</code>.
+This document applies to version 4.2.8p17 of <code>plot_summary</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Invoking-plot_005fsummary" href="#toc-Invoking-plot_005fsummary">1 Invoking plot_summary</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; plot_summary Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-Invocation" accesskey="2">plot_summary Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking plot_summary
</td></tr>
</table>
<hr>
<span id="plot_005fsummary-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-plot_005fsummary"></span><h2 class="chapter">1 Invoking plot_summary</h2>
<span id="index-plot_005fsummary"></span>
<span id="index-plot-statistics-generated-by-summary-script"></span>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>plot_summary</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-usage" accesskey="1">plot_summary usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">plot_summary help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-directory" accesskey="2">plot_summary directory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">directory option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-identifier" accesskey="3">plot_summary identifier</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">identifier option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-peer" accesskey="4">plot_summary peer</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">peer option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-plot_002dterm" accesskey="5">plot_summary plot-term</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">plot-term option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-output_002dfile" accesskey="6">plot_summary output-file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">output-file option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-exit-status" accesskey="7">plot_summary exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="plot_005fsummary-usage"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-directory" accesskey="n" rel="next">plot_summary directory</a>, Up: <a href="#plot_005fsummary-Invocation" accesskey="u" rel="up">plot_summary Invocation</a> &nbsp; </p>
</div>
<span id="plot_005fsummary-help_002fusage-_0028_002d_002dhelp_0029"></span><h3 class="section">1.1 plot_summary help/usage (<samp>--help</samp>)</h3>
<span id="index-plot_005fsummary-help"></span>
<p>This is the automatically generated usage text for plot_summary.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p16
+<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p17
USAGE: plot_summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Where the summary files are
--identifier=str Origin of the data
--offset-limit=float Limit of absolute offset
--peer=str Peers to generate plots for
- may appear multiple times
--plot-term=str Gnuplot terminal
--output-file=str Output file
--dont-wait Don't wait for keystroke between plots
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-directory" accesskey="1">directory option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-identifier" accesskey="2">identifier option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-peer" accesskey="3">peer option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-plot_002dterm" accesskey="4">plot-term option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-output_002dfile" accesskey="5">output-file option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#plot_005fsummary-exit-status" accesskey="6">plot_summary exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="plot_005fsummary-directory"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-identifier" accesskey="n" rel="next">plot_summary identifier</a>, Previous: <a href="#plot_005fsummary-usage" accesskey="p" rel="prev">plot_summary usage</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="directory-option"></span><h4 class="subsection">1.1.1 directory option</h4>
<span id="index-plot_005fsummary_002ddirectory"></span>
<p>This is the &ldquo;where the summary files are&rdquo; option.
This option takes a string argument.
The directory where the <code>plot_summary</code> will search for the
*_summary files generated by <code>summary</code> script.
</p><hr>
<span id="plot_005fsummary-identifier"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-peer" accesskey="n" rel="next">plot_summary peer</a>, Previous: <a href="#plot_005fsummary-directory" accesskey="p" rel="prev">plot_summary directory</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="identifier-option"></span><h4 class="subsection">1.1.2 identifier option</h4>
<span id="index-plot_005fsummary_002didentifier"></span>
<p>This is the &ldquo;origin of the data&rdquo; option.
This option takes a string argument.
Where does the plotted data come from, default to string &quot;host&quot; plus
current hostname
</p><hr>
<span id="plot_005fsummary-peer"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-plot_002dterm" accesskey="n" rel="next">plot_summary plot-term</a>, Previous: <a href="#plot_005fsummary-identifier" accesskey="p" rel="prev">plot_summary identifier</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="peer-option"></span><h4 class="subsection">1.1.3 peer option</h4>
<span id="index-plot_005fsummary_002dpeer"></span>
<p>This is the &ldquo;peers to generate plots for&rdquo; option.
This option takes a string argument.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
</p><hr>
<span id="plot_005fsummary-plot_002dterm"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-output_002dfile" accesskey="n" rel="next">plot_summary output-file</a>, Previous: <a href="#plot_005fsummary-peer" accesskey="p" rel="prev">plot_summary peer</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="plot_002dterm-option"></span><h4 class="subsection">1.1.4 plot-term option</h4>
<span id="index-plot_005fsummary_002dplot_002dterm"></span>
<p>This is the &ldquo;gnuplot terminal&rdquo; option.
This option takes a string argument.
This is string is passed directly to the <code>gnuplot set terminal</code>
command. Default is <code>x11</code> if <code>DISPLAY</code> is set and
<code>dumb</code> is it&rsquo;s not&rsquo;. See output from (gnuplot -e &quot;set
terminal&quot;) for the list of available options.
</p><hr>
<span id="plot_005fsummary-output_002dfile"></span><div class="header">
<p>
Next: <a href="#plot_005fsummary-exit-status" accesskey="n" rel="next">plot_summary exit status</a>, Previous: <a href="#plot_005fsummary-plot_002dterm" accesskey="p" rel="prev">plot_summary plot-term</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="output_002dfile-option"></span><h4 class="subsection">1.1.5 output-file option</h4>
<span id="index-plot_005fsummary_002doutput_002dfile"></span>
<p>This is the &ldquo;output file&rdquo; option.
This option takes a str argument.
Output file for <code>gnuplot</code>, default to stdout.
</p><hr>
<span id="plot_005fsummary-exit-status"></span><div class="header">
<p>
Previous: <a href="#plot_005fsummary-output_002dfile" accesskey="p" rel="prev">plot_summary output-file</a>, Up: <a href="#plot_005fsummary-usage" accesskey="u" rel="up">plot_summary usage</a> &nbsp; </p>
</div>
<span id="plot_005fsummary-exit-status-1"></span><h4 class="subsection">1.1.6 plot_summary exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/plot_summary.man.in b/contrib/ntp/scripts/plot_summary.man.in
index 26a2f8dfc523..14bc3202139b 100644
--- a/contrib/ntp/scripts/plot_summary.man.in
+++ b/contrib/ntp/scripts/plot_summary.man.in
@@ -1,114 +1,114 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH plot_summary 1plot_summaryman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:37 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:37 AM by AutoGen 5.18.16
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]plot_summary\fP
\- plot statistics generated by summary script
.SH SYNOPSIS
\f\*[B-Font]plot_summary\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH "DESCRIPTION"
There is no description for this command.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-directory\f[]=\f\*[I-Font]string\f[]
Where the summary files are.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/tmp
.sp
The directory where the \fBplot_summary\fP will search for the
*_summary files generated by \fBsummary\fP script.
.TP
.NOP \f\*[B-Font]\-\-identifier\f[]=\f\*[I-Font]string\f[]
Origin of the data.
.sp
Where does the plotted data come from, default to string "host" plus
current hostname
.TP
.NOP \f\*[B-Font]\-\-offset\-limit\f[]=\f\*[I-Font]float\f[]
Limit of absolute offset.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
0.128
.sp
.TP
.NOP \f\*[B-Font]\-\-peer\f[]=\f\*[I-Font]string\f[]
Peers to generate plots for.
This option may appear an unlimited number of times.
.sp
By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
.TP
.NOP \f\*[B-Font]\-\-plot\-term\f[]=\f\*[I-Font]string\f[]
Gnuplot terminal.
.sp
This is string is passed directly to the \fBgnuplot set terminal\fP
command. Default is \fBx11\fP if \fBDISPLAY\fP is set and
\fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set
terminal") for the list of available options.
.TP
.NOP \f\*[B-Font]\-\-output\-file\f[]=\f\*[I-Font]str\f[]
Output file.
.sp
Output file for \fBgnuplot\fP, default to stdout.
.TP
.NOP \f\*[B-Font]\-\-dont\-wait\f[]
Don't wait for keystroke between plots.
.sp
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBplot_summary\fP
option definitions.
diff --git a/contrib/ntp/scripts/plot_summary.mdoc.in b/contrib/ntp/scripts/plot_summary.mdoc.in
index 1fb81452eb34..338e8e5debac 100644
--- a/contrib/ntp/scripts/plot_summary.mdoc.in
+++ b/contrib/ntp/scripts/plot_summary.mdoc.in
@@ -1,88 +1,88 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:39 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:38 AM by AutoGen 5.18.16
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm plot_summary
.Nd plot statistics generated by summary script
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh "DESCRIPTION"
There is no description for this command.
.Sh "OPTIONS"
.Bl -tag
.It Fl \-directory Ns = Ns Ar string
Where the summary files are.
The default
.Ar string
for this option is:
.ti +4
/tmp
.sp
The directory where the \fBplot_summary\fP will search for the
*_summary files generated by \fBsummary\fP script.
.It Fl \-identifier Ns = Ns Ar string
Origin of the data.
.sp
Where does the plotted data come from, default to string "host" plus
current hostname
.It Fl \-offset\-limit Ns = Ns Ar float
Limit of absolute offset.
The default
.Ar float
for this option is:
.ti +4
0.128
.sp
.It Fl \-peer Ns = Ns Ar string
Peers to generate plots for.
This option may appear an unlimited number of times.
.sp
By default the peer_summary plots are not generated. Use this option to
specify list of peers if you want to generate plots for them.
.It Fl \-plot\-term Ns = Ns Ar string
Gnuplot terminal.
.sp
This is string is passed directly to the \fBgnuplot set terminal\fP
command. Default is \fBx11\fP if \fBDISPLAY\fP is set and
\fBdumb\fP is it's not'. See output from @code(gnuplot \-e "set
terminal") for the list of available options.
.It Fl \-output\-file Ns = Ns Ar str
Output file.
.sp
Output file for \fBgnuplot\fP, default to stdout.
.It Fl \-dont\-wait
Don't wait for keystroke between plots.
.sp
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBplot_summary\fP
option definitions.
diff --git a/contrib/ntp/scripts/summary-opts b/contrib/ntp/scripts/summary-opts
index f5d962227e6d..4cb1515193d6 100644
--- a/contrib/ntp/scripts/summary-opts
+++ b/contrib/ntp/scripts/summary-opts
@@ -1,69 +1,69 @@
# EDIT THIS FILE WITH CAUTION (summary-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 07:15:08 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:35 AM by AutoGen 5.18.16
# From the definitions summary-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'directory' => '/var/log/ntp',
'end-date' => '',
'output-directory' => '/tmp',
'peer-dist-limit' => '400',
'skip-time-steps' => '3600',
'start-date' => '19700101',
'help' => '', 'more-help' => ''
};
my $argument = '';
my $ret = GetOptionsFromArray($args, $opts, (
'directory=s', 'end-date=i', 'output-directory=s',
'peer-dist-limit=f', 'skip-time-steps=f', 'start-date=i',
'help|?', 'more-help'));
$usage = <<'USAGE';
-summary - compute various stastics from NTP stat files - Ver. 4.2.8p16
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p17
USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Directory containing stat files
--end-date=num End date
--output-directory=str Output directory
--peer-dist-limit=float Peer dist limit
--skip-time-steps=float Ignore time offsets larger that this
--start-date=num Start date
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/summary.1summaryman b/contrib/ntp/scripts/summary.1summaryman
index bc68596f2e45..282e7640fa3b 100644
--- a/contrib/ntp/scripts/summary.1summaryman
+++ b/contrib/ntp/scripts/summary.1summaryman
@@ -1,123 +1,123 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH summary 1summaryman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:42 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:41 AM by AutoGen 5.18.16
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]summary\fP
\- compute various stastics from NTP stat files
.SH SYNOPSIS
\f\*[B-Font]summary\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
.sp
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-directory\f[]=\f\*[I-Font]string\f[]
Directory containing stat files.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/var/log/ntp
.sp
The directory where \fBntpd\fP will search for .stat files generated
by \fBntpd\fP.
.TP
.NOP \f\*[B-Font]\-\-end\-date\f[]=\f\*[I-Font]number\f[]
End date.
This option takes an integer number as its argument.
.sp
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use \fBdate \-u +%Y%m%d\fP)
to get the timestamp.
.TP
.NOP \f\*[B-Font]\-\-output\-directory\f[]=\f\*[I-Font]str\f[]
Output directory.
The default
\f\*[I-Font]str\f[]
for this option is:
.ti +4
/tmp
.sp
The output directory \fBsummary\fP will write all output files to.
.TP
.NOP \f\*[B-Font]\-\-peer\-dist\-limit\f[]=\f\*[I-Font]float\f[]
Peer dist limit.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
400
.sp
.TP
.NOP \f\*[B-Font]\-\-skip\-time\-steps\f[]=\f\*[I-Font]float\f[]
Ignore time offsets larger that this.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
3600
.sp
.TP
.NOP \f\*[B-Font]\-\-start\-date\f[]=\f\*[I-Font]num\f[]
Start date.
This option takes an integer number as its argument.
The default
\f\*[I-Font]num\f[]
for this option is:
.ti +4
19700101
.sp
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBsummary\fP
option definitions.
diff --git a/contrib/ntp/scripts/summary.1summarymdoc b/contrib/ntp/scripts/summary.1summarymdoc
index 9817ab6dc8f0..0c83fddc9219 100644
--- a/contrib/ntp/scripts/summary.1summarymdoc
+++ b/contrib/ntp/scripts/summary.1summarymdoc
@@ -1,98 +1,98 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:43 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:43 AM by AutoGen 5.18.16
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm summary
.Nd compute various stastics from NTP stat files
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.sp
.Sh "OPTIONS"
.Bl -tag
.It Fl \-directory Ns = Ns Ar string
Directory containing stat files.
The default
.Ar string
for this option is:
.ti +4
/var/log/ntp
.sp
The directory where \fBntpd\fP will search for .stat files generated
by \fBntpd\fP.
.It Fl \-end\-date Ns = Ns Ar number
End date.
This option takes an integer number as its argument.
.sp
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use \fBdate \-u +%Y%m%d\fP)
to get the timestamp.
.It Fl \-output\-directory Ns = Ns Ar str
Output directory.
The default
.Ar str
for this option is:
.ti +4
/tmp
.sp
The output directory \fBsummary\fP will write all output files to.
.It Fl \-peer\-dist\-limit Ns = Ns Ar float
Peer dist limit.
The default
.Ar float
for this option is:
.ti +4
400
.sp
.It Fl \-skip\-time\-steps Ns = Ns Ar float
Ignore time offsets larger that this.
The default
.Ar float
for this option is:
.ti +4
3600
.sp
.It Fl \-start\-date Ns = Ns Ar num
Start date.
This option takes an integer number as its argument.
The default
.Ar num
for this option is:
.ti +4
19700101
.sp
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBsummary\fP
option definitions.
diff --git a/contrib/ntp/scripts/summary.html b/contrib/ntp/scripts/summary.html
index 6d77556cdb1d..6ce82201c38e 100644
--- a/contrib/ntp/scripts/summary.html
+++ b/contrib/ntp/scripts/summary.html
@@ -1,217 +1,217 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Summary User&rsquo;s Manual</title>
<meta name="description" content="Summary User&rsquo;s Manual">
<meta name="keywords" content="Summary User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Summary User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="Summary-User-Manual"></span><h1 class="top">Summary User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>summary</code> program.
-This document applies to version 4.2.8p16 of <code>summary</code>.
+This document applies to version 4.2.8p17 of <code>summary</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Invoking-summary" href="#toc-Invoking-summary">1 Invoking summary</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; summary Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-Invocation" accesskey="2">summary Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking summary
</td></tr>
</table>
<hr>
<span id="summary-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-summary"></span><h2 class="chapter">1 Invoking summary</h2>
<span id="index-summary"></span>
<span id="index-compute-various-stastics-from-NTP-stat-files"></span>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>summary</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#summary-usage" accesskey="1">summary usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">summary help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-directory" accesskey="2">summary directory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">directory option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-end_002ddate" accesskey="3">summary end-date</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">end-date option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-output_002ddirectory" accesskey="4">summary output-directory</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">output-directory option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-start_002ddate" accesskey="5">summary start-date</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">start-date option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-exit-status" accesskey="6">summary exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
</table>
<hr>
<span id="summary-usage"></span><div class="header">
<p>
Next: <a href="#summary-directory" accesskey="n" rel="next">summary directory</a>, Up: <a href="#summary-Invocation" accesskey="u" rel="up">summary Invocation</a> &nbsp; </p>
</div>
<span id="summary-help_002fusage-_0028_002d_002dhelp_0029"></span><h3 class="section">1.1 summary help/usage (<samp>--help</samp>)</h3>
<span id="index-summary-help"></span>
<p>This is the automatically generated usage text for summary.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p16
+<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p17
USAGE: summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Directory containing stat files
--end-date=num End date
--output-directory=str Output directory
--peer-dist-limit=float Peer dist limit
--skip-time-steps=float Ignore time offsets larger that this
--start-date=num Start date
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
</pre></div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#summary-directory" accesskey="1">directory option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-end_002ddate" accesskey="2">end-date option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-output_002ddirectory" accesskey="3">output-directory option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-start_002ddate" accesskey="4">start-date option</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#summary-exit-status" accesskey="5">summary exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="summary-directory"></span><div class="header">
<p>
Next: <a href="#summary-end_002ddate" accesskey="n" rel="next">summary end-date</a>, Previous: <a href="#summary-usage" accesskey="p" rel="prev">summary usage</a>, Up: <a href="#summary-usage" accesskey="u" rel="up">summary usage</a> &nbsp; </p>
</div>
<span id="directory-option"></span><h4 class="subsection">1.1.1 directory option</h4>
<span id="index-summary_002ddirectory"></span>
<p>This is the &ldquo;directory containing stat files&rdquo; option.
This option takes a string argument.
The directory where <code>ntpd</code> will search for .stat files generated
by <code>ntpd</code>.
</p><hr>
<span id="summary-end_002ddate"></span><div class="header">
<p>
Next: <a href="#summary-output_002ddirectory" accesskey="n" rel="next">summary output-directory</a>, Previous: <a href="#summary-directory" accesskey="p" rel="prev">summary directory</a>, Up: <a href="#summary-usage" accesskey="u" rel="up">summary usage</a> &nbsp; </p>
</div>
<span id="end_002ddate-option"></span><h4 class="subsection">1.1.2 end-date option</h4>
<span id="index-summary_002dend_002ddate"></span>
<p>This is the &ldquo;end date&rdquo; option.
This option takes a number argument.
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use <code>date -u +%Y%m%d</code>)
to get the timestamp.
</p><hr>
<span id="summary-output_002ddirectory"></span><div class="header">
<p>
Next: <a href="#summary-start_002ddate" accesskey="n" rel="next">summary start-date</a>, Previous: <a href="#summary-end_002ddate" accesskey="p" rel="prev">summary end-date</a>, Up: <a href="#summary-usage" accesskey="u" rel="up">summary usage</a> &nbsp; </p>
</div>
<span id="output_002ddirectory-option"></span><h4 class="subsection">1.1.3 output-directory option</h4>
<span id="index-summary_002doutput_002ddirectory"></span>
<p>This is the &ldquo;output directory&rdquo; option.
This option takes a str argument.
The output directory <code>summary</code> will write all output files to.
</p><hr>
<span id="summary-start_002ddate"></span><div class="header">
<p>
Next: <a href="#summary-exit-status" accesskey="n" rel="next">summary exit status</a>, Previous: <a href="#summary-output_002ddirectory" accesskey="p" rel="prev">summary output-directory</a>, Up: <a href="#summary-usage" accesskey="u" rel="up">summary usage</a> &nbsp; </p>
</div>
<span id="start_002ddate-option"></span><h4 class="subsection">1.1.4 start-date option</h4>
<span id="index-summary_002dstart_002ddate"></span>
<p>This is the &ldquo;start date&rdquo; option.
This option takes a num argument.
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
</p><hr>
<span id="summary-exit-status"></span><div class="header">
<p>
Previous: <a href="#summary-start_002ddate" accesskey="p" rel="prev">summary start-date</a>, Up: <a href="#summary-usage" accesskey="u" rel="up">summary usage</a> &nbsp; </p>
</div>
<span id="summary-exit-status-1"></span><h4 class="subsection">1.1.5 summary exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/summary.man.in b/contrib/ntp/scripts/summary.man.in
index bc68596f2e45..282e7640fa3b 100644
--- a/contrib/ntp/scripts/summary.man.in
+++ b/contrib/ntp/scripts/summary.man.in
@@ -1,123 +1,123 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH summary 1summaryman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:42 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:41 AM by AutoGen 5.18.16
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]summary\fP
\- compute various stastics from NTP stat files
.SH SYNOPSIS
\f\*[B-Font]summary\fP
[\f\*[B-Font]\-\-option-name\f[]]
[\f\*[B-Font]\-\-option-name\f[] \f\*[I-Font]value\f[]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
.sp
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-\-directory\f[]=\f\*[I-Font]string\f[]
Directory containing stat files.
The default
\f\*[I-Font]string\f[]
for this option is:
.ti +4
/var/log/ntp
.sp
The directory where \fBntpd\fP will search for .stat files generated
by \fBntpd\fP.
.TP
.NOP \f\*[B-Font]\-\-end\-date\f[]=\f\*[I-Font]number\f[]
End date.
This option takes an integer number as its argument.
.sp
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use \fBdate \-u +%Y%m%d\fP)
to get the timestamp.
.TP
.NOP \f\*[B-Font]\-\-output\-directory\f[]=\f\*[I-Font]str\f[]
Output directory.
The default
\f\*[I-Font]str\f[]
for this option is:
.ti +4
/tmp
.sp
The output directory \fBsummary\fP will write all output files to.
.TP
.NOP \f\*[B-Font]\-\-peer\-dist\-limit\f[]=\f\*[I-Font]float\f[]
Peer dist limit.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
400
.sp
.TP
.NOP \f\*[B-Font]\-\-skip\-time\-steps\f[]=\f\*[I-Font]float\f[]
Ignore time offsets larger that this.
The default
\f\*[I-Font]float\f[]
for this option is:
.ti +4
3600
.sp
.TP
.NOP \f\*[B-Font]\-\-start\-date\f[]=\f\*[I-Font]num\f[]
Start date.
This option takes an integer number as its argument.
The default
\f\*[I-Font]num\f[]
for this option is:
.ti +4
19700101
.sp
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
.TP
.NOP \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBsummary\fP
option definitions.
diff --git a/contrib/ntp/scripts/summary.mdoc.in b/contrib/ntp/scripts/summary.mdoc.in
index 9817ab6dc8f0..0c83fddc9219 100644
--- a/contrib/ntp/scripts/summary.mdoc.in
+++ b/contrib/ntp/scripts/summary.mdoc.in
@@ -1,98 +1,98 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:43 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:43 AM by AutoGen 5.18.16
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm summary
.Nd compute various stastics from NTP stat files
.Sh SYNOPSIS
.Nm
.Op Fl \-option\-name
.Op Fl \-option\-name Ar value
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.sp
.Sh "OPTIONS"
.Bl -tag
.It Fl \-directory Ns = Ns Ar string
Directory containing stat files.
The default
.Ar string
for this option is:
.ti +4
/var/log/ntp
.sp
The directory where \fBntpd\fP will search for .stat files generated
by \fBntpd\fP.
.It Fl \-end\-date Ns = Ns Ar number
End date.
This option takes an integer number as its argument.
.sp
Process all files with the date suffix less or equal to value of this
option. Defaults to today minus one day (Use \fBdate \-u +%Y%m%d\fP)
to get the timestamp.
.It Fl \-output\-directory Ns = Ns Ar str
Output directory.
The default
.Ar str
for this option is:
.ti +4
/tmp
.sp
The output directory \fBsummary\fP will write all output files to.
.It Fl \-peer\-dist\-limit Ns = Ns Ar float
Peer dist limit.
The default
.Ar float
for this option is:
.ti +4
400
.sp
.It Fl \-skip\-time\-steps Ns = Ns Ar float
Ignore time offsets larger that this.
The default
.Ar float
for this option is:
.ti +4
3600
.sp
.It Fl \-start\-date Ns = Ns Ar num
Start date.
This option takes an integer number as its argument.
The default
.Ar num
for this option is:
.ti +4
19700101
.sp
Process all files with the date suffix more or equal to value of
this option. Defaults to 197000101.
.It Fl \-help
Display usage information and exit.
.It Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBsummary\fP
option definitions.
diff --git a/contrib/ntp/scripts/update-leap/invoke-update-leap.texi b/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
index d4d92d951da3..bc80b5a40936 100644
--- a/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
+++ b/contrib/ntp/scripts/update-leap/invoke-update-leap.texi
@@ -1,244 +1,244 @@
@node update-leap Invocation
@section Invoking update-leap
@pindex update-leap
@cindex leap-seconds file manager/updater
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-update-leap.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:32 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:31 AM by AutoGen 5.18.16
# From the definitions update-leap-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{update-leap}
will validate the file currently on the local system
and if necessary, updates leap-second definition file.
Ordinarily, the file is found using the "leapfile" directive in
@code{ntp.conf(5)}.
However, an alternate location can be specified on the command line.
If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
If the current file is acceptable, no download or restart occurs.
-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{update-leap} program.
@menu
* update-leap usage:: update-leap help/usage (@option{--help})
* update-leap source-url:: source-url option (-s)
* update-leap ipv4:: ipv4 option (-4)
* update-leap destination:: destination option (-d)
* update-leap expiration:: expiration option (-e)
* update-leap ntp-conf-file:: ntp-conf-file option (-f)
* update-leap force-update:: force-update option (-F)
* update-leap exit status:: exit status
* update-leap Usage:: Usage
* update-leap Authors:: Authors
@end menu
@node update-leap usage
@subsection update-leap help/usage (@option{--help})
@cindex update-leap help
This is the automatically generated usage text for update-leap.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
Usage: update-leap [options]
Verifies and if necessary, updates leap-second definition file
All arguments are optional: Default (or current value) shown:
-C Absolute path to CA Cert (see SSL/TLS Considerations)
-D Path to a CAdir (see SSL/TLS Considerations)
-e Specify how long (in days) before expiration the file is to be
refreshed. Note that larger values imply more frequent refreshes.
60
-F Force update even if current file is OK and not close to expiring.
-f Absolute path ntp.conf file (default /etc/ntp.conf)
/etc/ntp.conf
-h show help
-i Specify number of minutes between retries
10
-L Absolute path to leapfile on the local system
(overrides value in ntp.conf)
-l Specify the syslog(3) facility for logging
LOG_USER
-q Only report errors (cannot be used with -v)
-r Specify number of attempts to retrieve file
6
-s Send output to syslog(3) - implied if STDOUT has no tty or redirected
-t Send output to terminal - implied if STDOUT attached to terminal
-u Specify the URL of the master copy to download
https://www.ietf.org/timezones/data/leap-seconds.list
-v Verbose - show debug messages (cannot be used with -q)
The following options are not (yet) implemented in the perl version:
-4 Use only IPv4
-6 Use only IPv6
-c Command to restart NTP after installing a new file
<none> - ntpd checks file daily
-p 4|6
Prefer IPv4 or IPv6 (as specified) addresses, but use either
update-leap will validate the file currently on the local system.
Ordinarily, the leapfile is found using the 'leapfile' directive in
/etc/ntp.conf. However, an alternate location can be specified on the
command line with the -L flag.
If the leapfile does not exist, is not valid, has expired, or is
expiring soon, a new copy will be downloaded. If the new copy is
valid, it is installed.
If the current file is acceptable, no download or restart occurs.
This can be run as a cron job. As the file is rarely updated, and
leap seconds are announced at least one month in advance (usually
longer), it need not be run more frequently than about once every
three weeks.
SSL/TLS Considerations
-----------------------
The perl modules can usually locate the CA certificate used to verify
the peer's identity.
On BSDs, the default is typically the file /etc/ssl/certs.pem. On
Linux, the location is typically a path to a CAdir - a directory of
symlinks named according to a hash of the certificates' subject names.
The -C or -D options are available to pass in a location if no CA cert
is found in the default location.
External Dependencies
---------------------
The following perl modules are required:
HTTP::Tiny - version >= 0.056
IO::Socket::SSL - version >= 1.56
NET::SSLeay - version >= 1.49
Version: 1.004
@end example
@exampleindent 4
@node update-leap source-url
@subsection source-url option (-s)
@cindex update-leap-source-url
This is the ``the url of the master copy of the leapseconds file'' option.
This option takes a string argument.
Specify the URL of the master copy to download
$LEAPSRC
@node update-leap ipv4
@subsection ipv4 option (-4)
@cindex update-leap-ipv4
This is the ``use only ipv4 addresses for dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv6.
@end itemize
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
};
flag = {
name = ipv6;
flags-cant = ipv4, prefer;
value = 6;
descrip = "Use only IPv6 addresses for DNS name resolution";
doc = <<- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
};
flag = {
name = prefer;
flags-cant = ipv4, ipv6;
value = p;
arg-type = keyword;
keyword = 4, 6;
descrip = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
doc = <<- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
@node update-leap destination
@subsection destination option (-d)
@cindex update-leap-destination
This is the ``filename on the local system'' option.
This option takes a string argument @file{float}.
The name to use to store the leapfile on the local system.
$LEAPFILE
@node update-leap expiration
@subsection expiration option (-e)
@cindex update-leap-expiration
This is the ``refresh the leapfile this long before it expires'' option.
This option takes a string argument.
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "-e 60 days" Note that larger values
imply more frequent refreshes.
"$PREFETCH"
@node update-leap ntp-conf-file
@subsection ntp-conf-file option (-f)
@cindex update-leap-ntp-conf-file
This is the ``location of the ntp.conf file'' option.
This option takes a string argument.
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
@node update-leap force-update
@subsection force-update option (-F)
@cindex update-leap-force-update
This is the ``force update of the leapfile'' option.
Force update even if current file is OK and not close to expiring.
@node update-leap exit status
@subsection update-leap exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@end table
@node update-leap Usage
@subsection update-leap Usage
@node update-leap Authors
@subsection update-leap Authors
diff --git a/contrib/ntp/scripts/update-leap/update-leap-opts b/contrib/ntp/scripts/update-leap/update-leap-opts
index a29dd1155c48..2aab11deb6a1 100644
--- a/contrib/ntp/scripts/update-leap/update-leap-opts
+++ b/contrib/ntp/scripts/update-leap/update-leap-opts
@@ -1,72 +1,72 @@
# EDIT THIS FILE WITH CAUTION (update-leap-opts)
#
-# It has been AutoGen-ed May 31, 2023 at 08:04:36 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:39:35 AM by AutoGen 5.18.16
# From the definitions update-leap-opts.def
# and the template file perlopt
use Getopt::Long qw(GetOptionsFromArray);
Getopt::Long::Configure(qw(no_auto_abbrev no_ignore_case_always));
my $usage;
sub usage {
my ($ret) = @_;
print STDERR $usage;
exit $ret;
}
sub paged_usage {
my ($ret) = @_;
my $pager = $ENV{PAGER} || '(less || more)';
open STDOUT, "| $pager" or die "Can't fork a pager: $!";
print $usage;
exit $ret;
}
sub processOptions {
my $args = shift;
my $opts = {
'source-url' => '',
'ipv4' => '',
'destination' => '',
'expiration' => '',
'ntp-conf-file' => '',
'force-update' => '',
'dont-wait' => '',
'help' => '', 'more-help' => ''
};
my $argument = '';
my $ret = GetOptionsFromArray($args, $opts, (
'source-url|s=s', 'ipv4|4', 'destination|d=f',
'expiration|e=s', 'ntp-conf-file|f=s', 'force-update|F',
'dont-wait',
'help|?', 'more-help'));
$usage = <<'USAGE';
-update-leap - leap-seconds file manager/updater - Ver. 4.2.8p16
+update-leap - leap-seconds file manager/updater - Ver. 4.2.8p17
USAGE: update-leap [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
-s, --source-url=str The URL of the master copy of the leapseconds file
-4, --ipv4 Use only IPv4 addresses for DNS name resolution
-d, --destination=float Filename on the local system
-e, --expiration=str Refresh the leapfile this long before it expires
-f, --ntp-conf-file=str Location of the ntp.conf file
-F, --force-update Force update of the leapfile
--dont-wait Don't wait for keystroke between plots
-?, --help Display usage information and exit
--more-help Pass the extended usage text through a pager
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
USAGE
usage(0) if $opts->{'help'};
paged_usage(0) if $opts->{'more-help'};
$_[0] = $opts;
return $ret;
}
END { close STDOUT };
diff --git a/contrib/ntp/scripts/update-leap/update-leap.1update-leapman b/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
index 7feccfafcbe8..83871441e444 100644
--- a/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
+++ b/contrib/ntp/scripts/update-leap/update-leap.1update-leapman
@@ -1,169 +1,169 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH update-leap 1update-leapman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH update-leap 1update-leapman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:34 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:33 AM by AutoGen 5.18.16
.\" From the definitions update-leap-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]update-leap\fP
\- leap-seconds file manager/updater
.SH SYNOPSIS
\f\*[B-Font]update-leap\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]update-leap\fP
will validate the file currently on the local system
and if necessary, updates leap-second definition file.
.sp \n(Ppu
.ne 2
Ordinarily, the file is found using the "leapfile" directive in
\fCntp.conf\f[]\fR(5)\f[].
However, an alternate location can be specified on the command line.
.sp \n(Ppu
.ne 2
If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
.sp \n(Ppu
.ne 2
If the current file is acceptable, no download or restart occurs.
.sp \n(Ppu
.ne 2
-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-source\-url\f[]=\f\*[I-Font]string\f[]
The URL of the master copy of the leapseconds file.
.sp
Specify the URL of the master copy to download
$LEAPSRC
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Use only IPv4 addresses for DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = ipv6;
flags-cant = ipv4, prefer;
value = 6;
descrip = "Use only IPv6 addresses for DNS name resolution";
doc = <<- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = prefer;
flags-cant = ipv4, ipv6;
value = p;
arg-type = keyword;
keyword = 4, 6;
descrip = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
doc = <<- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
.TP
.NOP \f\*[B-Font]\-d\f[] \f\*[I-Font]float\f[], \f\*[B-Font]\-\-destination\f[]=\f\*[I-Font]float\f[]
Filename on the local system.
.sp
The name to use to store the leapfile on the local system.
$LEAPFILE
.TP
.NOP \f\*[B-Font]\-e\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-expiration\f[]=\f\*[I-Font]string\f[]
Refresh the leapfile this long before it expires.
.sp
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "-e 60 days" Note that larger values
imply more frequent refreshes.
"$PREFETCH"
.TP
.NOP \f\*[B-Font]\-f\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-ntp\-conf\-file\f[]=\f\*[I-Font]string\f[]
Location of the ntp.conf file.
.sp
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
.TP
.NOP \f\*[B-Font]\-F\f[], \f\*[B-Font]\-\-force\-update\f[]
Force update of the leapfile.
.sp
Force update even if current file is OK and not close to expiring.
.TP
.NOP \f\*[B-Font]\-\-dont\-wait\f[]
Don't wait for keystroke between plots.
.sp
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH USAGE
Usage stuff
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Timothe Litt"
.br
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBupdate-leap\fP
option definitions.
diff --git a/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc b/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
index ba971fe17a0a..449a0840a946 100644
--- a/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
+++ b/contrib/ntp/scripts/update-leap/update-leap.1update-leapmdoc
@@ -1,134 +1,134 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:15:06 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:30 AM by AutoGen 5.18.16
.\" From the definitions update-leap-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm update-leap
.Nd leap-seconds file manager/updater
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
will validate the file currently on the local system
and if necessary, updates leap\-second definition file.
.Pp
Ordinarily, the file is found using the "leapfile" directive in
.Xr ntp.conf 5 .
However, an alternate location can be specified on the command line.
.Pp
If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
.Pp
If the current file is acceptable, no download or restart occurs.
.Pp
-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron\-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
.Sh "OPTIONS"
.Bl -tag
.It Fl s Ar string , Fl \-source\-url Ns = Ns Ar string
The URL of the master copy of the leapseconds file.
.sp
Specify the URL of the master copy to download
$LEAPSRC
.It Fl 4 , Fl \-ipv4
Use only IPv4 addresses for DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = ipv6;
flags\-cant = ipv4, prefer;
value = 6;
descrip = "Use only IPv6 addresses for DNS name resolution";
doc = <<\- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = prefer;
flags\-cant = ipv4, ipv6;
value = p;
arg\-type = keyword;
keyword = 4, 6;
descrip = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
doc = <<\- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
.It Fl d Ar float , Fl \-destination Ns = Ns Ar float
Filename on the local system.
.sp
The name to use to store the leapfile on the local system.
$LEAPFILE
.It Fl e Ar string , Fl \-expiration Ns = Ns Ar string
Refresh the leapfile this long before it expires.
.sp
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "\-e 60 days" Note that larger values
imply more frequent refreshes.
"$PREFETCH"
.It Fl f Ar string , Fl \-ntp\-conf\-file Ns = Ns Ar string
Location of the ntp.conf file.
.sp
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
.It Fl F , Fl \-force\-update
Force update of the leapfile.
.sp
Force update even if current file is OK and not close to expiring.
.It Fl \-dont\-wait
Don't wait for keystroke between plots.
.sp
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh USAGE
Usage stuff
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Timothe Litt"
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBupdate\-leap\fP
option definitions.
diff --git a/contrib/ntp/scripts/update-leap/update-leap.html b/contrib/ntp/scripts/update-leap/update-leap.html
index 8ebc3294a313..afdc9977d604 100644
--- a/contrib/ntp/scripts/update-leap/update-leap.html
+++ b/contrib/ntp/scripts/update-leap/update-leap.html
@@ -1,364 +1,364 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>update-leap User&rsquo;s Manual</title>
<meta name="description" content="update-leap User&rsquo;s Manual">
<meta name="keywords" content="update-leap User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">update-leap User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<h1 class="node-heading">Top</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>update-leap</code> program.
</p>
-<p>This document applies to version 4.2.8p16 of <code>update-leap</code>.
+<p>This document applies to version 4.2.8p17 of <code>update-leap</code>.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<li><a id="stoc-Invoking-update_002dleap" href="#toc-Invoking-update_002dleap">1 Invoking update-leap</a></li>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; update-leap Description</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-Invocation" accesskey="2">update-leap Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking update-leap
</td></tr>
</table>
<hr>
<span id="update_002dleap-Invocation"></span><div class="header">
<p>
Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Invoking-update_002dleap"></span><h3 class="section">1 Invoking update-leap</h3>
<span id="index-update_002dleap"></span>
<span id="index-leap_002dseconds-file-manager_002fupdater"></span>
<p><code>update-leap</code>
will validate the file currently on the local system
and if necessary, updates leap-second definition file.
</p>
<p>Ordinarily, the file is found using the &quot;leapfile&quot; directive in
<code>ntp.conf(5)</code>.
However, an alternate location can be specified on the command line.
</p>
<p>If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
</p>
<p>If the current file is acceptable, no download or restart occurs.
</p>
<p>-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>update-leap</code> program.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-usage" accesskey="1">update-leap usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">update-leap help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-source_002durl" accesskey="2">update-leap source-url</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">source-url option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-ipv4" accesskey="3">update-leap ipv4</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv4 option (-4)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-destination" accesskey="4">update-leap destination</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">destination option (-d)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-expiration" accesskey="5">update-leap expiration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">expiration option (-e)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-ntp_002dconf_002dfile" accesskey="6">update-leap ntp-conf-file</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntp-conf-file option (-f)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-force_002dupdate" accesskey="7">update-leap force-update</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">force-update option (-F)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-exit-status" accesskey="8">update-leap exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-Usage" accesskey="9">update-leap Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#update_002dleap-Authors">update-leap Authors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Authors
</td></tr>
</table>
<hr>
<span id="update_002dleap-usage"></span><div class="header">
<p>
Next: <a href="#update_002dleap-source_002durl" accesskey="n" rel="next">update-leap source-url</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="update_002dleap-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1 update-leap help/usage (<samp>--help</samp>)</h4>
<span id="index-update_002dleap-help"></span>
<p>This is the automatically generated usage text for update-leap.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
<pre class="example">
Usage: update-leap [options]
Verifies and if necessary, updates leap-second definition file
All arguments are optional: Default (or current value) shown:
-C Absolute path to CA Cert (see SSL/TLS Considerations)
-D Path to a CAdir (see SSL/TLS Considerations)
-e Specify how long (in days) before expiration the file is to be
refreshed. Note that larger values imply more frequent refreshes.
60
-F Force update even if current file is OK and not close to expiring.
-f Absolute path ntp.conf file (default /etc/ntp.conf)
/etc/ntp.conf
-h show help
-i Specify number of minutes between retries
10
-L Absolute path to leapfile on the local system
(overrides value in ntp.conf)
-l Specify the syslog(3) facility for logging
LOG_USER
-q Only report errors (cannot be used with -v)
-r Specify number of attempts to retrieve file
6
-s Send output to syslog(3) - implied if STDOUT has no tty or redirected
-t Send output to terminal - implied if STDOUT attached to terminal
-u Specify the URL of the master copy to download
https://www.ietf.org/timezones/data/leap-seconds.list
-v Verbose - show debug messages (cannot be used with -q)
The following options are not (yet) implemented in the perl version:
-4 Use only IPv4
-6 Use only IPv6
-c Command to restart NTP after installing a new file
&lt;none&gt; - ntpd checks file daily
-p 4|6
Prefer IPv4 or IPv6 (as specified) addresses, but use either
update-leap will validate the file currently on the local system.
Ordinarily, the leapfile is found using the 'leapfile' directive in
/etc/ntp.conf. However, an alternate location can be specified on the
command line with the -L flag.
If the leapfile does not exist, is not valid, has expired, or is
expiring soon, a new copy will be downloaded. If the new copy is
valid, it is installed.
If the current file is acceptable, no download or restart occurs.
This can be run as a cron job. As the file is rarely updated, and
leap seconds are announced at least one month in advance (usually
longer), it need not be run more frequently than about once every
three weeks.
SSL/TLS Considerations
-----------------------
The perl modules can usually locate the CA certificate used to verify
the peer's identity.
On BSDs, the default is typically the file /etc/ssl/certs.pem. On
Linux, the location is typically a path to a CAdir - a directory of
symlinks named according to a hash of the certificates' subject names.
The -C or -D options are available to pass in a location if no CA cert
is found in the default location.
External Dependencies
---------------------
The following perl modules are required:
HTTP::Tiny - version &gt;= 0.056
IO::Socket::SSL - version &gt;= 1.56
NET::SSLeay - version &gt;= 1.49
Version: 1.004
</pre></div>
<hr>
<span id="update_002dleap-source_002durl"></span><div class="header">
<p>
Next: <a href="#update_002dleap-ipv4" accesskey="n" rel="next">update-leap ipv4</a>, Previous: <a href="#update_002dleap-usage" accesskey="p" rel="prev">update-leap usage</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="source_002durl-option-_0028_002ds_0029"></span><h4 class="subsection">1.2 source-url option (-s)</h4>
<span id="index-update_002dleap_002dsource_002durl"></span>
<p>This is the &ldquo;the url of the master copy of the leapseconds file&rdquo; option.
This option takes a string argument.
Specify the URL of the master copy to download
$LEAPSRC
</p><hr>
<span id="update_002dleap-ipv4"></span><div class="header">
<p>
Next: <a href="#update_002dleap-destination" accesskey="n" rel="next">update-leap destination</a>, Previous: <a href="#update_002dleap-source_002durl" accesskey="p" rel="prev">update-leap source-url</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="ipv4-option-_0028_002d4_0029"></span><h4 class="subsection">1.3 ipv4 option (-4)</h4>
<span id="index-update_002dleap_002dipv4"></span>
<p>This is the &ldquo;use only ipv4 addresses for dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv6.
</li></ul>
<p>Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
;
</p>
<p>flag =
name = ipv6;
flags-cant = ipv4, prefer;
value = 6;
descrip = &quot;Use only IPv6 addresses for DNS name resolution&quot;;
doc = &lt;&lt;- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
;
</p>
<p>flag =
name = prefer;
flags-cant = ipv4, ipv6;
value = p;
arg-type = keyword;
keyword = 4, 6;
descrip = &rsquo;Prefer IPv4 or IPv6 (as specified) addresses, but use either&rsquo;;
doc = &lt;&lt;- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
</p><hr>
<span id="update_002dleap-destination"></span><div class="header">
<p>
Next: <a href="#update_002dleap-expiration" accesskey="n" rel="next">update-leap expiration</a>, Previous: <a href="#update_002dleap-ipv4" accesskey="p" rel="prev">update-leap ipv4</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="destination-option-_0028_002dd_0029"></span><h4 class="subsection">1.4 destination option (-d)</h4>
<span id="index-update_002dleap_002ddestination"></span>
<p>This is the &ldquo;filename on the local system&rdquo; option.
This option takes a string argument <samp>float</samp>.
The name to use to store the leapfile on the local system.
$LEAPFILE
</p><hr>
<span id="update_002dleap-expiration"></span><div class="header">
<p>
Next: <a href="#update_002dleap-ntp_002dconf_002dfile" accesskey="n" rel="next">update-leap ntp-conf-file</a>, Previous: <a href="#update_002dleap-destination" accesskey="p" rel="prev">update-leap destination</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="expiration-option-_0028_002de_0029"></span><h4 class="subsection">1.5 expiration option (-e)</h4>
<span id="index-update_002dleap_002dexpiration"></span>
<p>This is the &ldquo;refresh the leapfile this long before it expires&rdquo; option.
This option takes a string argument.
Specify how long before expiration the file is to be refreshed
Units are required, e.g. &quot;-e 60 days&quot; Note that larger values
imply more frequent refreshes.
&quot;$PREFETCH&quot;
</p><hr>
<span id="update_002dleap-ntp_002dconf_002dfile"></span><div class="header">
<p>
Next: <a href="#update_002dleap-force_002dupdate" accesskey="n" rel="next">update-leap force-update</a>, Previous: <a href="#update_002dleap-expiration" accesskey="p" rel="prev">update-leap expiration</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dconf_002dfile-option-_0028_002df_0029"></span><h4 class="subsection">1.6 ntp-conf-file option (-f)</h4>
<span id="index-update_002dleap_002dntp_002dconf_002dfile"></span>
<p>This is the &ldquo;location of the ntp.conf file&rdquo; option.
This option takes a string argument.
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
</p><hr>
<span id="update_002dleap-force_002dupdate"></span><div class="header">
<p>
Next: <a href="#update_002dleap-exit-status" accesskey="n" rel="next">update-leap exit status</a>, Previous: <a href="#update_002dleap-ntp_002dconf_002dfile" accesskey="p" rel="prev">update-leap ntp-conf-file</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="force_002dupdate-option-_0028_002dF_0029"></span><h4 class="subsection">1.7 force-update option (-F)</h4>
<span id="index-update_002dleap_002dforce_002dupdate"></span>
<p>This is the &ldquo;force update of the leapfile&rdquo; option.
Force update even if current file is OK and not close to expiring.
</p><hr>
<span id="update_002dleap-exit-status"></span><div class="header">
<p>
Next: <a href="#update_002dleap-Usage" accesskey="n" rel="next">update-leap Usage</a>, Previous: <a href="#update_002dleap-force_002dupdate" accesskey="p" rel="prev">update-leap force-update</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="update_002dleap-exit-status-1"></span><h4 class="subsection">1.8 update-leap exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
</dl>
<hr>
<span id="update_002dleap-Usage"></span><div class="header">
<p>
Next: <a href="#update_002dleap-Authors" accesskey="n" rel="next">update-leap Authors</a>, Previous: <a href="#update_002dleap-exit-status" accesskey="p" rel="prev">update-leap exit status</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="update_002dleap-Usage-1"></span><h4 class="subsection">1.9 update-leap Usage</h4>
<hr>
<span id="update_002dleap-Authors"></span><div class="header">
<p>
Previous: <a href="#update_002dleap-Usage" accesskey="p" rel="prev">update-leap Usage</a>, Up: <a href="#update_002dleap-Invocation" accesskey="u" rel="up">update-leap Invocation</a> &nbsp; </p>
</div>
<span id="update_002dleap-Authors-1"></span><h4 class="subsection">1.10 update-leap Authors</h4>
<hr>
</body>
</html>
diff --git a/contrib/ntp/scripts/update-leap/update-leap.man.in b/contrib/ntp/scripts/update-leap/update-leap.man.in
index 7feccfafcbe8..83871441e444 100644
--- a/contrib/ntp/scripts/update-leap/update-leap.man.in
+++ b/contrib/ntp/scripts/update-leap/update-leap.man.in
@@ -1,169 +1,169 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH update-leap 1update-leapman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH update-leap 1update-leapman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 08:04:34 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:33 AM by AutoGen 5.18.16
.\" From the definitions update-leap-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]update-leap\fP
\- leap-seconds file manager/updater
.SH SYNOPSIS
\f\*[B-Font]update-leap\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]update-leap\fP
will validate the file currently on the local system
and if necessary, updates leap-second definition file.
.sp \n(Ppu
.ne 2
Ordinarily, the file is found using the "leapfile" directive in
\fCntp.conf\f[]\fR(5)\f[].
However, an alternate location can be specified on the command line.
.sp \n(Ppu
.ne 2
If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
.sp \n(Ppu
.ne 2
If the current file is acceptable, no download or restart occurs.
.sp \n(Ppu
.ne 2
-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-source\-url\f[]=\f\*[I-Font]string\f[]
The URL of the master copy of the leapseconds file.
.sp
Specify the URL of the master copy to download
$LEAPSRC
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Use only IPv4 addresses for DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = ipv6;
flags-cant = ipv4, prefer;
value = 6;
descrip = "Use only IPv6 addresses for DNS name resolution";
doc = <<- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = prefer;
flags-cant = ipv4, ipv6;
value = p;
arg-type = keyword;
keyword = 4, 6;
descrip = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
doc = <<- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
.TP
.NOP \f\*[B-Font]\-d\f[] \f\*[I-Font]float\f[], \f\*[B-Font]\-\-destination\f[]=\f\*[I-Font]float\f[]
Filename on the local system.
.sp
The name to use to store the leapfile on the local system.
$LEAPFILE
.TP
.NOP \f\*[B-Font]\-e\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-expiration\f[]=\f\*[I-Font]string\f[]
Refresh the leapfile this long before it expires.
.sp
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "-e 60 days" Note that larger values
imply more frequent refreshes.
"$PREFETCH"
.TP
.NOP \f\*[B-Font]\-f\f[] \f\*[I-Font]string\f[], \f\*[B-Font]\-\-ntp\-conf\-file\f[]=\f\*[I-Font]string\f[]
Location of the ntp.conf file.
.sp
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
.TP
.NOP \f\*[B-Font]\-F\f[], \f\*[B-Font]\-\-force\-update\f[]
Force update of the leapfile.
.sp
Force update even if current file is OK and not close to expiring.
.TP
.NOP \f\*[B-Font]\-\-dont\-wait\f[]
Don't wait for keystroke between plots.
.sp
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\-v\f[] [{\f\*[I-Font]v|c|n\f[] \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH USAGE
Usage stuff
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Timothe Litt"
.br
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBupdate-leap\fP
option definitions.
diff --git a/contrib/ntp/scripts/update-leap/update-leap.mdoc.in b/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
index ba971fe17a0a..449a0840a946 100644
--- a/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
+++ b/contrib/ntp/scripts/update-leap/update-leap.mdoc.in
@@ -1,134 +1,134 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt UPDATE_LEAP 1update-leapmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (update-leap-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:15:06 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:39:30 AM by AutoGen 5.18.16
.\" From the definitions update-leap-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm update-leap
.Nd leap-seconds file manager/updater
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
.Nm
will validate the file currently on the local system
and if necessary, updates leap\-second definition file.
.Pp
Ordinarily, the file is found using the "leapfile" directive in
.Xr ntp.conf 5 .
However, an alternate location can be specified on the command line.
.Pp
If the file does not exist, is not valid, has expired, or is expiring soon,
a new copy will be downloaded. If the new copy validates, it is installed and
NTP is (optionally) restarted.
.Pp
If the current file is acceptable, no download or restart occurs.
.Pp
-c can also be used to invoke another script to perform administrative
functions, e.g. to copy the file to other local systems.
.PP
This can be run as a cron job. As the file is rarely updated, and leap
seconds are announced at least one month in advance (usually longer), it
need not be run more frequently than about once every three weeks.
.PP
For cron\-friendly behavior, define CRONJOB=1 in the crontab.
.PP
This script depends on$REQUIREDCMDS
.Sh "OPTIONS"
.Bl -tag
.It Fl s Ar string , Fl \-source\-url Ns = Ns Ar string
The URL of the master copy of the leapseconds file.
.sp
Specify the URL of the master copy to download
$LEAPSRC
.It Fl 4 , Fl \-ipv4
Use only IPv4 addresses for DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of following host names on the command line
to the IPv4 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = ipv6;
flags\-cant = ipv4, prefer;
value = 6;
descrip = "Use only IPv6 addresses for DNS name resolution";
doc = <<\- _EndOfDoc_
Force DNS resolution of following host names on the command line
to the IPv6 namespace.
_EndOfDoc_;
};
.sp
flag = {
name = prefer;
flags\-cant = ipv4, ipv6;
value = p;
arg\-type = keyword;
keyword = 4, 6;
descrip = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
doc = <<\- _EndOfDoc_
Prefer IPv4 or IPv6 (as specified) addresses, but use either.
.It Fl d Ar float , Fl \-destination Ns = Ns Ar float
Filename on the local system.
.sp
The name to use to store the leapfile on the local system.
$LEAPFILE
.It Fl e Ar string , Fl \-expiration Ns = Ns Ar string
Refresh the leapfile this long before it expires.
.sp
Specify how long before expiration the file is to be refreshed
Units are required, e.g. "\-e 60 days" Note that larger values
imply more frequent refreshes.
"$PREFETCH"
.It Fl f Ar string , Fl \-ntp\-conf\-file Ns = Ns Ar string
Location of the ntp.conf file.
.sp
Specify location of ntp.conf (used to make sure leapfile directive is
present and to default leapfile)
/etc/ntp.conf
.It Fl F , Fl \-force\-update
Force update of the leapfile.
.sp
Force update even if current file is OK and not close to expiring.
.It Fl \-dont\-wait
Don't wait for keystroke between plots.
.sp
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl v Op Brq Ar v|c|n Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh USAGE
Usage stuff
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Timothe Litt"
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBupdate\-leap\fP
option definitions.
diff --git a/contrib/ntp/sntp/configure b/contrib/ntp/sntp/configure
index e531e554001e..b435871daf0e 100755
--- a/contrib/ntp/sntp/configure
+++ b/contrib/ntp/sntp/configure
@@ -1,30174 +1,30174 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for sntp 4.2.8p16.
+# Generated by GNU Autoconf 2.71 for sntp 4.2.8p17.
#
# Report bugs to <https://bugs.ntp.org/>.
#
#
# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
# Inc.
#
#
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# Use a proper internal environment variable to ensure we don't fall
# into an infinite loop, continuously re-executing ourselves.
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
_as_can_reexec=no; export _as_can_reexec;
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
{ _as_can_reexec=; unset _as_can_reexec;}
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="as_nop=:
if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1
test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
PATH=/empty FPATH=/empty; export PATH FPATH
test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
|| test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
else $as_nop
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$as_shell as_have_required=yes
if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
then :
break 2
fi
fi
done;;
esac
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi
fi
if test "x$CONFIG_SHELL" != x
then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
printf "%s\n" "$0: This script requires a shell more modern than all"
printf "%s\n" "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
$0: https://bugs.ntp.org/ about your system, including any
$0: error possibly output before this message. Then install
$0: a modern shell, or manually run the script under such a
$0: shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
SHELL=${CONFIG_SHELL-/bin/sh}
test -n "$DJDIR" || exec 7<&0 </dev/null
exec 6>&1
# Name of the host.
# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
# so uname gets run too.
ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
#
# Initializations.
#
ac_default_prefix=/usr/local
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
cross_compiling=no
subdirs=
MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sntp'
PACKAGE_TARNAME='sntp'
-PACKAGE_VERSION='4.2.8p16'
-PACKAGE_STRING='sntp 4.2.8p16'
+PACKAGE_VERSION='4.2.8p17'
+PACKAGE_STRING='sntp 4.2.8p17'
PACKAGE_BUGREPORT='https://bugs.ntp.org/'
PACKAGE_URL='https://www.ntp.org/'
# Factoring default headers for most tests.
ac_includes_default="\
#include <stddef.h>
#ifdef HAVE_STDIO_H
# include <stdio.h>
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#ifdef HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#ifdef HAVE_STDINT_H
# include <stdint.h>
#endif
#ifdef HAVE_STRINGS_H
# include <strings.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif"
ac_header_c_list=
ac_func_c_list=
enable_option_checking=no
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
BUILD_TEST_KODFILE_FALSE
BUILD_TEST_KODFILE_TRUE
BUILD_TEST_KODDATABASE_FALSE
BUILD_TEST_KODDATABASE_TRUE
UNITYBUILD_AVAILABLE_FALSE
UNITYBUILD_AVAILABLE_TRUE
PATH_RUBY
VER_SUFFIX
LIB_SYSLOG
subdirs
BUILD_LIBEVENT_FALSE
BUILD_LIBEVENT_TRUE
LDADD_LIBEVENT
CPPFLAGS_LIBEVENT
CFLAGS_LIBEVENT
PKG_CONFIG
NTP_FORCE_LIBEVENT_DIST
LIBOPTS_DIR
LIBOPTS_CFLAGS
LIBOPTS_LDADD
NEED_LIBOPTS_FALSE
NEED_LIBOPTS_TRUE
INSTALL_LIBOPTS_FALSE
INSTALL_LIBOPTS_TRUE
POSIX_SHELL
GL_GENERATE_STDNORETURN_H_FALSE
GL_GENERATE_STDNORETURN_H_TRUE
STDNORETURN_H
BUILD_SNTP_FALSE
BUILD_SNTP_TRUE
SNTP
LIBTOOL_DEPS
LT_SYS_LIBRARY_PATH
OTOOL64
OTOOL
LIPO
NMEDIT
DSYMUTIL
MANIFEST_TOOL
RANLIB
DLLTOOL
OBJDUMP
LN_S
NM
ac_ct_DUMPBIN
DUMPBIN
LIBTOOL
LIBOBJS
PTHREADS_FALSE
PTHREADS_TRUE
LIBISC_PTHREADS_NOTHREADS
PTHREAD_LIBS
LTHREAD_LIBS
BUILD_THREAD
HAVE_INLINE
LDADD_LIBUTIL
ALLOCA
LIBM
EDITLINE_LIBS
LD
FGREP
SED
LDADD_LIBNTP
NTP_CROSSCOMPILE_FALSE
NTP_CROSSCOMPILE_TRUE
ac_ct_AR
AR
INSTALL_UPDATE_LEAP_FALSE
INSTALL_UPDATE_LEAP_TRUE
UPDATE_LEAP_NI
UPDATE_LEAP_MS
UPDATE_LEAP_DS
UPDATE_LEAP_DL
UPDATE_LEAP_DB
TIMETRIM_NI
TIMETRIM_MS
TIMETRIM_DS
TIMETRIM_DL
TIMETRIM_DB
TICKADJ_NI
TICKADJ_MS
TICKADJ_DS
TICKADJ_DL
TICKADJ_DB
SNTP_NI
SNTP_MS
SNTP_DS
SNTP_DL
SNTP_DB
NTP_WAIT_NI
NTP_WAIT_MS
NTP_WAIT_DS
NTP_WAIT_DL
NTP_WAIT_DB
NTP_KEYGEN_NI
NTP_KEYGEN_MS
NTP_KEYGEN_DS
NTP_KEYGEN_DL
NTP_KEYGEN_DB
NTPTRACE_NI
NTPTRACE_MS
NTPTRACE_DS
NTPTRACE_DL
NTPTRACE_DB
NTPTIME_NI
NTPTIME_MS
NTPTIME_DS
NTPTIME_DL
NTPTIME_DB
INSTALL_NTPSWEEP_FALSE
INSTALL_NTPSWEEP_TRUE
NTPSWEEP_NI
NTPSWEEP_MS
NTPSWEEP_DS
NTPSWEEP_DL
NTPSWEEP_DB
NTPSNMPD_NI
NTPSNMPD_MS
NTPSNMPD_DS
NTPSNMPD_DL
NTPSNMPD_DB
NTPQ_NI
NTPQ_MS
NTPQ_DS
NTPQ_DL
NTPQ_DB
NTPD_NI
NTPD_MS
NTPD_DS
NTPD_DL
NTPD_DB
NTPDSIM_NI
NTPDSIM_MS
NTPDSIM_DS
NTPDSIM_DL
NTPDSIM_DB
NTPDC_NI
NTPDC_MS
NTPDC_DS
NTPDC_DL
NTPDC_DB
NTPDATE_NI
NTPDATE_MS
NTPDATE_DS
NTPDATE_DL
NTPDATE_DB
MANTAGFMT
CALC_TICKADJ_NI
CALC_TICKADJ_MS
CALC_TICKADJ_DS
CALC_TICKADJ_DL
CALC_TICKADJ_DB
WANT_CALC_TICKADJ_MS_FALSE
WANT_CALC_TICKADJ_MS_TRUE
NTP_HARD_LDFLAGS
NTP_HARD_CPPFLAGS
NTP_HARD_CFLAGS
LDFLAGS_NTP
LDADD_NTP
CPPFLAGS_NTP
CFLAGS_NTP
CC_NOFORMAT
EGREP
GREP
CPP
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
am__include
DEPDIR
OBJEXT
EXEEXT
ac_ct_CC
CPPFLAGS
LDFLAGS
CFLAGS
CC
host_os
host_vendor
host_cpu
host
build_os
build_vendor
build_cpu
build
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
AM_DEFAULT_V
AM_V
CSCOPE
ETAGS
CTAGS
am__untar
am__tar
AMTAR
am__leading_dot
SET_MAKE
AWK
mkdir_p
MKDIR_P
INSTALL_STRIP_PROGRAM
STRIP
install_sh
MAKEINFO
AUTOHEADER
AUTOMAKE
AUTOCONF
ACLOCAL
VERSION
PACKAGE
CYGPATH_W
am__isrc
INSTALL_DATA
INSTALL_SCRIPT
INSTALL_PROGRAM
target_alias
host_alias
build_alias
LIBS
ECHO_T
ECHO_N
ECHO_C
DEFS
mandir
localedir
libdir
psdir
pdfdir
dvidir
htmldir
infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
datadir
datarootdir
libexecdir
sbindir
bindir
program_transform_name
prefix
exec_prefix
PACKAGE_URL
PACKAGE_BUGREPORT
PACKAGE_STRING
PACKAGE_VERSION
PACKAGE_TARNAME
PACKAGE_NAME
PATH_SEPARATOR
SHELL
am__quote'
ac_subst_files=''
ac_user_opts='
enable_option_checking
enable_silent_rules
enable_dependency_tracking
with_hardenfile
with_locfile
with_gnu_ld
with_lineeditlibs
enable_debugging
enable_thread_support
with_threads
with_yielding_select
enable_c99_snprintf
enable_clockctl
enable_linuxcaps
enable_solarisprivs
enable_trustedbsd_mac
enable_signalled_io
enable_shared
enable_static
with_pic
enable_fast_install
with_aix_soname
with_sysroot
enable_libtool_lock
with_sntp
enable_nls
enable_local_libopts
enable_libopts_install
with_autoopts_config
with_regex_header
with_libregex
with_libregex_cflags
with_libregex_libs
enable_optional_args
enable_local_libevent
with_crypto
with_openssl_libdir
with_openssl_incdir
with_rpath
enable_ipv6
with_kame
enable_getifaddrs
enable_problem_tests
'
ac_precious_vars='build_alias
host_alias
target_alias
CC
CFLAGS
LDFLAGS
LIBS
CPPFLAGS
CPP
LT_SYS_LIBRARY_PATH'
ac_subdirs_all='libevent'
# Initialize some variables set by options.
ac_init_help=
ac_init_version=false
ac_unrecognized_opts=
ac_unrecognized_sep=
# The variables have the same names as the options, with
# dashes changed to underlines.
cache_file=/dev/null
exec_prefix=NONE
no_create=
no_recursion=
prefix=NONE
program_prefix=NONE
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
pdfdir='${docdir}'
psdir='${docdir}'
libdir='${exec_prefix}/lib'
localedir='${datarootdir}/locale'
mandir='${datarootdir}/man'
ac_prev=
ac_dashdash=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval $ac_prev=\$ac_option
ac_prev=
continue
fi
case $ac_option in
*=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
*=) ac_optarg= ;;
*) ac_optarg=yes ;;
esac
case $ac_dashdash$ac_option in
--)
ac_dashdash=yes ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=bindir ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
bindir=$ac_optarg ;;
-build | --build | --buil | --bui | --bu)
ac_prev=build_alias ;;
-build=* | --build=* | --buil=* | --bui=* | --bu=*)
build_alias=$ac_optarg ;;
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
cache_file=$ac_optarg ;;
--config-cache | -C)
cache_file=config.cache ;;
-datadir | --datadir | --datadi | --datad)
ac_prev=datadir ;;
-datadir=* | --datadir=* | --datadi=* | --datad=*)
datadir=$ac_optarg ;;
-datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
| --dataroo | --dataro | --datar)
ac_prev=datarootdir ;;
-datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
| --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
datarootdir=$ac_optarg ;;
-disable-* | --disable-*)
ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=no ;;
-docdir | --docdir | --docdi | --doc | --do)
ac_prev=docdir ;;
-docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
docdir=$ac_optarg ;;
-dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
ac_prev=dvidir ;;
-dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
dvidir=$ac_optarg ;;
-enable-* | --enable-*)
ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval enable_$ac_useropt=\$ac_optarg ;;
-exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
| --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
| --exec | --exe | --ex)
ac_prev=exec_prefix ;;
-exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
| --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
| --exec=* | --exe=* | --ex=*)
exec_prefix=$ac_optarg ;;
-gas | --gas | --ga | --g)
# Obsolete; use --with-gas.
with_gas=yes ;;
-help | --help | --hel | --he | -h)
ac_init_help=long ;;
-help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
ac_init_help=recursive ;;
-help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
ac_init_help=short ;;
-host | --host | --hos | --ho)
ac_prev=host_alias ;;
-host=* | --host=* | --hos=* | --ho=*)
host_alias=$ac_optarg ;;
-htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
ac_prev=htmldir ;;
-htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
| --ht=*)
htmldir=$ac_optarg ;;
-includedir | --includedir | --includedi | --included | --include \
| --includ | --inclu | --incl | --inc)
ac_prev=includedir ;;
-includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
| --includ=* | --inclu=* | --incl=* | --inc=*)
includedir=$ac_optarg ;;
-infodir | --infodir | --infodi | --infod | --info | --inf)
ac_prev=infodir ;;
-infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
infodir=$ac_optarg ;;
-libdir | --libdir | --libdi | --libd)
ac_prev=libdir ;;
-libdir=* | --libdir=* | --libdi=* | --libd=*)
libdir=$ac_optarg ;;
-libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
| --libexe | --libex | --libe)
ac_prev=libexecdir ;;
-libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
| --libexe=* | --libex=* | --libe=*)
libexecdir=$ac_optarg ;;
-localedir | --localedir | --localedi | --localed | --locale)
ac_prev=localedir ;;
-localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
localedir=$ac_optarg ;;
-localstatedir | --localstatedir | --localstatedi | --localstated \
| --localstate | --localstat | --localsta | --localst | --locals)
ac_prev=localstatedir ;;
-localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
| --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
localstatedir=$ac_optarg ;;
-mandir | --mandir | --mandi | --mand | --man | --ma | --m)
ac_prev=mandir ;;
-mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
mandir=$ac_optarg ;;
-nfp | --nfp | --nf)
# Obsolete; use --without-fp.
with_fp=no ;;
-no-create | --no-create | --no-creat | --no-crea | --no-cre \
| --no-cr | --no-c | -n)
no_create=yes ;;
-no-recursion | --no-recursion | --no-recursio | --no-recursi \
| --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
no_recursion=yes ;;
-oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
| --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
| --oldin | --oldi | --old | --ol | --o)
ac_prev=oldincludedir ;;
-oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
| --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
| --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
oldincludedir=$ac_optarg ;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
prefix=$ac_optarg ;;
-program-prefix | --program-prefix | --program-prefi | --program-pref \
| --program-pre | --program-pr | --program-p)
ac_prev=program_prefix ;;
-program-prefix=* | --program-prefix=* | --program-prefi=* \
| --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
program_prefix=$ac_optarg ;;
-program-suffix | --program-suffix | --program-suffi | --program-suff \
| --program-suf | --program-su | --program-s)
ac_prev=program_suffix ;;
-program-suffix=* | --program-suffix=* | --program-suffi=* \
| --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
program_suffix=$ac_optarg ;;
-program-transform-name | --program-transform-name \
| --program-transform-nam | --program-transform-na \
| --program-transform-n | --program-transform- \
| --program-transform | --program-transfor \
| --program-transfo | --program-transf \
| --program-trans | --program-tran \
| --progr-tra | --program-tr | --program-t)
ac_prev=program_transform_name ;;
-program-transform-name=* | --program-transform-name=* \
| --program-transform-nam=* | --program-transform-na=* \
| --program-transform-n=* | --program-transform-=* \
| --program-transform=* | --program-transfor=* \
| --program-transfo=* | --program-transf=* \
| --program-trans=* | --program-tran=* \
| --progr-tra=* | --program-tr=* | --program-t=*)
program_transform_name=$ac_optarg ;;
-pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
ac_prev=pdfdir ;;
-pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
pdfdir=$ac_optarg ;;
-psdir | --psdir | --psdi | --psd | --ps)
ac_prev=psdir ;;
-psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
psdir=$ac_optarg ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
| --sbi=* | --sb=*)
sbindir=$ac_optarg ;;
-sharedstatedir | --sharedstatedir | --sharedstatedi \
| --sharedstated | --sharedstate | --sharedstat | --sharedsta \
| --sharedst | --shareds | --shared | --share | --shar \
| --sha | --sh)
ac_prev=sharedstatedir ;;
-sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
| --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
| --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
| --sha=* | --sh=*)
sharedstatedir=$ac_optarg ;;
-site | --site | --sit)
ac_prev=site ;;
-site=* | --site=* | --sit=*)
site=$ac_optarg ;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
srcdir=$ac_optarg ;;
-sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
| --syscon | --sysco | --sysc | --sys | --sy)
ac_prev=sysconfdir ;;
-sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
| --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
sysconfdir=$ac_optarg ;;
-target | --target | --targe | --targ | --tar | --ta | --t)
ac_prev=target_alias ;;
-target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
target_alias=$ac_optarg ;;
-v | -verbose | --verbose | --verbos | --verbo | --verb)
verbose=yes ;;
-version | --version | --versio | --versi | --vers | -V)
ac_init_version=: ;;
-with-* | --with-*)
ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=\$ac_optarg ;;
-without-* | --without-*)
ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
# Reject names that are not valid shell variable names.
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: \`$ac_useropt'"
ac_useropt_orig=$ac_useropt
ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
"*) ;;
*) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
ac_unrecognized_sep=', ';;
esac
eval with_$ac_useropt=no ;;
--x)
# Obsolete; use --with-x.
with_x=yes ;;
-x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
| --x-incl | --x-inc | --x-in | --x-i)
ac_prev=x_includes ;;
-x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
| --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
x_includes=$ac_optarg ;;
-x-libraries | --x-libraries | --x-librarie | --x-librari \
| --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
ac_prev=x_libraries ;;
-x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
| --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
x_libraries=$ac_optarg ;;
-*) as_fn_error $? "unrecognized option: \`$ac_option'
Try \`$0 --help' for more information"
;;
*=*)
ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $ac_envvar in #(
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
esac
eval $ac_envvar=\$ac_optarg
export $ac_envvar ;;
*)
# FIXME: should be removed in autoconf 3.0.
printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
esac
done
if test -n "$ac_prev"; then
ac_option=--`echo $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
if test -n "$ac_unrecognized_opts"; then
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
*) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
# Check all directory arguments for consistency.
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
case $ac_val in
*/ )
ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
eval $ac_var=\$ac_val;;
esac
# Be sure to have absolute directory names.
case $ac_val in
[\\/$]* | ?:[\\/]* ) continue;;
NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
esac
as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
done
# There might be people who depend on the old broken behavior: `$host'
# used to hold the argument of --host etc.
# FIXME: To remove some day.
build=$build_alias
host=$host_alias
target=$target_alias
# FIXME: To remove some day.
if test "x$host_alias" != x; then
if test "x$build_alias" = x; then
cross_compiling=maybe
elif test "x$build_alias" != "x$host_alias"; then
cross_compiling=yes
fi
fi
ac_tool_prefix=
test -n "$host_alias" && ac_tool_prefix=$host_alias-
test "$silent" = yes && exec 6>/dev/null
ac_pwd=`pwd` && test -n "$ac_pwd" &&
ac_ls_di=`ls -di .` &&
ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
as_fn_error $? "working directory cannot be determined"
test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
as_fn_error $? "pwd does not report name of working directory"
# Find the source files, if location was not specified.
if test -z "$srcdir"; then
ac_srcdir_defaulted=yes
# Try the directory containing this script, then the parent directory.
ac_confdir=`$as_dirname -- "$as_myself" ||
$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
srcdir=$ac_confdir
if test ! -r "$srcdir/$ac_unique_file"; then
srcdir=..
fi
else
ac_srcdir_defaulted=no
fi
if test ! -r "$srcdir/$ac_unique_file"; then
test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
fi
ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
ac_abs_confdir=`(
cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
pwd)`
# When building in place, set srcdir=.
if test "$ac_abs_confdir" = "$ac_pwd"; then
srcdir=.
fi
# Remove unnecessary trailing slashes from srcdir.
# Double slashes in file names in object file debugging info
# mess up M-x gdb in Emacs.
case $srcdir in
*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
esac
for ac_var in $ac_precious_vars; do
eval ac_env_${ac_var}_set=\${${ac_var}+set}
eval ac_env_${ac_var}_value=\$${ac_var}
eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
eval ac_cv_env_${ac_var}_value=\$${ac_var}
done
#
# Report the --help message.
#
if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures sntp 4.2.8p16 to adapt to many kinds of systems.
+\`configure' configures sntp 4.2.8p17 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print \`checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for \`--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or \`..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
an installation prefix other than \`$ac_default_prefix' using \`--prefix',
for instance \`--prefix=\$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/sntp]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
_ACEOF
cat <<\_ACEOF
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sntp 4.2.8p16:";;
+ short | recursive ) echo "Configuration of sntp 4.2.8p17:";;
esac
cat <<\_ACEOF
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
defaults: + yes, - no, s system-specific
--enable-debugging + include ntpd debugging code
--enable-thread-support s use threads (+ if available)
--enable-c99-snprintf s force replacement
--enable-clockctl s Use /dev/clockctl for non-root clock control
--enable-linuxcaps + Use Linux capabilities for non-root clock control
--enable-solarisprivs + Use Solaris privileges for non-root clock control
--enable-trustedbsd-mac s Use TrustedBSD MAC policy for non-root clock
control
--enable-signalled-io s Use signalled IO if we can
--enable-shared[=PKGS] build shared libraries [default=no]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-nls disable nls support in libopts
--enable-local-libopts Use the supplied libopts tearoff code
--enable-libopts-install
Install libopts with client installation
--disable-optional-args not wanting optional option args
--enable-local-libevent Force using the supplied libevent tearoff code
--enable-ipv6 s use IPv6?
--enable-getifaddrs + Enable the use of getifaddrs() [[yes|no]].
--enable-problem-tests + enable tests with undiagnosed problems
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-hardenfile=XXX os-specific or "/dev/null"
--with-locfile=XXX os-specific or "legacy"
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-lineeditlibs edit,editline (readline may be specified if desired)
--with-threads with threads [auto]
--with-yielding-select with yielding select [auto]
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-aix-soname=aix|svr4|both
shared library versioning (aka "SONAME") variant to
provide on AIX, [default=aix].
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
--without-sntp - disable building sntp and sntp/tests
--with-autoopts-config specify the config-info script
--with-regex-header a reg expr header is specified
--with-libregex libregex installation prefix
--with-libregex-cflags libregex compile flags
--with-libregex-libs libregex link command arguments
--with-crypto + =openssl,libcrypto
--with-openssl-libdir + =/something/reasonable
--with-openssl-incdir + =/something/reasonable
--without-rpath s Disable auto-added -R linker paths
--with-kame - =/usr/local/v6
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <https://bugs.ntp.org/>.
sntp home page: <https://www.ntp.org/>.
_ACEOF
ac_status=$?
fi
if test "$ac_init_help" = "recursive"; then
# If there are subdirs, report their specific --help.
for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
test -d "$ac_dir" ||
{ cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
continue
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir" || { ac_status=$?; continue; }
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
echo &&
$SHELL "$ac_srcdir/configure.gnu" --help=recursive
elif test -f "$ac_srcdir/configure"; then
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sntp configure 4.2.8p16
+sntp configure 4.2.8p17
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
exit
fi
## ------------------------ ##
## Autoconf initialization. ##
## ------------------------ ##
# ac_fn_c_try_compile LINENO
# --------------------------
# Try to compile conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_compile
# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists and can be compiled using the include files in
# INCLUDES, setting the cache variable VAR accordingly.
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
#include <$2>
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
# ac_fn_c_try_cpp LINENO
# ----------------------
# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_cpp ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_cpp conftest.$ac_ext"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_cpp
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
ac_fn_c_try_link ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
grep -v '^ *+' conftest.err >conftest.er1
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest$ac_exeext && {
test "$cross_compiling" = yes ||
test -x conftest$ac_exeext
}
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1
fi
# Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
# created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
# interfere with the next link command; also delete a directory that is
# left behind by Apple's compiler. We do this before executing the actions.
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_link
# ac_fn_c_try_run LINENO
# ----------------------
# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
# executables *can* be run.
ac_fn_c_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
ac_retval=0
else $as_nop
printf "%s\n" "$as_me: program exited with status $ac_status" >&5
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_try_run
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
# Tests whether TYPE exists after having included INCLUDES, setting cache
# variable VAR accordingly.
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
eval "$3=no"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof ($2))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
if (sizeof (($2)))
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
eval "$3=yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
# ac_fn_c_check_func LINENO FUNC VAR
# ----------------------------------
# Tests whether FUNC exists, setting the cache variable VAR accordingly
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
For example, HP-UX 11i <limits.h> declares gettimeofday. */
#define $2 innocuous_$2
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $2 (); below. */
#include <limits.h>
#undef $2
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char $2 ();
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined __stub_$2 || defined __stub___$2
choke me
#endif
int
main (void)
{
return $2 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
eval ac_save_FLAGS=\$$6
as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
#ifndef $as_decl_name
#ifdef __cplusplus
(void) $as_decl_use;
#else
(void) $as_decl_name;
#endif
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$3=yes"
else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
eval $6=\$ac_save_FLAGS
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_check_decl
# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
# --------------------------------------------
# Tries to find the compile-time value of EXPR in a program that includes
# INCLUDES, setting VAR accordingly. Returns whether the value could be
# computed
ac_fn_c_compute_int ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if test "$cross_compiling" = yes; then
# Depending upon the size, compute the lo and hi bounds.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=0 ac_mid=0
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid; break
else $as_nop
as_fn_arith $ac_mid + 1 && ac_lo=$as_val
if test $ac_lo -le $ac_mid; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) < 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=-1 ac_mid=-1
while :; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_lo=$ac_mid; break
else $as_nop
as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
if test $ac_mid -le $ac_hi; then
ac_lo= ac_hi=
break
fi
as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
else $as_nop
ac_lo= ac_hi=
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
# Binary search between lo and hi bounds.
while test "x$ac_lo" != "x$ac_hi"; do
as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
int
main (void)
{
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_hi=$ac_mid
else $as_nop
as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
case $ac_lo in #((
?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
'') ac_retval=1 ;;
esac
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
static long int longval (void) { return $2; }
static unsigned long int ulongval (void) { return $2; }
#include <stdio.h>
#include <stdlib.h>
int
main (void)
{
FILE *f = fopen ("conftest.val", "w");
if (! f)
return 1;
if (($2) < 0)
{
long int i = longval ();
if (i != ($2))
return 1;
fprintf (f, "%ld", i);
}
else
{
unsigned long int i = ulongval ();
if (i != ($2))
return 1;
fprintf (f, "%lu", i);
}
/* Do not output a trailing newline, as this causes \r\n confusion
on some platforms. */
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
echo >>conftest.val; read $3 <conftest.val; ac_retval=0
else $as_nop
ac_retval=1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
rm -f conftest.val
fi
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_c_compute_int
# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
# ----------------------------------------------------
# Tries to find if the field MEMBER exists in type AGGR, after including
# INCLUDES, setting cache variable VAR accordingly.
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
printf %s "checking for $2.$3... " >&6; }
if eval test \${$4+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$5
int
main (void)
{
static $2 ac_aggr;
if (sizeof ac_aggr.$3)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$4=yes"
else $as_nop
eval "$4=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$4
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
ac_configure_args_raw=
for ac_arg
do
case $ac_arg in
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_configure_args_raw " '$ac_arg'"
done
case $ac_configure_args_raw in
*$as_nl*)
ac_safe_unquote= ;;
*)
ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
ac_unsafe_a="$ac_unsafe_z#~"
ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
esac
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by sntp $as_me 4.2.8p16, which was
+It was created by sntp $as_me 4.2.8p17, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
_ACEOF
exec 5>>config.log
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
} >&5
cat >&5 <<_ACEOF
## ----------- ##
## Core tests. ##
## ----------- ##
_ACEOF
# Keep a trace of the command line.
# Strip out --no-create and --no-recursion so they do not pile up.
# Strip out --silent because we don't want to record it for future runs.
# Also quote any args containing shell meta-characters.
# Make two passes to allow for proper duplicate-argument suppression.
ac_configure_args=
ac_configure_args0=
ac_configure_args1=
ac_must_keep_next=false
for ac_pass in 1 2
do
for ac_arg
do
case $ac_arg in
-no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
2)
as_fn_append ac_configure_args1 " '$ac_arg'"
if test $ac_must_keep_next = true; then
ac_must_keep_next=false # Got value, back to normal.
else
case $ac_arg in
*=* | --config-cache | -C | -disable-* | --disable-* \
| -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
| -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
| -with-* | --with-* | -without-* | --without-* | --x)
case "$ac_configure_args0 " in
"$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
esac
;;
-* ) ac_must_keep_next=true ;;
esac
fi
as_fn_append ac_configure_args " '$ac_arg'"
;;
esac
done
done
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
# When interrupted or exit'd, cleanup temporary files, and complete
# config.log. We remove comments because anyway the quotes in there
# would cause problems or look ugly.
# WARNING: Use '\'' to represent an apostrophe within the trap.
# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
trap 'exit_status=$?
# Sanitize IFS.
IFS=" "" $as_nl"
# Save into config.log some information that might help in debugging.
{
echo
printf "%s\n" "## ---------------- ##
## Cache variables. ##
## ---------------- ##"
echo
# The following way of writing the cache mishandles newlines in values,
(
for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
sed -n \
"s/'\''/'\''\\\\'\'''\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
;; #(
*)
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
echo
printf "%s\n" "## ----------------- ##
## Output variables. ##
## ----------------- ##"
echo
for ac_var in $ac_subst_vars
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
if test -n "$ac_subst_files"; then
printf "%s\n" "## ------------------- ##
## File substitutions. ##
## ------------------- ##"
echo
for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
*\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
esac
printf "%s\n" "$ac_var='\''$ac_val'\''"
done | sort
echo
fi
if test -s confdefs.h; then
printf "%s\n" "## ----------- ##
## confdefs.h. ##
## ----------- ##"
echo
cat confdefs.h
echo
fi
test "$ac_signal" != 0 &&
printf "%s\n" "$as_me: caught signal $ac_signal"
printf "%s\n" "$as_me: exit $exit_status"
} >&5
rm -f core *.core core.conftest.* &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
ac_signal=0
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
printf "%s\n" "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
# Prefer an explicitly selected file to automatically selected ones.
if test -n "$CONFIG_SITE"; then
ac_site_files="$CONFIG_SITE"
elif test "x$prefix" != xNONE; then
ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
else
ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
fi
for ac_site_file in $ac_site_files
do
case $ac_site_file in #(
*/*) :
;; #(
*) :
ac_site_file=./$ac_site_file ;;
esac
if test -f "$ac_site_file" && test -r "$ac_site_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
|| { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See \`config.log' for more details" "$LINENO" 5; }
fi
done
if test -r "$cache_file"; then
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
# Test code for whether the C compiler supports C89 (global declarations)
ac_c_conftest_c89_globals='
/* Does the compiler advertise C89 conformance?
Do not test the value of __STDC__, because some compilers set it to 0
while being otherwise adequately conformant. */
#if !defined __STDC__
# error "Compiler does not advertise C89 conformance"
#endif
#include <stddef.h>
#include <stdarg.h>
struct stat;
/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
struct buf { int x; };
struct buf * (*rcsopen) (struct buf *, struct stat *, int);
static char *e (p, i)
char **p;
int i;
{
return p[i];
}
static char *f (char * (*g) (char **, int), char **p, ...)
{
char *s;
va_list v;
va_start (v,p);
s = g (p, va_arg (v,int));
va_end (v);
return s;
}
/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
function prototypes and stuff, but not \xHH hex character constants.
These do not provoke an error unfortunately, instead are silently treated
as an "x". The following induces an error, until -std is added to get
proper ANSI mode. Curiously \x00 != x always comes out true, for an
array size at least. It is necessary to write \x00 == 0 to get something
that is true only with -std. */
int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
inside strings and character constants. */
#define FOO(x) '\''x'\''
int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
int, int);'
# Test code for whether the C compiler supports C89 (body of main).
ac_c_conftest_c89_main='
ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
'
# Test code for whether the C compiler supports C99 (global declarations)
ac_c_conftest_c99_globals='
// Does the compiler advertise C99 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
# error "Compiler does not advertise C99 conformance"
#endif
#include <stdbool.h>
extern int puts (const char *);
extern int printf (const char *, ...);
extern int dprintf (int, const char *, ...);
extern void *malloc (size_t);
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
// FILE and stderr.
#define debug(...) dprintf (2, __VA_ARGS__)
#define showlist(...) puts (#__VA_ARGS__)
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
static void
test_varargs_macros (void)
{
int x = 1234;
int y = 5678;
debug ("Flag");
debug ("X = %d\n", x);
showlist (The first, second, and third items.);
report (x>y, "x is %d but y is %d", x, y);
}
// Check long long types.
#define BIG64 18446744073709551615ull
#define BIG32 4294967295ul
#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
#if !BIG_OK
#error "your preprocessor is broken"
#endif
#if BIG_OK
#else
#error "your preprocessor is broken"
#endif
static long long int bignum = -9223372036854775807LL;
static unsigned long long int ubignum = BIG64;
struct incomplete_array
{
int datasize;
double data[];
};
struct named_init {
int number;
const wchar_t *name;
double average;
};
typedef const char *ccp;
static inline int
test_restrict (ccp restrict text)
{
// See if C++-style comments work.
// Iterate through items via the restricted pointer.
// Also check for declarations in for loops.
for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
continue;
return 0;
}
// Check varargs and va_copy.
static bool
test_varargs (const char *format, ...)
{
va_list args;
va_start (args, format);
va_list args_copy;
va_copy (args_copy, args);
const char *str = "";
int number = 0;
float fnumber = 0;
while (*format)
{
switch (*format++)
{
case '\''s'\'': // string
str = va_arg (args_copy, const char *);
break;
case '\''d'\'': // int
number = va_arg (args_copy, int);
break;
case '\''f'\'': // float
fnumber = va_arg (args_copy, double);
break;
default:
break;
}
}
va_end (args_copy);
va_end (args);
return *str && number && fnumber;
}
'
# Test code for whether the C compiler supports C99 (body of main).
ac_c_conftest_c99_main='
// Check bool.
_Bool success = false;
success |= (argc != 0);
// Check restrict.
if (test_restrict ("String literal") == 0)
success = true;
char *restrict newvar = "Another string";
// Check varargs.
success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
test_varargs_macros ();
// Check flexible array members.
struct incomplete_array *ia =
malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
// Check named initializers.
struct named_init ni = {
.number = 34,
.name = L"Test wide string",
.average = 543.34343,
};
ni.number = 58;
int dynamic_array[ni.number];
dynamic_array[0] = argv[0][0];
dynamic_array[ni.number - 1] = 543;
// work around unused variable warnings
ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
|| dynamic_array[ni.number - 1] != 543);
'
# Test code for whether the C compiler supports C11 (global declarations)
ac_c_conftest_c11_globals='
// Does the compiler advertise C11 conformance?
#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
# error "Compiler does not advertise C11 conformance"
#endif
// Check _Alignas.
char _Alignas (double) aligned_as_double;
char _Alignas (0) no_special_alignment;
extern char aligned_as_int;
char _Alignas (0) _Alignas (int) aligned_as_int;
// Check _Alignof.
enum
{
int_alignment = _Alignof (int),
int_array_alignment = _Alignof (int[100]),
char_alignment = _Alignof (char)
};
_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
// Check _Noreturn.
int _Noreturn does_not_return (void) { for (;;) continue; }
// Check _Static_assert.
struct test_static_assert
{
int x;
_Static_assert (sizeof (int) <= sizeof (long int),
"_Static_assert does not work in struct");
long int y;
};
// Check UTF-8 literals.
#define u8 syntax error!
char const utf8_literal[] = u8"happens to be ASCII" "another string";
// Check duplicate typedefs.
typedef long *long_ptr;
typedef long int *long_ptr;
typedef long_ptr long_ptr;
// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
struct anonymous
{
union {
struct { int i; int j; };
struct { int k; long int l; } w;
};
int m;
} v1;
'
# Test code for whether the C compiler supports C11 (body of main).
ac_c_conftest_c11_main='
_Static_assert ((offsetof (struct anonymous, i)
== offsetof (struct anonymous, w.k)),
"Anonymous union alignment botch");
v1.i = 2;
v1.w.k = 5;
ok |= v1.i != 5;
'
# Test code for whether the C compiler supports C11 (complete).
ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
${ac_c_conftest_c11_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
${ac_c_conftest_c11_main}
return ok;
}
"
# Test code for whether the C compiler supports C99 (complete).
ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
${ac_c_conftest_c99_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
${ac_c_conftest_c99_main}
return ok;
}
"
# Test code for whether the C compiler supports C89 (complete).
ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
int
main (int argc, char **argv)
{
int ok = 0;
${ac_c_conftest_c89_main}
return ok;
}
"
as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
as_fn_append ac_func_c_list " fork HAVE_FORK"
as_fn_append ac_func_c_list " vfork HAVE_VFORK"
as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H"
as_fn_append ac_header_c_list " stdarg.h stdarg_h HAVE_STDARG_H"
as_fn_append ac_func_c_list " vprintf HAVE_VPRINTF"
# Auxiliary files required by this configure script.
ac_aux_files="ltmain.sh ar-lib compile config.guess config.sub missing install-sh"
# Locations in which to look for auxiliary files.
ac_aux_dir_candidates="${srcdir}/libevent/build-aux"
# Search for a directory containing all of the required auxiliary files,
# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
# If we don't find one directory that contains all the files we need,
# we report the set of missing files from the *first* directory in
# $ac_aux_dir_candidates and give up.
ac_missing_aux_files=""
ac_first_candidate=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in $ac_aux_dir_candidates
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
ac_aux_dir_found=yes
ac_install_sh=
for ac_aux in $ac_aux_files
do
# As a special case, if "install-sh" is required, that requirement
# can be satisfied by any of "install-sh", "install.sh", or "shtool",
# and $ac_install_sh is set appropriately for whichever one is found.
if test x"$ac_aux" = x"install-sh"
then
if test -f "${as_dir}install-sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
ac_install_sh="${as_dir}install-sh -c"
elif test -f "${as_dir}install.sh"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
ac_install_sh="${as_dir}install.sh -c"
elif test -f "${as_dir}shtool"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
ac_install_sh="${as_dir}shtool install -c"
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} install-sh"
else
break
fi
fi
else
if test -f "${as_dir}${ac_aux}"; then
printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
else
ac_aux_dir_found=no
if $ac_first_candidate; then
ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
else
break
fi
fi
fi
done
if test "$ac_aux_dir_found" = yes; then
ac_aux_dir="$as_dir"
break
fi
ac_first_candidate=false
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
fi
# These three variables are undocumented and unsupported,
# and are intended to be withdrawn in a future Autoconf release.
# They can cause serious problems if a builder's source tree is in a directory
# whose full name contains unusual characters.
if test -f "${ac_aux_dir}config.guess"; then
ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
fi
if test -f "${ac_aux_dir}config.sub"; then
ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
fi
if test -f "$ac_aux_dir/configure"; then
ac_configure="$SHELL ${ac_aux_dir}configure"
fi
# Check that the precious variables saved in the cache have kept the same
# value.
ac_cache_corrupted=false
for ac_var in $ac_precious_vars; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val=\$ac_cv_env_${ac_var}_value
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
ac_old_val_w=`echo x $ac_old_val`
ac_new_val_w=`echo x $ac_new_val`
if test "$ac_old_val_w" != "$ac_new_val_w"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
*\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
*" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
*) as_fn_append ac_configure_args " '$ac_arg'" ;;
esac
fi
done
if $ac_cache_corrupted; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
and start over" "$LINENO" 5
fi
## -------------------- ##
## Main body of script. ##
## -------------------- ##
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Bump sntp_configure_cache_version for each change to configure.ac or
# .m4 files which invalidates cached values from previous configure
# runs.
#
# If the change affects cache variables used only by the main NTP
# configure.ac, then only its version number should be bumped, while
# the subdir configure.ac version numbers should be unchanged. The
# same is true for a test/variable that is used only by one subdir
# being changed incompatibly; only that subdir's cache version needs
# bumping.
#
# If a change affects variables shared by all NTP configure scripts,
# please bump the version numbers of each. If you are not sure, the
# safe choice is to bump all on any cache-invalidating change.
#
# In order to avoid the risk of version stamp collision between -stable
# and -dev branches, do not simply increment the version, instead use
# the date YYYYMMDD optionally with -HHMM if there is more than one
# bump in a day.
sntp_configure_cache_version=20120806
# When the version of config.cache and configure do not
# match, NTP_CACHEVERSION will flush the cache.
ntp_cache_flush=1
case "$ntp_cv_sntp_cache_version" in
$sntp_configure_cache_version)
# same version, good
ntp_cache_flush=0
;;
'')
# No cache, predates ntp_cv_sntp_cache_version, or is empty.
case "$cache_file" in
/dev/null)
ntp_cache_flush=0
;;
*)
case "$NTP_CACHEVERSION_PARENT" in
'')
# Do not clear the cache immediately after it is created
# empty as it is noisy. Differentiate a newly-created
# config.cache from one predating the cache version
# mechanism by looking for the first cached variable set
# by Autoconf
case "$ac_cv_path_install" in
'')
# empty config.cache file
ntp_cache_flush=0
esac
;;
*)
# Parent configure just created cache from empty,
# flushing would be counterproductive.
ntp_cache_flush=0;
;;
esac
esac
;;
*)
# configure cache version mismatches config.cache version
;;
esac
case "$ntp_cache_flush" in
1)
c_version="${ntp_cv_sntp_cache_version:-(no version found)}"
# Do we flush all variables or exclude others' version stamps?
case "$NTP_CACHEVERSION_PARENT" in
'')
# Clear all *_cv_* variables including our child subdirs'
# ntp_cv_*_cache_version variables. This prevents subdir
# configure scripts from noticing a version mismatch just
# after the top configure in the invocation cleared and
# recreated the cache.
c_varname_list=`set |
sed -n -e 's/=.*$//' \
-e '/_cv_/p'
`
;;
*)
# This is not the top configure this particular invocation.
# Clear all *_cv_* variables sparing the version stamps
# of other configure scripts, so we don't trigger
# useless repeated clearings.
c_varname_list=`set |
sed -n -e 's/=.*$//' \
-e '/ntp_cv_.*_cache_version/d' \
-e '/_cv_/p'
`
esac
for c_varname in $c_varname_list
do
{ eval $c_varname=; unset $c_varname;}
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $cache_file saved by another version, ignored." >&5
printf "%s\n" "$as_me: $cache_file saved by another version, ignored." >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: configure script cache version: $sntp_configure_cache_version" >&5
printf "%s\n" "$as_me: configure script cache version: $sntp_configure_cache_version" >&6;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $cache_file version: $c_version" >&5
printf "%s\n" "$as_me: $cache_file version: $c_version" >&6;}
{ c_varname=; unset c_varname;}
{ c_varname_list=; unset c_varname_list;}
{ c_version=; unset c_version;}
esac
{ ntp_cache_flush=; unset ntp_cache_flush;}
# save configure version in config.cache for next time
ntp_cv_sntp_cache_version="$sntp_configure_cache_version"
# let any subdir configure.ac NTP_CACHEVERSION invocations
# know they are not the top level.
NTP_CACHEVERSION_PARENT='sntp' ; export NTP_CACHEVERSION_PARENT
am__api_version='1.16'
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
# SysV /etc/install, /usr/sbin/install
# SunOS /usr/etc/install
# IRIX /sbin/install
# AIX /bin/install
# AmigaOS /C/install, which installs bootblocks on floppy discs
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
# Reject install programs that cannot install multiple files.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
printf %s "checking for a BSD-compatible install... " >&6; }
if test -z "$INSTALL"; then
if test ${ac_cv_path_install+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
# Account for fact that we put trailing slashes in our PATH walk.
case $as_dir in #((
./ | /[cC]/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
# Don't use installbsd from OSF since it installs stuff as root
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
if test $ac_prog = install &&
grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# AIX install. It has an incompatible calling convention.
:
elif test $ac_prog = install &&
grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
# program-specific install script used by HP pwplus--don't use.
:
else
rm -rf conftest.one conftest.two conftest.dir
echo one > conftest.one
echo two > conftest.two
mkdir conftest.dir
if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
test -s conftest.one && test -s conftest.two &&
test -s conftest.dir/conftest.one &&
test -s conftest.dir/conftest.two
then
ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
break 3
fi
fi
fi
done
done
;;
esac
done
IFS=$as_save_IFS
rm -rf conftest.one conftest.two conftest.dir
fi
if test ${ac_cv_path_install+y}; then
INSTALL=$ac_cv_path_install
else
# As a last resort, use the slow shell script. Don't cache a
# value for INSTALL within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
INSTALL=$ac_install_sh
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
printf "%s\n" "$INSTALL" >&6; }
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
# It thinks the first close brace ends the variable substitution.
test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
printf %s "checking whether build environment is sane... " >&6; }
# Reject unsafe characters in $srcdir or the absolute working directory
# name. Accept space and tab only in the latter.
am_lf='
'
case `pwd` in
*[\\\"\#\$\&\'\`$am_lf]*)
as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
esac
case $srcdir in
*[\\\"\#\$\&\'\`$am_lf\ \ ]*)
as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
esac
# Do 'set' in a subshell so we don't clobber the current shell's
# arguments. Must try -L first in case configure is actually a
# symlink; some systems play weird games with the mod time of symlinks
# (eg FreeBSD returns the mod time of the symlink's containing
# directory).
if (
am_has_slept=no
for am_try in 1 2; do
echo "timestamp, slept: $am_has_slept" > conftest.file
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
if test "$*" = "X"; then
# -L didn't work.
set X `ls -t "$srcdir/configure" conftest.file`
fi
if test "$*" != "X $srcdir/configure conftest.file" \
&& test "$*" != "X conftest.file $srcdir/configure"; then
# If neither matched, then we have a broken ls. This can happen
# if, for instance, CONFIG_SHELL is bash and it inherits a
# broken ls alias from the environment. This has actually
# happened. Such a system could not be considered "sane".
as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
alias in your environment" "$LINENO" 5
fi
if test "$2" = conftest.file || test $am_try -eq 2; then
break
fi
# Just in case.
sleep 1
am_has_slept=yes
done
test "$2" = conftest.file
)
then
# Ok.
:
else
as_fn_error $? "newly created file is older than distributed files!
Check your system clock" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
# If we didn't sleep, we still need to ensure time stamps of config.status and
# generated files are strictly newer.
am_sleep_pid=
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
( sleep 1 ) &
am_sleep_pid=$!
fi
rm -f conftest.file
test "$program_prefix" != NONE &&
program_transform_name="s&^&$program_prefix&;$program_transform_name"
# Use a double $ so make ignores it.
test "$program_suffix" != NONE &&
program_transform_name="s&\$&$program_suffix&;$program_transform_name"
# Double any \ or $.
# By default was `s,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
if test x"${install_sh+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
*)
install_sh="\${SHELL} $am_aux_dir/install-sh"
esac
fi
# Installed binaries are usually stripped using 'strip' when the user
# run "make install-strip". However 'strip' might not be the right
# tool to use in cross-compilation environments, therefore Automake
# will honor the 'STRIP' environment variable to overrule this program.
if test "$cross_compiling" != no; then
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
printf "%s\n" "$STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
printf "%s\n" "$ac_ct_STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
fi
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
printf %s "checking for a race-free mkdir -p... " >&6; }
if test -z "$MKDIR_P"; then
if test ${ac_cv_path_mkdir+y}
then :
printf %s "(cached) " >&6
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir ('*'coreutils) '* | \
'BusyBox '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
fi
test -d ./--version && rmdir ./--version
if test ${ac_cv_path_mkdir+y}; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
MKDIR_P="$ac_install_sh -d"
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
printf "%s\n" "$MKDIR_P" >&6; }
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AWK"; then
ac_cv_prog_AWK="$AWK" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
printf "%s\n" "$AWK" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AWK" && break
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
set x ${MAKE-make}
ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
if eval test \${ac_cv_prog_make_${ac_make}_set+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat >conftest.make <<\_ACEOF
SHELL = /bin/sh
all:
@echo '@@@%%%=$(MAKE)=@@@%%%'
_ACEOF
# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
case `${MAKE-make} -f conftest.make 2>/dev/null` in
*@@@%%%=?*=@@@%%%*)
eval ac_cv_prog_make_${ac_make}_set=yes;;
*)
eval ac_cv_prog_make_${ac_make}_set=no;;
esac
rm -f conftest.make
fi
if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
SET_MAKE=
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
SET_MAKE="MAKE=${MAKE-make}"
fi
rm -rf .tst 2>/dev/null
mkdir .tst 2>/dev/null
if test -d .tst; then
am__leading_dot=.
else
am__leading_dot=_
fi
rmdir .tst 2>/dev/null
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=1;;
esac
am_make=${MAKE-make}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
printf %s "checking whether $am_make supports nested variables... " >&6; }
if test ${am_cv_make_support_nested_variables+y}
then :
printf %s "(cached) " >&6
else $as_nop
if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
if test "`cd $srcdir && pwd`" != "`pwd`"; then
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
# is not polluted with repeated "-I."
am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
fi
fi
# test whether we have cygpath
if test -z "$CYGPATH_W"; then
if (cygpath --version) >/dev/null 2>/dev/null; then
CYGPATH_W='cygpath -w'
else
CYGPATH_W=echo
fi
fi
# Define the identity of the package.
PACKAGE='sntp'
- VERSION='4.2.8p16'
+ VERSION='4.2.8p17'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
# Some tools Automake needs.
ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
# For better backward compatibility. To be removed once Automake 1.9.x
# dies out for good. For more background, see:
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
mkdir_p='$(MKDIR_P)'
# We need awk for the "check" target (and possibly the TAP driver). The
# system "awk" is bad on some platforms.
# Always define AMTAR for backward compatibility. Yes, it's still used
# in the wild :-( We should find a proper way to deprecate it ...
AMTAR='$${TAR-tar}'
# We'll loop over all known methods to create a tar archive until one works.
_am_tools='gnutar pax cpio none'
am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
# Variables for tags utilities; see am/tags.am
if test -z "$CTAGS"; then
CTAGS=ctags
fi
if test -z "$ETAGS"; then
ETAGS=etags
fi
if test -z "$CSCOPE"; then
CSCOPE=cscope
fi
# POSIX will say in a future version that running "rm -f" with no argument
# is OK; and we want to be able to make that assumption in our Makefile
# recipes. So use an aggressive probe to check that the usage we want is
# actually supported "in the wild" to an acceptable degree.
# See automake bug#10828.
# To make any issue more visible, cause the running configure to be aborted
# by default if the 'rm' program in use doesn't match our expectations; the
# user can still override this though.
if rm -f && rm -fr && rm -rf; then : OK; else
cat >&2 <<'END'
Oops!
Your 'rm' program seems unable to run without file operands specified
on the command line, even when the '-f' option is present. This is contrary
to the behaviour of most rm programs out there, and not conforming with
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
Please tell bug-automake@gnu.org about your system, including the value
of your $PATH and any error possibly output before this message. This
can help us improve future automake versions.
END
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
echo 'Configuration will proceed anyway, since you have set the' >&2
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
echo >&2
else
cat >&2 <<'END'
Aborting the configuration process, to ensure you take notice of the issue.
You can download and install GNU coreutils to get an 'rm' implementation
that behaves properly: <https://www.gnu.org/software/coreutils/>.
If you want to complete the configuration process using your problematic
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
to "yes", and re-run configure.
END
as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
fi
fi
# Check whether --enable-silent-rules was given.
if test ${enable_silent_rules+y}
then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
printf %s "checking whether $am_make supports nested variables... " >&6; }
if test ${am_cv_make_support_nested_variables+y}
then :
printf %s "(cached) " >&6
else $as_nop
if printf "%s\n" 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
# Make sure we can run config.sub.
$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
printf %s "checking build system type... " >&6; }
if test ${ac_cv_build+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_build_alias=$build_alias
test "x$ac_build_alias" = x &&
ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
test "x$ac_build_alias" = x &&
as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
printf "%s\n" "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_build
shift
build_cpu=$1
build_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
printf %s "checking host system type... " >&6; }
if test ${ac_cv_host+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "x$host_alias" = x; then
ac_cv_host=$ac_cv_build
else
ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
printf "%s\n" "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
esac
host=$ac_cv_host
ac_save_IFS=$IFS; IFS='-'
set x $ac_cv_host
shift
host_cpu=$1
host_vendor=$2
shift; shift
# Remember, the first character of IFS is used to create $*,
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
printf "%s\n" "#define STR_SYSTEM \"$host\"" >>confdefs.h
ac_config_headers="$ac_config_headers config.h"
DEPDIR="${am__leading_dot}deps"
ac_config_commands="$ac_config_commands depfiles"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
cat > confinc.mk << 'END'
am__doit:
@echo this is the am__doit target >confinc.out
.PHONY: am__doit
END
am__include="#"
am__quote=
# BSD make does it like this.
echo '.include "confinc.mk" # ignored' > confmf.BSD
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
echo 'include confinc.mk # ignored' > confmf.GNU
_am_result=no
for s in GNU BSD; do
{ echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
(${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }
case $?:`cat confinc.out 2>/dev/null` in #(
'0:this is the am__doit target') :
case $s in #(
BSD) :
am__include='.include' am__quote='"' ;; #(
*) :
am__include='include' am__quote='' ;;
esac ;; #(
*) :
;;
esac
if test "$am__include" != "#"; then
_am_result="yes ($s style)"
break
fi
done
rm -f confinc.* confmf.*
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
printf "%s\n" "${_am_result}" >&6; }
# Check whether --enable-dependency-tracking was given.
if test ${enable_dependency_tracking+y}
then :
enableval=$enable_dependency_tracking;
fi
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
am__nodep='_no'
fi
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE=
AMDEP_FALSE='#'
else
AMDEP_TRUE='#'
AMDEP_FALSE=
fi
case "$build" in
*-*-freebsd1?.*)
cclist=cc
;;
*)
cclist="cc gcc"
;;
esac
#AC_USE_SYSTEM_EXTENSIONS
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test -n "$ac_tool_prefix"; then
for ac_prog in $cclist
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
fi
if test -z "$CC"; then
ac_ct_CC=$CC
for ac_prog in $cclist
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_CC"; then
ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
printf "%s\n" "$ac_ct_CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_CC" && break
done
if test "x$ac_ct_CC" = x; then
CC=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
fi
fi
test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See \`config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
{ { ac_try="$ac_compiler $ac_option >&5"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
sed '10a\
... rest of stderr output deleted ...
10q' conftest.err >conftest.er1
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
printf %s "checking whether the C compiler works... " >&6; }
ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
ac_rmfiles=
for ac_file in $ac_files
do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
* ) ac_rmfiles="$ac_rmfiles $ac_file";;
esac
done
rm -f $ac_rmfiles
if { { ac_try="$ac_link_default"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
# in a Makefile. We should not override ac_cv_exeext if it was cached,
# so that the user can short-circuit this test for compilers unknown to
# Autoconf.
for ac_file in $ac_files ''
do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
;;
[ab].out )
# We found the default executable, but exeext='' is most
# certainly right.
break;;
*.* )
if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
then :; else
ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
fi
# We set ac_cv_exeext here because the later test for it is not
# safe: cross compilers may not add the suffix if given an `-o'
# argument, so we may need to know it at that point already.
# Even if this section looks crufty: it has the advantage of
# actually working.
break;;
* )
break;;
esac
done
test "$ac_cv_exeext" = no && ac_cv_exeext=
else $as_nop
ac_file=''
fi
if test -z "$ac_file"
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See \`config.log' for more details" "$LINENO" 5; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
printf "%s\n" "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
# work properly (i.e., refer to `conftest.exe'), while it won't with
# `rm'.
for ac_file in conftest.exe conftest conftest.*; do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
break;;
* ) break;;
esac
done
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest conftest$ac_cv_exeext
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
printf "%s\n" "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main (void)
{
FILE *f = fopen ("conftest.out", "w");
return ferror (f) || fclose (f) != 0;
;
return 0;
}
_ACEOF
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
See \`config.log' for more details" "$LINENO" 5; }
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
printf "%s\n" "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
ac_clean_files=$ac_clean_files_save
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
rm -f conftest.o conftest.obj
if { { ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
printf "%s\n" "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
for ac_file in conftest.o conftest.obj conftest.*; do
test -f "$ac_file" || continue;
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
*) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
break;;
esac
done
else $as_nop
printf "%s\n" "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See \`config.log' for more details" "$LINENO" 5; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
printf "%s\n" "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_compiler_gnu=yes
else $as_nop
ac_compiler_gnu=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
GCC=yes
else
GCC=
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
ac_cv_prog_cc_g=no
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
else $as_nop
CFLAGS=""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
ac_c_werror_flag=$ac_save_c_werror_flag
CFLAGS="-g"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_g=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_c_werror_flag=$ac_save_c_werror_flag
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
if test "$GCC" = yes; then
CFLAGS="-g -O2"
else
CFLAGS="-g"
fi
else
if test "$GCC" = yes; then
CFLAGS="-O2"
else
CFLAGS=
fi
fi
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c11=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
for ac_arg in '' -std=gnu11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c11=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c11" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c11" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c11" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
ac_prog_cc_stdc=c11
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c99=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c99_program
_ACEOF
for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c99=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c99" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c99" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c99" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
ac_prog_cc_stdc=c99
fi
fi
if test x$ac_prog_cc_stdc = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_prog_cc_c89=no
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_prog_cc_c89=$ac_arg
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam
test "x$ac_cv_prog_cc_c89" != "xno" && break
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
fi
if test "x$ac_cv_prog_cc_c89" = xno
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
printf "%s\n" "unsupported" >&6; }
else $as_nop
if test "x$ac_cv_prog_cc_c89" = x
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
printf "%s\n" "none needed" >&6; }
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89"
fi
ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
ac_prog_cc_stdc=c89
fi
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
printf %s "checking whether $CC understands -c and -o together... " >&6; }
if test ${am_cv_prog_cc_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
# Make sure it works both with $CC and with simple cc.
# Following AC_PROG_CC_C_O, we do the test twice because some
# compilers refuse to overwrite an existing .o file with -o,
# though they will create one.
am_cv_prog_cc_c_o=yes
for am_i in 1 2; do
if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } \
&& test -f conftest2.$ac_objext; then
: OK
else
am_cv_prog_cc_c_o=no
break
fi
done
rm -f core conftest*
unset am_i
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
if test "$am_cv_prog_cc_c_o" != yes; then
# Losing compiler, so override with the script.
# FIXME: It is wrong to rewrite CC.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__CC in this case,
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
CC="$am_aux_dir/compile $CC"
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
depcc="$CC" am_compiler_list=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
printf %s "checking dependency style of $depcc... " >&6; }
if test ${am_cv_CC_dependencies_compiler_type+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
# We make a subdir and do the tests there. Otherwise we can end up
# making bogus files that we don't know about and never remove. For
# instance it was reported that on HP-UX the gcc test will end up
# making a dummy file named 'D' -- because '-MD' means "put the output
# in D".
rm -rf conftest.dir
mkdir conftest.dir
# Copy depcomp to subdir because otherwise we won't find it if we're
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
# We will build objects and dependencies in a subdirectory because
# it helps to detect inapplicable dependency modes. For instance
# both Tru64's cc and ICC support -MD to output dependencies as a
# side effect of compilation, but ICC will put the dependencies in
# the current directory while Tru64 will put them in the object
# directory.
mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
am__universal=false
case " $depcc " in #(
*\ -arch\ *\ -arch\ *) am__universal=true ;;
esac
for depmode in $am_compiler_list; do
# Setup a source with many dependencies, because some compilers
# like to wrap large dependency lists on column 80 (with \), and
# we should not choose a depcomp mode which is confused by this.
#
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
: > sub/conftest.c
for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
# Solaris 10 /bin/sh.
echo '/* dummy */' > sub/conftst$i.h
done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
# We check with '-c' and '-o' for the sake of the "dashmstdout"
# mode. It turns out that the SunPro C++ compiler does not properly
# handle '-M -o', and we need to detect this. Also, some Intel
# versions had trouble with output in subdirs.
am__obj=sub/conftest.${OBJEXT-o}
am__minus_obj="-o $am__obj"
case $depmode in
gcc)
# This depmode causes a compiler race in universal mode.
test "$am__universal" = false || continue
;;
nosideeffect)
# After this tag, mechanisms are not by side-effect, so they'll
# only be used when explicitly requested.
if test "x$enable_dependency_tracking" = xyes; then
continue
else
break
fi
;;
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
# This compiler won't grok '-c -o', but also, the minuso test has
# not run yet. These depmodes are late enough in the game, and
# so weak that their functioning should not be impacted.
am__obj=conftest.${OBJEXT-o}
am__minus_obj=
;;
none) break ;;
esac
if depmode=$depmode \
source=sub/conftest.c object=$am__obj \
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
>/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
# or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored or not supported.
# When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
fi
done
cd ..
rm -rf conftest.dir
else
am_cv_CC_dependencies_compiler_type=none
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE=
am__fastdepCC_FALSE='#'
else
am__fastdepCC_TRUE='#'
am__fastdepCC_FALSE=
fi
ac_header= ac_cache=
for ac_item in $ac_header_c_list
do
if test $ac_cache; then
ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
printf "%s\n" "#define $ac_item 1" >> confdefs.h
fi
ac_header= ac_cache=
elif test $ac_header; then
ac_cache=$ac_item
else
ac_header=$ac_item
fi
done
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
then :
printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if test ${ac_cv_safe_to_define___extensions__+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# define __EXTENSIONS__ 1
$ac_includes_default
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_safe_to_define___extensions__=yes
else $as_nop
ac_cv_safe_to_define___extensions__=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
if test ${ac_cv_should_define__xopen_source+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_should_define__xopen_source=no
if test $ac_cv_header_wchar_h = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <wchar.h>
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define _XOPEN_SOURCE 500
#include <wchar.h>
mbstate_t x;
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_should_define__xopen_source=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
if test $ac_cv_header_minix_config_h = yes
then :
MINIX=yes
printf "%s\n" "#define _MINIX 1" >>confdefs.h
printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
else $as_nop
MINIX=
fi
if test $ac_cv_safe_to_define___extensions__ = yes
then :
printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
fi
if test $ac_cv_should_define__xopen_source = yes
then :
printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test ${ac_cv_prog_CPP+y}
then :
printf %s "(cached) " >&6
else $as_nop
# Double quotes because $CC needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
printf %s "checking for grep that handles long lines and -e... " >&6; }
if test ${ac_cv_path_GREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$GREP"; then
ac_path_GREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in grep ggrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_GREP" || continue
# Check for GNU ac_path_GREP and select it if it is found.
# Check for GNU $ac_path_GREP
case `"$ac_path_GREP" --version 2>&1` in
*GNU*)
ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_GREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_GREP="$ac_path_GREP"
ac_path_GREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_GREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_GREP"; then
as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_GREP=$GREP
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
printf "%s\n" "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
# Ralf Wildenhues: With per-target flags we need CC_C_O
# AM_PROG_CC_C_O supersets AC_PROG_CC_C_O
if test $ac_cv_c_compiler_gnu = yes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC needs -traditional" >&5
printf %s "checking whether $CC needs -traditional... " >&6; }
if test ${ac_cv_prog_gcc_traditional+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_pattern="Autoconf.*'x'"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sgtty.h>
Autoconf TIOCGETP
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "$ac_pattern" >/dev/null 2>&1
then :
ac_cv_prog_gcc_traditional=yes
else $as_nop
ac_cv_prog_gcc_traditional=no
fi
rm -rf conftest*
if test $ac_cv_prog_gcc_traditional = no; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <termio.h>
Autoconf TCGETA
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "$ac_pattern" >/dev/null 2>&1
then :
ac_cv_prog_gcc_traditional=yes
fi
rm -rf conftest*
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_gcc_traditional" >&5
printf "%s\n" "$ac_cv_prog_gcc_traditional" >&6; }
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
fi
fi
CC_NOFORMAT=
CFLAGS_NTP=
CPPFLAGS_NTP=
LDADD_NTP=
LDFLAGS_NTP=
case "$ac_cv_prog_cc_c89" in
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ANSI C89/ISO C90 is the minimum to compile NTP
version 4.2.5 and higher." >&5
printf "%s\n" "$as_me: WARNING: ANSI C89/ISO C90 is the minimum to compile NTP
version 4.2.5 and higher." >&2;}
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle #warning" >&5
printf %s "checking if $CC can handle #warning... " >&6; }
if test ${ntp_cv_cpp_warning+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#warning foo
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_cpp_warning=yes
else $as_nop
ntp_cv_cpp_warning=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_cpp_warning" >&5
printf "%s\n" "$ntp_cv_cpp_warning" >&6; }
case "$ntp_cv_cpp_warning" in
no)
printf "%s\n" "#define NO_OPTION_NAME_WARNINGS 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC supports __attribute__((...))" >&5
printf %s "checking if $CC supports __attribute__((...))... " >&6; }
if test ${ntp_cv_cc_attribute+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
void foo(void) __attribute__((__noreturn__));
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_cc_attribute=yes
else $as_nop
ntp_cv_cc_attribute=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_cc_attribute" >&5
printf "%s\n" "$ntp_cv_cc_attribute" >&6; }
case "$ntp_cv_cc_attribute" in
yes)
printf "%s\n" "#define HAVE___ATTRIBUTE__ /**/" >>confdefs.h
esac
case "$GCC" in
yes)
SAVED_CFLAGS="$CFLAGS"
CFLAGS="$SAVED_CFLAGS -Wstrict-overflow"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Wstrict-overflow" >&5
printf %s "checking if $CC can handle -Wstrict-overflow... " >&6; }
if test ${ntp_cv_gcc_Wstrict_overflow+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Wstrict_overflow=yes
else $as_nop
ntp_cv_gcc_Wstrict_overflow=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Wstrict_overflow" >&5
printf "%s\n" "$ntp_cv_gcc_Wstrict_overflow" >&6; }
#
# $ntp_cv_gcc_Wstrict_overflow is tested later to add the
# flag to CFLAGS.
#
CFLAGS="$SAVED_CFLAGS -Winit-self"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Winit-self" >&5
printf %s "checking if $CC can handle -Winit-self... " >&6; }
if test ${ntp_cv_gcc_Winit_self+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Winit_self=yes
else $as_nop
ntp_cv_gcc_Winit_self=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Winit_self" >&5
printf "%s\n" "$ntp_cv_gcc_Winit_self" >&6; }
#
# libopts specifically builds a string with embedded NULs.
# This causes a bunch of distracting warnings due to -Wformat.
# Let's see if we can figure out how to disable these.
#
CFLAGS="$SAVED_CFLAGS -Wno-format"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC can handle -Wno-format" >&5
printf %s "checking if $CC can handle -Wno-format... " >&6; }
if test ${ntp_cv_gcc_Wno_format+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_gcc_Wno_format=yes
else $as_nop
ntp_cv_gcc_Wno_format=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gcc_Wno_format" >&5
printf "%s\n" "$ntp_cv_gcc_Wno_format" >&6; }
case "$ntp_cv_gcc_Wno_format" in
yes)
CC_NOFORMAT="$CC_NOFORMAT -Wno-format"
;;
no)
;;
esac
CFLAGS="$SAVED_CFLAGS"
{ SAVED_CFLAGS=; unset SAVED_CFLAGS;}
#
# $ntp_cv_gcc_Winit_self is tested later to add the
# flag to CFLAGS_NTP.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linker supports omitting unused code and data" >&5
printf %s "checking if linker supports omitting unused code and data... " >&6; }
if test ${ntp_cv_gc_sections_runs+y}
then :
printf %s "(cached) " >&6
else $as_nop
origCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -Wl,--gc-sections"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdio.h>
int
main (void)
{
FILE * fpC;
char buf[32];
size_t cch;
int read_success_once;
fpC = fopen("conftest.c", "r");
if (NULL == fpC)
exit(1);
do {
cch = fread(buf, sizeof(buf), 1, fpC);
read_success_once |= (0 != cch);
} while (0 != cch);
if (!read_success_once)
exit(2);
if (!feof(fpC))
exit(3);
if (0 != fclose(fpC))
exit(4);
exit(EXIT_SUCCESS);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if test "X$cross_compiling" = "Xyes" || grep gc-sections conftest.err ; then
ntp_cv_gc_sections_runs=no
else
ntp_cv_gc_sections_runs=no
./conftest >/dev/null 2>&1 && ntp_cv_gc_sections_runs=yes
fi
else $as_nop
ntp_cv_gc_sections_runs=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
CFLAGS="$origCFLAGS"
{ origCFLAGS=; unset origCFLAGS;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_gc_sections_runs" >&5
printf "%s\n" "$ntp_cv_gc_sections_runs" >&6; }
case "$ntp_cv_gc_sections_runs" in
yes)
LDADD_LIBNTP="-Wl,--gc-sections"
CFLAGS_NTP="$CFLAGS_NTP -ffunction-sections -fdata-sections"
;;
no)
LDADD_LIBNTP=
;;
esac
CFLAGS_NTP="$CFLAGS_NTP -Wall"
CFLAGS_NTP="$CFLAGS_NTP -Wcast-align"
CFLAGS_NTP="$CFLAGS_NTP -Wcast-qual"
# CFLAGS_NTP="$CFLAGS_NTP -Wconversion"
# CFLAGS_NTP="$CFLAGS_NTP -Werror"
# CFLAGS_NTP="$CFLAGS_NTP -Wextra"
# CFLAGS_NTP="$CFLAGS_NTP -Wfloat-equal"
CFLAGS_NTP="$CFLAGS_NTP -Wmissing-prototypes"
CFLAGS_NTP="$CFLAGS_NTP -Wpointer-arith"
CFLAGS_NTP="$CFLAGS_NTP -Wshadow"
# CFLAGS_NTP="$CFLAGS_NTP -Wtraditional"
# CFLAGS_NTP="$CFLAGS_NTP -Wwrite-strings"
case "$ntp_cv_gcc_Winit_self" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Winit-self"
esac
case "$ntp_cv_gcc_Wstrict_overflow" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-overflow"
esac
# -W[no-]strict-prototypes might be added by NTP_OPENSSL
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking additional compiler flags" >&5
printf %s "checking additional compiler flags... " >&6; }
# allow ntp_os_cflags to be preset to skip this stuff
case "${ntp_os_cflags+set}" in
set)
;;
*)
ntp_os_cflags=
case "$host_os" in
aix[1-3]*)
;;
aix4.[0-2]*)
# turn on additional headers
ntp_os_cflags="-D_XOPEN_EXTENDED_SOURCE"
;;
aix5.3*)
# avoid circular dependencies in yp headers, and more
ntp_os_cflags="-DHAVE_BAD_HEADERS -D_XOPEN_EXTENDED_SOURCE"
ntp_os_cflags="${ntp_os_cflags} -D_USE_IRS -D_MSGQSUPPORT"
;;
aix*)
# XXX Only verified thru AIX6.
# aix7 seems to need a different XOPEN_SOURCE_EXTENDED thing.
# avoid circular dependencies in yp headers
# _XOPEN_SOURCE=500 = X/Open 5: POSIX 1995
# _XOPEN_SOURCE=600 = X/Open 6: POSIX 2004
# _XOPEN_SOURCE=700 = X/Open 7: POSIX 2008
ntp_os_cflags="-DHAVE_BAD_HEADERS -D_XOPEN_SOURCE=600"
ntp_os_cflags="${ntp_os_cflags} -D_USE_IRS"
;;
amigaos)
ntp_os_cflags="-DSYS_AMIGA"
;;
darwin*|macosx*|rhapsody*)
ntp_os_cflags="-D_P1003_1B_VISIBLE"
;;
hpux10.*) # at least for hppa2.0-hp-hpux10.20
case "$GCC" in
yes)
;;
*)
# use Ansi compiler on HPUX, and some -Wp magic
ntp_os_cflags="-Ae -Wp,-H18816"
;;
esac
ntp_os_cflags="${ntp_os_cflags} -D_HPUX_SOURCE -D__STDC_VERSION__=199901L"
;;
hpux*)
case "$GCC" in
yes)
;;
*)
# use Ansi compiler on HPUX
ntp_os_cflags="-Ae"
esac
ntp_os_cflags="${ntp_os_cflags} -D_HPUX_SOURCE -D__STDC_VERSION__=199901L"
;;
irix6*)
case "$CC" in
cc)
# do not use 64-bit compiler
ntp_os_cflags="-n32 -mips3 -Wl,-woff,84"
esac
;;
nextstep3)
ntp_os_cflags="-posix"
;;
solaris1*|solaris2.[0-5]|solaris2.5.*)
;;
sunos[34]*|sunos5.[0-5]|sunos5.5.*)
;;
solaris2*|sunos5*)
# turn on 64-bit file offset interface
ntp_os_cflags="-D_LARGEFILE64_SOURCE"
;;
vxworks*)
case "$build" in
$host)
;;
*)
# Quick and dirty sanity check
case "$VX_KERNEL" in
'')
as_fn_error $? "See html/build/hints/vxworks.html" "$LINENO" 5
esac
ntp_os_cflags="-DSYS_VXWORKS"
esac
;;
esac
esac
case "$ntp_os_cflags" in
'')
ntp_os_cflags_msg="none needed"
;;
*)
ntp_os_cflags_msg="$ntp_os_cflags"
esac
CFLAGS_NTP="$CFLAGS_NTP $ntp_os_cflags"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_os_cflags_msg" >&5
printf "%s\n" "$ntp_os_cflags_msg" >&6; }
{ ntp_os_cflags_msg=; unset ntp_os_cflags_msg;}
###
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking additional linker flags" >&5
printf %s "checking additional linker flags... " >&6; }
# HMS: The following might still need tweaking
# allow ntp_os_ldflags to be preset to skip this stuff
case "${ntp_os_ldflags+set}" in
set)
;;
*)
ntp_os_ldflags=
case "$host_os" in
hpux*)
case "$GCC" in
yes)
ntp_os_ldflags="-Wl,+allowdups"
;;
esac
;;
esac
;;
esac
case "$ntp_os_ldflags" in
'')
ntp_os_ldflags_msg="none needed"
;;
*)
ntp_os_ldflags_msg="$ntp_os_ldflags"
esac
LDFLAGS_NTP="$LDFLAGS_NTP $ntp_os_ldflags"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_os_ldflags_msg" >&5
printf "%s\n" "$ntp_os_ldflags_msg" >&6; }
{ ntp_os_ldflags_msg=; unset ntp_os_ldflags_msg;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
printf %s "checking whether byte ordering is bigendian... " >&6; }
if test ${ac_cv_c_bigendian+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_c_bigendian=unknown
# See if we're dealing with a universal compiler.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __APPLE_CC__
not a universal capable compiler
#endif
typedef int dummy;
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# Check for potential -arch flags. It is not universal unless
# there are at least two -arch flags with different values.
ac_arch=
ac_prev=
for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
if test -n "$ac_prev"; then
case $ac_word in
i?86 | x86_64 | ppc | ppc64)
if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
ac_arch=$ac_word
else
ac_cv_c_bigendian=universal
break
fi
;;
esac
ac_prev=
elif test "x$ac_word" = "x-arch"; then
ac_prev=arch
fi
done
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
if test $ac_cv_c_bigendian = unknown; then
# See if sys/param.h defines the BYTE_ORDER macro.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
int
main (void)
{
#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
&& defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
&& LITTLE_ENDIAN)
bogus endian macros
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# It does; now see whether it defined to BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/param.h>
int
main (void)
{
#if BYTE_ORDER != BIG_ENDIAN
not big endian
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_bigendian=yes
else $as_nop
ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
main (void)
{
#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
bogus endian macros
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
# It does; now see whether it defined to _BIG_ENDIAN or not.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
int
main (void)
{
#ifndef _BIG_ENDIAN
not big endian
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_bigendian=yes
else $as_nop
ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
if test $ac_cv_c_bigendian = unknown; then
# Compile a test program.
if test "$cross_compiling" = yes
then :
# Try to guess by grepping values from an object file.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
unsigned short int ascii_mm[] =
{ 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
unsigned short int ascii_ii[] =
{ 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
int use_ascii (int i) {
return ascii_mm[i] + ascii_ii[i];
}
unsigned short int ebcdic_ii[] =
{ 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
unsigned short int ebcdic_mm[] =
{ 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
int use_ebcdic (int i) {
return ebcdic_mm[i] + ebcdic_ii[i];
}
extern int foo;
int
main (void)
{
return use_ascii (foo) == use_ebcdic (foo);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
ac_cv_c_bigendian=yes
fi
if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
if test "$ac_cv_c_bigendian" = unknown; then
ac_cv_c_bigendian=no
else
# finding both strings is unlikely to happen, but who knows?
ac_cv_c_bigendian=unknown
fi
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* Are we little or big endian? From Harbison&Steele. */
union
{
long int l;
char c[sizeof (long int)];
} u;
u.l = 1;
return u.c[sizeof (long int) - 1] == 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_c_bigendian=no
else $as_nop
ac_cv_c_bigendian=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
printf "%s\n" "$ac_cv_c_bigendian" >&6; }
case $ac_cv_c_bigendian in #(
yes)
printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
;; #(
no)
;; #(
universal)
printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
;; #(
*)
as_fn_error $? "unknown endianness
presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working volatile" >&5
printf %s "checking for working volatile... " >&6; }
if test ${ac_cv_c_volatile+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
volatile int x;
int * volatile y = (int *) 0;
return !x && !y;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_volatile=yes
else $as_nop
ac_cv_c_volatile=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5
printf "%s\n" "$ac_cv_c_volatile" >&6; }
if test $ac_cv_c_volatile = no; then
printf "%s\n" "#define volatile /**/" >>confdefs.h
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if test ${ac_cv_prog_CPP+y}
then :
printf %s "(cached) " >&6
else $as_nop
# Double quotes because $CC needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
break
fi
done
ac_cv_prog_CPP=$CPP
fi
CPP=$ac_cv_prog_CPP
else
ac_cv_prog_CPP=$CPP
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
printf "%s\n" "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
Syntax error
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
else $as_nop
# Broken: fails on valid input.
continue
fi
rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <ac_nonexistent.h>
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
# Broken: success on invalid input.
continue
else $as_nop
# Passes both tests.
ac_preproc_ok=:
break
fi
rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok
then :
else $as_nop
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See \`config.log' for more details" "$LINENO" 5; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compile/link hardening flags" >&5
printf %s "checking for compile/link hardening flags... " >&6; }
# Check whether --with-hardenfile was given.
if test ${with_hardenfile+y}
then :
withval=$with_hardenfile;
else $as_nop
with_hardenfile=no
fi
( \
SENTINEL_DIR="$PWD" && \
cd $srcdir/ && \
case "$with_hardenfile" in \
yes|no|'') \
scripts/genHardFlags -d "$SENTINEL_DIR" \
;; \
*) \
scripts/genHardFlags -d "$SENTINEL_DIR" -f "$with_hardenfile" \
;; \
esac \
) > genHardFlags.i 2> genHardFlags.err
. ./genHardFlags.i
case "$GENHARDFLAG" in
OK)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in file $GENHARDFLAGFILE" >&5
printf "%s\n" "in file $GENHARDFLAGFILE" >&6; }
rm genHardFlags.err genHardFlags.i
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed." >&5
printf "%s\n" "failed." >&6; }
as_fn_error $? "Problem with genHardFlags!" "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for install dir and man conventions" >&5
printf %s "checking for install dir and man conventions... " >&6; }
# Check whether --with-locfile was given.
if test ${with_locfile+y}
then :
withval=$with_locfile;
else $as_nop
with_locfile=no
fi
( \
SENTINEL_DIR="$PWD" && \
cd $srcdir/ && \
case "$with_locfile" in \
yes|no|'') \
scripts/genLocInfo -d "$SENTINEL_DIR" \
;; \
*) \
scripts/genLocInfo -d "$SENTINEL_DIR" -f "$with_locfile" \
;; \
esac \
) > genLocInfo.i 2> genLocInfo.err
. ./genLocInfo.i
case "$GENLOCINFO" in
OK)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: in file $GENLOCINFOFILE" >&5
printf "%s\n" "in file $GENLOCINFOFILE" >&6; }
rm genLocInfo.err genLocInfo.i
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed." >&5
printf "%s\n" "failed." >&6; }
as_fn_error $? "Problem with genLocInfo!" "$LINENO" 5
;;
esac
if test "$CALC_TICKADJ_MS" ; then
WANT_CALC_TICKADJ_MS_TRUE=
WANT_CALC_TICKADJ_MS_FALSE='#'
else
WANT_CALC_TICKADJ_MS_TRUE='#'
WANT_CALC_TICKADJ_MS_FALSE=
fi
if test -z "$NTPSWEEP_NI" ; then
INSTALL_NTPSWEEP_TRUE=
INSTALL_NTPSWEEP_FALSE='#'
else
INSTALL_NTPSWEEP_TRUE='#'
INSTALL_NTPSWEEP_FALSE=
fi
if test -z "$UPDATE_LEAP_NI" ; then
INSTALL_UPDATE_LEAP_TRUE=
INSTALL_UPDATE_LEAP_FALSE='#'
else
INSTALL_UPDATE_LEAP_TRUE='#'
INSTALL_UPDATE_LEAP_FALSE=
fi
if test -n "$ac_tool_prefix"; then
for ac_prog in ar lib "link -lib"
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
printf "%s\n" "$AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AR" && break
done
fi
if test -z "$AR"; then
ac_ct_AR=$AR
for ac_prog in ar lib "link -lib"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
printf "%s\n" "$ac_ct_AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then
AR="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
fi
: ${AR=ar}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5
printf %s "checking the archiver ($AR) interface... " >&6; }
if test ${am_cv_ar_interface+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
am_cv_ar_interface=ar
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int some_variable = 0;
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
(eval $am_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test "$ac_status" -eq 0; then
am_cv_ar_interface=ar
else
am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
(eval $am_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test "$ac_status" -eq 0; then
am_cv_ar_interface=lib
else
am_cv_ar_interface=unknown
fi
fi
rm -f conftest.lib libconftest.a
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
printf "%s\n" "$am_cv_ar_interface" >&6; }
case $am_cv_ar_interface in
ar)
;;
lib)
# Microsoft lib, so override with the ar-lib wrapper script.
# FIXME: It is wrong to rewrite AR.
# But if we don't then we get into trouble of one sort or another.
# A longer-term fix would be to have automake use am__AR in this case,
# and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
# similar.
AR="$am_aux_dir/ar-lib $AR"
;;
unknown)
as_fn_error $? "could not determine $AR interface" "$LINENO" 5
;;
esac
# Expose a cross-compilation indicator to makefiles
if test $build != $host; then
NTP_CROSSCOMPILE_TRUE=
NTP_CROSSCOMPILE_FALSE='#'
else
NTP_CROSSCOMPILE_TRUE='#'
NTP_CROSSCOMPILE_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
{ ac_script=; unset ac_script;}
if test -z "$SED"; then
ac_path_SED_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in sed gsed
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_SED_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_SED="$ac_path_SED"
ac_path_SED_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_SED_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
test -z "$SED" && SED=sed
Xsed="$SED -e 1s/^X//"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
printf %s "checking for fgrep... " >&6; }
if test ${ac_cv_path_FGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
then ac_cv_path_FGREP="$GREP -F"
else
if test -z "$FGREP"; then
ac_path_FGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in fgrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_FGREP" || continue
# Check for GNU ac_path_FGREP and select it if it is found.
# Check for GNU $ac_path_FGREP
case `"$ac_path_FGREP" --version 2>&1` in
*GNU*)
ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'FGREP' >> "conftest.nl"
"$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_FGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_FGREP="$ac_path_FGREP"
ac_path_FGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_FGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_FGREP"; then
as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_FGREP=$FGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
printf "%s\n" "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
test -z "$GREP" && GREP=grep
ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
printf %s "checking how to print strings... " >&6; }
# Test print first, because it will be a builtin if present.
if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='print -r --'
elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
ECHO='printf %s\n'
else
# Use this function as a fallback that always works.
func_fallback_echo ()
{
eval 'cat <<_LTECHO_EOF
$1
_LTECHO_EOF'
}
ECHO='func_fallback_echo'
fi
# func_echo_all arg...
# Invoke $ECHO with all args, space-separated.
func_echo_all ()
{
$ECHO ""
}
case $ECHO in
printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
printf "%s\n" "printf" >&6; } ;;
print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
printf "%s\n" "print -r" >&6; } ;;
*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
printf "%s\n" "cat" >&6; } ;;
esac
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
"
if test "x$ac_cv_type_pid_t" = xyes
then :
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined _WIN64 && !defined __CYGWIN__
LLP64
#endif
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_pid_type='int'
else $as_nop
ac_pid_type='__int64'
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
fi
ac_func=
for ac_item in $ac_func_c_list
do
if test $ac_func; then
ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
echo "#define $ac_item 1" >> confdefs.h
fi
ac_func=
else
ac_func=$ac_item
fi
done
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
else $as_nop
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_save_CFLAGS=$CFLAGS
ac_cv_c_undeclared_builtin_options='cannot detect'
for ac_arg in '' -fno-builtin; do
CFLAGS="$ac_save_CFLAGS $ac_arg"
# This test program should *not* compile successfully.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
(void) strchr;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
else $as_nop
# This test program should compile successfully.
# No library function is consistently available on
# freestanding implementations, so test against a dummy
# declaration. Include always-available headers on the
# off chance that they somehow elicit warnings.
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <float.h>
#include <limits.h>
#include <stdarg.h>
#include <stddef.h>
extern void ac_decl (int, char *);
int
main (void)
{
(void) ac_decl (0, (char *) 0);
(void) ac_decl;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
if test x"$ac_arg" = x
then :
ac_cv_c_undeclared_builtin_options='none needed'
else $as_nop
ac_cv_c_undeclared_builtin_options=$ac_arg
fi
break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
CFLAGS=$ac_save_CFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
case $ac_cv_c_undeclared_builtin_options in #(
'cannot detect') :
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot make $CC report undeclared builtins
See \`config.log' for more details" "$LINENO" 5; } ;; #(
'none needed') :
ac_c_undeclared_builtin_options='' ;; #(
*) :
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac
ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strerror_r" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
# Check whether --enable-c99-snprintf was given.
if test ${enable_c99_snprintf+y}
then :
enableval=$enable_c99_snprintf; force_c99_snprintf=$enableval
else $as_nop
force_c99_snprintf=no
fi
case "$force_c99_snprintf" in
yes)
hw_force_rpl_snprintf=yes
hw_force_rpl_vsnprintf=yes
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
printf %s "checking for unsigned long long int... " >&6; }
if test ${ac_cv_type_unsigned_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_unsigned_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* For now, do not test the preprocessor; as of 2007 there are too many
implementations with broken preprocessors. Perhaps this can
be revisited in 2012. In the meantime, code should not expect
#if to work with literals wider than 32 bits. */
/* Test literals. */
long long int ll = 9223372036854775807ll;
long long int nll = -9223372036854775807LL;
unsigned long long int ull = 18446744073709551615ULL;
/* Test constant expressions. */
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
? 1 : -1)];
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
? 1 : -1)];
int i = 63;
int
main (void)
{
/* Test availability of runtime routines for shift and division. */
long long int llmax = 9223372036854775807ll;
unsigned long long int ullmax = 18446744073709551615ull;
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
| (llmax / ll) | (llmax % ll)
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
| (ullmax / ull) | (ullmax % ull));
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
else $as_nop
ac_cv_type_unsigned_long_long_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; }
if test $ac_cv_type_unsigned_long_long_int = yes; then
printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
if test "x$ac_cv_func_vsnprintf" = xyes
then :
hw_cv_func_vsnprintf=yes
else $as_nop
hw_cv_func_vsnprintf=no
fi
if test "$hw_cv_func_vsnprintf" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf is C99 compliant" >&5
printf %s "checking whether vsnprintf is C99 compliant... " >&6; }
if test ${hw_cv_func_vsnprintf_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
hw_cv_func_vsnprintf_c99=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if HAVE_STDARG_H
#include <stdarg.h>
#endif
#include <stdio.h>
static int testprintf(char *buf, size_t size, const char *format, ...)
{
int result;
va_list ap;
va_start(ap, format);
result = vsnprintf(buf, size, format, ap);
va_end(ap);
return result;
}
int
main (void)
{
char buf[43];
if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
buf[0] != 'T' || buf[3] != '\0')
return 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
hw_cv_func_vsnprintf_c99=yes
else $as_nop
hw_cv_func_vsnprintf_c99=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_vsnprintf_c99" >&5
printf "%s\n" "$hw_cv_func_vsnprintf_c99" >&6; }
else $as_nop
hw_cv_func_vsnprintf_c99=no
fi
printf "%s\n" "#define HAVE_VSNPRINTF 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C99-snprintf replacement vsnprintf will be used" >&5
printf %s "checking if C99-snprintf replacement vsnprintf will be used... " >&6; }
if test "${hw_force_rpl_vsnprintf=no}" = yes -o "$hw_cv_func_vsnprintf_c99" = no
then :
hw_use_rpl_vsnprintf=yes
else $as_nop
hw_use_rpl_vsnprintf=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_use_rpl_vsnprintf" >&5
printf "%s\n" "$hw_use_rpl_vsnprintf" >&6; }
if test "$hw_use_rpl_vsnprintf" = yes
then :
printf "%s\n" "#define HW_WANT_RPL_VSNPRINTF 1" >>confdefs.h
if test ${hw_nodef_vsnprintf=no} = no
then :
printf "%s\n" "#define vsnprintf rpl_vsnprintf" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
if test "x$ac_cv_header_inttypes_h" = xyes
then :
printf "%s\n" "#define HAVE_INTTYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
if test "x$ac_cv_header_locale_h" = xyes
then :
printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default"
if test "x$ac_cv_header_stddef_h" = xyes
then :
printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
if test "x$ac_cv_header_stdint_h" = xyes
then :
printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
fi
ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
"
if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes
then :
printf "%s\n" "#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1" >>confdefs.h
fi
ac_fn_c_check_member "$LINENO" "struct lconv" "thousands_sep" "ac_cv_member_struct_lconv_thousands_sep" "#include <locale.h>
"
if test "x$ac_cv_member_struct_lconv_thousands_sep" = xyes
then :
printf "%s\n" "#define HAVE_STRUCT_LCONV_THOUSANDS_SEP 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
printf %s "checking for long double... " >&6; }
if test ${ac_cv_type_long_double+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$GCC" = yes; then
ac_cv_type_long_double=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* The Stardent Vistra knows sizeof (long double), but does
not support it. */
long double foo = 0.0L;
int
main (void)
{
static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
sizeof (double) <= sizeof (long double))];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_type_long_double=yes
else $as_nop
ac_cv_type_long_double=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
printf "%s\n" "$ac_cv_type_long_double" >&6; }
if test $ac_cv_type_long_double = yes; then
printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
printf %s "checking for long long int... " >&6; }
if test ${ac_cv_type_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
if test $ac_cv_type_long_long_int = yes; then
if test "$cross_compiling" = yes
then :
:
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
#ifndef LLONG_MAX
# define HALF \
(1LL << (sizeof (long long int) * CHAR_BIT - 2))
# define LLONG_MAX (HALF - 1 + HALF)
#endif
int
main (void)
{
long long int n = 1;
int i;
for (i = 0; ; i++)
{
long long int m = n << i;
if (m >> i != n)
return 1;
if (LLONG_MAX / 2 < m)
break;
}
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
else $as_nop
ac_cv_type_long_long_int=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5
printf "%s\n" "$ac_cv_type_long_long_int" >&6; }
if test $ac_cv_type_long_long_int = yes; then
printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
printf %s "checking for unsigned long long int... " >&6; }
if test ${ac_cv_type_unsigned_long_long_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_type_unsigned_long_long_int=yes
case $ac_prog_cc_stdc in
no | c89) ;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* For now, do not test the preprocessor; as of 2007 there are too many
implementations with broken preprocessors. Perhaps this can
be revisited in 2012. In the meantime, code should not expect
#if to work with literals wider than 32 bits. */
/* Test literals. */
long long int ll = 9223372036854775807ll;
long long int nll = -9223372036854775807LL;
unsigned long long int ull = 18446744073709551615ULL;
/* Test constant expressions. */
typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
? 1 : -1)];
typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
? 1 : -1)];
int i = 63;
int
main (void)
{
/* Test availability of runtime routines for shift and division. */
long long int llmax = 9223372036854775807ll;
unsigned long long int ullmax = 18446744073709551615ull;
return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
| (llmax / ll) | (llmax % ll)
| (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
| (ullmax / ull) | (ullmax % ull));
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
else $as_nop
ac_cv_type_unsigned_long_long_int=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5
printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; }
if test $ac_cv_type_unsigned_long_long_int = yes; then
printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
else $as_nop
printf "%s\n" "#define size_t unsigned int" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
if test "x$ac_cv_type_intmax_t" = xyes
then :
printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h
else $as_nop
test $ac_cv_type_long_long_int = yes \
&& ac_type='long long int' \
|| ac_type='long int'
printf "%s\n" "#define intmax_t $ac_type" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
if test "x$ac_cv_type_uintmax_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTMAX_T 1" >>confdefs.h
else $as_nop
test $ac_cv_type_unsigned_long_long_int = yes \
&& ac_type='unsigned long long int' \
|| ac_type='unsigned long int'
printf "%s\n" "#define uintmax_t $ac_type" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
else $as_nop
for ac_type in 'unsigned int' 'unsigned long int' \
'unsigned long long int'; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
printf "%s\n" "#define uintptr_t $ac_type" >>confdefs.h
ac_type=
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test -z "$ac_type" && break
done
fi
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
if test "x$ac_cv_type_ptrdiff_t" = xyes
then :
printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "localeconv" "ac_cv_func_localeconv"
if test "x$ac_cv_func_localeconv" = xyes
then :
printf "%s\n" "#define HAVE_LOCALECONV 1" >>confdefs.h
fi
if test "x$_hw_cv_func_xprintf_replace_done" != xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __cplusplus
/* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this sort of thing. */
char tx;
char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
else $as_nop
ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
printf "%s\n" "#define const /**/" >>confdefs.h
fi
case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
;;
esac
_hw_cv_func_xprintf_replace_done=yes
fi
fi
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
if test "x$ac_cv_func_snprintf" = xyes
then :
hw_cv_func_snprintf=yes
else $as_nop
hw_cv_func_snprintf=no
fi
if test "$hw_cv_func_snprintf" = yes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf is C99 compliant" >&5
printf %s "checking whether snprintf is C99 compliant... " >&6; }
if test ${hw_cv_func_snprintf_c99+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
hw_cv_func_snprintf_c99=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int
main (void)
{
char buf[43];
if (snprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
snprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
buf[0] != 'T' || buf[3] != '\0')
return 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
hw_cv_func_snprintf_c99=yes
else $as_nop
hw_cv_func_snprintf_c99=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_snprintf_c99" >&5
printf "%s\n" "$hw_cv_func_snprintf_c99" >&6; }
else $as_nop
hw_cv_func_snprintf_c99=no
fi
printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if C99-snprintf replacement snprintf will be used" >&5
printf %s "checking if C99-snprintf replacement snprintf will be used... " >&6; }
if test "${hw_force_rpl_snprintf=no}" = yes -o "$hw_cv_func_snprintf_c99" = no
then :
hw_use_rpl_snprintf=yes
else $as_nop
hw_use_rpl_snprintf=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hw_use_rpl_snprintf" >&5
printf "%s\n" "$hw_use_rpl_snprintf" >&6; }
if test "$hw_use_rpl_snprintf" = yes
then :
printf "%s\n" "#define HW_WANT_RPL_SNPRINTF 1" >>confdefs.h
if test ${hw_nodef_snprintf=no} = no
then :
printf "%s\n" "#define snprintf rpl_snprintf" >>confdefs.h
fi
if test "x$_hw_cv_func_xprintf_replace_done" != xyes
then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
printf %s "checking for an ANSI C-conforming const... " >&6; }
if test ${ac_cv_c_const+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
#ifndef __cplusplus
/* Ultrix mips cc rejects this sort of thing. */
typedef int charset[2];
const charset cs = { 0, 0 };
/* SunOS 4.1.1 cc rejects this. */
char const *const *pcpcc;
char **ppc;
/* NEC SVR4.0.2 mips cc rejects this. */
struct point {int x, y;};
static struct point const zero = {0,0};
/* IBM XL C 1.02.0.0 rejects this.
It does not let you subtract one const X* pointer from another in
an arm of an if-expression whose if-part is not a constant
expression */
const char *g = "string";
pcpcc = &g + (g ? g-g : 0);
/* HPUX 7.0 cc rejects these. */
++pcpcc;
ppc = (char**) pcpcc;
pcpcc = (char const *const *) ppc;
{ /* SCO 3.2v4 cc rejects this sort of thing. */
char tx;
char *t = &tx;
char const *s = 0 ? (char *) 0 : (char const *) 0;
*t++ = 0;
if (s) return 0;
}
{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
int x[] = {25, 17};
const int *foo = &x[0];
++foo;
}
{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
typedef const int *iptr;
iptr p = 0;
++p;
}
{ /* IBM XL C 1.02.0.0 rejects this sort of thing, saying
"k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
struct s { int j; const int *ap[3]; } bx;
struct s *b = &bx; b->j = 5;
}
{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
const int foo = 10;
if (!foo) return 0;
}
return !cs[0] && !zero.x;
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_const=yes
else $as_nop
ac_cv_c_const=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
printf "%s\n" "$ac_cv_c_const" >&6; }
if test $ac_cv_c_const = no; then
printf "%s\n" "#define const /**/" >>confdefs.h
fi
case " $LIBOBJS " in
*" snprintf.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
;;
esac
_hw_cv_func_xprintf_replace_done=yes
fi
fi
# HMS: Save $LIBS and empty it.
# any LIBS we add here should go in to LDADD_LIBNTP
__LIBS=$LIBS
LIBS=
# [Bug 2332] because we need to know if we are using GNU ld...
# Check whether --with-gnu-ld was given.
if test ${with_gnu_ld+y}
then :
withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
else $as_nop
with_gnu_ld=no
fi
ac_prog=ld
if test yes = "$GCC"; then
# Check if gcc -print-prog-name=ld gives a path.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return, which upsets mingw
ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
*)
ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
esac
case $ac_prog in
# Accept absolute paths.
[\\/]* | ?:[\\/]*)
re_direlt='/[^/][^/]*/\.\./'
# Canonicalize the pathname of ld
ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
done
test -z "$LD" && LD=$ac_prog
;;
"")
# If it fails, then pretend we aren't using GCC.
ac_prog=ld
;;
*)
# If it is relative, then search for the first ld in PATH.
with_gnu_ld=unknown
;;
esac
elif test yes = "$with_gnu_ld"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
printf %s "checking for GNU ld... " >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
printf %s "checking for non-GNU ld... " >&6; }
fi
if test ${lt_cv_path_LD+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "$LD"; then
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
lt_cv_path_LD=$ac_dir/$ac_prog
# Check to see if the program is GNU ld. I'd rather use --version,
# but apparently some variants of GNU ld only accept -v.
# Break only if it was the GNU/non-GNU ld that we prefer.
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
test no != "$with_gnu_ld" && break
;;
*)
test yes != "$with_gnu_ld" && break
;;
esac
fi
done
IFS=$lt_save_ifs
else
lt_cv_path_LD=$LD # Let the user override the test with a path.
fi
fi
LD=$lt_cv_path_LD
if test -n "$LD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
printf "%s\n" "$LD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
printf %s "(cached) " >&6
else $as_nop
# I'd rather use --version here, but apparently some GNU lds only accept -v.
case `$LD -v 2>&1 </dev/null` in
*GNU* | *'with BFD'*)
lt_cv_prog_gnu_ld=yes
;;
*)
lt_cv_prog_gnu_ld=no
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for directory path separator" >&5
printf %s "checking for directory path separator... " >&6; }
if test ${ntp_cv_dir_sep+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$ntp_cv_dir_sep" in
'')
case "$host_os" in
*djgpp | *mingw32* | *emx*)
ntp_cv_dir_sep="'\\'"
;;
*)
ntp_cv_dir_sep="'/'"
;;
esac
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_dir_sep" >&5
printf "%s\n" "$ntp_cv_dir_sep" >&6; }
printf "%s\n" "#define DIR_SEP $ntp_cv_dir_sep" >>confdefs.h
NTP_ORIG_LIBS="$LIBS"
# Check whether --with-lineeditlibs was given.
if test ${with_lineeditlibs+y}
then :
withval=$with_lineeditlibs; use_lineeditlibs="$withval"
else $as_nop
use_lineeditlibs="edit,editline"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking line editing libraries" >&5
printf %s "checking line editing libraries... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $use_lineeditlibs" >&5
printf "%s\n" "$use_lineeditlibs" >&6; }
case "$use_lineeditlibs" in
no)
ntp_lib_lineedit=no
;;
*)
for lineedit_lib in `echo $use_lineeditlibs | sed -e 's/,/ /'`; do
for term_lib in "" termcap curses ncurses; do
case "$term_lib" in
'')
TRY_LIB="-l$lineedit_lib"
;;
*)
TRY_LIB="-l$lineedit_lib -l$term_lib"
;;
esac
LIBS="$NTP_ORIG_LIBS $TRY_LIB"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline() with $TRY_LIB" >&5
printf %s "checking for readline() with $TRY_LIB... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char readline ();
int
main (void)
{
return readline ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit="$TRY_LIB"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
case "$ntp_lib_lineedit" in
'')
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*)
# Use readline()
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
break
esac
case "$term_lib" in
'')
# do not try el_gets without a terminal library
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for el_gets() with $TRY_LIB" >&5
printf %s "checking for el_gets() with $TRY_LIB... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char el_gets ();
int
main (void)
{
return el_gets ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit="$TRY_LIB"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
case "$ntp_lib_lineedit" in
'')
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*) # Use el_gets()
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
break
;;
esac # $ntp_lib_lineedit
esac # $term_lib
done
case "$ntp_lib_lineedit" in
'')
;;
*)
break
;;
esac
done
LIBS="$NTP_ORIG_LIBS"
;;
esac # $use_lineeditlibs
case "$ntp_lib_lineedit" in
'')
ntp_lib_lineedit="no"
;;
no)
;;
*)
EDITLINE_LIBS="$ntp_lib_lineedit"
;;
esac # $ntp_lib_lineedit
case "$ntp_lib_lineedit" in
no)
;;
*)
ac_fn_c_check_header_compile "$LINENO" "readline.h" "ac_cv_header_readline_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "readline/readline.h" "ac_cv_header_readline_readline_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_readline_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_READLINE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "histedit.h" "ac_cv_header_histedit_h" "$ac_includes_default"
if test "x$ac_cv_header_histedit_h" = xyes
then :
printf "%s\n" "#define HAVE_HISTEDIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "history.h" "ac_cv_header_history_h" "$ac_includes_default"
if test "x$ac_cv_header_history_h" = xyes
then :
printf "%s\n" "#define HAVE_HISTORY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "readline/history.h" "ac_cv_header_readline_history_h" "$ac_includes_default"
if test "x$ac_cv_header_readline_history_h" = xyes
then :
printf "%s\n" "#define HAVE_READLINE_HISTORY_H 1" >>confdefs.h
fi
case "$ac_cv_header_histedit_h" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking number of arguments to el_init()" >&5
printf %s "checking number of arguments to el_init()... " >&6; }
if test ${ntp_cv_el_init_args+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#include <histedit.h>
int
main (void)
{
el_init("conftest", stdin, stdout, stderr);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_el_init_args=4
else $as_nop
ntp_cv_el_init_args=3
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_el_init_args" >&5
printf "%s\n" "$ntp_cv_el_init_args" >&6; }
printf "%s\n" "#define EL_INIT_ARGS $ntp_cv_el_init_args" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readline supports history" >&5
printf %s "checking whether readline supports history... " >&6; }
ntp_lib_lineedit_history="no"
ORIG_LIBS="$LIBS"
LIBS="$ORIG_LIBS $ntp_lib_lineedit"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char add_history ();
int
main (void)
{
return add_history ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_lib_lineedit_history="yes"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$ORIG_LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_lib_lineedit_history" >&5
printf "%s\n" "$ntp_lib_lineedit_history" >&6; }
case "$ntp_lib_lineedit_history" in
yes)
printf "%s\n" "#define HAVE_READLINE_HISTORY 1" >>confdefs.h
esac
esac # $ntp_lib_lineedit
{ NTP_ORIG_LIBS=; unset NTP_ORIG_LIBS;}
{ ORIG_LIBS=; unset ORIG_LIBS;}
{ TRY_LIB=; unset TRY_LIB;}
{ use_lineeditlibs=; unset use_lineeditlibs;}
LIBM=
case "$host" in
*-*-darwin*)
;;
*)
_libs=$LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing cos" >&5
printf %s "checking for library containing cos... " >&6; }
if test ${ac_cv_search_cos+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char cos ();
int
main (void)
{
return cos ();
;
return 0;
}
_ACEOF
for ac_lib in '' m
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_cos=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_cos+y}
then :
break
fi
done
if test ${ac_cv_search_cos+y}
then :
else $as_nop
ac_cv_search_cos=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_cos" >&5
printf "%s\n" "$ac_cv_search_cos" >&6; }
ac_res=$ac_cv_search_cos
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
LIBM="-lm"
fi
LIBS=$_libs
;;
esac
{ _libs=; unset _libs;}
if test "x$ac_cv_func_fork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
printf %s "checking for working fork... " >&6; }
if test ${ac_cv_func_fork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_fork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* By Ruediger Kuhlmann. */
return fork () < 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_fork_works=yes
else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
fi
if test "x$ac_cv_func_fork_works" = xcross; then
case $host in
*-*-amigaos* | *-*-msdosdjgpp*)
# Override, as these systems have only a dummy fork() stub
ac_cv_func_fork_works=no
;;
*)
ac_cv_func_fork_works=yes
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
printf %s "checking for working vfork... " >&6; }
if test ${ac_cv_func_vfork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_vfork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
static void
do_nothing (int sig)
{
(void) sig;
}
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
(e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
sparc_address_test (int arg)
{
static pid_t child;
if (!child) {
child = vfork ();
if (child < 0) {
perror ("vfork");
_exit(2);
}
if (!child) {
arg = getpid();
write(-1, "", 0);
_exit (arg);
}
}
}
int
main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
/* On Solaris 2.4, changes by the child to the signal handler
also munge signal handlers in the parent. To detect this,
start by putting the parent's handler in a known state. */
signal (SIGTERM, SIG_DFL);
child = vfork ();
if (child == 0) {
/* Here is another test for sparc vfork register problems. This
test uses lots of local variables, at least as many local
variables as main has allocated so far including compiler
temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
reuse the register of parent for one of the local variables,
since it will think that parent can't possibly be used any more
in this routine. Assigning to the local variable will thus
munge parent in the parent process. */
pid_t
p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
/* Convince the compiler that p..p7 are live; otherwise, it might
use the same hardware register for all 8 local variables. */
if (p != p1 || p != p2 || p != p3 || p != p4
|| p != p5 || p != p6 || p != p7)
_exit(1);
/* Alter the child's signal handler. */
if (signal (SIGTERM, do_nothing) != SIG_DFL)
_exit(1);
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
as well. Test for this by closing stdout in the child. */
_exit(close(fileno(stdout)) != 0);
} else {
int status;
struct stat st;
while (wait(&status) != child)
;
return (
/* Was there some problem with vforking? */
child < 0
/* Did the child munge the parent's signal handler? */
|| signal (SIGTERM, SIG_DFL) != SIG_DFL
/* Did the child fail? (This shouldn't happen.) */
|| status
/* Did the vfork/compiler bug occur? */
|| parent != getpid()
/* Did the file descriptor bug occur? */
|| fstat(fileno(stdout), &st) != 0
);
}
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_vfork_works=yes
else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
printf %s "checking for working alloca.h... " >&6; }
if test ${ac_cv_working_alloca_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <alloca.h>
int
main (void)
{
char *p = (char *) alloca (2 * sizeof (int));
if (p) return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_working_alloca_h=yes
else $as_nop
ac_cv_working_alloca_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
if test $ac_cv_working_alloca_h = yes; then
printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
printf %s "checking for alloca... " >&6; }
if test ${ac_cv_func_alloca_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test $ac_cv_working_alloca_h = yes; then
ac_cv_func_alloca_works=yes
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stddef.h>
#ifndef alloca
# ifdef __GNUC__
# define alloca __builtin_alloca
# elif defined _MSC_VER
# include <malloc.h>
# define alloca _alloca
# else
# ifdef __cplusplus
extern "C"
# endif
void *alloca (size_t);
# endif
#endif
int
main (void)
{
char *p = (char *) alloca (1);
if (p) return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_func_alloca_works=yes
else $as_nop
ac_cv_func_alloca_works=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
fi
if test $ac_cv_func_alloca_works = yes; then
printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
# that cause trouble. Some versions do not even contain alloca or
# contain a buggy version. If you still want to use their alloca,
# use ar to extract alloca.o from them instead of compiling alloca.c.
ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
printf %s "checking stack direction for C alloca... " >&6; }
if test ${ac_cv_c_stack_direction+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_c_stack_direction=0
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
find_stack_direction (int *addr, int depth)
{
int dir, dummy = 0;
if (! addr)
addr = &dummy;
*addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
dir = depth ? find_stack_direction (addr, depth - 1) : 0;
return dir + dummy;
}
int
main (int argc, char **argv)
{
return find_stack_direction (0, argc + !argv + 20) < 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_c_stack_direction=1
else $as_nop
ac_cv_c_stack_direction=-1
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
fi
if test $ac_cv_have_decl_strerror_r = yes; then
# For backward compatibility's sake, define HAVE_STRERROR_R.
# (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well
# as AC_CHECK_DECLS_ONCE.)
printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
printf %s "checking whether strerror_r returns char *... " >&6; }
if test ${ac_cv_func_strerror_r_char_p+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_func_strerror_r_char_p=no
if test $ac_cv_have_decl_strerror_r = yes; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
int
main (void)
{
char buf[100];
char x = *strerror_r (0, buf, sizeof buf);
char *p = strerror_r (0, buf, sizeof buf);
return !p || x;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_func_strerror_r_char_p=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; }
if test $ac_cv_func_strerror_r_char_p = yes; then
printf "%s\n" "#define STRERROR_R_CHAR_P 1" >>confdefs.h
fi
ac_busted_vpath_in_make=no
case "$build" in
*-*-irix6.1*) # 64 bit only
# busted vpath?
;;
*-*-irix6*) # 6.2 (and later?)
ac_busted_vpath_in_make=yes
;;
*-*-solaris2.5.1)
ac_busted_vpath_in_make=yes
;;
*-*-unicosmp*)
ac_busted_vpath_in_make=yes
;;
esac
case "$ac_busted_vpath_in_make$srcdir" in
yes.|no*)
;;
*) case "`${MAKE-make} -v -f /dev/null 2>/dev/null | grep 'GNU Make'`" in
'')
as_fn_error $? "building outside of the main directory requires GNU make" "$LINENO" 5
esac
;;
esac
case "$host" in
*-*-aix4*)
# Bug 2516:
# Was *-*-aix[[4-9]]*
# XXX only verified thru AIX6. But...
# Ken Link says this is fine for AIX 5.3 and 7.1, and sees no reason
# that this support would be in 5.3, removed in 6, and added back.
#
# (prr) aix 4.1 doesn't have clock_settime, but in aix 4.3 it's a stub
# (returning ENOSYS). I didn't check 4.2. If, in the future,
# IBM pulls its thumbs out long enough to implement clock_settime,
# this conditional will need to change. Maybe use AC_TRY_RUN
# instead to try to set the time to itself and check errno.
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char clock_gettime ();
int
main (void)
{
return clock_gettime ();
;
return 0;
}
_ACEOF
for ac_lib in '' rt
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_clock_gettime=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_clock_gettime+y}
then :
break
fi
done
if test ${ac_cv_search_clock_gettime+y}
then :
else $as_nop
ac_cv_search_clock_gettime=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_clock_gettime" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_clock_gettime $LDADD_LIBNTP" ;;
esac
fi
ac_fn_c_check_func "$LINENO" "clock_getres" "ac_cv_func_clock_getres"
if test "x$ac_cv_func_clock_getres" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_GETRES 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
if test "x$ac_cv_func_clock_gettime" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "clock_settime" "ac_cv_func_clock_settime"
if test "x$ac_cv_func_clock_settime" = xyes
then :
printf "%s\n" "#define HAVE_CLOCK_SETTIME 1" >>confdefs.h
fi
;;
esac
ac_fn_c_check_func "$LINENO" "getclock" "ac_cv_func_getclock"
if test "x$ac_cv_func_getclock" = xyes
then :
printf "%s\n" "#define HAVE_GETCLOCK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "stime" "ac_cv_func_stime"
if test "x$ac_cv_func_stime" = xyes
then :
printf "%s\n" "#define HAVE_STIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "timegm" "ac_cv_func_timegm"
if test "x$ac_cv_func_timegm" = xyes
then :
printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
if test "x$ac_cv_func_strlcpy" = xyes
then :
printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
if test "x$ac_cv_func_strlcat" = xyes
then :
printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
fi
# Bug 2713
LDADD_LIBUTIL=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing snprintb" >&5
printf %s "checking for library containing snprintb... " >&6; }
if test ${ac_cv_search_snprintb+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char snprintb ();
int
main (void)
{
return snprintb ();
;
return 0;
}
_ACEOF
for ac_lib in '' util
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_snprintb=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_snprintb+y}
then :
break
fi
done
if test ${ac_cv_search_snprintb+y}
then :
else $as_nop
ac_cv_search_snprintb=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_snprintb" >&5
printf "%s\n" "$ac_cv_search_snprintb" >&6; }
ac_res=$ac_cv_search_snprintb
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_snprintb" in
'none required') ;;
no) ;;
*) LDADD_LIBUTIL="$ac_cv_search_snprintb $LDADD_LIBUTIL" ;;
esac
printf "%s\n" "#define USE_SNPRINTB 1" >>confdefs.h
fi
#
ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
if test "x$ac_cv_header_errno_h" = xyes
then :
printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_types_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default"
if test "x$ac_cv_header_time_h" = xyes
then :
printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
"
if test "x$ac_cv_header_net_if_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
fi
case "$host" in
*-hp-hpux*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if net/if.h requires mpinfou predeclaration" >&5
printf %s "checking if net/if.h requires mpinfou predeclaration... " >&6; }
if test ${ntp_cv_predecl_mpinfou+y}
then :
printf %s "(cached) " >&6
else $as_nop
np_cv_predecl_mpinfou=no
case "$ac_cv_header_net_if_h" in
no)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
typedef union mpinfou {
struct pdk_mpinfo *pdkptr;
struct mpinfo *pikptr;
} mpinfou_t;
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#include <net/if.h>
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_predecl_mpinfou=yes
ac_cv_header_net_if_h=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_predecl_mpinfou" >&5
printf "%s\n" "$ntp_cv_predecl_mpinfou" >&6; }
case "$ntp_cv_predecl_mpinfou" in
yes)
cat >>confdefs.h <<_ACEOF
#ifndef MPINFOU_PREDECLARED
# define MPINFOU_PREDECLARED
typedef union mpinfou {
struct pdk_mpinfo *pdkptr;
struct mpinfo *pikptr;
} mpinfou_t;
#endif
_ACEOF
esac
esac
case "$host" in
*-linux*)
ac_fn_c_check_header_compile "$LINENO" "linux/if_addr.h" "ac_cv_header_linux_if_addr_h" "
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
"
if test "x$ac_cv_header_linux_if_addr_h" = xyes
then :
printf "%s\n" "#define HAVE_LINUX_IF_ADDR_H 1" >>confdefs.h
fi
printf "%s\n" "#define NEED_EARLY_FORK 1" >>confdefs.h
esac
ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "$ac_includes_default"
if test "x$ac_cv_header_arpa_nameser_h" = xyes
then :
printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_time_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/timers.h" "ac_cv_header_sys_timers_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_timers_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIMERS_H 1" >>confdefs.h
fi
# sys/sysctl.h depends on sys/param.h on OpenBSD - Bug 1576
ac_fn_c_check_header_compile "$LINENO" "sys/sysctl.h" "ac_cv_header_sys_sysctl_h" "
#if defined HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
"
if test "x$ac_cv_header_sys_sysctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SYSCTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_system.h" "ac_cv_header_netinet_in_system_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_system_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_SYSTEM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_systm.h" "ac_cv_header_netinet_in_systm_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_systm_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_SYSTM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
"
if test "x$ac_cv_header_resolv_h" = xyes
then :
printf "%s\n" "#define HAVE_RESOLV_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "net/if_var.h" "ac_cv_header_net_if_var_h" "
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
"
if test "x$ac_cv_header_net_if_var_h" = xyes
then :
printf "%s\n" "#define HAVE_NET_IF_VAR_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/ip.h" "ac_cv_header_netinet_ip_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_VAR_H
# include <net/if_var.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
"
if test "x$ac_cv_header_netinet_ip_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in_var.h" "ac_cv_header_netinet_in_var_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NET_IF_H
# include <net/if.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
#ifdef HAVE_NET_IF_VAR_H
# include <net/if_var.h>
#endif
#ifdef HAVE_NETINET_IN_SYSTM_H
# include <netinet/in_systm.h>
#endif
"
if test "x$ac_cv_header_netinet_in_var_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_VAR_H 1" >>confdefs.h
fi
# HMS: Do we need to check for -lsocket before or after these tests?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
printf %s "checking for library containing inet_pton... " >&6; }
if test ${ac_cv_search_inet_pton+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char inet_pton ();
int
main (void)
{
return inet_pton ();
;
return 0;
}
_ACEOF
for ac_lib in '' nsl
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_inet_pton=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_inet_pton+y}
then :
break
fi
done
if test ${ac_cv_search_inet_pton+y}
then :
else $as_nop
ac_cv_search_inet_pton=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_pton" >&5
printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
ac_res=$ac_cv_search_inet_pton
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_inet_pton" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_inet_pton $LDADD_LIBNTP" ;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5
printf %s "checking for library containing inet_ntop... " >&6; }
if test ${ac_cv_search_inet_ntop+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char inet_ntop ();
int
main (void)
{
return inet_ntop ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_inet_ntop=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_inet_ntop+y}
then :
break
fi
done
if test ${ac_cv_search_inet_ntop+y}
then :
else $as_nop
ac_cv_search_inet_ntop=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5
printf "%s\n" "$ac_cv_search_inet_ntop" >&6; }
ac_res=$ac_cv_search_inet_ntop
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_inet_ntop" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_inet_ntop $LDADD_LIBNTP" ;;
esac
fi
# [Bug 1628] On Solaris, we need -lxnet -lsocket. Generalize this to
# avoid keying on the OS name: If we find socket functions in
# libsocket, next try for them in libxnet without libsocket, if found,
# list both. If we simply tested libxnet first, we would find the
# functions there and never add libsocket. See also [Bug 660]
# http://bugs.ntp.org/show_bug.cgi?id=660#c9
saved_LIBS=$LIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
printf %s "checking for library containing setsockopt... " >&6; }
if test ${ac_cv_search_setsockopt+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char setsockopt ();
int
main (void)
{
return setsockopt ();
;
return 0;
}
_ACEOF
for ac_lib in '' socket
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_setsockopt=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_setsockopt+y}
then :
break
fi
done
if test ${ac_cv_search_setsockopt+y}
then :
else $as_nop
ac_cv_search_setsockopt=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
printf "%s\n" "$ac_cv_search_setsockopt" >&6; }
ac_res=$ac_cv_search_setsockopt
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_setsockopt" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_setsockopt $LDADD_LIBNTP" ;;
esac
fi
case "$ac_cv_search_setsockopt" in
-lsocket)
LIBS="$saved_LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getsockopt" >&5
printf %s "checking for library containing getsockopt... " >&6; }
if test ${ac_cv_search_getsockopt+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char getsockopt ();
int
main (void)
{
return getsockopt ();
;
return 0;
}
_ACEOF
for ac_lib in '' xnet
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_getsockopt=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_getsockopt+y}
then :
break
fi
done
if test ${ac_cv_search_getsockopt+y}
then :
else $as_nop
ac_cv_search_getsockopt=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getsockopt" >&5
printf "%s\n" "$ac_cv_search_getsockopt" >&6; }
ac_res=$ac_cv_search_getsockopt
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_getsockopt" in
'none required') ;;
no) ;;
*) LDADD_LIBNTP="$ac_cv_search_getsockopt $LDADD_LIBNTP" ;;
esac
fi
# XXX Possible trouble here - reading the comments above and looking at the
# code below I wonder if we'll add -lxnet when we don't need it.
# Also, do we need to add -lxnet to LDADD_LIBNTP, or perhaps see if it's
# there when it is not needed?
case "$ac_cv_search_getsockopt" in
-lxnet)
LIBS="-lxnet -lsocket $saved_LIBS"
;;
*) LIBS="-lsocket $saved_LIBS"
;;
esac
;;
esac
{ saved_LIBS=; unset saved_LIBS;}
# Bug 2427 - look for recvmsg here.
ac_fn_c_check_func "$LINENO" "recvmsg" "ac_cv_func_recvmsg"
if test "x$ac_cv_func_recvmsg" = xyes
then :
printf "%s\n" "#define HAVE_RECVMSG 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
printf %s "checking for inline... " >&6; }
if test ${ac_cv_c_inline+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifndef __cplusplus
typedef int foo_t;
static $ac_kw foo_t static_foo (void) {return 0; }
$ac_kw foo_t foo (void) {return 0; }
#endif
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_inline=$ac_kw
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
test "$ac_cv_c_inline" != no && break
done
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
printf "%s\n" "$ac_cv_c_inline" >&6; }
case $ac_cv_c_inline in
inline | yes) ;;
*)
case $ac_cv_c_inline in
no) ac_val=;;
*) ac_val=$ac_cv_c_inline;;
esac
cat >>confdefs.h <<_ACEOF
#ifndef __cplusplus
#define inline $ac_val
#endif
_ACEOF
;;
esac
case "$ac_cv_c_inline" in
'')
;;
*)
printf "%s\n" "#define HAVE_INLINE 1" >>confdefs.h
esac
# Obsolete code to be removed.
if test $ac_cv_header_sys_time_h = yes; then
printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
fi
# End of obsolete code.
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
printf %s "checking size of time_t... " >&6; }
if test ${ac_cv_sizeof_time_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_time_t" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (time_t)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_time_t=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
printf "%s\n" "$ac_cv_sizeof_time_t" >&6; }
printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether char is unsigned" >&5
printf %s "checking whether char is unsigned... " >&6; }
if test ${ac_cv_c_char_unsigned+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
static int test_array [1 - 2 * !(((char) -1) < 0)];
test_array [0] = 0;
return test_array [0];
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_c_char_unsigned=no
else $as_nop
ac_cv_c_char_unsigned=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_char_unsigned" >&5
printf "%s\n" "$ac_cv_c_char_unsigned" >&6; }
if test $ac_cv_c_char_unsigned = yes; then
printf "%s\n" "#define __CHAR_UNSIGNED__ 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of signed char" >&5
printf %s "checking size of signed char... " >&6; }
if test ${ac_cv_sizeof_signed_char+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (signed char))" "ac_cv_sizeof_signed_char" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_signed_char" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (signed char)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_signed_char=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_signed_char" >&5
printf "%s\n" "$ac_cv_sizeof_signed_char" >&6; }
printf "%s\n" "#define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char" >>confdefs.h
ac_fn_c_check_type "$LINENO" "s_char" "ac_cv_type_s_char" "$ac_includes_default"
if test "x$ac_cv_type_s_char" = xyes
then :
printf "%s\n" "#define HAVE_S_CHAR 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
if test "x$ac_cv_type_long_long" = xyes
then :
printf "%s\n" "#define HAVE_LONG_LONG 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
printf %s "checking size of short... " >&6; }
if test ${ac_cv_sizeof_short+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_short" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (short)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
printf "%s\n" "$ac_cv_sizeof_short" >&6; }
printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
printf %s "checking size of int... " >&6; }
if test ${ac_cv_sizeof_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_int" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
printf "%s\n" "$ac_cv_sizeof_int" >&6; }
printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
printf "%s\n" "$ac_cv_sizeof_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
case "$ac_cv_type_long_long" in
no)
;;
*)
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
printf %s "checking size of long long... " >&6; }
if test ${ac_cv_sizeof_long_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
printf "%s\n" "$ac_cv_sizeof_long_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h
;;
esac
case "$ac_cv_c_char_unsigned$ac_cv_sizeof_signed_char$ac_cv_type_s_char" in
*yes)
# We have a typedef for s_char. Might as well believe it...
;;
no0no)
# We have signed chars, can't say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
no1no)
# We have signed chars, can say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
yes0no)
# We have unsigned chars, can't say 'signed char', no s_char typedef.
as_fn_error $? "No way to specify a signed character!" "$LINENO" 5
;;
yes1no)
# We have unsigned chars, can say 'signed char', no s_char typedef.
printf "%s\n" "#define NEED_S_CHAR_TYPEDEF 1" >>confdefs.h
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
printf %s "checking for uid_t in sys/types.h... " >&6; }
if test ${ac_cv_type_uid_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "uid_t" >/dev/null 2>&1
then :
ac_cv_type_uid_t=yes
else $as_nop
ac_cv_type_uid_t=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
printf "%s\n" "$ac_cv_type_uid_t" >&6; }
if test $ac_cv_type_uid_t = no; then
printf "%s\n" "#define uid_t int" >>confdefs.h
printf "%s\n" "#define gid_t int" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're including debugging code" >&5
printf %s "checking if we're including debugging code... " >&6; }
# Check whether --enable-debugging was given.
if test ${enable_debugging+y}
then :
enableval=$enable_debugging; ntp_ok=$enableval
else $as_nop
ntp_ok=yes
fi
case "$ntp_ok" in
yes)
printf "%s\n" "#define DEBUG 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_ok" >&5
printf "%s\n" "$ntp_ok" >&6; }
# check if we can compile with pthreads
ac_fn_c_check_header_compile "$LINENO" "semaphore.h" "ac_cv_header_semaphore_h" "$ac_includes_default"
if test "x$ac_cv_header_semaphore_h" = xyes
then :
printf "%s\n" "#define HAVE_SEMAPHORE_H 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair"
if test "x$ac_cv_func_socketpair" = xyes
then :
printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
fi
# Check whether --enable-thread-support was given.
if test ${enable_thread_support+y}
then :
enableval=$enable_thread_support;
else $as_nop
enable_thread_support=yes
fi
have_pthreads=no
case "$enable_thread_support" in
no) ;;
*)
ol_found_pthreads=no
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# OpenLDAP --with-threads
# Check whether --with-threads was given.
if test ${with_threads+y}
then :
withval=$with_threads;
ol_arg=invalid
for ol_val in auto nt posix mach pth lwp yes no manual ; do
if test "$withval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
as_fn_error $? "bad value $withval for --with-threads" "$LINENO" 5
fi
ol_with_threads="$ol_arg"
else $as_nop
ol_with_threads="auto"
fi
# end --with-threads
case "$ol_with_threads$host" in
auto*-*-solaris2.[0-6])
ol_with_threads=no
;;
esac
ol_aix_threads=no
case "$host" in
*-*-aix*) if test -z "$CC" ; then
case "$ol_with_threads" in
auto | yes | posix) ol_aix_threads=yes ;;
esac
fi
;;
esac
if test $ol_aix_threads = yes ; then
if test -z "${CC}" ; then
for ac_prog in cc_r xlc_r cc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
printf "%s\n" "$CC" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$CC" && break
done
if test "$CC" = cc ; then
if test $ol_with_threads != auto ; then
as_fn_error $? "--with-threads requires cc_r (or other suitable compiler) on AIX" "$LINENO" 5
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: disabling threads, no cc_r on AIX" >&5
printf "%s\n" "$as_me: WARNING: disabling threads, no cc_r on AIX" >&2;}
fi
ol_with_threads=no
fi
fi
case ${CC} in cc_r | xlc_r)
ol_with_threads=posix
ol_cv_pthread_create=yes
;;
esac
fi
ol_link_threads=no
# OpenLDAP --with-yielding_select
# Check whether --with-yielding_select was given.
if test ${with_yielding_select+y}
then :
withval=$with_yielding_select;
ol_arg=invalid
for ol_val in auto yes no manual ; do
if test "$withval" = "$ol_val" ; then
ol_arg="$ol_val"
fi
done
if test "$ol_arg" = "invalid" ; then
as_fn_error $? "bad value $withval for --with-yielding_select" "$LINENO" 5
fi
ol_with_yielding_select="$ol_arg"
else $as_nop
ol_with_yielding_select="auto"
fi
# end --with-yielding_select
case $ol_with_threads in auto | yes | nt)
ac_fn_c_check_func "$LINENO" "_beginthread" "ac_cv_func__beginthread"
if test "x$ac_cv_func__beginthread" = xyes
then :
fi
if test $ac_cv_func__beginthread = yes ; then
printf "%s\n" "#define HAVE_NT_THREADS 1" >>confdefs.h
ol_cv_nt_threads=yes
fi
if test "$ol_cv_nt_threads" = yes ; then
ol_link_threads=nt
ol_with_threads=found
ol_with_yielding_select=yes
printf "%s\n" "#define HAVE_NT_SERVICE_MANAGER 1" >>confdefs.h
printf "%s\n" "#define HAVE_NT_EVENT_LOG 1" >>confdefs.h
fi
if test $ol_with_threads = nt ; then
as_fn_error $? "could not locate NT Threads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | posix)
ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h
fi
if test $ac_cv_header_pthread_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking POSIX thread version" >&5
printf %s "checking POSIX thread version... " >&6; }
if test ${ol_cv_pthread_version+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
int
main (void)
{
int i = PTHREAD_CREATE_JOINABLE;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_detach" >/dev/null 2>&1
then :
ol_cv_pthread_version=10
else $as_nop
ol_cv_pthread_version=8
fi
rm -rf conftest*
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
# ifdef PTHREAD_CREATE_UNDETACHED
draft7
# endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "draft7" >/dev/null 2>&1
then :
ol_cv_pthread_version=7
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_attr_init" >/dev/null 2>&1
then :
ol_cv_pthread_version=6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
# include <pthread.h>
#ifdef PTHREAD_MUTEX_INITIALIZER
draft5
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "draft5" >/dev/null 2>&1
then :
ol_cv_pthread_version=5
else $as_nop
ol_cv_pthread_version=4
fi
rm -rf conftest*
fi
rm -rf conftest*
fi
rm -rf conftest*
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_version" >&5
printf "%s\n" "$ol_cv_pthread_version" >&6; }
if test $ol_cv_pthread_version != 0 ; then
printf "%s\n" "#define HAVE_PTHREADS $ol_cv_pthread_version" >>confdefs.h
else
as_fn_error $? "unknown pthread version" "$LINENO" 5
fi
# consider threads found
ol_with_threads=found
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads pthread.h" >&5
printf %s "checking for LinuxThreads pthread.h... " >&6; }
if test ${ol_cv_header_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_kill_other_threads_np" >/dev/null 2>&1
then :
ol_cv_header_linux_threads=yes
else $as_nop
ol_cv_header_linux_threads=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_linux_threads" >&5
printf "%s\n" "$ol_cv_header_linux_threads" >&6; }
if test $ol_cv_header_linux_threads = yes; then
printf "%s\n" "#define HAVE_LINUX_THREADS 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU Pth pthread.h" >&5
printf %s "checking for GNU Pth pthread.h... " >&6; }
if test ${ol_cv_header_gnu_pth_pthread_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
#ifdef _POSIX_THREAD_IS_GNU_PTH
__gnu_pth__;
#endif
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "__gnu_pth__" >/dev/null 2>&1
then :
ol_cv_header_gnu_pth_pthread_h=yes
else $as_nop
ol_cv_header_gnu_pth_pthread_h=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_gnu_pth_pthread_h" >&5
printf "%s\n" "$ol_cv_header_gnu_pth_pthread_h" >&6; }
if test $ol_cv_header_gnu_pth_pthread_h = no ; then
ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_create in default libraries" >&5
printf %s "checking for pthread_create in default libraries... " >&6; }
if test ${ol_cv_pthread_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_create=yes
else $as_nop
ol_cv_pthread_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_create=yes
else $as_nop
ol_cv_pthread_create=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_create" >&5
printf "%s\n" "$ol_cv_pthread_create" >&6; }
if test $ol_cv_pthread_create != no ; then
ol_link_threads=posix
ol_link_pthreads=""
fi
# Pthread try link: -kthread (ol_cv_pthread_kthread)
if test "$ol_link_threads" = no ; then
# try -kthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -kthread" >&5
printf %s "checking for pthread link with -kthread... " >&6; }
if test ${ol_cv_pthread_kthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-kthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_kthread=yes
else $as_nop
ol_cv_pthread_kthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_kthread=yes
else $as_nop
ol_cv_pthread_kthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_kthread" >&5
printf "%s\n" "$ol_cv_pthread_kthread" >&6; }
if test $ol_cv_pthread_kthread = yes ; then
ol_link_pthreads="-kthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -pthread (ol_cv_pthread_pthread)
if test "$ol_link_threads" = no ; then
# try -pthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -pthread" >&5
printf %s "checking for pthread link with -pthread... " >&6; }
if test ${ol_cv_pthread_pthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-pthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_pthread=yes
else $as_nop
ol_cv_pthread_pthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_pthread=yes
else $as_nop
ol_cv_pthread_pthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_pthread" >&5
printf "%s\n" "$ol_cv_pthread_pthread" >&6; }
if test $ol_cv_pthread_pthread = yes ; then
ol_link_pthreads="-pthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -pthreads (ol_cv_pthread_pthreads)
if test "$ol_link_threads" = no ; then
# try -pthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -pthreads" >&5
printf %s "checking for pthread link with -pthreads... " >&6; }
if test ${ol_cv_pthread_pthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-pthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_pthreads=yes
else $as_nop
ol_cv_pthread_pthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_pthreads=yes
else $as_nop
ol_cv_pthread_pthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_pthreads" >&5
printf "%s\n" "$ol_cv_pthread_pthreads" >&6; }
if test $ol_cv_pthread_pthreads = yes ; then
ol_link_pthreads="-pthreads"
ol_link_threads=posix
fi
fi
# Pthread try link: -mthreads (ol_cv_pthread_mthreads)
if test "$ol_link_threads" = no ; then
# try -mthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -mthreads" >&5
printf %s "checking for pthread link with -mthreads... " >&6; }
if test ${ol_cv_pthread_mthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-mthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_mthreads=yes
else $as_nop
ol_cv_pthread_mthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_mthreads=yes
else $as_nop
ol_cv_pthread_mthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_mthreads" >&5
printf "%s\n" "$ol_cv_pthread_mthreads" >&6; }
if test $ol_cv_pthread_mthreads = yes ; then
ol_link_pthreads="-mthreads"
ol_link_threads=posix
fi
fi
# Pthread try link: -thread (ol_cv_pthread_thread)
if test "$ol_link_threads" = no ; then
# try -thread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -thread" >&5
printf %s "checking for pthread link with -thread... " >&6; }
if test ${ol_cv_pthread_thread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-thread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_thread=yes
else $as_nop
ol_cv_pthread_thread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_thread=yes
else $as_nop
ol_cv_pthread_thread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_thread" >&5
printf "%s\n" "$ol_cv_pthread_thread" >&6; }
if test $ol_cv_pthread_thread = yes ; then
ol_link_pthreads="-thread"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -lmach -lexc -lc_r (ol_cv_pthread_lpthread_lmach_lexc_lc_r)
if test "$ol_link_threads" = no ; then
# try -lpthread -lmach -lexc -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5
printf %s "checking for pthread link with -lpthread -lmach -lexc -lc_r... " >&6; }
if test ${ol_cv_pthread_lpthread_lmach_lexc_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -lmach -lexc -lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread_lmach_lexc_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lpthread_lmach_lexc_lc_r" >&6; }
if test $ol_cv_pthread_lpthread_lmach_lexc_lc_r = yes ; then
ol_link_pthreads="-lpthread -lmach -lexc -lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -lmach -lexc (ol_cv_pthread_lpthread_lmach_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthread -lmach -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -lmach -lexc" >&5
printf %s "checking for pthread link with -lpthread -lmach -lexc... " >&6; }
if test ${ol_cv_pthread_lpthread_lmach_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -lmach -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthread_lmach_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread_lmach_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthread_lmach_lexc" >&6; }
if test $ol_cv_pthread_lpthread_lmach_lexc = yes ; then
ol_link_pthreads="-lpthread -lmach -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread -Wl,-woff,85 (ol_cv_pthread_lib_lpthread_woff)
if test "$ol_link_threads" = no ; then
# try -lpthread -Wl,-woff,85
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread -Wl,-woff,85" >&5
printf %s "checking for pthread link with -lpthread -Wl,-woff,85... " >&6; }
if test ${ol_cv_pthread_lib_lpthread_woff+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread -Wl,-woff,85 $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lib_lpthread_woff=yes
else $as_nop
ol_cv_pthread_lib_lpthread_woff=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lib_lpthread_woff=yes
else $as_nop
ol_cv_pthread_lib_lpthread_woff=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lib_lpthread_woff" >&5
printf "%s\n" "$ol_cv_pthread_lib_lpthread_woff" >&6; }
if test $ol_cv_pthread_lib_lpthread_woff = yes ; then
ol_link_pthreads="-lpthread -Wl,-woff,85"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthread (ol_cv_pthread_lpthread)
if test "$ol_link_threads" = no ; then
# try -lpthread
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthread" >&5
printf %s "checking for pthread link with -lpthread... " >&6; }
if test ${ol_cv_pthread_lpthread+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthread $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthread=yes
else $as_nop
ol_cv_pthread_lpthread=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthread=yes
else $as_nop
ol_cv_pthread_lpthread=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthread" >&5
printf "%s\n" "$ol_cv_pthread_lpthread" >&6; }
if test $ol_cv_pthread_lpthread = yes ; then
ol_link_pthreads="-lpthread"
ol_link_threads=posix
fi
fi
# Pthread try link: -lc_r (ol_cv_pthread_lc_r)
if test "$ol_link_threads" = no ; then
# try -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lc_r" >&5
printf %s "checking for pthread link with -lc_r... " >&6; }
if test ${ol_cv_pthread_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lc_r=yes
else $as_nop
ol_cv_pthread_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lc_r=yes
else $as_nop
ol_cv_pthread_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lc_r" >&6; }
if test $ol_cv_pthread_lc_r = yes ; then
ol_link_pthreads="-lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -threads (ol_cv_pthread_threads)
if test "$ol_link_threads" = no ; then
# try -threads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -threads" >&5
printf %s "checking for pthread link with -threads... " >&6; }
if test ${ol_cv_pthread_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-threads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_threads=yes
else $as_nop
ol_cv_pthread_threads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_threads=yes
else $as_nop
ol_cv_pthread_threads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_threads" >&5
printf "%s\n" "$ol_cv_pthread_threads" >&6; }
if test $ol_cv_pthread_threads = yes ; then
ol_link_pthreads="-threads"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lmach -lexc -lc_r (ol_cv_pthread_lpthreads_lmach_lexc_lc_r)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lmach -lexc -lc_r
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5
printf %s "checking for pthread link with -lpthreads -lmach -lexc -lc_r... " >&6; }
if test ${ol_cv_pthread_lpthreads_lmach_lexc_lc_r+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lmach -lexc -lc_r $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc_lc_r=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lmach_lexc_lc_r" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lmach_lexc_lc_r" >&6; }
if test $ol_cv_pthread_lpthreads_lmach_lexc_lc_r = yes ; then
ol_link_pthreads="-lpthreads -lmach -lexc -lc_r"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lmach -lexc (ol_cv_pthread_lpthreads_lmach_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lmach -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lmach -lexc" >&5
printf %s "checking for pthread link with -lpthreads -lmach -lexc... " >&6; }
if test ${ol_cv_pthread_lpthreads_lmach_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lmach -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lmach_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lmach_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lmach_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lmach_lexc" >&6; }
if test $ol_cv_pthread_lpthreads_lmach_lexc = yes ; then
ol_link_pthreads="-lpthreads -lmach -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads -lexc (ol_cv_pthread_lpthreads_lexc)
if test "$ol_link_threads" = no ; then
# try -lpthreads -lexc
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads -lexc" >&5
printf %s "checking for pthread link with -lpthreads -lexc... " >&6; }
if test ${ol_cv_pthread_lpthreads_lexc+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads -lexc $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lpthreads_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lexc=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lpthreads_lexc=yes
else $as_nop
ol_cv_pthread_lpthreads_lexc=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lpthreads_lexc" >&5
printf "%s\n" "$ol_cv_pthread_lpthreads_lexc" >&6; }
if test $ol_cv_pthread_lpthreads_lexc = yes ; then
ol_link_pthreads="-lpthreads -lexc"
ol_link_threads=posix
fi
fi
# Pthread try link: -lpthreads (ol_cv_pthread_lib_lpthreads)
if test "$ol_link_threads" = no ; then
# try -lpthreads
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread link with -lpthreads" >&5
printf %s "checking for pthread link with -lpthreads... " >&6; }
if test ${ol_cv_pthread_lib_lpthreads+y}
then :
printf %s "(cached) " >&6
else $as_nop
# save the flags
ol_LIBS="$LIBS"
LIBS="-lpthreads $LIBS"
if test "$cross_compiling" = yes
then :
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int
main (void)
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_pthread_lib_lpthreads=yes
else $as_nop
ol_cv_pthread_lib_lpthreads=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_lib_lpthreads=yes
else $as_nop
ol_cv_pthread_lib_lpthreads=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# restore the LIBS
LIBS="$ol_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_lib_lpthreads" >&5
printf "%s\n" "$ol_cv_pthread_lib_lpthreads" >&6; }
if test $ol_cv_pthread_lib_lpthreads = yes ; then
ol_link_pthreads="-lpthreads"
ol_link_threads=posix
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ol_link_threads: <$ol_link_threads> ol_link_pthreads <$ol_link_pthreads>" >&5
printf "%s\n" "$as_me: ol_link_threads: <$ol_link_threads> ol_link_pthreads <$ol_link_pthreads>" >&6;}
if test $ol_link_threads != no ; then
LTHREAD_LIBS="$LTHREAD_LIBS $ol_link_pthreads"
save_CPPFLAGS="$CPPFLAGS"
save_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
if test "x$ac_cv_func_sched_yield" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_yield" "ac_cv_func_pthread_yield"
if test "x$ac_cv_func_pthread_yield" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_yield" "ac_cv_func_thr_yield"
if test "x$ac_cv_func_thr_yield" = xyes
then :
printf "%s\n" "#define HAVE_THR_YIELD 1" >>confdefs.h
fi
if test $ac_cv_func_sched_yield = no &&
test $ac_cv_func_pthread_yield = no &&
test $ac_cv_func_thr_yield = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5
printf %s "checking for sched_yield in -lrt... " >&6; }
if test ${ac_cv_lib_rt_sched_yield+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lrt $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sched_yield ();
int
main (void)
{
return sched_yield ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_rt_sched_yield=yes
else $as_nop
ac_cv_lib_rt_sched_yield=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5
printf "%s\n" "$ac_cv_lib_rt_sched_yield" >&6; }
if test "x$ac_cv_lib_rt_sched_yield" = xyes
then :
LTHREAD_LIBS="$LTHREAD_LIBS -lrt"
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
ac_cv_func_sched_yield=yes
else $as_nop
ac_cv_func_sched_yield=no
fi
fi
if test $ac_cv_func_sched_yield = no &&
test $ac_cv_func_pthread_yield = no &&
test "$ac_cv_func_thr_yield" = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: could not locate sched_yield() or pthread_yield()" >&5
printf "%s\n" "$as_me: WARNING: could not locate sched_yield() or pthread_yield()" >&2;}
fi
ac_fn_c_check_func "$LINENO" "pthread_kill" "ac_cv_func_pthread_kill"
if test "x$ac_cv_func_pthread_kill" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_KILL 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_rwlock_destroy with <pthread.h>" >&5
printf %s "checking for pthread_rwlock_destroy with <pthread.h>... " >&6; }
if test ${ol_cv_func_pthread_rwlock_destroy+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
pthread_rwlock_t rwlock;
int
main (void)
{
pthread_rwlock_destroy(&rwlock);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_func_pthread_rwlock_destroy=yes
else $as_nop
ol_cv_func_pthread_rwlock_destroy=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_func_pthread_rwlock_destroy" >&5
printf "%s\n" "$ol_cv_func_pthread_rwlock_destroy" >&6; }
if test $ol_cv_func_pthread_rwlock_destroy = yes ; then
printf "%s\n" "#define HAVE_PTHREAD_RWLOCK_DESTROY 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_detach with <pthread.h>" >&5
printf %s "checking for pthread_detach with <pthread.h>... " >&6; }
if test ${ol_cv_func_pthread_detach+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
#ifndef NULL
#define NULL (void*)0
#endif
int
main (void)
{
pthread_detach(NULL);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_func_pthread_detach=yes
else $as_nop
ol_cv_func_pthread_detach=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_func_pthread_detach" >&5
printf "%s\n" "$ol_cv_func_pthread_detach" >&6; }
if test $ol_cv_func_pthread_detach = no ; then
as_fn_error $? "could not locate pthread_detach()" "$LINENO" 5
fi
printf "%s\n" "#define HAVE_PTHREAD_DETACH 1" >>confdefs.h
ac_fn_c_check_func "$LINENO" "pthread_setconcurrency" "ac_cv_func_pthread_setconcurrency"
if test "x$ac_cv_func_pthread_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_getconcurrency" "ac_cv_func_pthread_getconcurrency"
if test "x$ac_cv_func_pthread_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_GETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_setconcurrency" "ac_cv_func_thr_setconcurrency"
if test "x$ac_cv_func_thr_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_getconcurrency" "ac_cv_func_thr_getconcurrency"
if test "x$ac_cv_func_thr_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_GETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_kill_other_threads_np" "ac_cv_func_pthread_kill_other_threads_np"
if test "x$ac_cv_func_pthread_kill_other_threads_np" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_KILL_OTHER_THREADS_NP 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads implementation" >&5
printf %s "checking for LinuxThreads implementation... " >&6; }
if test ${ol_cv_sys_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
ol_cv_sys_linux_threads=$ac_cv_func_pthread_kill_other_threads_np
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_sys_linux_threads" >&5
printf "%s\n" "$ol_cv_sys_linux_threads" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads consistency" >&5
printf %s "checking for LinuxThreads consistency... " >&6; }
if test ${ol_cv_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test $ol_cv_header_linux_threads = yes &&
test $ol_cv_sys_linux_threads = yes; then
ol_cv_linux_threads=yes
elif test $ol_cv_header_linux_threads = no &&
test $ol_cv_sys_linux_threads = no; then
ol_cv_linux_threads=no
else
ol_cv_linux_threads=error
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_linux_threads" >&5
printf "%s\n" "$ol_cv_linux_threads" >&6; }
if test $ol_cv_linux_threads = error; then
as_fn_error $? "LinuxThreads header/library mismatch" "$LINENO" 5;
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if pthread_create() works" >&5
printf %s "checking if pthread_create() works... " >&6; }
if test ${ol_cv_pthread_create_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ol_cv_pthread_create_works=yes
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* pthread test headers */
#include <pthread.h>
#if HAVE_PTHREADS < 7
#include <errno.h>
#endif
#ifndef NULL
#define NULL (void*)0
#endif
static void *task(p)
void *p;
{
return (void *) (p == NULL);
}
int main(argc, argv)
int argc;
char **argv;
{
/* pthread test function */
#ifndef PTHREAD_CREATE_DETACHED
#define PTHREAD_CREATE_DETACHED 1
#endif
pthread_t t;
int status;
int detach = PTHREAD_CREATE_DETACHED;
#if HAVE_PTHREADS > 4
/* Final pthreads */
pthread_attr_t attr;
status = pthread_attr_init(&attr);
if( status ) return status;
#if HAVE_PTHREADS < 7
status = pthread_attr_setdetachstate(&attr, &detach);
if( status < 0 ) status = errno;
#else
status = pthread_attr_setdetachstate(&attr, detach);
#endif
if( status ) return status;
status = pthread_create( &t, &attr, task, NULL );
#if HAVE_PTHREADS < 7
if( status < 0 ) status = errno;
#endif
if( status ) return status;
#else
/* Draft 4 pthreads */
status = pthread_create( &t, pthread_attr_default, task, NULL );
if( status ) return errno;
/* give thread a chance to complete */
/* it should remain joinable and hence detachable */
sleep( 1 );
status = pthread_detach( &t );
if( status ) return errno;
#endif
#ifdef HAVE_LINUX_THREADS
pthread_kill_other_threads_np();
#endif
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_create_works=yes
else $as_nop
ol_cv_pthread_create_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_create_works" >&5
printf "%s\n" "$ol_cv_pthread_create_works" >&6; }
if test $ol_cv_pthread_create_works = no ; then
as_fn_error $? "pthread_create is not usable, check environment settings" "$LINENO" 5
fi
ol_replace_broken_yield=no
if test $ol_replace_broken_yield = yes ; then
printf "%s\n" "#define REPLACE_BROKEN_YIELD 1" >>confdefs.h
fi
if test x$ol_with_yielding_select = xauto ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if select yields when using pthreads" >&5
printf %s "checking if select yields when using pthreads... " >&6; }
if test ${ol_cv_pthread_select_yields+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ol_cv_pthread_select_yields=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
#include <pthread.h>
#ifndef NULL
#define NULL (void*) 0
#endif
static int fildes[2];
static void *task(p)
void *p;
{
int i;
struct timeval tv;
fd_set rfds;
tv.tv_sec=10;
tv.tv_usec=0;
FD_ZERO(&rfds);
FD_SET(fildes[0], &rfds);
/* we're not interested in any fds */
i = select(FD_SETSIZE, &rfds, NULL, NULL, &tv);
if(i < 0) {
perror("select");
exit(10);
}
exit(0); /* if we exit here, the select blocked the whole process */
}
int main(argc, argv)
int argc;
char **argv;
{
pthread_t t;
/* create a pipe to select */
if(pipe(&fildes[0])) {
perror("select");
exit(1);
}
#ifdef HAVE_PTHREAD_SETCONCURRENCY
(void) pthread_setconcurrency(2);
#else
#ifdef HAVE_THR_SETCONCURRENCY
/* Set Solaris LWP concurrency to 2 */
thr_setconcurrency(2);
#endif
#endif
#if HAVE_PTHREADS < 6
pthread_create(&t, pthread_attr_default, task, NULL);
#else
pthread_create(&t, NULL, task, NULL);
#endif
/* make sure task runs first */
#ifdef HAVE_THR_YIELD
thr_yield();
#elif defined( HAVE_SCHED_YIELD )
sched_yield();
#elif defined( HAVE_PTHREAD_YIELD )
pthread_yield();
#endif
exit(2);
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ol_cv_pthread_select_yields=no
else $as_nop
ol_cv_pthread_select_yields=yes
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_pthread_select_yields" >&5
printf "%s\n" "$ol_cv_pthread_select_yields" >&6; }
if test $ol_cv_pthread_select_yields = cross ; then
as_fn_error $? "crossing compiling: use --with-yielding-select=yes|no|manual" "$LINENO" 5
fi
if test $ol_cv_pthread_select_yields = yes ; then
ol_with_yielding_select=yes
fi
fi
CPPFLAGS="$save_CPPFLAGS"
LIBS="$save_LIBS"
else
as_fn_error $? "could not locate usable POSIX Threads" "$LINENO" 5
fi
fi
if test $ol_with_threads = posix ; then
as_fn_error $? "could not locate POSIX Threads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | mach)
ac_fn_c_check_header_compile "$LINENO" "mach/cthreads.h" "ac_cv_header_mach_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_mach_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_MACH_CTHREADS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "cthreads.h" "ac_cv_header_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_CTHREADS_H 1" >>confdefs.h
fi
if test $ac_cv_header_mach_cthreads_h = yes ; then
ol_with_threads=found
ac_fn_c_check_func "$LINENO" "cthread_fork" "ac_cv_func_cthread_fork"
if test "x$ac_cv_func_cthread_fork" = xyes
then :
ol_link_threads=yes
fi
if test $ol_link_threads = no ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cthread_fork with -all_load" >&5
printf %s "checking for cthread_fork with -all_load... " >&6; }
if test ${ol_cv_cthread_all_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
save_LIBS="$LIBS"
LIBS="-all_load $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <mach/cthreads.h>
int
main (void)
{
cthread_fork((void *)0, (void *)0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_cthread_all_load=yes
else $as_nop
ol_cv_cthread_all_load=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$save_LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_cthread_all_load" >&5
printf "%s\n" "$ol_cv_cthread_all_load" >&6; }
if test $ol_cv_cthread_all_load = yes ; then
LTHREAD_LIBS="$LTHREAD_LIBS -all_load"
ol_link_threads=mach
ol_with_threads=found
fi
fi
elif test $ac_cv_header_cthreads_h = yes ; then
ol_with_threads=found
save_LIBS="$LIBS"
LIBS="$LIBS -lthreads"
ac_fn_c_check_func "$LINENO" "cthread_fork" "ac_cv_func_cthread_fork"
if test "x$ac_cv_func_cthread_fork" = xyes
then :
ol_link_threads=yes
fi
LIBS="$save_LIBS"
if test $ol_link_threads = yes ; then
LTHREAD_LIBS="-lthreads"
ol_link_threads=mach
ol_with_threads=found
else
as_fn_error $? "could not link with Mach CThreads" "$LINENO" 5
fi
elif test $ol_with_threads = mach ; then
as_fn_error $? "could not locate Mach CThreads" "$LINENO" 5
fi
if test $ol_link_threads = mach ; then
printf "%s\n" "#define HAVE_MACH_CTHREADS 1" >>confdefs.h
elif test $ol_with_threads = found ; then
as_fn_error $? "could not link with Mach CThreads" "$LINENO" 5
fi
;;
esac
case $ol_with_threads in auto | yes | pth)
ac_fn_c_check_header_compile "$LINENO" "pth.h" "ac_cv_header_pth_h" "$ac_includes_default"
if test "x$ac_cv_header_pth_h" = xyes
then :
printf "%s\n" "#define HAVE_PTH_H 1" >>confdefs.h
fi
if test $ac_cv_header_pth_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pth_version in -lpth" >&5
printf %s "checking for pth_version in -lpth... " >&6; }
if test ${ac_cv_lib_pth_pth_version+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpth $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char pth_version ();
int
main (void)
{
return pth_version ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pth_pth_version=yes
else $as_nop
ac_cv_lib_pth_pth_version=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pth_pth_version" >&5
printf "%s\n" "$ac_cv_lib_pth_pth_version" >&6; }
if test "x$ac_cv_lib_pth_pth_version" = xyes
then :
have_pth=yes
else $as_nop
have_pth=no
fi
if test $have_pth = yes ; then
printf "%s\n" "#define HAVE_GNU_PTH 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -lpth"
ol_link_threads=pth
ol_with_threads=found
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=yes
fi
fi
fi
;;
esac
case $ol_with_threads in auto | yes | lwp)
ac_fn_c_check_header_compile "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default"
if test "x$ac_cv_header_thread_h" = xyes
then :
printf "%s\n" "#define HAVE_THREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "synch.h" "ac_cv_header_synch_h" "$ac_includes_default"
if test "x$ac_cv_header_synch_h" = xyes
then :
printf "%s\n" "#define HAVE_SYNCH_H 1" >>confdefs.h
fi
if test $ac_cv_header_thread_h = yes &&
test $ac_cv_header_synch_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thr_create in -lthread" >&5
printf %s "checking for thr_create in -lthread... " >&6; }
if test ${ac_cv_lib_thread_thr_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char thr_create ();
int
main (void)
{
return thr_create ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_thread_thr_create=yes
else $as_nop
ac_cv_lib_thread_thr_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_thread_thr_create" >&5
printf "%s\n" "$ac_cv_lib_thread_thr_create" >&6; }
if test "x$ac_cv_lib_thread_thr_create" = xyes
then :
have_thr=yes
else $as_nop
have_thr=no
fi
if test $have_thr = yes ; then
printf "%s\n" "#define HAVE_THR 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -lthread"
ol_link_threads=thr
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=yes
fi
ac_fn_c_check_func "$LINENO" "thr_setconcurrency" "ac_cv_func_thr_setconcurrency"
if test "x$ac_cv_func_thr_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_SETCONCURRENCY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "thr_getconcurrency" "ac_cv_func_thr_getconcurrency"
if test "x$ac_cv_func_thr_getconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_THR_GETCONCURRENCY 1" >>confdefs.h
fi
fi
fi
ac_fn_c_check_header_compile "$LINENO" "lwp/lwp.h" "ac_cv_header_lwp_lwp_h" "$ac_includes_default"
if test "x$ac_cv_header_lwp_lwp_h" = xyes
then :
printf "%s\n" "#define HAVE_LWP_LWP_H 1" >>confdefs.h
fi
if test $ac_cv_header_lwp_lwp_h = yes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for lwp_create in -llwp" >&5
printf %s "checking for lwp_create in -llwp... " >&6; }
if test ${ac_cv_lib_lwp_lwp_create+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-llwp $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char lwp_create ();
int
main (void)
{
return lwp_create ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_lwp_lwp_create=yes
else $as_nop
ac_cv_lib_lwp_lwp_create=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lwp_lwp_create" >&5
printf "%s\n" "$ac_cv_lib_lwp_lwp_create" >&6; }
if test "x$ac_cv_lib_lwp_lwp_create" = xyes
then :
have_lwp=yes
else $as_nop
have_lwp=no
fi
if test $have_lwp = yes ; then
printf "%s\n" "#define HAVE_LWP 1" >>confdefs.h
LTHREAD_LIBS="$LTHREAD_LIBS -llwp"
ol_link_threads=lwp
if test x$ol_with_yielding_select = xauto ; then
ol_with_yielding_select=no
fi
fi
fi
;;
esac
if test $ol_with_yielding_select = yes ; then
printf "%s\n" "#define HAVE_YIELDING_SELECT 1" >>confdefs.h
fi
if test $ol_with_threads = manual ; then
ol_link_threads=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: thread defines and link options must be set manually" >&5
printf "%s\n" "$as_me: WARNING: thread defines and link options must be set manually" >&2;}
ac_fn_c_check_header_compile "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
if test "x$ac_cv_header_pthread_h" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sched.h" "ac_cv_header_sched_h" "$ac_includes_default"
if test "x$ac_cv_header_sched_h" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_H 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield"
if test "x$ac_cv_func_sched_yield" = xyes
then :
printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_yield" "ac_cv_func_pthread_yield"
if test "x$ac_cv_func_pthread_yield" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_YIELD 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LinuxThreads pthread.h" >&5
printf %s "checking for LinuxThreads pthread.h... " >&6; }
if test ${ol_cv_header_linux_threads+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
_ACEOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP "pthread_kill_other_threads_np" >/dev/null 2>&1
then :
ol_cv_header_linux_threads=yes
else $as_nop
ol_cv_header_linux_threads=no
fi
rm -rf conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_header_linux_threads" >&5
printf "%s\n" "$ol_cv_header_linux_threads" >&6; }
if test $ol_cv_header_linux_threads = yes; then
printf "%s\n" "#define HAVE_LINUX_THREADS 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "mach/cthreads.h" "ac_cv_header_mach_cthreads_h" "$ac_includes_default"
if test "x$ac_cv_header_mach_cthreads_h" = xyes
then :
printf "%s\n" "#define HAVE_MACH_CTHREADS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "lwp/lwp.h" "ac_cv_header_lwp_lwp_h" "$ac_includes_default"
if test "x$ac_cv_header_lwp_lwp_h" = xyes
then :
printf "%s\n" "#define HAVE_LWP_LWP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "thread.h" "ac_cv_header_thread_h" "$ac_includes_default"
if test "x$ac_cv_header_thread_h" = xyes
then :
printf "%s\n" "#define HAVE_THREAD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "synch.h" "ac_cv_header_synch_h" "$ac_includes_default"
if test "x$ac_cv_header_synch_h" = xyes
then :
printf "%s\n" "#define HAVE_SYNCH_H 1" >>confdefs.h
fi
fi
if test $ol_link_threads != no && test $ol_link_threads != nt ; then
printf "%s\n" "#define REENTRANT 1" >>confdefs.h
printf "%s\n" "#define _REENTRANT 1" >>confdefs.h
printf "%s\n" "#define THREAD_SAFE 1" >>confdefs.h
printf "%s\n" "#define _THREAD_SAFE 1" >>confdefs.h
printf "%s\n" "#define THREADSAFE 1" >>confdefs.h
printf "%s\n" "#define _THREADSAFE 1" >>confdefs.h
printf "%s\n" "#define _SGI_MP_SOURCE 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thread specific errno" >&5
printf %s "checking for thread specific errno... " >&6; }
if test ${ol_cv_errno_thread_specific+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <errno.h>
int
main (void)
{
errno = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_errno_thread_specific=yes
else $as_nop
ol_cv_errno_thread_specific=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_errno_thread_specific" >&5
printf "%s\n" "$ol_cv_errno_thread_specific" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for thread specific h_errno" >&5
printf %s "checking for thread specific h_errno... " >&6; }
if test ${ol_cv_h_errno_thread_specific+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <netdb.h>
int
main (void)
{
h_errno = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ol_cv_h_errno_thread_specific=yes
else $as_nop
ol_cv_h_errno_thread_specific=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ol_cv_h_errno_thread_specific" >&5
printf "%s\n" "$ol_cv_h_errno_thread_specific" >&6; }
if test $ol_cv_errno_thread_specific != yes ||
test $ol_cv_h_errno_thread_specific != yes ; then
LIBS="$LTHREAD_LIBS $LIBS"
LTHREAD_LIBS=""
fi
fi
if test $ol_link_threads = no ; then
if test $ol_with_threads = yes ; then
as_fn_error $? "no suitable thread support" "$LINENO" 5
fi
if test $ol_with_threads = auto ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no suitable thread support, disabling threads" >&5
printf "%s\n" "$as_me: WARNING: no suitable thread support, disabling threads" >&2;}
ol_with_threads=no
fi
printf "%s\n" "#define NO_THREADS 1" >>confdefs.h
LTHREAD_LIBS=""
BUILD_THREAD=no
else
BUILD_THREAD=yes
fi
if test $ol_link_threads != no ; then
printf "%s\n" "#define LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE 1" >>confdefs.h
fi
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
case "$ol_with_threads" in
no)
ol_pthread_ok=no
;;
*)
ol_found_pthreads=yes
;;
esac
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
case "$ol_found_pthreads" in
yes)
saved_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
saved_CFLAGS="$CFLAGS"
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
ac_fn_c_check_func "$LINENO" "sem_timedwait" "ac_cv_func_sem_timedwait"
if test "x$ac_cv_func_sem_timedwait" = xyes
then :
printf "%s\n" "#define HAVE_SEM_TIMEDWAIT 1" >>confdefs.h
fi
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
CFLAGS="$saved_CFLAGS"
{ saved_CFLAGS=; unset saved_CFLAGS;}
case "$ac_cv_func_sem_timedwait" in
yes)
PTHREAD_LIBS="$LTHREAD_LIBS"
have_pthreads=yes
esac
esac
esac
case "$have_pthreads" in
yes)
CFLAGS_NTP="$CFLAGS_NTP $PTHREAD_CFLAGS"
saved_LIBS="$LIBS"
LIBS="$LTHREAD_LIBS $LIBS"
saved_CFLAGS="$CFLAGS"
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of pthread_t" >&5
printf %s "checking size of pthread_t... " >&6; }
if test ${ac_cv_sizeof_pthread_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (pthread_t))" "ac_cv_sizeof_pthread_t" "
$ac_includes_default
#include <pthread.h>
"
then :
else $as_nop
if test "$ac_cv_type_pthread_t" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (pthread_t)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_pthread_t=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_pthread_t" >&5
printf "%s\n" "$ac_cv_sizeof_pthread_t" >&6; }
printf "%s\n" "#define SIZEOF_PTHREAD_T $ac_cv_sizeof_pthread_t" >>confdefs.h
LIBISC_PTHREADS_NOTHREADS=pthreads
printf "%s\n" "#define ISC_PLATFORM_USETHREADS 1" >>confdefs.h
#
# We'd like to use sigwait() too
#
ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait"
if test "x$ac_cv_func_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lc" >&5
printf %s "checking for sigwait in -lc... " >&6; }
if test ${ac_cv_lib_c_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_c_sigwait=yes
else $as_nop
ac_cv_lib_c_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sigwait" >&5
printf "%s\n" "$ac_cv_lib_c_sigwait" >&6; }
if test "x$ac_cv_lib_c_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lpthread" >&5
printf %s "checking for sigwait in -lpthread... " >&6; }
if test ${ac_cv_lib_pthread_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pthread_sigwait=yes
else $as_nop
ac_cv_lib_pthread_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_sigwait" >&5
printf "%s\n" "$ac_cv_lib_pthread_sigwait" >&6; }
if test "x$ac_cv_lib_pthread_sigwait" = xyes
then :
have_sigwait=yes
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _Psigwait in -lpthread" >&5
printf %s "checking for _Psigwait in -lpthread... " >&6; }
if test ${ac_cv_lib_pthread__Psigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpthread $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char _Psigwait ();
int
main (void)
{
return _Psigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_pthread__Psigwait=yes
else $as_nop
ac_cv_lib_pthread__Psigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread__Psigwait" >&5
printf "%s\n" "$ac_cv_lib_pthread__Psigwait" >&6; }
if test "x$ac_cv_lib_pthread__Psigwait" = xyes
then :
have_sigwait=yes
else $as_nop
have_sigwait=no
fi
fi
fi
fi
case "$host:$have_sigwait" in
*-freebsd*:no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sigwait in -lc_r" >&5
printf %s "checking for sigwait in -lc_r... " >&6; }
if test ${ac_cv_lib_c_r_sigwait+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lc_r $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char sigwait ();
int
main (void)
{
return sigwait ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_c_r_sigwait=yes
else $as_nop
ac_cv_lib_c_r_sigwait=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_sigwait" >&5
printf "%s\n" "$ac_cv_lib_c_r_sigwait" >&6; }
if test "x$ac_cv_lib_c_r_sigwait" = xyes
then :
have_sigwait=yes
fi
esac
case "$have_sigwait" in
yes)
ac_cv_func_sigwait=yes
printf "%s\n" "#define HAVE_SIGWAIT 1" >>confdefs.h
esac
ac_fn_c_check_func "$LINENO" "pthread_attr_getstacksize" "ac_cv_func_pthread_attr_getstacksize"
if test "x$ac_cv_func_pthread_attr_getstacksize" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_attr_setstacksize" "ac_cv_func_pthread_attr_setstacksize"
if test "x$ac_cv_func_pthread_attr_setstacksize" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf"
if test "x$ac_cv_func_sysconf" = xyes
then :
printf "%s\n" "#define HAVE_SYSCONF 1" >>confdefs.h
fi
case "$host" in
*-freebsd5.[012]|*-freebsd5.[012].*)
;;
*-freebsd5.[3456789]|*-freebsd5.[3456789].*|*-freebsd6.*)
printf "%s\n" "#define NEED_PTHREAD_SCOPE_SYSTEM 1" >>confdefs.h
;;
*-bsdi3.*|*-bsdi4.0*)
printf "%s\n" "#define NEED_PTHREAD_INIT 1" >>confdefs.h
;;
*-linux*)
printf "%s\n" "#define HAVE_LINUXTHREADS 1" >>confdefs.h
;;
*-solaris*)
printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
ac_fn_c_check_func "$LINENO" "pthread_setconcurrency" "ac_cv_func_pthread_setconcurrency"
if test "x$ac_cv_func_pthread_setconcurrency" = xyes
then :
printf "%s\n" "#define HAVE_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
fi
case "$ac_cv_func_pthread_setconcurrency" in
yes)
printf "%s\n" "#define CALL_PTHREAD_SETCONCURRENCY 1" >>confdefs.h
esac
;;
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
printf "%s\n" "#define HAVE_UNIXWARE_SIGWAIT 1" >>confdefs.h
;;
esac
hack_shutup_pthreadonceinit=no
case "$host" in
*-aix5.[123].*)
hack_shutup_pthreadonceinit=yes
;;
*-solaris2.[89])
hack_shutup_pthreadonceinit=yes
;;
*-solaris2.1[0-9])
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if extra braces are needed for PTHREAD_ONCE_INIT" >&5
printf %s "checking if extra braces are needed for PTHREAD_ONCE_INIT... " >&6; }
if test ${ntp_cv_braces_around_pthread_once_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <pthread.h>
int
main (void)
{
static pthread_once_t once_test =
PTHREAD_ONCE_INIT;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_braces_around_pthread_once_init=no
else $as_nop
ntp_cv_braces_around_pthread_once_init=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_braces_around_pthread_once_init" >&5
printf "%s\n" "$ntp_cv_braces_around_pthread_once_init" >&6; }
case "$ntp_cv_braces_around_pthread_once_init" in
yes)
hack_shutup_pthreadonceinit=yes
esac
;;
esac
case "$hack_shutup_pthreadonceinit" in
yes)
printf "%s\n" "#define ISC_PLATFORM_BRACEPTHREADONCEINIT 1" >>confdefs.h
esac
LIBS="$saved_LIBS"
{ saved_LIBS=; unset saved_LIBS;}
CFLAGS="$saved_CFLAGS"
{ saved_CFLAGS=; unset saved_CFLAGS;}
;;
*)
LIBISC_PTHREADS_NOTHREADS=nothreads
;;
esac
if test "$have_pthreads" != "no"; then
PTHREADS_TRUE=
PTHREADS_FALSE='#'
else
PTHREADS_TRUE='#'
PTHREADS_FALSE=
fi
case "$hw_use_rpl_vsnprintf:$hw_cv_func_vsnprintf" in
no:yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if vsnprintf expands \"%m\" to strerror(errno)" >&5
printf %s "checking if vsnprintf expands \"%m\" to strerror(errno)... " >&6; }
if test ${ntp_cv_vsnprintf_percent_m+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ntp_cv_vsnprintf_percent_m=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdarg.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
int call_vsnprintf(
char * dst,
size_t sz,
const char *fmt,
...
);
int call_vsnprintf(
char * dst,
size_t sz,
const char *fmt,
...
)
{
va_list ap;
int rc;
va_start(ap, fmt);
rc = vsnprintf(dst, sz, fmt, ap);
va_end(ap);
return rc;
}
int
main (void)
{
char sbuf[512];
char pbuf[512];
int slen;
strcpy(sbuf, strerror(ENOENT));
errno = ENOENT;
slen = call_vsnprintf(pbuf, sizeof(pbuf), "%m",
"wrong");
return strcmp(sbuf, pbuf);
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ntp_cv_vsnprintf_percent_m=yes
else $as_nop
ntp_cv_vsnprintf_percent_m=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_vsnprintf_percent_m" >&5
printf "%s\n" "$ntp_cv_vsnprintf_percent_m" >&6; }
case "$ntp_cv_vsnprintf_percent_m" in
yes)
printf "%s\n" "#define VSNPRINTF_PERCENT_M 1" >>confdefs.h
esac
esac
ac_fn_c_check_header_compile "$LINENO" "sys/clockctl.h" "ac_cv_header_sys_clockctl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_clockctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_CLOCKCTL_H 1" >>confdefs.h
fi
# Check whether --enable-clockctl was given.
if test ${enable_clockctl+y}
then :
enableval=$enable_clockctl; ntp_use_dev_clockctl=$enableval
else $as_nop
ntp_use_dev_clockctl=$ac_cv_header_sys_clockctl_h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should use /dev/clockctl" >&5
printf %s "checking if we should use /dev/clockctl... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_use_dev_clockctl" >&5
printf "%s\n" "$ntp_use_dev_clockctl" >&6; }
ac_fn_c_check_header_compile "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_capability_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_CAPABILITY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/prctl.h" "ac_cv_header_sys_prctl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_prctl_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PRCTL_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have linux capabilities (libcap)" >&5
printf %s "checking if we have linux capabilities (libcap)... " >&6; }
case "$ac_cv_header_sys_capability_h$ac_cv_header_sys_prctl_h" in
yesyes)
case "$host" in
mips-sgi-irix*)
ntp_have_linuxcaps=no
;;
*) ntp_have_linuxcaps=yes
;;
esac
;;
*)
ntp_have_linuxcaps=no
;;
esac
# Check whether --enable-linuxcaps was given.
if test ${enable_linuxcaps+y}
then :
enableval=$enable_linuxcaps; ntp_have_linuxcaps=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_have_linuxcaps" >&5
printf "%s\n" "$ntp_have_linuxcaps" >&6; }
case "$ntp_have_linuxcaps" in
yes)
printf "%s\n" "#define HAVE_LINUX_CAPABILITIES 1" >>confdefs.h
LIBS="$LIBS -lcap"
;;
esac
ac_fn_c_check_header_compile "$LINENO" "priv.h" "ac_cv_header_priv_h" "$ac_includes_default"
if test "x$ac_cv_header_priv_h" = xyes
then :
printf "%s\n" "#define HAVE_PRIV_H 1" >>confdefs.h
fi
case "$ac_cv_header_priv_h" in
yes)
case "$host" in
*-solaris*)
ac_fn_c_check_func "$LINENO" "setppriv" "ac_cv_func_setppriv"
if test "x$ac_cv_func_setppriv" = xyes
then :
ntp_have_solarisprivs=yes
else $as_nop
ntp_have_solarisprivs=no
fi
;;
esac
esac
# Check whether --enable-solarisprivs was given.
if test ${enable_solarisprivs+y}
then :
enableval=$enable_solarisprivs; ntp_have_solarisprivs=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we have solaris privileges" >&5
printf %s "checking if we have solaris privileges... " >&6; }
case "$ntp_have_solarisprivs" in
yes)
printf "%s\n" "#define HAVE_SOLARIS_PRIVS 1" >>confdefs.h
;;
'') ntp_have_solarisprivs="no"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_have_solarisprivs" >&5
printf "%s\n" "$ntp_have_solarisprivs" >&6; }
ac_fn_c_check_header_compile "$LINENO" "sys/mac.h" "ac_cv_header_sys_mac_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mac_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MAC_H 1" >>confdefs.h
fi
# Check whether --enable-trustedbsd_mac was given.
if test ${enable_trustedbsd_mac+y}
then :
enableval=$enable_trustedbsd_mac; ntp_use_trustedbsd_mac=$enableval
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we should use TrustedBSD MAC privileges" >&5
printf %s "checking if we should use TrustedBSD MAC privileges... " >&6; }
case "$ntp_use_trustedbsd_mac$ac_cv_header_sys_mac_h" in
yesyes)
printf "%s\n" "#define HAVE_TRUSTEDBSD_MAC 1" >>confdefs.h
;;
*) ntp_use_trustedbsd_mac="no";
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_use_trustedbsd_mac" >&5
printf "%s\n" "$ntp_use_trustedbsd_mac" >&6; }
case "$ntp_use_dev_clockctl$ntp_have_linuxcaps$ntp_have_solarisprivs$ntp_use_trustedbsd_mac" in
*yes*)
printf "%s\n" "#define HAVE_DROPROOT 1" >>confdefs.h
esac
case "$host" in
*-*-darwin*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_9_init" >&5
printf %s "checking for library containing res_9_init... " >&6; }
if test ${ac_cv_search_res_9_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char res_9_init ();
int
main (void)
{
return res_9_init ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_res_9_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_res_9_init+y}
then :
break
fi
done
if test ${ac_cv_search_res_9_init+y}
then :
else $as_nop
ac_cv_search_res_9_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_9_init" >&5
printf "%s\n" "$ac_cv_search_res_9_init" >&6; }
ac_res=$ac_cv_search_res_9_init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_init" >&5
printf %s "checking for library containing res_init... " >&6; }
if test ${ac_cv_search_res_init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char res_init ();
int
main (void)
{
return res_init ();
;
return 0;
}
_ACEOF
for ac_lib in '' resolv
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_res_init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_res_init+y}
then :
break
fi
done
if test ${ac_cv_search_res_init+y}
then :
else $as_nop
ac_cv_search_res_init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_init" >&5
printf "%s\n" "$ac_cv_search_res_init" >&6; }
ac_res=$ac_cv_search_res_init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
;;
esac
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_sys_types_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_arpa_nameser_h" = xyes
then :
printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_netdb_h" = xyes
then :
printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h> /* inet_ functions / structs */
#endif
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
# include <netdb.h>
#endif
"
if test "x$ac_cv_header_resolv_h" = xyes
then :
printf "%s\n" "#define HAVE_RESOLV_H 1" >>confdefs.h
fi
#HMS: Why do we do this check so "early"?
for ac_func in res_init
do :
ac_fn_c_check_func "$LINENO" "res_init" "ac_cv_func_res_init"
if test "x$ac_cv_func_res_init" = xyes
then :
printf "%s\n" "#define HAVE_RES_INIT 1" >>confdefs.h
else $as_nop
ac_fn_c_check_func "$LINENO" "__res_init" "ac_cv_func___res_init"
if test "x$ac_cv_func___res_init" = xyes
then :
printf "%s\n" "#define HAVE___RES_INIT 1" >>confdefs.h
fi
fi
done
# We also need -lsocket, but we have tested for that already.
ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
if test "x$ac_cv_func_inet_ntop" = xyes
then :
else $as_nop
printf "%s\n" "#define ISC_PLATFORM_NEEDNTOP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
if test "x$ac_cv_func_inet_pton" = xyes
then :
else $as_nop
printf "%s\n" "#define ISC_PLATFORM_NEEDPTON 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int32" "ac_cv_type_int32" "$ac_includes_default"
if test "x$ac_cv_type_int32" = xyes
then :
printf "%s\n" "#define HAVE_INT32 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "u_int32" "ac_cv_type_u_int32" "$ac_includes_default"
if test "x$ac_cv_type_u_int32" = xyes
then :
printf "%s\n" "#define HAVE_U_INT32 1" >>confdefs.h
fi
case "$ac_cv_type_int32::$ac_cv_header_resolv_h" in
no::yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int32 with DNS headers included" >&5
printf %s "checking for int32 with DNS headers included... " >&6; }
if test ${ntp_cv_type_int32_with_dns+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
#include <resolv.h>
int
main (void)
{
size_t cb = sizeof(int32);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_type_int32_with_dns=yes
else $as_nop
ntp_cv_type_int32_with_dns=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_type_int32_with_dns" >&5
printf "%s\n" "$ntp_cv_type_int32_with_dns" >&6; }
case "$ntp_cv_type_int32_with_dns" in
yes)
printf "%s\n" "#define HAVE_INT32_ONLY_WITH_DNS 1" >>confdefs.h
esac
esac
case "$ac_cv_type_u_int32::$ac_cv_header_resolv_h" in
no::yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for u_int32 with DNS headers included" >&5
printf %s "checking for u_int32 with DNS headers included... " >&6; }
if test ${ntp_cv_type_u_int32_with_dns+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_ARPA_NAMESER_H
# include <arpa/nameser.h>
#endif
#include <resolv.h>
int
main (void)
{
size_t cb = sizeof(u_int32);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_type_u_int32_with_dns=yes
else $as_nop
ntp_cv_type_u_int32_with_dns=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_type_u_int32_with_dns" >&5
printf "%s\n" "$ntp_cv_type_u_int32_with_dns" >&6; }
case "$ntp_cv_type_u_int32_with_dns" in
yes)
printf "%s\n" "#define HAVE_U_INT32_ONLY_WITH_DNS 1" >>confdefs.h
esac
esac
ac_fn_c_check_header_compile "$LINENO" "sys/timepps.h" "ac_cv_header_sys_timepps_h" "
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
#endif
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
"
if test "x$ac_cv_header_sys_timepps_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIMEPPS_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec" >&5
printf %s "checking for struct timespec... " >&6; }
if test ${ntp_cv_struct_timespec+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
/* Under SunOS, timespec is in sys/timepps.h,
which needs errno.h and FRAC */
#ifdef HAVE_ERRNO_H
# include <errno.h>
#endif
#ifdef HAVE_SYS_TIMEPPS_H
# define FRAC 4294967296
# include <sys/timepps.h>
#endif
int
main (void)
{
struct timespec n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_timespec=yes
else $as_nop
ntp_cv_struct_timespec=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_timespec" >&5
printf "%s\n" "$ntp_cv_struct_timespec" >&6; }
case "$ntp_cv_struct_timespec" in
yes)
printf "%s\n" "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct ntptimeval" >&5
printf %s "checking for struct ntptimeval... " >&6; }
if test ${ntp_cv_struct_ntptimeval+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
#include <sys/timex.h>
int
main (void)
{
struct ntptimeval n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_struct_ntptimeval=yes
else $as_nop
ntp_cv_struct_ntptimeval=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_struct_ntptimeval" >&5
printf "%s\n" "$ntp_cv_struct_ntptimeval" >&6; }
case "$ntp_cv_struct_ntptimeval" in
yes)
printf "%s\n" "#define HAVE_STRUCT_NTPTIMEVAL 1" >>confdefs.h
esac
ac_fn_c_check_header_compile "$LINENO" "md5.h" "ac_cv_header_md5_h" "
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
"
if test "x$ac_cv_header_md5_h" = xyes
then :
printf "%s\n" "#define HAVE_MD5_H 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing MD5Init" >&5
printf %s "checking for library containing MD5Init... " >&6; }
if test ${ac_cv_search_MD5Init+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char MD5Init ();
int
main (void)
{
return MD5Init ();
;
return 0;
}
_ACEOF
for ac_lib in '' md5 md
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_MD5Init=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_MD5Init+y}
then :
break
fi
done
if test ${ac_cv_search_MD5Init+y}
then :
else $as_nop
ac_cv_search_MD5Init=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_MD5Init" >&5
printf "%s\n" "$ac_cv_search_MD5Init" >&6; }
ac_res=$ac_cv_search_MD5Init
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
ac_fn_c_check_func "$LINENO" "MD5Init" "ac_cv_func_MD5Init"
if test "x$ac_cv_func_MD5Init" = xyes
then :
printf "%s\n" "#define HAVE_MD5INIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf"
if test "x$ac_cv_func_sysconf" = xyes
then :
printf "%s\n" "#define HAVE_SYSCONF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getdtablesize" "ac_cv_func_getdtablesize"
if test "x$ac_cv_func_getdtablesize" = xyes
then :
printf "%s\n" "#define HAVE_GETDTABLESIZE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction"
if test "x$ac_cv_func_sigaction" = xyes
then :
printf "%s\n" "#define HAVE_SIGACTION 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigset" "ac_cv_func_sigset"
if test "x$ac_cv_func_sigset" = xyes
then :
printf "%s\n" "#define HAVE_SIGSET 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigvec" "ac_cv_func_sigvec"
if test "x$ac_cv_func_sigvec" = xyes
then :
printf "%s\n" "#define HAVE_SIGVEC 1" >>confdefs.h
fi
# HMS: does this need to be a cached variable?
# Check whether --enable-signalled-io was given.
if test ${enable_signalled_io+y}
then :
enableval=$enable_signalled_io; use_signalled_io=$enableval
else $as_nop
use_signalled_io=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIGIO" >&5
printf %s "checking for SIGIO... " >&6; }
if test ${ntp_cv_hdr_def_sigio+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
#ifndef SIGIO
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_hdr_def_sigio=yes
else $as_nop
ntp_cv_hdr_def_sigio=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_hdr_def_sigio" >&5
printf "%s\n" "$ntp_cv_hdr_def_sigio" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to use SIGIO" >&5
printf %s "checking if we want to use SIGIO... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigio" in
yes)
ans=yes
case "$host" in
alpha*-dec-osf4*|alpha*-dec-osf5*)
ans=no
;;
*-convex-*)
ans=no
;;
*-dec-*)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-univel-sysv*)
ans=no
;;
*-*-irix6*)
ans=no
;;
*-*-freebsd*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
m68k-*-mint*)
ans=no
;;
esac
case "$ans" in
no)
ans="Possible for $host but disabled because of reported problems"
;;
esac
;;
esac
case "$ans" in
yes)
case "$use_signalled_io" in
yes)
printf "%s\n" "#define HAVE_SIGNALED_IO 1" >>confdefs.h
;;
*) ans="Allowed for $host but --disable-signalled-io was given"
;;
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIGPOLL" >&5
printf %s "checking for SIGPOLL... " >&6; }
if test ${ntp_cv_hdr_def_sigpoll+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <signal.h>
#ifndef SIGPOLL
# error
#endif
_ACEOF
if ac_fn_c_try_cpp "$LINENO"
then :
ntp_cv_hdr_def_sigpoll=yes
else $as_nop
ntp_cv_hdr_def_sigpoll=no
fi
rm -f conftest.err conftest.i conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_hdr_def_sigpoll" >&5
printf "%s\n" "$ntp_cv_hdr_def_sigpoll" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can use SIGPOLL for UDP I/O" >&5
printf %s "checking if we can use SIGPOLL for UDP I/O... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigpoll" in
yes)
case "$host" in
mips-sgi-irix*)
ans=no
;;
vax-dec-bsd)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-*-aix[4-9]*)
# XXX Only verified thru AIX6
ans=no
;;
*-*-hpux*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-osf*)
ans=no
;;
*-*-qnx*)
ans=no
;;
*-*-sunos*)
ans=no
;;
*-*-solaris*)
ans=no
;;
*-*-ultrix*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
*) ans=yes
;;
esac
;;
esac
case "$ans" in
yes)
printf "%s\n" "#define USE_UDP_SIGPOLL 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can use SIGPOLL for TTY I/O" >&5
printf %s "checking if we can use SIGPOLL for TTY I/O... " >&6; }
ans=no
case "$ntp_cv_hdr_def_sigpoll" in
yes)
case "$host" in
mips-sgi-irix*)
ans=no
;;
vax-dec-bsd)
ans=no
;;
*-pc-cygwin*)
ans=no
;;
*-sni-sysv*)
ans=no
;;
*-stratus-vos)
ans=no
;;
*-*-aix[4-9]*)
# XXX Only verified thru AIX6
ans=no
;;
*-*-hpux*)
ans=no
;;
*-*-*linux*)
ans=no
;;
*-*-osf*)
ans=no
;;
*-*-sunos*)
ans=no
;;
*-*-ultrix*)
ans=no
;;
*-*-qnx*)
ans=no
;;
*-*-unicosmp*)
ans=no
;;
*-*-kfreebsd*)
ans=no
;;
*) ans=yes
;;
esac
;;
esac
case "$ans" in
yes)
printf "%s\n" "#define USE_TTY_SIGPOLL 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking number of arguments to gettimeofday()" >&5
printf %s "checking number of arguments to gettimeofday()... " >&6; }
if test ${ntp_cv_func_Xettimeofday_nargs+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/time.h>
int
main (void)
{
gettimeofday(0, 0);
settimeofday(0, 0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_func_Xettimeofday_nargs=2
else $as_nop
ntp_cv_func_Xettimeofday_nargs=1
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_func_Xettimeofday_nargs" >&5
printf "%s\n" "$ntp_cv_func_Xettimeofday_nargs" >&6; }
case "$ntp_cv_func_Xettimeofday_nargs" in
1)
printf "%s\n" "#define SYSV_TIMEOFDAY 1" >>confdefs.h
esac
for ac_func in settimeofday
do :
ac_fn_c_check_func "$LINENO" "settimeofday" "ac_cv_func_settimeofday"
if test "x$ac_cv_func_settimeofday" = xyes
then :
printf "%s\n" "#define HAVE_SETTIMEOFDAY 1" >>confdefs.h
else $as_nop
case "$host" in
*-*-mpeix*) ac_cv_func_settimeofday=yes
esac
fi
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we'll use clock_settime or settimeofday or stime" >&5
printf %s "checking if we'll use clock_settime or settimeofday or stime... " >&6; }
ntp_warning='GRONK'
ans=none
case "$ac_cv_func_clock_settime$ac_cv_func_settimeofday$ac_cv_func_stime" in
yes*)
ntp_warning=''
ans='clock_settime()'
;;
noyes*)
ntp_warning='But clock_settime() would be better (if we had it)'
ans='settimeofday()'
;;
nonoyes)
ntp_warning='Which is the worst of the three'
ans='stime()'
;;
*)
case "$build" in
$host)
ntp_warning='Which leaves us with nothing to use!'
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ans" >&5
printf "%s\n" "$ans" >&6; }
case "$ntp_warning" in
'')
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** $ntp_warning ***" >&5
printf "%s\n" "$as_me: WARNING: *** $ntp_warning ***" >&2;}
;;
esac
LDADD_LIBNTP="$LDADD_LIBNTP $LIBS"
LIBS=$__LIBS
{ __LIBS=; unset __LIBS;}
# Check whether --enable-shared was given.
if test ${enable_shared+y}
then :
enableval=$enable_shared; p=${PACKAGE-default}
case $enableval in
yes) enable_shared=yes ;;
no) enable_shared=no ;;
*)
enable_shared=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_shared=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_shared=no
fi
case `pwd` in
*\ * | *\ *)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
esac
macro_version='2.4.6'
macro_revision='2.4.6'
ltmain=$ac_aux_dir/ltmain.sh
# Backslashify metacharacters that are still active within
# double-quoted strings.
sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
# Same as above, but do not quote variable references.
double_quote_subst='s/\(["`\\]\)/\\\1/g'
# Sed substitution to delay expansion of an escaped shell variable in a
# double_quote_subst'ed string.
delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
# Sed substitution to delay expansion of an escaped single quote.
delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
# Sed substitution to avoid accidental globbing in evaled expressions
no_glob_subst='s/\*/\\\*/g'
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
if test ${lt_cv_path_NM+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$NM"; then
# Let the user override the test.
lt_cv_path_NM=$NM
else
lt_nm_to_check=${ac_tool_prefix}nm
if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
lt_nm_to_check="$lt_nm_to_check nm"
fi
for lt_tmp_nm in $lt_nm_to_check; do
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
tmp_nm=$ac_dir/$lt_tmp_nm
if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
# Check to see if the nm accepts a BSD-compat flag.
# Adding the 'sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
# Tru64's nm complains that /dev/null is an invalid object file
# MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
case $build_os in
mingw*) lt_bad_file=conftest.nm/nofile ;;
*) lt_bad_file=/dev/null ;;
esac
case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in
*$lt_bad_file* | *'Invalid file or object type'*)
lt_cv_path_NM="$tmp_nm -B"
break 2
;;
*)
case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
*/dev/null*)
lt_cv_path_NM="$tmp_nm -p"
break 2
;;
*)
lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
continue # so that we can try to find one that supports BSD flags
;;
esac
;;
esac
fi
done
IFS=$lt_save_ifs
done
: ${lt_cv_path_NM=no}
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
printf "%s\n" "$lt_cv_path_NM" >&6; }
if test no != "$lt_cv_path_NM"; then
NM=$lt_cv_path_NM
else
# Didn't find any BSD compatible name lister, look for dumpbin.
if test -n "$DUMPBIN"; then :
# Let the user override the test.
else
if test -n "$ac_tool_prefix"; then
for ac_prog in dumpbin "link -dump"
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DUMPBIN+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DUMPBIN"; then
ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DUMPBIN=$ac_cv_prog_DUMPBIN
if test -n "$DUMPBIN"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
printf "%s\n" "$DUMPBIN" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$DUMPBIN" && break
done
fi
if test -z "$DUMPBIN"; then
ac_ct_DUMPBIN=$DUMPBIN
for ac_prog in dumpbin "link -dump"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DUMPBIN"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
if test -n "$ac_ct_DUMPBIN"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_DUMPBIN" && break
done
if test "x$ac_ct_DUMPBIN" = x; then
DUMPBIN=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DUMPBIN=$ac_ct_DUMPBIN
fi
fi
case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in
*COFF*)
DUMPBIN="$DUMPBIN -symbols -headers"
;;
*)
DUMPBIN=:
;;
esac
fi
if test : != "$DUMPBIN"; then
NM=$DUMPBIN
fi
fi
test -z "$NM" && NM=nm
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
printf %s "checking the name lister ($NM) interface... " >&6; }
if test ${lt_cv_nm_interface+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
(eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
(eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
(eval echo "\"\$as_me:$LINENO: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
fi
rm -f conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
printf "%s\n" "$lt_cv_nm_interface" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
printf "%s\n" "no, using $LN_S" >&6; }
fi
# find the maximum length of command line arguments
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
printf %s "checking the maximum length of command line arguments... " >&6; }
if test ${lt_cv_sys_max_cmd_len+y}
then :
printf %s "(cached) " >&6
else $as_nop
i=0
teststring=ABCD
case $build_os in
msdosdjgpp*)
# On DJGPP, this test can blow up pretty badly due to problems in libc
# (any single argument exceeding 2000 bytes causes a buffer overrun
# during glob expansion). Even if it were fixed, the result of this
# check would be larger than it should be.
lt_cv_sys_max_cmd_len=12288; # 12K is about right
;;
gnu*)
# Under GNU Hurd, this test is not required because there is
# no limit to the length of command line arguments.
# Libtool will interpret -1 as no limit whatsoever
lt_cv_sys_max_cmd_len=-1;
;;
cygwin* | mingw* | cegcc*)
# On Win9x/ME, this test blows up -- it succeeds, but takes
# about 5 minutes as the teststring grows exponentially.
# Worse, since 9x/ME are not pre-emptively multitasking,
# you end up with a "frozen" computer, even though with patience
# the test eventually succeeds (with a max line length of 256k).
# Instead, let's just punt: use the minimum linelength reported by
# all of the supported platforms: 8192 (on NT/2K/XP).
lt_cv_sys_max_cmd_len=8192;
;;
mint*)
# On MiNT this can take a long time and run out of memory.
lt_cv_sys_max_cmd_len=8192;
;;
amigaos*)
# On AmigaOS with pdksh, this test takes hours, literally.
# So we just punt and use a minimum line length of 8192.
lt_cv_sys_max_cmd_len=8192;
;;
bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*)
# This has been around since 386BSD, at least. Likely further.
if test -x /sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
elif test -x /usr/sbin/sysctl; then
lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
else
lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
fi
# And add a safety zone
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
;;
interix*)
# We know the value 262144 and hardcode it with a safety zone (like BSD)
lt_cv_sys_max_cmd_len=196608
;;
os2*)
# The test takes a long time on OS/2.
lt_cv_sys_max_cmd_len=8192
;;
osf*)
# Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
# due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
# nice to cause kernel panics so lets avoid the loop below.
# First set a reasonable default.
lt_cv_sys_max_cmd_len=16384
#
if test -x /sbin/sysconfig; then
case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
*1*) lt_cv_sys_max_cmd_len=-1 ;;
esac
fi
;;
sco3.2v5*)
lt_cv_sys_max_cmd_len=102400
;;
sysv5* | sco5v6* | sysv4.2uw2*)
kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
if test -n "$kargmax"; then
lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
else
lt_cv_sys_max_cmd_len=32768
fi
;;
*)
lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
if test -n "$lt_cv_sys_max_cmd_len" && \
test undefined != "$lt_cv_sys_max_cmd_len"; then
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
else
# Make teststring a little bigger before we do anything with it.
# a 1K string should be a reasonable start.
for i in 1 2 3 4 5 6 7 8; do
teststring=$teststring$teststring
done
SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
# If test is not a shell built-in, we'll probably end up computing a
# maximum length that is only half of the actual maximum length, but
# we can't tell.
while { test X`env echo "$teststring$teststring" 2>/dev/null` \
= "X$teststring$teststring"; } >/dev/null 2>&1 &&
test 17 != "$i" # 1/2 MB should be enough
do
i=`expr $i + 1`
teststring=$teststring$teststring
done
# Only check the string length outside the loop.
lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
teststring=
# Add a significant safety factor because C++ compilers can tack on
# massive amounts of additional arguments before passing them to the
# linker. It appears as though 1/2 is a usable value.
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
fi
;;
esac
fi
if test -n "$lt_cv_sys_max_cmd_len"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
printf "%s\n" "none" >&6; }
fi
max_cmd_len=$lt_cv_sys_max_cmd_len
: ${CP="cp -f"}
: ${MV="mv -f"}
: ${RM="rm -f"}
if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
lt_unset=unset
else
lt_unset=false
fi
# test EBCDIC or ASCII
case `echo X|tr X '\101'` in
A) # ASCII based system
# \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
lt_SP2NL='tr \040 \012'
lt_NL2SP='tr \015\012 \040\040'
;;
*) # EBCDIC based system
lt_SP2NL='tr \100 \n'
lt_NL2SP='tr \r\n \100\100'
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
printf %s "checking how to convert $build file names to $host format... " >&6; }
if test ${lt_cv_to_host_file_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $host in
*-*-mingw* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
;;
*-*-cygwin* )
lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
;;
* ) # otherwise, assume *nix
lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
;;
esac
;;
*-*-cygwin* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
;;
*-*-cygwin* )
lt_cv_to_host_file_cmd=func_convert_file_noop
;;
* ) # otherwise, assume *nix
lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
;;
esac
;;
* ) # unhandled hosts (and "normal" native builds)
lt_cv_to_host_file_cmd=func_convert_file_noop
;;
esac
fi
to_host_file_cmd=$lt_cv_to_host_file_cmd
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
printf %s "checking how to convert $build file names to toolchain format... " >&6; }
if test ${lt_cv_to_tool_file_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
#assume ordinary cross tools, or native build.
lt_cv_to_tool_file_cmd=func_convert_file_noop
case $host in
*-*-mingw* )
case $build in
*-*-mingw* ) # actually msys
lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
;;
esac
;;
esac
fi
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
printf %s "checking for $LD option to reload object files... " >&6; }
if test ${lt_cv_ld_reload_flag+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_reload_flag='-r'
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
*) reload_flag=" $reload_flag" ;;
esac
reload_cmds='$LD$reload_flag -o $output$reload_objs'
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
if test yes != "$GCC"; then
reload_cmds=false
fi
;;
darwin*)
if test yes = "$GCC"; then
reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
else
reload_cmds='$LD$reload_flag -o $output$reload_objs'
fi
;;
esac
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
set dummy ${ac_tool_prefix}objdump; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OBJDUMP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OBJDUMP"; then
ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OBJDUMP=$ac_cv_prog_OBJDUMP
if test -n "$OBJDUMP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
printf "%s\n" "$OBJDUMP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OBJDUMP"; then
ac_ct_OBJDUMP=$OBJDUMP
# Extract the first word of "objdump", so it can be a program name with args.
set dummy objdump; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OBJDUMP"; then
ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OBJDUMP="objdump"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
if test -n "$ac_ct_OBJDUMP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OBJDUMP" = x; then
OBJDUMP="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OBJDUMP=$ac_ct_OBJDUMP
fi
else
OBJDUMP="$ac_cv_prog_OBJDUMP"
fi
test -z "$OBJDUMP" && OBJDUMP=objdump
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
printf %s "checking how to recognize dependent libraries... " >&6; }
if test ${lt_cv_deplibs_check_method+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_deplibs_check_method='unknown'
# Need to set the preceding variable on all platforms that support
# interlibrary dependencies.
# 'none' -- dependencies not supported.
# 'unknown' -- same as none, but documents that we really don't know.
# 'pass_all' -- all dependencies passed with no checks.
# 'test_compile' -- check by making test program.
# 'file_magic [[regex]]' -- check by looking for files in library path
# that responds to the $file_magic_cmd with a given extended regex.
# If you have 'file' or equivalent on your system and you're not sure
# whether 'pass_all' will *always* work, you probably want this one.
case $host_os in
aix[4-9]*)
lt_cv_deplibs_check_method=pass_all
;;
beos*)
lt_cv_deplibs_check_method=pass_all
;;
bsdi[45]*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
lt_cv_file_magic_cmd='/usr/bin/file -L'
lt_cv_file_magic_test_file=/shlib/libc.so
;;
cygwin*)
# func_win32_libid is a shell function defined in ltmain.sh
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
;;
mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
# func_win32_libid shell function, so use a weaker test based on 'objdump',
# unless we find 'file', for example because we are cross-compiling.
if ( file / ) >/dev/null 2>&1; then
lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
lt_cv_file_magic_cmd='func_win32_libid'
else
# Keep this pattern in sync with the one in func_win32_libid.
lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
lt_cv_file_magic_cmd='$OBJDUMP -f'
fi
;;
cegcc*)
# use the weaker test based on 'objdump'. See mingw*.
lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
lt_cv_file_magic_cmd='$OBJDUMP -f'
;;
darwin* | rhapsody*)
lt_cv_deplibs_check_method=pass_all
;;
freebsd* | dragonfly*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
case $host_cpu in
i*86 )
# Not sure whether the presence of OpenBSD here was a mistake.
# Let's accept both of them until this is cleared up.
lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
;;
esac
else
lt_cv_deplibs_check_method=pass_all
fi
;;
haiku*)
lt_cv_deplibs_check_method=pass_all
;;
hpux10.20* | hpux11*)
lt_cv_file_magic_cmd=/usr/bin/file
case $host_cpu in
ia64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
;;
hppa*64*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
;;
*)
lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
lt_cv_file_magic_test_file=/usr/lib/libc.sl
;;
esac
;;
interix[3-9]*)
# PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
;;
irix5* | irix6* | nonstopux*)
case $LD in
*-32|*"-32 ") libmagic=32-bit;;
*-n32|*"-n32 ") libmagic=N32;;
*-64|*"-64 ") libmagic=64-bit;;
*) libmagic=never-match;;
esac
lt_cv_deplibs_check_method=pass_all
;;
# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
lt_cv_deplibs_check_method=pass_all
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
fi
;;
newos6*)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
lt_cv_file_magic_cmd=/usr/bin/file
lt_cv_file_magic_test_file=/usr/lib/libnls.so
;;
*nto* | *qnx*)
lt_cv_deplibs_check_method=pass_all
;;
openbsd* | bitrig*)
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
else
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
fi
;;
osf3* | osf4* | osf5*)
lt_cv_deplibs_check_method=pass_all
;;
rdos*)
lt_cv_deplibs_check_method=pass_all
;;
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
lt_cv_deplibs_check_method=pass_all
;;
sysv4 | sysv4.3*)
case $host_vendor in
motorola)
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
;;
ncr)
lt_cv_deplibs_check_method=pass_all
;;
sequent)
lt_cv_file_magic_cmd='/bin/file'
lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
;;
sni)
lt_cv_file_magic_cmd='/bin/file'
lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
lt_cv_file_magic_test_file=/lib/libc.so
;;
siemens)
lt_cv_deplibs_check_method=pass_all
;;
pc)
lt_cv_deplibs_check_method=pass_all
;;
esac
;;
tpf*)
lt_cv_deplibs_check_method=pass_all
;;
os2*)
lt_cv_deplibs_check_method=pass_all
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
file_magic_glob=
want_nocaseglob=no
if test "$build" = "$host"; then
case $host_os in
mingw* | pw32*)
if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
want_nocaseglob=yes
else
file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
fi
;;
esac
fi
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
set dummy ${ac_tool_prefix}dlltool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DLLTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DLLTOOL"; then
ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DLLTOOL=$ac_cv_prog_DLLTOOL
if test -n "$DLLTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
printf "%s\n" "$DLLTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_DLLTOOL"; then
ac_ct_DLLTOOL=$DLLTOOL
# Extract the first word of "dlltool", so it can be a program name with args.
set dummy dlltool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DLLTOOL"; then
ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DLLTOOL="dlltool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
if test -n "$ac_ct_DLLTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DLLTOOL" = x; then
DLLTOOL="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DLLTOOL=$ac_ct_DLLTOOL
fi
else
DLLTOOL="$ac_cv_prog_DLLTOOL"
fi
test -z "$DLLTOOL" && DLLTOOL=dlltool
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
printf %s "checking how to associate runtime and link libraries... " >&6; }
if test ${lt_cv_sharedlib_from_linklib_cmd+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_sharedlib_from_linklib_cmd='unknown'
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
# two different shell functions defined in ltmain.sh;
# decide which one to use based on capabilities of $DLLTOOL
case `$DLLTOOL --help 2>&1` in
*--identify-strict*)
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
;;
*)
lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
;;
esac
;;
*)
# fallback: assume linklib IS sharedlib
lt_cv_sharedlib_from_linklib_cmd=$ECHO
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
if test -n "$ac_tool_prefix"; then
for ac_prog in ar
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$AR"; then
ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
printf "%s\n" "$AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$AR" && break
done
fi
if test -z "$AR"; then
ac_ct_AR=$AR
for ac_prog in ar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_AR"; then
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="$ac_prog"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
printf "%s\n" "$ac_ct_AR" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
test -n "$ac_ct_AR" && break
done
if test "x$ac_ct_AR" = x; then
AR="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
fi
: ${AR=ar}
: ${AR_FLAGS=cru}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
printf %s "checking for archiver @FILE support... " >&6; }
if test ${lt_cv_ar_at_file+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ar_at_file=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
echo conftest.$ac_objext > conftest.lst
lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -eq "$ac_status"; then
# Ensure the archiver fails upon bogus file names.
rm -f conftest.$ac_objext libconftest.a
{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
(eval $lt_ar_try) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if test 0 -ne "$ac_status"; then
lt_cv_ar_at_file=@
fi
fi
rm -f conftest.* libconftest.a
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
printf "%s\n" "$lt_cv_ar_at_file" >&6; }
if test no = "$lt_cv_ar_at_file"; then
archiver_list_spec=
else
archiver_list_spec=$lt_cv_ar_at_file
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$STRIP"; then
ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
printf "%s\n" "$STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_STRIP"; then
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_STRIP"; then
ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
printf "%s\n" "$ac_ct_STRIP" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
else
STRIP="$ac_cv_prog_STRIP"
fi
test -z "$STRIP" && STRIP=:
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_RANLIB+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$RANLIB"; then
ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
printf "%s\n" "$RANLIB" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_RANLIB"; then
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_RANLIB+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_RANLIB"; then
ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
printf "%s\n" "$ac_ct_RANLIB" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
RANLIB=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
fi
else
RANLIB="$ac_cv_prog_RANLIB"
fi
test -z "$RANLIB" && RANLIB=:
# Determine commands to create old-style static archives.
old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
if test -n "$RANLIB"; then
case $host_os in
bitrig* | openbsd*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
;;
*)
old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
;;
esac
old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
fi
case $host_os in
darwin*)
lock_old_archive_extraction=yes ;;
*)
lock_old_archive_extraction=no ;;
esac
# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}
# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
# Allow CC to be a program name with arguments.
compiler=$CC
# Check for command to grab the raw symbol name followed by C symbol from nm.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
printf %s "checking command to parse $NM output from $compiler object... " >&6; }
if test ${lt_cv_sys_global_symbol_pipe+y}
then :
printf %s "(cached) " >&6
else $as_nop
# These are sane defaults that work on at least a few old systems.
# [They come from Ultrix. What could be older than Ultrix?!! ;)]
# Character class describing NM global symbol codes.
symcode='[BCDEGRST]'
# Regexp to match symbols that can be accessed directly from C.
sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
# Define system-specific variables.
case $host_os in
aix*)
symcode='[BCDT]'
;;
cygwin* | mingw* | pw32* | cegcc*)
symcode='[ABCDGISTW]'
;;
hpux*)
if test ia64 = "$host_cpu"; then
symcode='[ABCDEGRST]'
fi
;;
irix* | nonstopux*)
symcode='[BCDEGRST]'
;;
osf*)
symcode='[BCDEGQRST]'
;;
solaris*)
symcode='[BDRT]'
;;
sco3.2v5*)
symcode='[DT]'
;;
sysv4.2uw2*)
symcode='[DT]'
;;
sysv5* | sco5v6* | unixware* | OpenUNIX*)
symcode='[ABDT]'
;;
sysv4)
symcode='[DFNSTU]'
;;
esac
# If we're using GNU nm, then use its standard symbol codes.
case `$NM -V 2>&1` in
*GNU* | *'with BFD'*)
symcode='[ABCDGIRSTW]' ;;
esac
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Gets list of data symbols to import.
lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'"
# Adjust the below global symbol transforms to fixup imported variables.
lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
lt_c_name_lib_hook="\
-e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
-e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
else
# Disable hooks by default.
lt_cv_sys_global_symbol_to_import=
lt_cdecl_hook=
lt_c_name_hook=
lt_c_name_lib_hook=
fi
# Transform an extracted symbol line into a proper C declaration.
# Some systems (esp. on ia64) link data and code symbols differently,
# so use this general approach.
lt_cv_sys_global_symbol_to_cdecl="sed -n"\
$lt_cdecl_hook\
" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
# Transform an extracted symbol line into symbol name and symbol address
lt_cv_sys_global_symbol_to_c_name_address="sed -n"\
$lt_c_name_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
# Transform an extracted symbol line into symbol name with lib prefix and
# symbol address.
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\
$lt_c_name_lib_hook\
" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
# Handle CRLF in mingw tool chain
opt_cr=
case $build_os in
mingw*)
opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
;;
esac
# Try without a prefix underscore, then with it.
for ac_symprfx in "" "_"; do
# Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
symxfrm="\\1 $ac_symprfx\\2 \\2"
# Write the raw and C identifiers.
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
# Fake it for dumpbin and say T for any non-static function,
# D for any global variable and I for any imported variable.
# Also find C++ and __fastcall symbols from MSVC++,
# which start with @ or ?.
lt_cv_sys_global_symbol_pipe="$AWK '"\
" {last_section=section; section=\$ 3};"\
" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
" \$ 0!~/External *\|/{next};"\
" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
" {if(hide[section]) next};"\
" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
" ' prfx=^$ac_symprfx"
else
lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
fi
lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
# Check to see that the pipe works correctly.
pipe_works=no
rm -f conftest*
cat > conftest.$ac_ext <<_LT_EOF
#ifdef __cplusplus
extern "C" {
#endif
char nm_test_var;
void nm_test_func(void);
void nm_test_func(void){}
#ifdef __cplusplus
}
#endif
int main(){nm_test_var='a';nm_test_func();return(0);}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
(eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
else
rm -f "$nlist"T
fi
# Make sure that we snagged all the symbols we need.
if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
cat <<_LT_EOF > conftest.$ac_ext
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
/* DATA imports from DLLs on WIN32 can't be const, because runtime
relocations are performed -- see ld's documentation on pseudo-relocs. */
# define LT_DLSYM_CONST
#elif defined __osf__
/* This system does not cope well with relocations in const data. */
# define LT_DLSYM_CONST
#else
# define LT_DLSYM_CONST const
#endif
#ifdef __cplusplus
extern "C" {
#endif
_LT_EOF
# Now generate the symbol file.
eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
LT_DLSYM_CONST struct {
const char *name;
void *address;
}
lt__PROGRAM__LTX_preloaded_symbols[] =
{
{ "@PROGRAM@", (void *) 0 },
_LT_EOF
$SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
cat <<\_LT_EOF >> conftest.$ac_ext
{0, (void *) 0}
};
/* This works around a problem in FreeBSD linker */
#ifdef FREEBSD_WORKAROUND
static const void *lt_preloaded_setup() {
return lt__PROGRAM__LTX_preloaded_symbols;
}
#endif
#ifdef __cplusplus
}
#endif
_LT_EOF
# Now try linking the two files.
mv conftest.$ac_objext conftstm.$ac_objext
lt_globsym_save_LIBS=$LIBS
lt_globsym_save_CFLAGS=$CFLAGS
LIBS=conftstm.$ac_objext
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest$ac_exeext; then
pipe_works=yes
fi
LIBS=$lt_globsym_save_LIBS
CFLAGS=$lt_globsym_save_CFLAGS
else
echo "cannot find nm_test_func in $nlist" >&5
fi
else
echo "cannot find nm_test_var in $nlist" >&5
fi
else
echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
fi
else
echo "$progname: failed program was:" >&5
cat conftest.$ac_ext >&5
fi
rm -rf conftest* conftst*
# Do not use the global_symbol_pipe unless it works.
if test yes = "$pipe_works"; then
break
else
lt_cv_sys_global_symbol_pipe=
fi
done
fi
if test -z "$lt_cv_sys_global_symbol_pipe"; then
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
printf "%s\n" "failed" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
printf "%s\n" "ok" >&6; }
fi
# Response file support.
if test "$lt_cv_nm_interface" = "MS dumpbin"; then
nm_file_list_spec='@'
elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
nm_file_list_spec='@'
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
printf %s "checking for sysroot... " >&6; }
# Check whether --with-sysroot was given.
if test ${with_sysroot+y}
then :
withval=$with_sysroot;
else $as_nop
with_sysroot=no
fi
lt_sysroot=
case $with_sysroot in #(
yes)
if test yes = "$GCC"; then
lt_sysroot=`$CC --print-sysroot 2>/dev/null`
fi
;; #(
/*)
lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
;; #(
no|'')
;; #(
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
printf "%s\n" "$with_sysroot" >&6; }
as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
printf "%s\n" "${lt_sysroot:-no}" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
printf %s "checking for a working dd... " >&6; }
if test ${ac_cv_path_lt_DD+y}
then :
printf %s "(cached) " >&6
else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
: ${lt_DD:=$DD}
if test -z "$lt_DD"; then
ac_path_lt_DD_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in dd
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_lt_DD" || continue
if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
&& ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
fi
$ac_path_lt_DD_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_lt_DD"; then
:
fi
else
ac_cv_path_lt_DD=$lt_DD
fi
rm -f conftest.i conftest2.i conftest.out
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
printf %s "checking how to truncate binary pipes... " >&6; }
if test ${lt_cv_truncate_bin+y}
then :
printf %s "(cached) " >&6
else $as_nop
printf 0123456789abcdef0123456789abcdef >conftest.i
cat conftest.i conftest.i >conftest2.i
lt_cv_truncate_bin=
if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
cmp -s conftest.i conftest.out \
&& lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
fi
rm -f conftest.i conftest2.i conftest.out
test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
printf "%s\n" "$lt_cv_truncate_bin" >&6; }
# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
func_cc_basename ()
{
for cc_temp in $*""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
}
# Check whether --enable-libtool-lock was given.
if test ${enable_libtool_lock+y}
then :
enableval=$enable_libtool_lock;
fi
test no = "$enable_libtool_lock" || enable_libtool_lock=yes
# Some flags need to be propagated to the compiler or linker for good
# libtool support.
case $host in
ia64-*-hpux*)
# Find out what ABI is being produced by ac_compile, and set mode
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
HPUX_IA64_MODE=32
;;
*ELF-64*)
HPUX_IA64_MODE=64
;;
esac
fi
rm -rf conftest*
;;
*-*-irix6*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo '#line '$LINENO' "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test yes = "$lt_cv_prog_gnu_ld"; then
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -melf32bsmip"
;;
*N32*)
LD="${LD-ld} -melf32bmipn32"
;;
*64-bit*)
LD="${LD-ld} -melf64bmip"
;;
esac
else
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
LD="${LD-ld} -32"
;;
*N32*)
LD="${LD-ld} -n32"
;;
*64-bit*)
LD="${LD-ld} -64"
;;
esac
fi
fi
rm -rf conftest*
;;
mips64*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo '#line '$LINENO' "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
emul=elf
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
emul="${emul}32"
;;
*64-bit*)
emul="${emul}64"
;;
esac
case `/usr/bin/file conftest.$ac_objext` in
*MSB*)
emul="${emul}btsmip"
;;
*LSB*)
emul="${emul}ltsmip"
;;
esac
case `/usr/bin/file conftest.$ac_objext` in
*N32*)
emul="${emul}n32"
;;
esac
LD="${LD-ld} -m $emul"
fi
rm -rf conftest*
;;
x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly. Note that the listed cases only cover the
# situations where additional linker options are needed (such as when
# doing 32-bit compilation for a host where ld defaults to 64-bit, or
# vice versa); the common cases where no linker options are needed do
# not appear in the list.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_i386_fbsd"
;;
x86_64-*linux*)
case `/usr/bin/file conftest.o` in
*x86-64*)
LD="${LD-ld} -m elf32_x86_64"
;;
*)
LD="${LD-ld} -m elf_i386"
;;
esac
;;
powerpc64le-*linux*)
LD="${LD-ld} -m elf32lppclinux"
;;
powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
LD="${LD-ld} -m elf_s390"
;;
sparc64-*linux*)
LD="${LD-ld} -m elf32_sparc"
;;
esac
;;
*64-bit*)
case $host in
x86_64-*kfreebsd*-gnu)
LD="${LD-ld} -m elf_x86_64_fbsd"
;;
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
powerpcle-*linux*)
LD="${LD-ld} -m elf64lppc"
;;
powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*|s390*-*tpf*)
LD="${LD-ld} -m elf64_s390"
;;
sparc*-*linux*)
LD="${LD-ld} -m elf64_sparc"
;;
esac
;;
esac
fi
rm -rf conftest*
;;
*-*-sco3.2v5*)
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -belf"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
printf %s "checking whether the C compiler needs -belf... " >&6; }
if test ${lt_cv_cc_needs_belf+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_cc_needs_belf=yes
else $as_nop
lt_cv_cc_needs_belf=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
if test yes != "$lt_cv_cc_needs_belf"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS=$SAVE_CFLAGS
fi
;;
*-*solaris*)
# Find out what ABI is being produced by ac_compile, and set linker
# options accordingly.
echo 'int i;' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*)
case $host in
i?86-*-solaris*|x86_64-*-solaris*)
LD="${LD-ld} -m elf_x86_64"
;;
sparc*-*-solaris*)
LD="${LD-ld} -m elf64_sparc"
;;
esac
# GNU ld 2.21 introduced _sol2 emulations. Use them if available.
if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
LD=${LD-ld}_sol2
fi
;;
*)
if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
LD="${LD-ld} -64"
fi
;;
esac
;;
esac
fi
rm -rf conftest*
;;
esac
need_locks=$enable_libtool_lock
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
set dummy ${ac_tool_prefix}mt; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$MANIFEST_TOOL"; then
ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
if test -n "$MANIFEST_TOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
printf "%s\n" "$MANIFEST_TOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
# Extract the first word of "mt", so it can be a program name with args.
set dummy mt; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_MANIFEST_TOOL"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
if test -n "$ac_ct_MANIFEST_TOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_MANIFEST_TOOL" = x; then
MANIFEST_TOOL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
fi
else
MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
fi
test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
if test ${lt_cv_path_mainfest_tool+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_path_mainfest_tool=no
echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
$MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
cat conftest.err >&5
if $GREP 'Manifest Tool' conftest.out > /dev/null; then
lt_cv_path_mainfest_tool=yes
fi
rm -f conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
if test yes != "$lt_cv_path_mainfest_tool"; then
MANIFEST_TOOL=:
fi
case $host_os in
rhapsody* | darwin*)
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$DSYMUTIL"; then
ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
printf "%s\n" "$DSYMUTIL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_DSYMUTIL"; then
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_DSYMUTIL"; then
ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
DSYMUTIL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
fi
else
DSYMUTIL="$ac_cv_prog_DSYMUTIL"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_NMEDIT+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$NMEDIT"; then
ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
printf "%s\n" "$NMEDIT" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_NMEDIT"; then
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_NMEDIT+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_NMEDIT"; then
ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
printf "%s\n" "$ac_ct_NMEDIT" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
NMEDIT=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
fi
else
NMEDIT="$ac_cv_prog_NMEDIT"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
set dummy ${ac_tool_prefix}lipo; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_LIPO+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$LIPO"; then
ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
LIPO=$ac_cv_prog_LIPO
if test -n "$LIPO"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
printf "%s\n" "$LIPO" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_LIPO"; then
ac_ct_LIPO=$LIPO
# Extract the first word of "lipo", so it can be a program name with args.
set dummy lipo; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_LIPO+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_LIPO"; then
ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_LIPO="lipo"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
if test -n "$ac_ct_LIPO"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
printf "%s\n" "$ac_ct_LIPO" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_LIPO" = x; then
LIPO=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
LIPO=$ac_ct_LIPO
fi
else
LIPO="$ac_cv_prog_LIPO"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OTOOL"; then
ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OTOOL=$ac_cv_prog_OTOOL
if test -n "$OTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
printf "%s\n" "$OTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OTOOL"; then
ac_ct_OTOOL=$OTOOL
# Extract the first word of "otool", so it can be a program name with args.
set dummy otool; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OTOOL"; then
ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL="otool"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
if test -n "$ac_ct_OTOOL"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
printf "%s\n" "$ac_ct_OTOOL" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL" = x; then
OTOOL=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL=$ac_ct_OTOOL
fi
else
OTOOL="$ac_cv_prog_OTOOL"
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
set dummy ${ac_tool_prefix}otool64; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_OTOOL64+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$OTOOL64"; then
ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
OTOOL64=$ac_cv_prog_OTOOL64
if test -n "$OTOOL64"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
printf "%s\n" "$OTOOL64" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_prog_OTOOL64"; then
ac_ct_OTOOL64=$OTOOL64
# Extract the first word of "otool64", so it can be a program name with args.
set dummy otool64; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_OTOOL64+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -n "$ac_ct_OTOOL64"; then
ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_OTOOL64="otool64"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
fi
fi
ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
if test -n "$ac_ct_OTOOL64"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
printf "%s\n" "$ac_ct_OTOOL64" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_ct_OTOOL64" = x; then
OTOOL64=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
OTOOL64=$ac_ct_OTOOL64
fi
else
OTOOL64="$ac_cv_prog_OTOOL64"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
printf %s "checking for -single_module linker flag... " >&6; }
if test ${lt_cv_apple_cc_single_mod+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_apple_cc_single_mod=no
if test -z "$LT_MULTI_MODULE"; then
# By default we will add the -single_module flag. You can override
# by either setting the environment variable LT_MULTI_MODULE
# non-empty at configure time, or by adding -multi_module to the
# link flags.
rm -rf libconftest.dylib*
echo "int foo(void){return 1;}" > conftest.c
echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-dynamiclib -Wl,-single_module conftest.c" >&5
$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-dynamiclib -Wl,-single_module conftest.c 2>conftest.err
_lt_result=$?
# If there is a non-empty error log, and "single_module"
# appears in it, assume the flag caused a linker warning
if test -s conftest.err && $GREP single_module conftest.err; then
cat conftest.err >&5
# Otherwise, if the output was created with a 0 exit code from
# the compiler, it worked.
elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
lt_cv_apple_cc_single_mod=yes
else
cat conftest.err >&5
fi
rm -rf libconftest.dylib*
rm -f conftest.*
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
printf %s "checking for -exported_symbols_list linker flag... " >&6; }
if test ${lt_cv_ld_exported_symbols_list+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_exported_symbols_list=no
save_LDFLAGS=$LDFLAGS
echo "_main" > conftest.sym
LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_ld_exported_symbols_list=yes
else $as_nop
lt_cv_ld_exported_symbols_list=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
printf %s "checking for -force_load linker flag... " >&6; }
if test ${lt_cv_ld_force_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_ld_force_load=no
cat > conftest.c << _LT_EOF
int forced_loaded() { return 2;}
_LT_EOF
echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
$LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
echo "$AR cru libconftest.a conftest.o" >&5
$AR cru libconftest.a conftest.o 2>&5
echo "$RANLIB libconftest.a" >&5
$RANLIB libconftest.a 2>&5
cat > conftest.c << _LT_EOF
int main() { return 0;}
_LT_EOF
echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
_lt_result=$?
if test -s conftest.err && $GREP force_load conftest.err; then
cat conftest.err >&5
elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
lt_cv_ld_force_load=yes
else
cat conftest.err >&5
fi
rm -f conftest.err libconftest.a conftest conftest.c
rm -rf conftest.dSYM
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
printf "%s\n" "$lt_cv_ld_force_load" >&6; }
case $host_os in
rhapsody* | darwin1.[012])
_lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
darwin1.*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
darwin*) # darwin 5.x on
# if running on 10.5 or later, the deployment target defaults
# to the OS version, if on x86, and 10.4, the deployment
# target defaults to 10.4. Don't you love it?
case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
10.0,*86*-darwin8*|10.0,*-darwin[91]*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
10.[012][,.]*)
_lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
10.*)
_lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
esac
;;
esac
if test yes = "$lt_cv_apple_cc_single_mod"; then
_lt_dar_single_mod='$single_module'
fi
if test yes = "$lt_cv_ld_exported_symbols_list"; then
_lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
else
_lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
fi
if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
_lt_dsymutil='~$DSYMUTIL $lib || :'
else
_lt_dsymutil=
fi
;;
esac
# func_munge_path_list VARIABLE PATH
# -----------------------------------
# VARIABLE is name of variable containing _space_ separated list of
# directories to be munged by the contents of PATH, which is string
# having a format:
# "DIR[:DIR]:"
# string "DIR[ DIR]" will be prepended to VARIABLE
# ":DIR[:DIR]"
# string "DIR[ DIR]" will be appended to VARIABLE
# "DIRP[:DIRP]::[DIRA:]DIRA"
# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
# "DIRA[ DIRA]" will be appended to VARIABLE
# "DIR[:DIR]"
# VARIABLE will be replaced by "DIR[ DIR]"
func_munge_path_list ()
{
case x$2 in
x)
;;
*:)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
;;
x:*)
eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
;;
*::*)
eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
;;
*)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
;;
esac
}
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
# Set options
enable_dlopen=no
enable_win32_dll=no
# Check whether --enable-static was given.
if test ${enable_static+y}
then :
enableval=$enable_static; p=${PACKAGE-default}
case $enableval in
yes) enable_static=yes ;;
no) enable_static=no ;;
*)
enable_static=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_static=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_static=yes
fi
# Check whether --with-pic was given.
if test ${with_pic+y}
then :
withval=$with_pic; lt_p=${PACKAGE-default}
case $withval in
yes|no) pic_mode=$withval ;;
*)
pic_mode=default
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for lt_pkg in $withval; do
IFS=$lt_save_ifs
if test "X$lt_pkg" = "X$lt_p"; then
pic_mode=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
pic_mode=default
fi
# Check whether --enable-fast-install was given.
if test ${enable_fast_install+y}
then :
enableval=$enable_fast_install; p=${PACKAGE-default}
case $enableval in
yes) enable_fast_install=yes ;;
no) enable_fast_install=no ;;
*)
enable_fast_install=no
# Look at the argument we got. We use all the common list separators.
lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
for pkg in $enableval; do
IFS=$lt_save_ifs
if test "X$pkg" = "X$p"; then
enable_fast_install=yes
fi
done
IFS=$lt_save_ifs
;;
esac
else $as_nop
enable_fast_install=yes
fi
shared_archive_member_spec=
case $host,$enable_shared in
power*-*-aix[5-9]*,yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
printf %s "checking which variant of shared library versioning to provide... " >&6; }
# Check whether --with-aix-soname was given.
if test ${with_aix_soname+y}
then :
withval=$with_aix_soname; case $withval in
aix|svr4|both)
;;
*)
as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
;;
esac
lt_cv_with_aix_soname=$with_aix_soname
else $as_nop
if test ${lt_cv_with_aix_soname+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_with_aix_soname=aix
fi
with_aix_soname=$lt_cv_with_aix_soname
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
printf "%s\n" "$with_aix_soname" >&6; }
if test aix != "$with_aix_soname"; then
# For the AIX way of multilib, we name the shared archive member
# based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
# and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
# Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
# the AIX toolchain works better with OBJECT_MODE set (default 32).
if test 64 = "${OBJECT_MODE-32}"; then
shared_archive_member_spec=shr_64
else
shared_archive_member_spec=shr
fi
fi
;;
*)
with_aix_soname=aix
;;
esac
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS=$ltmain
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
test -z "$LN_S" && LN_S="ln -s"
if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
printf %s "checking for objdir... " >&6; }
if test ${lt_cv_objdir+y}
then :
printf %s "(cached) " >&6
else $as_nop
rm -f .libs 2>/dev/null
mkdir .libs 2>/dev/null
if test -d .libs; then
lt_cv_objdir=.libs
else
# MS-DOS does not allow filenames that begin with a dot.
lt_cv_objdir=_libs
fi
rmdir .libs 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
printf "%s\n" "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
case $host_os in
aix3*)
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test set != "${COLLECT_NAMES+set}"; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
;;
esac
# Global variables:
ofile=libtool
can_build_shared=yes
# All known linkers require a '.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
with_gnu_ld=$lt_cv_prog_gnu_ld
old_CC=$CC
old_CFLAGS=$CFLAGS
# Set sane defaults for various variables
test -z "$CC" && CC=cc
test -z "$LTCC" && LTCC=$CC
test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
test -z "$LD" && LD=ld
test -z "$ac_objext" && ac_objext=o
func_cc_basename $compiler
cc_basename=$func_cc_basename_result
# Only perform the check for file, if the check method requires it
test -z "$MAGIC_CMD" && MAGIC_CMD=file
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
printf %s "checking for ${ac_tool_prefix}file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
*)
lt_save_MAGIC_CMD=$MAGIC_CMD
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
for ac_dir in $ac_dummy; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/${ac_tool_prefix}file"; then
lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
if test -n "$file_magic_test_file"; then
case $deplibs_check_method in
"file_magic "*)
file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
$EGREP "$file_magic_regex" > /dev/null; then
:
else
cat <<_LT_EOF 1>&2
*** Warning: the command libtool uses to detect shared libraries,
*** $file_magic_cmd, produces output that libtool cannot recognize.
*** The result is that libtool may fail to recognize shared libraries
*** as such. This will affect the creation of libtool libraries that
*** depend on shared libraries, but programs linked with such libtool
*** libraries will work regardless of this problem. Nevertheless, you
*** may want to report the problem to your system manager and/or to
*** bug-libtool@gnu.org
_LT_EOF
fi ;;
esac
fi
break
fi
done
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
esac
fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
printf "%s\n" "$MAGIC_CMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
printf %s "checking for file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $MAGIC_CMD in
[\\/*] | ?:[\\/]*)
lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
;;
*)
lt_save_MAGIC_CMD=$MAGIC_CMD
lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
for ac_dir in $ac_dummy; do
IFS=$lt_save_ifs
test -z "$ac_dir" && ac_dir=.
if test -f "$ac_dir/file"; then
lt_cv_path_MAGIC_CMD=$ac_dir/"file"
if test -n "$file_magic_test_file"; then
case $deplibs_check_method in
"file_magic "*)
file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
$EGREP "$file_magic_regex" > /dev/null; then
:
else
cat <<_LT_EOF 1>&2
*** Warning: the command libtool uses to detect shared libraries,
*** $file_magic_cmd, produces output that libtool cannot recognize.
*** The result is that libtool may fail to recognize shared libraries
*** as such. This will affect the creation of libtool libraries that
*** depend on shared libraries, but programs linked with such libtool
*** libraries will work regardless of this problem. Nevertheless, you
*** may want to report the problem to your system manager and/or to
*** bug-libtool@gnu.org
_LT_EOF
fi ;;
esac
fi
break
fi
done
IFS=$lt_save_ifs
MAGIC_CMD=$lt_save_MAGIC_CMD
;;
esac
fi
MAGIC_CMD=$lt_cv_path_MAGIC_CMD
if test -n "$MAGIC_CMD"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
printf "%s\n" "$MAGIC_CMD" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
else
MAGIC_CMD=:
fi
fi
fi
;;
esac
# Use C for the default configuration in the libtool script
lt_save_CC=$CC
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Source file extension for C test sources.
ac_ext=c
# Object file extension for compiled C test sources.
objext=o
objext=$objext
# Code to be used in simple compile tests
lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
lt_simple_link_test_code='int main(){return(0);}'
# If no C compiler was specified, use CC.
LTCC=${LTCC-"$CC"}
# If no C compiler flags were specified, use CFLAGS.
LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
# Allow CC to be a program name with arguments.
compiler=$CC
# Save the default compiler, since it gets overwritten when the other
# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
compiler_DEFAULT=$CC
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$RM conftest*
ac_outfile=conftest.$ac_objext
echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
$RM -r conftest*
## CAVEAT EMPTOR:
## There is no encapsulation within the following macros, do not change
## the running order or otherwise move them around unless you know exactly
## what you are doing...
if test -n "$compiler"; then
lt_prog_compiler_no_builtin_flag=
if test yes = "$GCC"; then
case $cc_basename in
nvcc*)
lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
*)
lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
if test ${lt_cv_prog_compiler_rtti_exceptions+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
# The option is referenced via a variable to avoid confusing sed.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_rtti_exceptions=yes
fi
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
else
:
fi
fi
lt_prog_compiler_wl=
lt_prog_compiler_pic=
lt_prog_compiler_static=
if test yes = "$GCC"; then
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_static='-static'
case $host_os in
aix*)
# All AIX code is PIC.
if test ia64 = "$host_cpu"; then
# AIX 5 now supports IA64 processor
lt_prog_compiler_static='-Bstatic'
fi
lt_prog_compiler_pic='-fPIC'
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
lt_prog_compiler_pic='-fPIC'
;;
m68k)
# FIXME: we need at least 68020 code to build shared libraries, but
# adding the '-m68020' flag to GCC prevents building anything better,
# like '-m68040'.
lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
;;
esac
;;
beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
# (--disable-auto-import) libraries
lt_prog_compiler_pic='-DDLL_EXPORT'
case $host_os in
os2*)
lt_prog_compiler_static='$wl-static'
;;
esac
;;
darwin* | rhapsody*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
lt_prog_compiler_pic='-fno-common'
;;
haiku*)
# PIC is the default for Haiku.
# The "-static" flag exists, but is broken.
lt_prog_compiler_static=
;;
hpux*)
# PIC is the default for 64-bit PA HP-UX, but not for 32-bit
# PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
# sets the default TLS model and affects inlining.
case $host_cpu in
hppa*64*)
# +Z the default
;;
*)
lt_prog_compiler_pic='-fPIC'
;;
esac
;;
interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
msdosdjgpp*)
# Just because we use GCC doesn't mean we suddenly get shared libraries
# on systems that don't support them.
lt_prog_compiler_can_build_shared=no
enable_shared=no
;;
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
lt_prog_compiler_pic='-fPIC -shared'
;;
sysv4*MP*)
if test -d /usr/nec; then
lt_prog_compiler_pic=-Kconform_pic
fi
;;
*)
lt_prog_compiler_pic='-fPIC'
;;
esac
case $cc_basename in
nvcc*) # Cuda Compiler Driver 2.2
lt_prog_compiler_wl='-Xlinker '
if test -n "$lt_prog_compiler_pic"; then
lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
fi
;;
esac
else
# PORTME Check for flag to pass linker flags through the system compiler.
case $host_os in
aix*)
lt_prog_compiler_wl='-Wl,'
if test ia64 = "$host_cpu"; then
# AIX 5 now supports IA64 processor
lt_prog_compiler_static='-Bstatic'
else
lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
fi
;;
darwin* | rhapsody*)
# PIC is the default on this platform
# Common symbols not allowed in MH_DYLIB files
lt_prog_compiler_pic='-fno-common'
case $cc_basename in
nagfor*)
# NAG Fortran compiler
lt_prog_compiler_wl='-Wl,-Wl,,'
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
esac
;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
lt_prog_compiler_pic='-DDLL_EXPORT'
case $host_os in
os2*)
lt_prog_compiler_static='$wl-static'
;;
esac
;;
hpux9* | hpux10* | hpux11*)
lt_prog_compiler_wl='-Wl,'
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
# not for PA HP-UX.
case $host_cpu in
hppa*64*|ia64*)
# +Z the default
;;
*)
lt_prog_compiler_pic='+Z'
;;
esac
# Is there a better lt_prog_compiler_static that works with the bundled CC?
lt_prog_compiler_static='$wl-a ${wl}archive'
;;
irix5* | irix6* | nonstopux*)
lt_prog_compiler_wl='-Wl,'
# PIC (with -KPIC) is the default.
lt_prog_compiler_static='-non_shared'
;;
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
case $cc_basename in
# old Intel for x86_64, which still supported -KPIC.
ecc*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-static'
;;
# icc used to be incompatible with GCC.
# ICC 10 doesn't accept -KPIC any more.
icc* | ifort*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
# Lahey Fortran 8.1.
lf95*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='--shared'
lt_prog_compiler_static='--static'
;;
nagfor*)
# NAG Fortran compiler
lt_prog_compiler_wl='-Wl,-Wl,,'
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
tcc*)
# Fabrice Bellard et al's Tiny C Compiler
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group compilers (*not* the Pentium gcc compiler,
# which looks to be a dead project)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fpic'
lt_prog_compiler_static='-Bstatic'
;;
ccc*)
lt_prog_compiler_wl='-Wl,'
# All Alpha code is PIC.
lt_prog_compiler_static='-non_shared'
;;
xl* | bgxl* | bgf* | mpixl*)
# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-qpic'
lt_prog_compiler_static='-qstaticlink'
;;
*)
case `$CC -V 2>&1 | sed 5q` in
*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
# Sun Fortran 8.3 passes all unrecognized flags to the linker
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl=''
;;
*Sun\ F* | *Sun*Fortran*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl='-Qoption ld '
;;
*Sun\ C*)
# Sun C 5.9
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
lt_prog_compiler_wl='-Wl,'
;;
*Intel*\ [CF]*Compiler*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fPIC'
lt_prog_compiler_static='-static'
;;
*Portland\ Group*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-fpic'
lt_prog_compiler_static='-Bstatic'
;;
esac
;;
esac
;;
newsos6)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
*nto* | *qnx*)
# QNX uses GNU C++, but need to define -shared option too, otherwise
# it will coredump.
lt_prog_compiler_pic='-fPIC -shared'
;;
osf3* | osf4* | osf5*)
lt_prog_compiler_wl='-Wl,'
# All OSF/1 code is PIC.
lt_prog_compiler_static='-non_shared'
;;
rdos*)
lt_prog_compiler_static='-non_shared'
;;
solaris*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
case $cc_basename in
f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
lt_prog_compiler_wl='-Qoption ld ';;
*)
lt_prog_compiler_wl='-Wl,';;
esac
;;
sunos4*)
lt_prog_compiler_wl='-Qoption ld '
lt_prog_compiler_pic='-PIC'
lt_prog_compiler_static='-Bstatic'
;;
sysv4 | sysv4.2uw2* | sysv4.3*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
sysv4*MP*)
if test -d /usr/nec; then
lt_prog_compiler_pic='-Kconform_pic'
lt_prog_compiler_static='-Bstatic'
fi
;;
sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
;;
unicos*)
lt_prog_compiler_wl='-Wl,'
lt_prog_compiler_can_build_shared=no
;;
uts4*)
lt_prog_compiler_pic='-pic'
lt_prog_compiler_static='-Bstatic'
;;
*)
lt_prog_compiler_can_build_shared=no
;;
esac
fi
case $host_os in
# For platforms that do not support PIC, -DPIC is meaningless:
*djgpp*)
lt_prog_compiler_pic=
;;
*)
lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
printf %s "checking for $compiler option to produce PIC... " >&6; }
if test ${lt_cv_prog_compiler_pic+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
if test ${lt_cv_prog_compiler_pic_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
# The option is referenced via a variable to avoid confusing sed.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_pic_works=yes
fi
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
if test yes = "$lt_cv_prog_compiler_pic_works"; then
case $lt_prog_compiler_pic in
"" | " "*) ;;
*) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
esac
else
lt_prog_compiler_pic=
lt_prog_compiler_can_build_shared=no
fi
fi
#
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
if test ${lt_cv_prog_compiler_static_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_static_works=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&5
$ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler_static_works=yes
fi
else
lt_cv_prog_compiler_static_works=yes
fi
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
if test yes = "$lt_cv_prog_compiler_static_works"; then
:
else
lt_prog_compiler_static=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
mkdir out
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
$SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o=yes
fi
fi
chmod u+w . 2>&5
$RM conftest*
# SGI C++ compiler will create directory out/ii_files/ for
# template instantiation
test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
$RM out/* && rmdir out
cd ..
$RM -r conftest
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler_c_o=no
$RM -r conftest 2>/dev/null
mkdir conftest
cd conftest
mkdir out
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# Note that $ac_compile itself does not contain backslashes and begins
# with a dollar sign (not a hyphen), so the echo should work correctly.
lt_compile=`echo "$ac_compile" | $SED \
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings
$ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
$SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
lt_cv_prog_compiler_c_o=yes
fi
fi
chmod u+w . 2>&5
$RM conftest*
# SGI C++ compiler will create directory out/ii_files/ for
# template instantiation
test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
$RM out/* && rmdir out
cd ..
$RM -r conftest
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
hard_links=nottested
if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
# do not overwrite the value of need_locks provided by the user
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$RM conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
printf "%s\n" "$hard_links" >&6; }
if test no = "$hard_links"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
need_locks=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
allow_undefined_flag=
always_export_symbols=no
archive_cmds=
archive_expsym_cmds=
compiler_needs_object=no
enable_shared_with_static_runtimes=no
export_dynamic_flag_spec=
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
hardcode_automatic=no
hardcode_direct=no
hardcode_direct_absolute=no
hardcode_libdir_flag_spec=
hardcode_libdir_separator=
hardcode_minus_L=no
hardcode_shlibpath_var=unsupported
inherit_rpath=no
link_all_deplibs=unknown
module_cmds=
module_expsym_cmds=
old_archive_from_new_cmds=
old_archive_from_expsyms_cmds=
thread_safe_flag_spec=
whole_archive_flag_spec=
# include_expsyms should be a list of space-separated symbols to be *always*
# included in the symbol list
include_expsyms=
# exclude_expsyms can be an extended regexp of symbols to exclude
# it will be wrapped by ' (' and ')$', so one must not match beginning or
# end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
# as well as any symbol that contains 'd'.
exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
# Exclude shared library initialization/finalization symbols.
extract_expsyms_cmds=
case $host_os in
cygwin* | mingw* | pw32* | cegcc*)
# FIXME: the MSVC++ port hasn't been tested in a loooong time
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
if test yes != "$GCC"; then
with_gnu_ld=no
fi
;;
interix*)
# we just hope/assume this is gcc and not c89 (= MSVC++)
with_gnu_ld=yes
;;
openbsd* | bitrig*)
with_gnu_ld=no
;;
esac
ld_shlibs=yes
# On some targets, GNU ld is compatible enough with the native linker
# that we're better off using the native interface for both.
lt_use_gnu_ld_interface=no
if test yes = "$with_gnu_ld"; then
case $host_os in
aix*)
# The AIX port of GNU ld has always aspired to compatibility
# with the native linker. However, as the warning in the GNU ld
# block says, versions before 2.19.5* couldn't really create working
# shared libraries, regardless of the interface used.
case `$LD -v 2>&1` in
*\ \(GNU\ Binutils\)\ 2.19.5*) ;;
*\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
*\ \(GNU\ Binutils\)\ [3-9]*) ;;
*)
lt_use_gnu_ld_interface=yes
;;
esac
;;
*)
lt_use_gnu_ld_interface=yes
;;
esac
fi
if test yes = "$lt_use_gnu_ld_interface"; then
# If archive_cmds runs LD, not CC, wlarc should be empty
wlarc='$wl'
# Set some defaults for GNU ld with shared library support. These
# are reset later if shared libraries are not supported. Putting them
# here allows them to be overridden if necessary.
runpath_var=LD_RUN_PATH
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
export_dynamic_flag_spec='$wl--export-dynamic'
# ancient GNU ld didn't support --whole-archive et. al.
if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
else
whole_archive_flag_spec=
fi
supports_anon_versioning=no
case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in
*GNU\ gold*) supports_anon_versioning=yes ;;
*\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
*\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
*\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
*\ 2.11.*) ;; # other 2.11 versions
*) supports_anon_versioning=yes ;;
esac
# See if GNU ld supports shared libraries.
case $host_os in
aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test ia64 != "$host_cpu"; then
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: the GNU linker, at least up to release 2.19, is reported
*** to be unable to reliably create shared libraries on AIX.
*** Therefore, libtool is disabling shared libraries support. If you
*** really care for shared libraries, you may want to install binutils
*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
*** You will then need to restart the configuration process.
_LT_EOF
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds=''
;;
m68k)
archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
esac
;;
beos*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
allow_undefined_flag=unsupported
# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
# support --undefined. This deserves some investigation. FIXME
archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
else
ld_shlibs=no
fi
;;
cygwin* | mingw* | pw32* | cegcc*)
# _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
# as there is no search path for DLLs.
hardcode_libdir_flag_spec='-L$libdir'
export_dynamic_flag_spec='$wl--export-all-symbols'
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
# If the export-symbols file already is a .def file, use it as
# is; otherwise, prepend EXPORTS...
archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
cp $export_symbols $output_objdir/$soname.def;
else
echo EXPORTS > $output_objdir/$soname.def;
cat $export_symbols >> $output_objdir/$soname.def;
fi~
$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
else
ld_shlibs=no
fi
;;
haiku*)
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
link_all_deplibs=yes
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
shrext_cmds=.dll
archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
prefix_cmds="$SED"~
if test EXPORTS = "`$SED 1q $export_symbols`"; then
prefix_cmds="$prefix_cmds -e 1d";
fi~
prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
;;
interix[3-9]*)
hardcode_direct=no
hardcode_shlibpath_var=no
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
export_dynamic_flag_spec='$wl-E'
# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
# Instead, shared libraries are loaded at an image base (0x10000000 by
# default) and relocated if they conflict, which is a slow very memory
# consuming and fragmenting process. To avoid this, we pick a random,
# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
# time. Moving up from 0x10000000 also allows more sbrk(2) space.
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
tmp_diet=no
if test linux-dietlibc = "$host_os"; then
case $cc_basename in
diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
esac
fi
if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
&& test no = "$tmp_diet"
then
tmp_addflag=' $pic_flag'
tmp_sharedflag='-shared'
case $cc_basename,$host_cpu in
pgcc*) # Portland Group C compiler
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
tmp_addflag=' $pic_flag'
;;
pgf77* | pgf90* | pgf95* | pgfortran*)
# Portland Group f77 and f90 compilers
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
tmp_addflag=' $pic_flag -Mnomain' ;;
ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
tmp_addflag=' -i_dynamic' ;;
efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
tmp_addflag=' -i_dynamic -nofor_main' ;;
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
lf95*) # Lahey Fortran 8.1
whole_archive_flag_spec=
tmp_sharedflag='--shared' ;;
nagfor*) # NAGFOR 5.3
tmp_sharedflag='-Wl,-shared' ;;
xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
tmp_sharedflag='-qmkshrobj'
tmp_addflag= ;;
nvcc*) # Cuda Compiler Driver 2.2
whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes
;;
esac
case `$CC -V 2>&1 | sed 5q` in
*Sun\ C*) # Sun C 5.9
whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
compiler_needs_object=yes
tmp_sharedflag='-G' ;;
*Sun\ F*) # Sun Fortran 8.3
tmp_sharedflag='-G' ;;
esac
archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
fi
case $cc_basename in
tcc*)
export_dynamic_flag_spec='-rdynamic'
;;
xlf* | bgf* | bgxlf* | mpixlf*)
# IBM XL Fortran 10.1 on PPC cannot create shared libs itself
whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
if test yes = "$supports_anon_versioning"; then
archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
echo "local: *; };" >> $output_objdir/$libname.ver~
$LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
fi
;;
esac
else
ld_shlibs=no
fi
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
wlarc=
else
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
fi
;;
solaris*)
if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: The releases 2.8.* of the GNU linker cannot reliably
*** create shared libraries on Solaris systems. Therefore, libtool
*** is disabling shared libraries support. We urge you to upgrade GNU
*** binutils to release 2.9.1 or newer. Another option is to modify
*** your PATH or compiler configuration so that the native linker is
*** used, and then restart.
_LT_EOF
elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
*\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
ld_shlibs=no
cat <<_LT_EOF 1>&2
*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
*** reliably create shared libraries on SCO systems. Therefore, libtool
*** is disabling shared libraries support. We urge you to upgrade GNU
*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
*** your PATH or compiler configuration so that the native linker is
*** used, and then restart.
_LT_EOF
;;
*)
# For security reasons, it is highly recommended that you always
# use absolute paths for naming shared libraries, and exclude the
# DT_RUNPATH tag from executables and libraries. But doing so
# requires that you compile everything twice, which is a pain.
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
esac
;;
sunos4*)
archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
wlarc=
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
*)
if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
else
ld_shlibs=no
fi
;;
esac
if test no = "$ld_shlibs"; then
runpath_var=
hardcode_libdir_flag_spec=
export_dynamic_flag_spec=
whole_archive_flag_spec=
fi
else
# PORTME fill in a description of your system's linker (not GNU ld)
case $host_os in
aix3*)
allow_undefined_flag=unsupported
always_export_symbols=yes
archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
# Note: this linker hardcodes the directories in LIBPATH if there
# are no directories specified by -L.
hardcode_minus_L=yes
if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
# Neither direct hardcoding nor static linking is supported with a
# broken collect2.
hardcode_direct=unsupported
fi
;;
aix[4-9]*)
if test ia64 = "$host_cpu"; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
aix_use_runtimelinking=no
exp_sym_flag='-Bexport'
no_entry_flag=
else
# If we're using GNU nm, then we don't want the "-C" option.
# -C means demangle to GNU nm, but means don't demangle to AIX nm.
# Without the "-l" option, or with the "-B" option, AIX nm treats
# weak defined symbols like other global defined symbols, whereas
# GNU nm marks them as "W".
# While the 'weak' keyword is ignored in the Export File, we need
# it in the Import File for the 'aix-soname' feature, so we have
# to replace the "-B" option with "-P" for AIX nm.
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
else
export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
fi
aix_use_runtimelinking=no
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# have runtime linking enabled, and use it for executables.
# For shared libraries, we enable/disable runtime linking
# depending on the kind of the shared library created -
# when "with_aix_soname,aix_use_runtimelinking" is:
# "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
# "aix,yes" lib.so shared, rtl:yes, for executables
# lib.a static archive
# "both,no" lib.so.V(shr.o) shared, rtl:yes
# lib.a(lib.so.V) shared, rtl:no, for executables
# "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
# lib.a(lib.so.V) shared, rtl:no
# "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
# lib.a static archive
case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
aix_use_runtimelinking=yes
break
fi
done
if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
# With aix-soname=svr4, we create the lib.so.V shared archives only,
# so we don't have lib.a shared libs to link our executables.
# We have to force runtime linking in this case.
aix_use_runtimelinking=yes
LDFLAGS="$LDFLAGS -Wl,-brtl"
fi
;;
esac
exp_sym_flag='-bexport'
no_entry_flag='-bnoentry'
fi
# When large executables or shared objects are built, AIX ld can
# have problems creating the table of contents. If linking a library
# or program results in "error TOC overflow" add -mminimal-toc to
# CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
# enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
archive_cmds=''
hardcode_direct=yes
hardcode_direct_absolute=yes
hardcode_libdir_separator=':'
link_all_deplibs=yes
file_list_spec='$wl-f,'
case $with_aix_soname,$aix_use_runtimelinking in
aix,*) ;; # traditional, no import file
svr4,* | *,yes) # use import file
# The Import File defines what to hardcode.
hardcode_direct=no
hardcode_direct_absolute=no
;;
esac
if test yes = "$GCC"; then
case $host_os in aix4.[012]|aix4.[012].*)
# We only want to do this on AIX 4.2 and lower, the check
# below for broken collect2 doesn't work under 4.3+
collect2name=`$CC -print-prog-name=collect2`
if test -f "$collect2name" &&
strings "$collect2name" | $GREP resolve_lib_name >/dev/null
then
# We have reworked collect2
:
else
# We have old collect2
hardcode_direct=unsupported
# It fails to find uninstalled libraries when the uninstalled
# path is not listed in the libpath. Setting hardcode_minus_L
# to unsupported forces relinking
hardcode_minus_L=yes
hardcode_libdir_flag_spec='-L$libdir'
hardcode_libdir_separator=
fi
;;
esac
shared_flag='-shared'
if test yes = "$aix_use_runtimelinking"; then
shared_flag="$shared_flag "'$wl-G'
fi
# Need to ensure runtime linking is disabled for the traditional
# shared library, or the linker may eventually find shared libraries
# /with/ Import File - we do not want to mix them.
shared_flag_aix='-shared'
shared_flag_svr4='-shared $wl-G'
else
# not using gcc
if test ia64 = "$host_cpu"; then
# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
# chokes on -Wl,-G. The following line is correct:
shared_flag='-G'
else
if test yes = "$aix_use_runtimelinking"; then
shared_flag='$wl-G'
else
shared_flag='$wl-bM:SRE'
fi
shared_flag_aix='$wl-bM:SRE'
shared_flag_svr4='$wl-G'
fi
fi
export_dynamic_flag_spec='$wl-bexpall'
# It seems that -bexpall does not export symbols beginning with
# underscore (_), so it is better to generate a list of symbols to export.
always_export_symbols=yes
if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
# Warning - without using the other runtime loading flags (-brtl),
# -berok will link without error, but may produce a broken library.
allow_undefined_flag='-berok'
# Determine the default libpath from the value encoded in an
# empty executable.
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
/^0/ {
s/^0 *\([^ ]*\) *$/\1/
p
}
}'
lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
fi
aix_libpath=$lt_cv_aix_libpath_
fi
hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
else
if test ia64 = "$host_cpu"; then
hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
allow_undefined_flag="-z nodefs"
archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
else
# Determine the default libpath from the value encoded in an
# empty executable.
if test set = "${lt_cv_aix_libpath+set}"; then
aix_libpath=$lt_cv_aix_libpath
else
if test ${lt_cv_aix_libpath_+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_aix_libpath_sed='
/Import File Strings/,/^$/ {
/^0/ {
s/^0 *\([^ ]*\) *$/\1/
p
}
}'
lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
if test -z "$lt_cv_aix_libpath_"; then
lt_cv_aix_libpath_=/usr/lib:/lib
fi
fi
aix_libpath=$lt_cv_aix_libpath_
fi
hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
# Warning - without using the other run time loading flags,
# -berok will link without error, but may produce a broken library.
no_undefined_flag=' $wl-bernotok'
allow_undefined_flag=' $wl-berok'
if test yes = "$with_gnu_ld"; then
# We only use this code for GNU lds that support --whole-archive.
whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
else
# Exported symbols can be pulled into shared objects from archives
whole_archive_flag_spec='$convenience'
fi
archive_cmds_need_lc=yes
archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
# -brtl affects multiple linker settings, -berok does not and is overridden later
compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
if test svr4 != "$with_aix_soname"; then
# This is similar to how AIX traditionally builds its shared libraries.
archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
fi
if test aix != "$with_aix_soname"; then
archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
else
# used by -dlpreopen to get the symbols
archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
fi
archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
fi
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# see comment about AmigaOS4 .so support
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
archive_expsym_cmds=''
;;
m68k)
archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
;;
esac
;;
bsdi[45]*)
export_dynamic_flag_spec=-rdynamic
;;
cygwin* | mingw* | pw32* | cegcc*)
# When not using gcc, we currently assume that we are using
# Microsoft Visual C++.
# hardcode_libdir_flag_spec is actually meaningless, as there is
# no search path for DLLs.
case $cc_basename in
cl*)
# Native MSVC
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
always_export_symbols=yes
file_list_spec='@'
# Tell ltmain to make .lib files, not .a files.
libext=lib
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
cp "$export_symbols" "$output_objdir/$soname.def";
echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
else
$SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
fi~
$CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
linknames='
# The linker will not automatically build a static lib if we build a DLL.
# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
enable_shared_with_static_runtimes=yes
exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
# Don't use ranlib
old_postinstall_cmds='chmod 644 $oldlib'
postlink_cmds='lt_outputfile="@OUTPUT@"~
lt_tool_outputfile="@TOOL_OUTPUT@"~
case $lt_outputfile in
*.exe|*.EXE) ;;
*)
lt_outputfile=$lt_outputfile.exe
lt_tool_outputfile=$lt_tool_outputfile.exe
;;
esac~
if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
$MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
$RM "$lt_outputfile.manifest";
fi'
;;
*)
# Assume MSVC wrapper
hardcode_libdir_flag_spec=' '
allow_undefined_flag=unsupported
# Tell ltmain to make .lib files, not .a files.
libext=lib
# Tell ltmain to make .dll files, not .so files.
shrext_cmds=.dll
# FIXME: Setting linknames here is a bad hack.
archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
# The linker will automatically build a .lib file if we build a DLL.
old_archive_from_new_cmds='true'
# FIXME: Should let the user specify the lib program.
old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
enable_shared_with_static_runtimes=yes
;;
esac
;;
darwin* | rhapsody*)
archive_cmds_need_lc=no
hardcode_direct=no
hardcode_automatic=yes
hardcode_shlibpath_var=unsupported
if test yes = "$lt_cv_ld_force_load"; then
whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
else
whole_archive_flag_spec=''
fi
link_all_deplibs=yes
allow_undefined_flag=$_lt_dar_allow_undefined
case $cc_basename in
ifort*|nagfor*) _lt_dar_can_shared=yes ;;
*) _lt_dar_can_shared=$GCC ;;
esac
if test yes = "$_lt_dar_can_shared"; then
output_verbose_link_cmd=func_echo_all
archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
else
ld_shlibs=no
fi
;;
dgux*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_shlibpath_var=no
;;
# FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
# support. Future versions do this automatically, but an explicit c++rt0.o
# does not break anything, and helps significantly (at the cost of a little
# extra space).
freebsd2.2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2.*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
# FreeBSD 3 and greater uses gcc -shared to do shared libraries.
freebsd* | dragonfly*)
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
hpux9*)
if test yes = "$GCC"; then
archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
else
archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
fi
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
export_dynamic_flag_spec='$wl-E'
;;
hpux10*)
if test yes,no = "$GCC,$with_gnu_ld"; then
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
if test no = "$with_gnu_ld"; then
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
hardcode_direct=yes
hardcode_direct_absolute=yes
export_dynamic_flag_spec='$wl-E'
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
fi
;;
hpux11*)
if test yes,no = "$GCC,$with_gnu_ld"; then
case $host_cpu in
hppa*64*)
archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
;;
*)
archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
;;
esac
else
case $host_cpu in
hppa*64*)
archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
;;
ia64*)
archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
;;
*)
# Older versions of the 11.00 compiler do not understand -b yet
# (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
printf %s "checking if $CC understands -b... " >&6; }
if test ${lt_cv_prog_compiler__b+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_prog_compiler__b=no
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -b"
echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
if test -s conftest.err; then
# Append any errors to the config.log.
cat conftest.err 1>&5
$ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
lt_cv_prog_compiler__b=yes
fi
else
lt_cv_prog_compiler__b=yes
fi
fi
$RM -r conftest*
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
if test yes = "$lt_cv_prog_compiler__b"; then
archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
fi
;;
esac
fi
if test no = "$with_gnu_ld"; then
hardcode_libdir_flag_spec='$wl+b $wl$libdir'
hardcode_libdir_separator=:
case $host_cpu in
hppa*64*|ia64*)
hardcode_direct=no
hardcode_shlibpath_var=no
;;
*)
hardcode_direct=yes
hardcode_direct_absolute=yes
export_dynamic_flag_spec='$wl-E'
# hardcode_minus_L: Not really in the search PATH,
# but as the default location of the library.
hardcode_minus_L=yes
;;
esac
fi
;;
irix5* | irix6* | nonstopux*)
if test yes = "$GCC"; then
archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
# Try to use the -exported_symbol ld option, if it does not
# work, assume that -exports_file does not work either and
# implicitly export all symbols.
# This should be the same for all languages, so no per-tag cache variable.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
if test ${lt_cv_irix_exported_symbol+y}
then :
printf %s "(cached) " >&6
else $as_nop
save_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int foo (void) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
lt_cv_irix_exported_symbol=yes
else $as_nop
lt_cv_irix_exported_symbol=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
if test yes = "$lt_cv_irix_exported_symbol"; then
archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
fi
else
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
fi
archive_cmds_need_lc='no'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
inherit_rpath=yes
link_all_deplibs=yes
;;
linux*)
case $cc_basename in
tcc*)
# Fabrice Bellard et al's Tiny C Compiler
ld_shlibs=yes
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
;;
esac
;;
netbsd*)
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
else
archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
fi
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
hardcode_shlibpath_var=no
;;
newsos6)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
hardcode_shlibpath_var=no
;;
*nto* | *qnx*)
;;
openbsd* | bitrig*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
hardcode_shlibpath_var=no
hardcode_direct_absolute=yes
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
export_dynamic_flag_spec='$wl-E'
else
archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
hardcode_libdir_flag_spec='$wl-rpath,$libdir'
fi
else
ld_shlibs=no
fi
;;
os2*)
hardcode_libdir_flag_spec='-L$libdir'
hardcode_minus_L=yes
allow_undefined_flag=unsupported
shrext_cmds=.dll
archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
$ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
$ECHO EXPORTS >> $output_objdir/$libname.def~
prefix_cmds="$SED"~
if test EXPORTS = "`$SED 1q $export_symbols`"; then
prefix_cmds="$prefix_cmds -e 1d";
fi~
prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
$CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
emximp -o $lib $output_objdir/$libname.def'
old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
enable_shared_with_static_runtimes=yes
;;
osf3*)
if test yes = "$GCC"; then
allow_undefined_flag=' $wl-expect_unresolved $wl\*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
else
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
fi
archive_cmds_need_lc='no'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
hardcode_libdir_separator=:
;;
osf4* | osf5*) # as osf3* with the addition of -msym flag
if test yes = "$GCC"; then
allow_undefined_flag=' $wl-expect_unresolved $wl\*'
archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
else
allow_undefined_flag=' -expect_unresolved \*'
archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
$CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
# Both c and cxx compiler support -rpath directly
hardcode_libdir_flag_spec='-rpath $libdir'
fi
archive_cmds_need_lc='no'
hardcode_libdir_separator=:
;;
solaris*)
no_undefined_flag=' -z defs'
if test yes = "$GCC"; then
wlarc='$wl'
archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
else
case `$CC -V 2>&1` in
*"Compilers 5.0"*)
wlarc=''
archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
;;
*)
wlarc='$wl'
archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
$CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
;;
esac
fi
hardcode_libdir_flag_spec='-R$libdir'
hardcode_shlibpath_var=no
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
# The compiler driver will combine and reorder linker options,
# but understands '-z linker_flag'. GCC discards it without '$wl',
# but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
if test yes = "$GCC"; then
whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
else
whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
fi
;;
esac
link_all_deplibs=yes
;;
sunos4*)
if test sequent = "$host_vendor"; then
# Use $CC to link under sequent, because it throws in some extra .o
# files that make .init and .fini sections work.
archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
fi
hardcode_libdir_flag_spec='-L$libdir'
hardcode_direct=yes
hardcode_minus_L=yes
hardcode_shlibpath_var=no
;;
sysv4)
case $host_vendor in
sni)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes # is this really true???
;;
siemens)
## LD is ld it makes a PLAMLIB
## CC just makes a GrossModule.
archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
reload_cmds='$CC -r -o $output$reload_objs'
hardcode_direct=no
;;
motorola)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=no #Motorola manual says yes, but my tests say they lie
;;
esac
runpath_var='LD_RUN_PATH'
hardcode_shlibpath_var=no
;;
sysv4.3*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_shlibpath_var=no
export_dynamic_flag_spec='-Bexport'
;;
sysv4*MP*)
if test -d /usr/nec; then
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_shlibpath_var=no
runpath_var=LD_RUN_PATH
hardcode_runpath_var=yes
ld_shlibs=yes
fi
;;
sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
no_undefined_flag='$wl-z,text'
archive_cmds_need_lc=no
hardcode_shlibpath_var=no
runpath_var='LD_RUN_PATH'
if test yes = "$GCC"; then
archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
fi
;;
sysv5* | sco3.2v5* | sco5v6*)
# Note: We CANNOT use -z defs as we might desire, because we do not
# link with -lc, and that would cause any symbols used from libc to
# always be unresolved, which means just about no library would
# ever link correctly. If we're not using GNU ld we use -z text
# though, which does catch some bad symbols but isn't as heavy-handed
# as -z defs.
no_undefined_flag='$wl-z,text'
allow_undefined_flag='$wl-z,nodefs'
archive_cmds_need_lc=no
hardcode_shlibpath_var=no
hardcode_libdir_flag_spec='$wl-R,$libdir'
hardcode_libdir_separator=':'
link_all_deplibs=yes
export_dynamic_flag_spec='$wl-Bexport'
runpath_var='LD_RUN_PATH'
if test yes = "$GCC"; then
archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
else
archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
fi
;;
uts4*)
archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
hardcode_libdir_flag_spec='-L$libdir'
hardcode_shlibpath_var=no
;;
*)
ld_shlibs=no
;;
esac
if test sni = "$host_vendor"; then
case $host in
sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
export_dynamic_flag_spec='$wl-Blargedynsym'
;;
esac
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
printf "%s\n" "$ld_shlibs" >&6; }
test no = "$ld_shlibs" && can_build_shared=no
with_gnu_ld=$with_gnu_ld
#
# Do we need to explicitly link libc?
#
case "x$archive_cmds_need_lc" in
x|xyes)
# Assume -lc should be added
archive_cmds_need_lc=yes
if test yes,yes = "$GCC,$enable_shared"; then
case $archive_cmds in
*'~'*)
# FIXME: we may have to deal with multi-command sequences.
;;
'$CC '*)
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
printf %s "checking whether -lc should be explicitly linked in... " >&6; }
if test ${lt_cv_archive_cmds_need_lc+y}
then :
printf %s "(cached) " >&6
else $as_nop
$RM conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
libobjs=conftest.$ac_objext
deplibs=
wl=$lt_prog_compiler_wl
pic_flag=$lt_prog_compiler_pic
compiler_flags=-v
linker_flags=-v
verstring=
output_objdir=.
libname=conftest
lt_save_allow_undefined_flag=$allow_undefined_flag
allow_undefined_flag=
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
lt_cv_archive_cmds_need_lc=no
else
lt_cv_archive_cmds_need_lc=yes
fi
allow_undefined_flag=$lt_save_allow_undefined_flag
else
cat conftest.err 1>&5
fi
$RM conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
;;
esac
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
printf %s "checking dynamic linker characteristics... " >&6; }
if test yes = "$GCC"; then
case $host_os in
darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
*) lt_awk_arg='/^libraries:/' ;;
esac
case $host_os in
mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
*) lt_sed_strip_eq='s|=/|/|g' ;;
esac
lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
case $lt_search_path_spec in
*\;*)
# if the path contains ";" then we assume it to be the separator
# otherwise default to the standard path separator (i.e. ":") - it is
# assumed that no part of a normal pathname contains ";" but that should
# okay in the real world where ";" in dirpaths is itself problematic.
lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
;;
*)
lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
;;
esac
# Ok, now we have the path, separated by spaces, we can step through it
# and add multilib dir if necessary...
lt_tmp_lt_search_path_spec=
lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
# ...but if some path component already ends with the multilib dir we assume
# that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
case "$lt_multi_os_dir; $lt_search_path_spec " in
"/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
lt_multi_os_dir=
;;
esac
for lt_sys_path in $lt_search_path_spec; do
if test -d "$lt_sys_path$lt_multi_os_dir"; then
lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
elif test -n "$lt_multi_os_dir"; then
test -d "$lt_sys_path" && \
lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
fi
done
lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
BEGIN {RS = " "; FS = "/|\n";} {
lt_foo = "";
lt_count = 0;
for (lt_i = NF; lt_i > 0; lt_i--) {
if ($lt_i != "" && $lt_i != ".") {
if ($lt_i == "..") {
lt_count++;
} else {
if (lt_count == 0) {
lt_foo = "/" $lt_i lt_foo;
} else {
lt_count--;
}
}
}
}
if (lt_foo != "") { lt_freq[lt_foo]++; }
if (lt_freq[lt_foo] == 1) { print lt_foo; }
}'`
# AWK program above erroneously prepends '/' to C:/dos/paths
# for these hosts.
case $host_os in
mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
$SED 's|/\([A-Za-z]:\)|\1|g'` ;;
esac
sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
else
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
fi
library_names_spec=
libname_spec='lib$name'
soname_spec=
shrext_cmds=.so
postinstall_cmds=
postuninstall_cmds=
finish_cmds=
finish_eval=
shlibpath_var=
shlibpath_overrides_runpath=unknown
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
need_lib_prefix=unknown
hardcode_into_libs=no
# when you set need_version to no, make sure it does not cause -set_version
# flags to be left without arguments
need_version=unknown
case $host_os in
aix3*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
shlibpath_var=LIBPATH
# AIX 3 has no versioning support, so we append a major version to the name.
soname_spec='$libname$release$shared_ext$major'
;;
aix[4-9]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
hardcode_into_libs=yes
if test ia64 = "$host_cpu"; then
# AIX 5 supports IA64
library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
else
# With GCC up to 2.95.x, collect2 would create an import file
# for dependence libraries. The import file would start with
# the line '#! .'. This would cause the generated library to
# depend on '.', always an invalid library. This was fixed in
# development snapshots of GCC prior to 3.0.
case $host_os in
aix4 | aix4.[01] | aix4.[01].*)
if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
echo ' yes '
echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
:
else
can_build_shared=no
fi
;;
esac
# Using Import Files as archive members, it is possible to support
# filename-based versioning of shared library archives on AIX. While
# this would work for both with and without runtime linking, it will
# prevent static linking of such archives. So we do filename-based
# shared library versioning with .so extension only, which is used
# when both runtime linking and shared linking is enabled.
# Unfortunately, runtime linking may impact performance, so we do
# not want this to be the default eventually. Also, we use the
# versioned .so libs for executables only if there is the -brtl
# linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
# To allow for filename-based versioning support, we need to create
# libNAME.so.V as an archive file, containing:
# *) an Import File, referring to the versioned filename of the
# archive as well as the shared archive member, telling the
# bitwidth (32 or 64) of that shared object, and providing the
# list of exported symbols of that shared object, eventually
# decorated with the 'weak' keyword
# *) the shared object with the F_LOADONLY flag set, to really avoid
# it being seen by the linker.
# At run time we better use the real file rather than another symlink,
# but for link time we create the symlink libNAME.so -> libNAME.so.V
case $with_aix_soname,$aix_use_runtimelinking in
# AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
# soname into executable. Probably we can add versioning support to
# collect2, so additional links can be useful in future.
aix,yes) # traditional libtool
dynamic_linker='AIX unversionable lib.so'
# If using run time linking (on AIX 4.2 or later) use lib<name>.so
# instead of lib<name>.a to let people know that these are not
# typical AIX shared libraries.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
;;
aix,no) # traditional AIX only
dynamic_linker='AIX lib.a(lib.so.V)'
# We preserve .a as extension for shared libraries through AIX4.2
# and later when we are not doing run time linking.
library_names_spec='$libname$release.a $libname.a'
soname_spec='$libname$release$shared_ext$major'
;;
svr4,*) # full svr4 only
dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
# We do not specify a path in Import Files, so LIBPATH fires.
shlibpath_overrides_runpath=yes
;;
*,yes) # both, prefer svr4
dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
# unpreferred sharedlib libNAME.a needs extra handling
postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
# We do not specify a path in Import Files, so LIBPATH fires.
shlibpath_overrides_runpath=yes
;;
*,no) # both, prefer aix
dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
library_names_spec='$libname$release.a $libname.a'
soname_spec='$libname$release$shared_ext$major'
# unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
;;
esac
shlibpath_var=LIBPATH
fi
;;
amigaos*)
case $host_cpu in
powerpc)
# Since July 2007 AmigaOS4 officially supports .so libraries.
# When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
;;
m68k)
library_names_spec='$libname.ixlibrary $libname.a'
# Create ${libname}_ixlibrary.a entries in /sys/libs.
finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
;;
esac
;;
beos*)
library_names_spec='$libname$shared_ext'
dynamic_linker="$host_os ld.so"
shlibpath_var=LIBRARY_PATH
;;
bsdi[45]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
# the default ld.so.conf also contains /usr/contrib/lib and
# /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
# libtool to hard-code these into programs
;;
cygwin* | mingw* | pw32* | cegcc*)
version_type=windows
shrext_cmds=.dll
need_version=no
need_lib_prefix=no
case $GCC,$cc_basename in
yes,*)
# gcc
library_names_spec='$libname.dll.a'
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname~
chmod a+x \$dldir/$dlname~
if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
shlibpath_overrides_runpath=yes
case $host_os in
cygwin*)
# Cygwin DLLs use 'cyg' prefix rather than 'lib'
soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
;;
mingw* | cegcc*)
# MinGW DLLs use traditional 'lib' prefix
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
pw32*)
# pw32 DLLs use 'pw' prefix rather than 'lib'
library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
;;
esac
dynamic_linker='Win32 ld.exe'
;;
*,cl*)
# Native MSVC
libname_spec='$name'
soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
library_names_spec='$libname.dll.lib'
case $build_os in
mingw*)
sys_lib_search_path_spec=
lt_save_ifs=$IFS
IFS=';'
for lt_path in $LIB
do
IFS=$lt_save_ifs
# Let DOS variable expansion print the short 8.3 style file name.
lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
done
IFS=$lt_save_ifs
# Convert to MSYS style.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
;;
cygwin*)
# Convert to unix form, then to dos form, then back to unix form
# but this time dos style (no spaces!) so that the unix form looks
# like /cygdrive/c/PROGRA~1:/cygdr...
sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
;;
*)
sys_lib_search_path_spec=$LIB
if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
# It is most probably a Windows format PATH.
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
else
sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
fi
# FIXME: find the short name or the path components, as spaces are
# common. (e.g. "Program Files" -> "PROGRA~1")
;;
esac
# DLL is installed to $(libdir)/../bin by postinstall_cmds
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
shlibpath_overrides_runpath=yes
dynamic_linker='Win32 link.exe'
;;
*)
# Assume MSVC wrapper
library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
dynamic_linker='Win32 ld.exe'
;;
esac
# FIXME: first we should search . and the directory the executable is in
shlibpath_var=PATH
;;
darwin* | rhapsody*)
dynamic_linker="$host_os dyld"
version_type=darwin
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
soname_spec='$libname$release$major$shared_ext'
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
dgux*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
;;
freebsd* | dragonfly*)
# DragonFly does not have aout. When/if they implement a new
# versioning mechanism, adjust this.
if test -x /usr/bin/objformat; then
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
version_type=freebsd-$objformat
case $version_type in
freebsd-elf*)
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
need_version=no
need_lib_prefix=no
;;
freebsd-*)
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
need_version=yes
;;
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
*) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
esac
;;
haiku*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
dynamic_linker="$host_os runtime_loader"
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LIBRARY_PATH
shlibpath_overrides_runpath=no
sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
hardcode_into_libs=yes
;;
hpux9* | hpux10* | hpux11*)
# Give a soname corresponding to the major version so that dld.sl refuses to
# link against other versions.
version_type=sunos
need_lib_prefix=no
need_version=no
case $host_cpu in
ia64*)
shrext_cmds='.so'
hardcode_into_libs=yes
dynamic_linker="$host_os dld.so"
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
if test 32 = "$HPUX_IA64_MODE"; then
sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
sys_lib_dlsearch_path_spec=/usr/lib/hpux32
else
sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
sys_lib_dlsearch_path_spec=/usr/lib/hpux64
fi
;;
hppa*64*)
shrext_cmds='.sl'
hardcode_into_libs=yes
dynamic_linker="$host_os dld.sl"
shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
;;
*)
shrext_cmds='.sl'
dynamic_linker="$host_os dld.sl"
shlibpath_var=SHLIB_PATH
shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
;;
esac
# HP-UX runs *really* slowly unless shared libraries are mode 555, ...
postinstall_cmds='chmod 555 $lib'
# or fails outright, so override atomically:
install_override_mode=555
;;
interix[3-9]*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
irix5* | irix6* | nonstopux*)
case $host_os in
nonstopux*) version_type=nonstopux ;;
*)
if test yes = "$lt_cv_prog_gnu_ld"; then
version_type=linux # correct to gnu/linux during the next big refactor
else
version_type=irix
fi ;;
esac
need_lib_prefix=no
need_version=no
soname_spec='$libname$release$shared_ext$major'
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
case $host_os in
irix5* | nonstopux*)
libsuff= shlibsuff=
;;
*)
case $LD in # libtool.m4 will add one of these switches to LD
*-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
libsuff= shlibsuff= libmagic=32-bit;;
*-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
libsuff=32 shlibsuff=N32 libmagic=N32;;
*-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
libsuff=64 shlibsuff=64 libmagic=64-bit;;
*) libsuff= shlibsuff= libmagic=never-match;;
esac
;;
esac
shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
shlibpath_overrides_runpath=no
sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
hardcode_into_libs=yes
;;
# No shared lib support for Linux oldld, aout, or coff.
linux*oldld* | linux*aout* | linux*coff*)
dynamic_linker=no
;;
linux*android*)
version_type=none # Android doesn't support versioned libraries.
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext'
soname_spec='$libname$release$shared_ext'
finish_cmds=
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
# before this can be enabled.
hardcode_into_libs=yes
dynamic_linker='Android linker'
# Don't embed -rpath directories since the linker doesn't support them.
hardcode_libdir_flag_spec='-L$libdir'
;;
# This must be glibc/ELF.
linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
# Some binutils ld are patched to set DT_RUNPATH
if test ${lt_cv_shlibpath_overrides_runpath+y}
then :
printf %s "(cached) " >&6
else $as_nop
lt_cv_shlibpath_overrides_runpath=no
save_LDFLAGS=$LDFLAGS
save_libdir=$libdir
eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
then :
lt_cv_shlibpath_overrides_runpath=yes
fi
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS=$save_LDFLAGS
libdir=$save_libdir
fi
shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
# This implies no fast_install, which is unacceptable.
# Some rework will be needed to allow for fast_install
# before this can be enabled.
hardcode_into_libs=yes
# Ideally, we could use ldconfig to report *all* directores which are
# searched for libraries, however this is still not possible. Aside from not
# being certain /sbin/ldconfig is available, command
# 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
# even though it is searched at run-time. Try to do the best guess by
# appending ld.so.conf contents (and includes) to the search path.
if test -f /etc/ld.so.conf; then
lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
# powerpc, because MkLinux only supported shared libraries with the
# GNU dynamic linker. Since this was broken with cross compilers,
# most powerpc-linux boxes support dynamic linking these days and
# people can always --disable-shared, the test was removed, and we
# assume the GNU/Linux dynamic linker is in use.
dynamic_linker='GNU/Linux ld.so'
;;
netbsd*)
version_type=sunos
need_lib_prefix=no
need_version=no
if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
dynamic_linker='NetBSD (a.out) ld.so'
else
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
dynamic_linker='NetBSD ld.elf_so'
fi
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
newsos6)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
;;
*nto* | *qnx*)
version_type=qnx
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
dynamic_linker='ldqnx.so'
;;
openbsd* | bitrig*)
version_type=sunos
sys_lib_dlsearch_path_spec=/usr/lib
need_lib_prefix=no
if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
need_version=no
else
need_version=yes
fi
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
;;
os2*)
libname_spec='$name'
version_type=windows
shrext_cmds=.dll
need_version=no
need_lib_prefix=no
# OS/2 can only load a DLL with a base name of 8 characters or less.
soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
v=$($ECHO $release$versuffix | tr -d .-);
n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
$ECHO $n$v`$shared_ext'
library_names_spec='${libname}_dll.$libext'
dynamic_linker='OS/2 ld.exe'
shlibpath_var=BEGINLIBPATH
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
postinstall_cmds='base_file=`basename \$file`~
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
$install_prog $dir/$dlname \$dldir/$dlname~
chmod a+x \$dldir/$dlname~
if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
;;
osf3* | osf4* | osf5*)
version_type=osf
need_lib_prefix=no
need_version=no
soname_spec='$libname$release$shared_ext$major'
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
;;
rdos*)
dynamic_linker=no
;;
solaris*)
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
# ldd complains unless libraries are executable
postinstall_cmds='chmod +x $lib'
;;
sunos4*)
version_type=sunos
library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
if test yes = "$with_gnu_ld"; then
need_lib_prefix=no
fi
need_version=yes
;;
sysv4 | sysv4.3*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
case $host_vendor in
sni)
shlibpath_overrides_runpath=no
need_lib_prefix=no
runpath_var=LD_RUN_PATH
;;
siemens)
need_lib_prefix=no
;;
motorola)
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=no
sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
;;
esac
;;
sysv4*MP*)
if test -d /usr/nec; then
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
soname_spec='$libname$shared_ext.$major'
shlibpath_var=LD_LIBRARY_PATH
fi
;;
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
version_type=sco
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
if test yes = "$with_gnu_ld"; then
sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
else
sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
case $host_os in
sco3.2v5*)
sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
;;
esac
fi
sys_lib_dlsearch_path_spec='/usr/lib'
;;
tpf*)
# TPF is a cross-target only. Preferred cross-host = GNU/Linux.
version_type=linux # correct to gnu/linux during the next big refactor
need_lib_prefix=no
need_version=no
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
shlibpath_var=LD_LIBRARY_PATH
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
uts4*)
version_type=linux # correct to gnu/linux during the next big refactor
library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
soname_spec='$libname$release$shared_ext$major'
shlibpath_var=LD_LIBRARY_PATH
;;
*)
dynamic_linker=no
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
printf "%s\n" "$dynamic_linker" >&6; }
test no = "$dynamic_linker" && can_build_shared=no
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test yes = "$GCC"; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
fi
if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
fi
if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
fi
# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" ||
test -n "$runpath_var" ||
test yes = "$hardcode_automatic"; then
# We can hardcode non-existent directories.
if test no != "$hardcode_direct" &&
# If the only mechanism to avoid hardcoding is shlibpath_var, we
# have to relink, otherwise we might link with an installed library
# when we should be linking with a yet-to-be-installed one
## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
test no != "$hardcode_minus_L"; then
# Linking always hardcodes the temporary library directory.
hardcode_action=relink
else
# We can link without hardcoding, and we can hardcode nonexisting dirs.
hardcode_action=immediate
fi
else
# We cannot hardcode anything, or else we can only hardcode existing
# directories.
hardcode_action=unsupported
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
printf "%s\n" "$hardcode_action" >&6; }
if test relink = "$hardcode_action" ||
test yes = "$inherit_rpath"; then
# Fast installation is not supported
enable_fast_install=no
elif test yes = "$shlibpath_overrides_runpath" ||
test no = "$enable_shared"; then
# Fast installation is not necessary
enable_fast_install=needless
fi
if test yes != "$enable_dlopen"; then
enable_dlopen=unknown
enable_dlopen_self=unknown
enable_dlopen_self_static=unknown
else
lt_cv_dlopen=no
lt_cv_dlopen_libs=
case $host_os in
beos*)
lt_cv_dlopen=load_add_on
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
;;
mingw* | pw32* | cegcc*)
lt_cv_dlopen=LoadLibrary
lt_cv_dlopen_libs=
;;
cygwin*)
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=
;;
darwin*)
# if libdl is installed we need to link against it
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
else $as_nop
ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
else $as_nop
lt_cv_dlopen=dyld
lt_cv_dlopen_libs=
lt_cv_dlopen_self=yes
fi
;;
tpf*)
# Don't try to run any link tests for TPF. We know it's impossible
# because TPF is a cross-compiler, and we know how we open DSOs.
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=
lt_cv_dlopen_self=no
;;
*)
ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
if test "x$ac_cv_func_shl_load" = xyes
then :
lt_cv_dlopen=shl_load
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
printf %s "checking for shl_load in -ldld... " >&6; }
if test ${ac_cv_lib_dld_shl_load+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char shl_load ();
int
main (void)
{
return shl_load ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_shl_load=yes
else $as_nop
ac_cv_lib_dld_shl_load=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
if test "x$ac_cv_lib_dld_shl_load" = xyes
then :
lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
else $as_nop
ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
if test "x$ac_cv_func_dlopen" = xyes
then :
lt_cv_dlopen=dlopen
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dl_dlopen=yes
else $as_nop
ac_cv_lib_dl_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
printf %s "checking for dlopen in -lsvld... " >&6; }
if test ${ac_cv_lib_svld_dlopen+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lsvld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dlopen ();
int
main (void)
{
return dlopen ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_svld_dlopen=yes
else $as_nop
ac_cv_lib_svld_dlopen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
if test "x$ac_cv_lib_svld_dlopen" = xyes
then :
lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
printf %s "checking for dld_link in -ldld... " >&6; }
if test ${ac_cv_lib_dld_dld_link+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldld $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char dld_link ();
int
main (void)
{
return dld_link ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_dld_dld_link=yes
else $as_nop
ac_cv_lib_dld_dld_link=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
if test "x$ac_cv_lib_dld_dld_link" = xyes
then :
lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
fi
fi
fi
fi
fi
fi
;;
esac
if test no = "$lt_cv_dlopen"; then
enable_dlopen=no
else
enable_dlopen=yes
fi
case $lt_cv_dlopen in
dlopen)
save_CPPFLAGS=$CPPFLAGS
test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
save_LDFLAGS=$LDFLAGS
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
save_LIBS=$LIBS
LIBS="$lt_cv_dlopen_libs $LIBS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
printf %s "checking whether a program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <stdio.h>
#ifdef RTLD_GLOBAL
# define LT_DLGLOBAL RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
# define LT_DLGLOBAL DL_GLOBAL
# else
# define LT_DLGLOBAL 0
# endif
#endif
/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
#ifndef LT_DLLAZY_OR_NOW
# ifdef RTLD_LAZY
# define LT_DLLAZY_OR_NOW RTLD_LAZY
# else
# ifdef DL_LAZY
# define LT_DLLAZY_OR_NOW DL_LAZY
# else
# ifdef RTLD_NOW
# define LT_DLLAZY_OR_NOW RTLD_NOW
# else
# ifdef DL_NOW
# define LT_DLLAZY_OR_NOW DL_NOW
# else
# define LT_DLLAZY_OR_NOW 0
# endif
# endif
# endif
# endif
#endif
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif
int fnord () { return 42; }
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
if (self)
{
if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
else
{
if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
else puts (dlerror ());
}
/* dlclose (self); */
}
else
puts (dlerror ());
return status;
}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
esac
else :
# compilation failed
lt_cv_dlopen_self=no
fi
fi
rm -fr conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
printf "%s\n" "$lt_cv_dlopen_self" >&6; }
if test yes = "$lt_cv_dlopen_self"; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self_static+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test yes = "$cross_compiling"; then :
lt_cv_dlopen_self_static=cross
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
#include <dlfcn.h>
#endif
#include <stdio.h>
#ifdef RTLD_GLOBAL
# define LT_DLGLOBAL RTLD_GLOBAL
#else
# ifdef DL_GLOBAL
# define LT_DLGLOBAL DL_GLOBAL
# else
# define LT_DLGLOBAL 0
# endif
#endif
/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
find out it does not work in some platform. */
#ifndef LT_DLLAZY_OR_NOW
# ifdef RTLD_LAZY
# define LT_DLLAZY_OR_NOW RTLD_LAZY
# else
# ifdef DL_LAZY
# define LT_DLLAZY_OR_NOW DL_LAZY
# else
# ifdef RTLD_NOW
# define LT_DLLAZY_OR_NOW RTLD_NOW
# else
# ifdef DL_NOW
# define LT_DLLAZY_OR_NOW DL_NOW
# else
# define LT_DLLAZY_OR_NOW 0
# endif
# endif
# endif
# endif
#endif
/* When -fvisibility=hidden is used, assume the code has been annotated
correspondingly for the symbols needed. */
#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
int fnord () __attribute__((visibility("default")));
#endif
int fnord () { return 42; }
int main ()
{
void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
int status = $lt_dlunknown;
if (self)
{
if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
else
{
if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
else puts (dlerror ());
}
/* dlclose (self); */
}
else
puts (dlerror ());
return status;
}
_LT_EOF
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
esac
else :
# compilation failed
lt_cv_dlopen_self_static=no
fi
fi
rm -fr conftest*
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
;;
esac
case $lt_cv_dlopen_self in
yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
*) enable_dlopen_self=unknown ;;
esac
case $lt_cv_dlopen_self_static in
yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
*) enable_dlopen_self_static=unknown ;;
esac
fi
striplib=
old_striplib=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
darwin*)
if test -n "$STRIP"; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
esac
fi
# Report what library types will actually be built
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
printf %s "checking if libtool supports shared libraries... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
printf "%s\n" "$can_build_shared" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
printf %s "checking whether to build shared libraries... " >&6; }
test no = "$can_build_shared" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
# are all built from PIC.
case $host_os in
aix3*)
test yes = "$enable_shared" && enable_static=no
if test -n "$RANLIB"; then
archive_cmds="$archive_cmds~\$RANLIB \$lib"
postinstall_cmds='$RANLIB $lib'
fi
;;
aix[4-9]*)
if test ia64 != "$host_cpu"; then
case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
yes,aix,yes) ;; # shared object as lib.so file only
yes,svr4,*) ;; # shared object as lib.so archive member only
yes,*) enable_static=no ;; # shared object in lib.a archive as well
esac
fi
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
printf "%s\n" "$enable_shared" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test yes = "$enable_shared" || enable_static=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
printf "%s\n" "$enable_static" >&6; }
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
CC=$lt_save_CC
ac_config_commands="$ac_config_commands libtool"
# Only expand once:
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sntp will be built" >&5
printf %s "checking if sntp will be built... " >&6; }
# Check whether --with-sntp was given.
if test ${with_sntp+y}
then :
withval=$with_sntp;
else $as_nop
with_sntp="${withsntp=yes}"
fi
case "$with_sntp" in
no)
SNTP=
;;
*)
SNTP=sntp
;;
esac
if test -n "$SNTP"; then
BUILD_SNTP_TRUE=
BUILD_SNTP_FALSE='#'
else
BUILD_SNTP_TRUE='#'
BUILD_SNTP_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sntp" >&5
printf "%s\n" "$with_sntp" >&6; }
case "$SNTP" in
'')
SNTP_DB=
SNTP_DL=
SNTP_DS=
;;
esac
###
# NTP has (so far) been relying on leading-edge autogen.
# Therefore, by default:
# - use the version we ship with
# - do not install it
# - build a static copy (AC_DISABLE_SHARED - done earlier)
case "${enable_local_libopts+set}" in
set) ;;
*) enable_local_libopts=yes ;;
esac
case "${enable_libopts_install+set}" in
set) ;;
*) enable_libopts_install=no ;;
esac
enable_nls=no
# Autoupdate added the next two lines to ensure that your configure
# script's behavior did not change. They are probably safe to remove.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
printf %s "(cached) " >&6
else $as_nop
if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
then ac_cv_path_EGREP="$GREP -E"
else
if test -z "$EGREP"; then
ac_path_EGREP_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in egrep
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_EGREP" || continue
# Check for GNU ac_path_EGREP and select it if it is found.
# Check for GNU $ac_path_EGREP
case `"$ac_path_EGREP" --version 2>&1` in
*GNU*)
ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_EGREP_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_EGREP="$ac_path_EGREP"
ac_path_EGREP_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_EGREP_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_EGREP"; then
as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
fi
else
ac_cv_path_EGREP=$EGREP
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
printf "%s\n" "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
printf %s "checking for $ac_hdr that defines DIR... " >&6; }
if eval test \${$as_ac_Header+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <$ac_hdr>
int
main (void)
{
if ((DIR *) 0)
return 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
eval "$as_ac_Header=yes"
else $as_nop
eval "$as_ac_Header=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
eval ac_res=\$$as_ac_Header
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1
_ACEOF
ac_header_dirent=$ac_hdr; break
fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
printf %s "checking for library containing opendir... " >&6; }
if test ${ac_cv_search_opendir+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char opendir ();
int
main (void)
{
return opendir ();
;
return 0;
}
_ACEOF
for ac_lib in '' dir
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_opendir=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_opendir+y}
then :
break
fi
done
if test ${ac_cv_search_opendir+y}
then :
else $as_nop
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
printf "%s\n" "$ac_cv_search_opendir" >&6; }
ac_res=$ac_cv_search_opendir
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
printf %s "checking for library containing opendir... " >&6; }
if test ${ac_cv_search_opendir+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char opendir ();
int
main (void)
{
return opendir ();
;
return 0;
}
_ACEOF
for ac_lib in '' x
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_opendir=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_opendir+y}
then :
break
fi
done
if test ${ac_cv_search_opendir+y}
then :
else $as_nop
ac_cv_search_opendir=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
printf "%s\n" "$ac_cv_search_opendir" >&6; }
ac_res=$ac_cv_search_opendir
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
fi
# =================
# AC_CHECK_HEADERS
# =================
ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_mman_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_poll_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/procset.h" "ac_cv_header_sys_procset_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_procset_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_PROCSET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_select_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/stropts.h" "ac_cv_header_sys_stropts_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_stropts_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_STROPTS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_time_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/un.h" "ac_cv_header_sys_un_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_un_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_UN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_wait_h" = xyes
then :
printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" "$ac_includes_default"
if test "x$ac_cv_header_errno_h" = xyes
then :
printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
if test "x$ac_cv_header_fcntl_h" = xyes
then :
printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "libgen.h" "ac_cv_header_libgen_h" "$ac_includes_default"
if test "x$ac_cv_header_libgen_h" = xyes
then :
printf "%s\n" "#define HAVE_LIBGEN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
if test "x$ac_cv_header_libintl_h" = xyes
then :
printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "memory.h" "ac_cv_header_memory_h" "$ac_includes_default"
if test "x$ac_cv_header_memory_h" = xyes
then :
printf "%s\n" "#define HAVE_MEMORY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$ac_includes_default"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default"
if test "x$ac_cv_header_setjmp_h" = xyes
then :
printf "%s\n" "#define HAVE_SETJMP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" "$ac_includes_default"
if test "x$ac_cv_header_stdbool_h" = xyes
then :
printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sysexits.h" "ac_cv_header_sysexits_h" "$ac_includes_default"
if test "x$ac_cv_header_sysexits_h" = xyes
then :
printf "%s\n" "#define HAVE_SYSEXITS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
if test "x$ac_cv_header_unistd_h" = xyes
then :
printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "$ac_includes_default"
if test "x$ac_cv_header_utime_h" = xyes
then :
printf "%s\n" "#define HAVE_UTIME_H 1" >>confdefs.h
fi
for ac_header in stdarg.h varargs.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_arg_hdr=true;break
else $as_nop
lo_have_arg_hdr=false
fi
done
for ac_header in string.h strings.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_str_hdr=true;break
else $as_nop
lo_have_str_hdr=false
fi
done
for ac_header in limits.h sys/limits.h values.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_lim_hdr=true;break
else $as_nop
lo_have_lim_hdr=false
fi
done
for ac_header in inttypes.h stdint.h
do :
as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
lo_have_typ_hdr=true;break
else $as_nop
lo_have_typ_hdr=false
fi
done
case "$host_os" in
cygwin*)
STDNORETURN_H='stdnoreturn.h'
;;
*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working stdnoreturn.h" >&5
printf %s "checking for working stdnoreturn.h... " >&6; }
if test ${gl_cv_header_working_stdnoreturn_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdlib.h>
#include <stdnoreturn.h>
/* Do not check for 'noreturn' after the return type.
C11 allows it, but it's rarely done that way
and circa-2012 bleeding-edge GCC rejects it when given
-Werror=old-style-declaration. */
noreturn void foo1 (void) { exit (0); }
_Noreturn void foo2 (void) { exit (0); }
int testit (int argc, char **argv)
{
if (argc & 1)
return 0;
(argv[0][0] ? foo1 : foo2) ();
}
int
main (void)
{
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
gl_cv_header_working_stdnoreturn_h=yes
else $as_nop
gl_cv_header_working_stdnoreturn_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdnoreturn_h" >&5
printf "%s\n" "$gl_cv_header_working_stdnoreturn_h" >&6; }
if test $gl_cv_header_working_stdnoreturn_h = yes; then
STDNORETURN_H=''
else
STDNORETURN_H='stdnoreturn.h'
fi
;;
esac
if test -n "$STDNORETURN_H"; then
GL_GENERATE_STDNORETURN_H_TRUE=
GL_GENERATE_STDNORETURN_H_FALSE='#'
else
GL_GENERATE_STDNORETURN_H_TRUE='#'
GL_GENERATE_STDNORETURN_H_FALSE=
fi
# ----------------------------------------------------------------------
# check for various programs used during the build.
# On OS/X, "wchar.h" needs "runetype.h" to work properly.
# ----------------------------------------------------------------------
ac_fn_c_check_header_compile "$LINENO" "runetype.h" "ac_cv_header_runetype_h" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
"
if test "x$ac_cv_header_runetype_h" = xyes
then :
printf "%s\n" "#define HAVE_RUNETYPE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
"
if test "x$ac_cv_header_wchar_h" = xyes
then :
printf "%s\n" "#define HAVE_WCHAR_H 1" >>confdefs.h
fi
# Check whether --enable-nls was given.
if test ${enable_nls+y}
then :
enableval=$enable_nls;
fi
if test "x$enable_nls" != "xno" && \
test "X${ac_cv_header_libintl_h}" = Xyes
then :
printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h
fi
# --------------------------------------------
# Verify certain entries from AC_CHECK_HEADERS
# --------------------------------------------
${lo_have_arg_hdr} || \
as_fn_error $? "you must have stdarg.h or varargs.h on your system" "$LINENO" 5
${lo_have_str_hdr} || \
as_fn_error $? "you must have string.h or strings.h on your system" "$LINENO" 5
${lo_have_lim_hdr} || \
as_fn_error $? "you must have one of limits.h, sys/limits.h or values.h" "$LINENO" 5
${lo_have_typ_hdr} || \
as_fn_error $? "you must have inttypes.h or stdint.h on your system" "$LINENO" 5
for f in sys_types sys_param sys_stat string errno stdlib memory setjmp
do eval as_ac_var=\${ac_cv_header_${f}_h}
test "X${as_ac_var}" = Xyes || {
as_fn_error $? "you must have ${f}.h on your system" "$LINENO" 5
}
done
test "X${ac_cv_header_inttypes_h-no}" = Xyes || \
echo '#include <stdint.h>' > inttypes.h
# ----------------------------------------------------------------------
# Checks for typedefs
# ----------------------------------------------------------------------
ac_fn_c_check_type "$LINENO" "wchar_t" "ac_cv_type_wchar_t" "$ac_includes_default"
if test "x$ac_cv_type_wchar_t" = xyes
then :
printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "wint_t" "ac_cv_type_wint_t" "
$ac_includes_default
#if HAVE_RUNETYPE_H
# include <runetype.h>
#endif
#if HAVE_WCHAR_H
# include <wchar.h>
#endif
"
if test "x$ac_cv_type_wint_t" = xyes
then :
printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default"
if test "x$ac_cv_type_int8_t" = xyes
then :
printf "%s\n" "#define HAVE_INT8_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default"
if test "x$ac_cv_type_uint8_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT8_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default"
if test "x$ac_cv_type_int16_t" = xyes
then :
printf "%s\n" "#define HAVE_INT16_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default"
if test "x$ac_cv_type_uint16_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT16_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default"
if test "x$ac_cv_type_int32_t" = xyes
then :
printf "%s\n" "#define HAVE_INT32_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default"
if test "x$ac_cv_type_uint32_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT32_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
if test "x$ac_cv_type_intptr_t" = xyes
then :
printf "%s\n" "#define HAVE_INTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
if test "x$ac_cv_type_uintptr_t" = xyes
then :
printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "uint_t" "ac_cv_type_uint_t" "$ac_includes_default"
if test "x$ac_cv_type_uint_t" = xyes
then :
printf "%s\n" "#define HAVE_UINT_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
if test "x$ac_cv_type_pid_t" = xyes
then :
printf "%s\n" "#define HAVE_PID_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
if test "x$ac_cv_type_size_t" = xyes
then :
printf "%s\n" "#define HAVE_SIZE_T 1" >>confdefs.h
fi
ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
if test "x$ac_cv_type_ptrdiff_t" = xyes
then :
printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of char *" >&5
printf %s "checking size of char *... " >&6; }
if test ${ac_cv_sizeof_char_p+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char *))" "ac_cv_sizeof_char_p" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_char_p" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (char *)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_char_p=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char_p" >&5
printf "%s\n" "$ac_cv_sizeof_char_p" >&6; }
printf "%s\n" "#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
printf %s "checking size of int... " >&6; }
if test ${ac_cv_sizeof_int+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_int" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (int)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_int=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
printf "%s\n" "$ac_cv_sizeof_int" >&6; }
printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_long" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (long)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_long=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
printf "%s\n" "$ac_cv_sizeof_long" >&6; }
printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of short" >&5
printf %s "checking size of short... " >&6; }
if test ${ac_cv_sizeof_short+y}
then :
printf %s "(cached) " >&6
else $as_nop
if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"
then :
else $as_nop
if test "$ac_cv_type_short" = yes; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "cannot compute sizeof (short)
See \`config.log' for more details" "$LINENO" 5; }
else
ac_cv_sizeof_short=0
fi
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5
printf "%s\n" "$ac_cv_sizeof_short" >&6; }
printf "%s\n" "#define SIZEOF_SHORT $ac_cv_sizeof_short" >>confdefs.h
# ------------
# AC_CHECK_LIB
# ------------
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pathfind in -lgen" >&5
printf %s "checking for pathfind in -lgen... " >&6; }
if test ${ac_cv_lib_gen_pathfind+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgen $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char pathfind ();
int
main (void)
{
return pathfind ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_gen_pathfind=yes
else $as_nop
ac_cv_lib_gen_pathfind=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gen_pathfind" >&5
printf "%s\n" "$ac_cv_lib_gen_pathfind" >&6; }
if test "x$ac_cv_lib_gen_pathfind" = xyes
then :
printf "%s\n" "#define HAVE_LIBGEN 1" >>confdefs.h
LIBS="-lgen $LIBS"
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5
printf %s "checking for gettext in -lintl... " >&6; }
if test ${ac_cv_lib_intl_gettext+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_check_lib_save_LIBS=$LIBS
LIBS="-lintl $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char gettext ();
int
main (void)
{
return gettext ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_lib_intl_gettext=yes
else $as_nop
ac_cv_lib_intl_gettext=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_gettext" >&5
printf "%s\n" "$ac_cv_lib_intl_gettext" >&6; }
if test "x$ac_cv_lib_intl_gettext" = xyes
then :
printf "%s\n" "#define HAVE_LIBINTL 1" >>confdefs.h
LIBS="-lintl $LIBS"
fi
if test "x$ac_cv_func_vprintf" = xno
then :
ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
if test "x$ac_cv_func__doprnt" = xyes
then :
printf "%s\n" "#define HAVE_DOPRNT 1" >>confdefs.h
fi
fi
if test "x$ac_cv_func_fork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
printf %s "checking for working fork... " >&6; }
if test ${ac_cv_func_fork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_fork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
int
main (void)
{
/* By Ruediger Kuhlmann. */
return fork () < 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_fork_works=yes
else $as_nop
ac_cv_func_fork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
printf "%s\n" "$ac_cv_func_fork_works" >&6; }
else
ac_cv_func_fork_works=$ac_cv_func_fork
fi
if test "x$ac_cv_func_fork_works" = xcross; then
case $host in
*-*-amigaos* | *-*-msdosdjgpp*)
# Override, as these systems have only a dummy fork() stub
ac_cv_func_fork_works=no
;;
*)
ac_cv_func_fork_works=yes
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
fi
ac_cv_func_vfork_works=$ac_cv_func_vfork
if test "x$ac_cv_func_vfork" = xyes; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
printf %s "checking for working vfork... " >&6; }
if test ${ac_cv_func_vfork_works+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
ac_cv_func_vfork_works=cross
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Thanks to Paul Eggert for this test. */
$ac_includes_default
#include <signal.h>
#include <sys/wait.h>
#ifdef HAVE_VFORK_H
# include <vfork.h>
#endif
static void
do_nothing (int sig)
{
(void) sig;
}
/* On some sparc systems, changes by the child to local and incoming
argument registers are propagated back to the parent. The compiler
is told about this with #include <vfork.h>, but some compilers
(e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
static variable whose address is put into a register that is
clobbered by the vfork. */
static void
sparc_address_test (int arg)
{
static pid_t child;
if (!child) {
child = vfork ();
if (child < 0) {
perror ("vfork");
_exit(2);
}
if (!child) {
arg = getpid();
write(-1, "", 0);
_exit (arg);
}
}
}
int
main (void)
{
pid_t parent = getpid ();
pid_t child;
sparc_address_test (0);
/* On Solaris 2.4, changes by the child to the signal handler
also munge signal handlers in the parent. To detect this,
start by putting the parent's handler in a known state. */
signal (SIGTERM, SIG_DFL);
child = vfork ();
if (child == 0) {
/* Here is another test for sparc vfork register problems. This
test uses lots of local variables, at least as many local
variables as main has allocated so far including compiler
temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
reuse the register of parent for one of the local variables,
since it will think that parent can't possibly be used any more
in this routine. Assigning to the local variable will thus
munge parent in the parent process. */
pid_t
p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
/* Convince the compiler that p..p7 are live; otherwise, it might
use the same hardware register for all 8 local variables. */
if (p != p1 || p != p2 || p != p3 || p != p4
|| p != p5 || p != p6 || p != p7)
_exit(1);
/* Alter the child's signal handler. */
if (signal (SIGTERM, do_nothing) != SIG_DFL)
_exit(1);
/* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
from child file descriptors. If the child closes a descriptor
before it execs or exits, this munges the parent's descriptor
as well. Test for this by closing stdout in the child. */
_exit(close(fileno(stdout)) != 0);
} else {
int status;
struct stat st;
while (wait(&status) != child)
;
return (
/* Was there some problem with vforking? */
child < 0
/* Did the child munge the parent's signal handler? */
|| signal (SIGTERM, SIG_DFL) != SIG_DFL
/* Did the child fail? (This shouldn't happen.) */
|| status
/* Did the vfork/compiler bug occur? */
|| parent != getpid()
/* Did the file descriptor bug occur? */
|| fstat(fileno(stdout), &st) != 0
);
}
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
ac_cv_func_vfork_works=yes
else $as_nop
ac_cv_func_vfork_works=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
fi;
if test "x$ac_cv_func_fork_works" = xcross; then
ac_cv_func_vfork_works=$ac_cv_func_vfork
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
fi
if test "x$ac_cv_func_vfork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
else
printf "%s\n" "#define vfork fork" >>confdefs.h
fi
if test "x$ac_cv_func_fork_works" = xyes; then
printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
if test "x$ac_cv_func_mmap" = xyes
then :
printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "canonicalize_file_name" "ac_cv_func_canonicalize_file_name"
if test "x$ac_cv_func_canonicalize_file_name" = xyes
then :
printf "%s\n" "#define HAVE_CANONICALIZE_FILE_NAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
if test "x$ac_cv_func_snprintf" = xyes
then :
printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
if test "x$ac_cv_func_strdup" = xyes
then :
printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr"
if test "x$ac_cv_func_strchr" = xyes
then :
printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strrchr" "ac_cv_func_strrchr"
if test "x$ac_cv_func_strrchr" = xyes
then :
printf "%s\n" "#define HAVE_STRRCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal"
if test "x$ac_cv_func_strsignal" = xyes
then :
printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fchmod" "ac_cv_func_fchmod"
if test "x$ac_cv_func_fchmod" = xyes
then :
printf "%s\n" "#define HAVE_FCHMOD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fstat" "ac_cv_func_fstat"
if test "x$ac_cv_func_fstat" = xyes
then :
printf "%s\n" "#define HAVE_FSTAT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "chmod" "ac_cv_func_chmod"
if test "x$ac_cv_func_chmod" = xyes
then :
printf "%s\n" "#define HAVE_CHMOD 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
for ac_i in 1 2 3 4 5 6 7; do
ac_script="$ac_script$as_nl$ac_script"
done
echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
{ ac_script=; unset ac_script;}
if test -z "$SED"; then
ac_path_SED_found=false
# Loop through the user's path and test for each of PROGNAME-LIST
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_prog in sed gsed
do
for ac_exec_ext in '' $ac_executable_extensions; do
ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
as_fn_executable_p "$ac_path_SED" || continue
# Check for GNU ac_path_SED and select it if it is found.
# Check for GNU $ac_path_SED
case `"$ac_path_SED" --version 2>&1` in
*GNU*)
ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
*)
ac_count=0
printf %s 0123456789 >"conftest.in"
while :
do
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
printf "%s\n" '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
if test $ac_count -gt ${ac_path_SED_max-0}; then
# Best one so far, save it but keep looking for a better one
ac_cv_path_SED="$ac_path_SED"
ac_path_SED_max=$ac_count
fi
# 10*(2^10) chars as input seems more than enough
test $ac_count -gt 10 && break
done
rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
esac
$ac_path_SED_found && break 3
done
done
done
IFS=$as_save_IFS
if test -z "$ac_cv_path_SED"; then
as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
fi
else
ac_cv_path_SED=$SED
fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
printf "%s\n" "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
while :
do
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`which bash`
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`which dash`
test -x "$POSIX_SHELL" && break
POSIX_SHELL=/usr/xpg4/bin/sh
test -x "$POSIX_SHELL" && break
POSIX_SHELL=`/bin/sh -c '
exec 2>/dev/null
if ! true ; then exit 1 ; fi
echo /bin/sh'`
test -x "$POSIX_SHELL" && break
as_fn_error $? "cannot locate a working POSIX shell" "$LINENO" 5
done
printf "%s\n" "#define POSIX_SHELL \"${POSIX_SHELL}\"" >>confdefs.h
LIBOPTS_BUILD_BLOCKED=''
NEED_LIBOPTS_DIR=''
# Check whether --enable-local-libopts was given.
if test ${enable_local_libopts+y}
then :
enableval=$enable_local_libopts;
if test x$enableval = xyes ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using supplied libopts tearoff" >&5
printf "%s\n" "$as_me: Using supplied libopts tearoff" >&6;}
LIBOPTS_CFLAGS='-I$(top_srcdir)/libopts'
NEED_LIBOPTS_DIR=true
LIBOPTS_LDADD='$(top_builddir)/libopts/libopts.la'
fi
fi
# Check whether --enable-libopts-install was given.
if test ${enable_libopts_install+y}
then :
enableval=$enable_libopts_install;
fi
if test "X${enable_libopts_install}" = Xyes; then
INSTALL_LIBOPTS_TRUE=
INSTALL_LIBOPTS_FALSE='#'
else
INSTALL_LIBOPTS_TRUE='#'
INSTALL_LIBOPTS_FALSE=
fi
if test -z "${NEED_LIBOPTS_DIR}" ; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether autoopts-config can be found" >&5
printf %s "checking whether autoopts-config can be found... " >&6; }
# Check whether --with-autoopts-config was given.
if test ${with_autoopts_config+y}
then :
withval=$with_autoopts_config; lo_cv_with_autoopts_config=${with_autoopts_config}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether autoopts-config is specified" >&5
printf %s "checking whether autoopts-config is specified... " >&6; }
if test ${lo_cv_with_autoopts_config+y}
then :
printf %s "(cached) " >&6
else $as_nop
if autoopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=autoopts-config
elif libopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=libopts-config
else lo_cv_with_autoopts_config=no ; fi
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lo_cv_with_autoopts_config" >&5
printf "%s\n" "$lo_cv_with_autoopts_config" >&6; }
fi
# end of AC_ARG_WITH
if test ${lo_cv_test_autoopts+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test -z "${lo_cv_with_autoopts_config}" \
-o X"${lo_cv_with_autoopts_config}" = Xno
then
if autoopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=autoopts-config
elif libopts-config --help 2>/dev/null 1>&2
then lo_cv_with_autoopts_config=libopts-config
else lo_cv_with_autoopts_config=false ; fi
fi
lo_cv_test_autoopts=`
${lo_cv_with_autoopts_config} --libs` 2> /dev/null
if test $? -ne 0 -o -z "${lo_cv_test_autoopts}"
then lo_cv_test_autoopts=no ; fi
fi
# end of CACHE_VAL
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lo_cv_test_autoopts}" >&5
printf "%s\n" "${lo_cv_test_autoopts}" >&6; }
if test "X${lo_cv_test_autoopts}" != Xno
then
LIBOPTS_LDADD="${lo_cv_test_autoopts}"
LIBOPTS_CFLAGS="`${lo_cv_with_autoopts_config} --cflags`"
else
LIBOPTS_LDADD='$(top_builddir)/libopts/libopts.la'
LIBOPTS_CFLAGS='-I$(top_srcdir)/libopts'
NEED_LIBOPTS_DIR=true
fi
fi # end of if test -z "${NEED_LIBOPTS_DIR}"
if test -n "${LIBOPTS_BUILD_BLOCKED}" ; then
NEED_LIBOPTS_DIR=''
fi
if test -n "${NEED_LIBOPTS_DIR}"; then
NEED_LIBOPTS_TRUE=
NEED_LIBOPTS_FALSE='#'
else
NEED_LIBOPTS_TRUE='#'
NEED_LIBOPTS_FALSE=
fi
LIBOPTS_DIR=libopts
# end of AC_DEFUN of LIBOPTS_CHECK_COMMON
if test -z "$NEED_LIBOPTS_TRUE"; then :
# Check to see if a reg expr header is specified.
# Check whether --with-regex-header was given.
if test ${with_regex_header+y}
then :
withval=$with_regex_header; libopts_cv_with_regex_header=${with_regex_header}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a reg expr header is specified" >&5
printf %s "checking whether a reg expr header is specified... " >&6; }
if test ${libopts_cv_with_regex_header+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_with_regex_header=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libopts_cv_with_regex_header" >&5
printf "%s\n" "$libopts_cv_with_regex_header" >&6; }
fi
# end of AC_ARG_WITH
if test "X${libopts_cv_with_regex_header}" != Xno
then
printf "%s\n" "#define REGEX_HEADER <${libopts_cv_with_regex_header}>" >>confdefs.h
else
printf "%s\n" "#define REGEX_HEADER <regex.h>" >>confdefs.h
fi
# Check to see if a working libregex can be found.
# Check whether --with-libregex was given.
if test ${with_libregex+y}
then :
withval=$with_libregex; libopts_cv_with_libregex_root=${with_libregex}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether with-libregex was specified" >&5
printf %s "checking whether with-libregex was specified... " >&6; }
if test ${libopts_cv_with_libregex_root+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_with_libregex_root=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libopts_cv_with_libregex_root" >&5
printf "%s\n" "$libopts_cv_with_libregex_root" >&6; }
fi
# end of AC_ARG_WITH libregex
if test "${with_libregex+set}" = set && \
test "X${withval}" = Xno
then ## disabled by request
libopts_cv_with_libregex_root=no
libopts_cv_with_libregex_cflags=no
libopts_cv_with_libregex_libs=no
else
# Check whether --with-libregex-cflags was given.
if test ${with_libregex_cflags+y}
then :
withval=$with_libregex_cflags; libopts_cv_with_libregex_cflags=${with_libregex_cflags}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether with-libregex-cflags was specified" >&5
printf %s "checking whether with-libregex-cflags was specified... " >&6; }
if test ${libopts_cv_with_libregex_cflags+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_with_libregex_cflags=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libopts_cv_with_libregex_cflags" >&5
printf "%s\n" "$libopts_cv_with_libregex_cflags" >&6; }
fi
# end of AC_ARG_WITH libregex-cflags
# Check whether --with-libregex-libs was given.
if test ${with_libregex_libs+y}
then :
withval=$with_libregex_libs; libopts_cv_with_libregex_libs=${with_libregex_libs}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether with-libregex-libs was specified" >&5
printf %s "checking whether with-libregex-libs was specified... " >&6; }
if test ${libopts_cv_with_libregex_libs+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_with_libregex_libs=no
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libopts_cv_with_libregex_libs" >&5
printf "%s\n" "$libopts_cv_with_libregex_libs" >&6; }
fi
# end of AC_ARG_WITH libregex-libs
case "X${libopts_cv_with_libregex_cflags}" in
Xyes|Xno|X )
case "X${libopts_cv_with_libregex_root}" in
Xyes|Xno|X ) libopts_cv_with_libregex_cflags=no ;;
* ) libopts_cv_with_libregex_cflags=-I${libopts_cv_with_libregex_root}/include ;;
esac
esac
case "X${libopts_cv_with_libregex_libs}" in
Xyes|Xno|X )
case "X${libopts_cv_with_libregex_root}" in
Xyes|Xno|X ) libopts_cv_with_libregex_libs=no ;;
* ) libopts_cv_with_libregex_libs="-L${libopts_cv_with_libregex_root}/lib -lregex" ;;
esac
esac
libopts_save_CPPFLAGS="${CPPFLAGS}"
libopts_save_LIBS="${LIBS}"
case "X${libopts_cv_with_libregex_cflags}" in
Xyes|Xno|X )
libopts_cv_with_libregex_cflags="" ;;
* ) CPPFLAGS="${CPPFLAGS} ${libopts_cv_with_libregex_cflags}" ;;
esac
case "X${libopts_cv_with_libregex_libs}" in
Xyes|Xno|X )
libopts_cv_with_libregex_libs="" ;;
* )
LIBS="${LIBS} ${libopts_cv_with_libregex_libs}" ;;
esac
LIBREGEX_CFLAGS=""
LIBREGEX_LIBS=""
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether libregex functions properly" >&5
printf %s "checking whether libregex functions properly... " >&6; }
if test ${libopts_cv_with_libregex+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_with_libregex=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include REGEX_HEADER
static regex_t re;
void comp_re(char const * pzPat) {
int res = regcomp( &re, pzPat, REG_EXTENDED|REG_ICASE|REG_NEWLINE );
if (res == 0) return;
exit( res ); }
int main() {
regmatch_t m[2];
comp_re( "^.*\$" );
comp_re( "()|no.*" );
comp_re( "." );
if (regexec( &re, "X", 2, m, 0 ) != 0) return 1;
if ((m[0].rm_so != 0) || (m[0].rm_eo != 1)) {
fputs( "error: regex -->.<-- did not match\n", stderr );
return 1;
}
return 0; }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_with_libregex=yes
else $as_nop
libopts_cv_with_libregex=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of AC_RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_with_libregex
fi ## disabled by request
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_with_libregex}" >&5
printf "%s\n" "${libopts_cv_with_libregex}" >&6; }
if test "X${libopts_cv_with_libregex}" != Xno
then
printf "%s\n" "#define WITH_LIBREGEX 1" >>confdefs.h
else
CPPFLAGS="${libopts_save_CPPFLAGS}"
LIBS="${libopts_save_LIBS}"
libopts_cv_with_libregex_root=no
libopts_cv_with_libregex_cflags=no
libopts_cv_with_libregex_libs=no
libopts_cv_with_libregex=no
fi
# Check to see if pathfind(3) works.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pathfind(3) works" >&5
printf %s "checking whether pathfind(3) works... " >&6; }
if test ${libopts_cv_run_pathfind+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_run_pathfind=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <string.h>
#include <stdlib.h>
int main (int argc, char ** argv) {
char * pz = pathfind( getenv( "PATH" ), "sh", "x" );
return (pz == 0) ? 1 : 0;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_run_pathfind=yes
else $as_nop
libopts_cv_run_pathfind=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_run_pathfind
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_run_pathfind}" >&5
printf "%s\n" "${libopts_cv_run_pathfind}" >&6; }
if test "X${libopts_cv_run_pathfind}" != Xno
then
printf "%s\n" "#define HAVE_PATHFIND 1" >>confdefs.h
fi
# Check to see if /dev/zero is readable device.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether /dev/zero is readable device" >&5
printf %s "checking whether /dev/zero is readable device... " >&6; }
if test ${libopts_cv_test_dev_zero+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_test_dev_zero=`exec 2> /dev/null
dzero=\`ls -lL /dev/zero | egrep ^c......r\`
test -z "${dzero}" && exit 1
echo ${dzero}`
if test $? -ne 0 || test -z "$libopts_cv_test_dev_zero"
then libopts_cv_test_dev_zero=no
fi
fi
# end of CACHE_VAL of libopts_cv_test_dev_zero
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_test_dev_zero}" >&5
printf "%s\n" "${libopts_cv_test_dev_zero}" >&6; }
if test "X${libopts_cv_test_dev_zero}" != Xno
then
printf "%s\n" "#define HAVE_DEV_ZERO 1" >>confdefs.h
fi
# Check to see if we have a functional realpath(3C).
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we have a functional realpath(3C)" >&5
printf %s "checking whether we have a functional realpath(3C)... " >&6; }
if test ${libopts_cv_run_realpath+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_run_realpath=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <limits.h>
#include <stdlib.h>
int main (int argc, char ** argv) {
#ifndef PATH_MAX
choke me!!
#else
char zPath[PATH_MAX+1];
#endif
char *pz = realpath(argv[0], zPath);
return (pz == zPath) ? 0 : 1;
}
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_run_realpath=yes
else $as_nop
libopts_cv_run_realpath=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_run_realpath
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_run_realpath}" >&5
printf "%s\n" "${libopts_cv_run_realpath}" >&6; }
if test "X${libopts_cv_run_realpath}" != Xno
then
printf "%s\n" "#define HAVE_REALPATH 1" >>confdefs.h
fi
# Check to see if strftime() works.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strftime() works" >&5
printf %s "checking whether strftime() works... " >&6; }
if test ${libopts_cv_run_strftime+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_run_strftime=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <time.h>
#include <string.h>
char t_buf[ 64 ];
int main() {
static char const z[] = "Thursday Aug 28 240";
struct tm tm;
tm.tm_sec = 36; /* seconds after the minute [0, 61] */
tm.tm_min = 44; /* minutes after the hour [0, 59] */
tm.tm_hour = 12; /* hour since midnight [0, 23] */
tm.tm_mday = 28; /* day of the month [1, 31] */
tm.tm_mon = 7; /* months since January [0, 11] */
tm.tm_year = 86; /* years since 1900 */
tm.tm_wday = 4; /* days since Sunday [0, 6] */
tm.tm_yday = 239; /* days since January 1 [0, 365] */
tm.tm_isdst = 1; /* flag for daylight savings time */
strftime( t_buf, sizeof( t_buf ), "%A %b %d %j", &tm );
return (strcmp( t_buf, z ) != 0); }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_run_strftime=yes
else $as_nop
libopts_cv_run_strftime=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_run_strftime
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_run_strftime}" >&5
printf "%s\n" "${libopts_cv_run_strftime}" >&6; }
if test "X${libopts_cv_run_strftime}" != Xno
then
printf "%s\n" "#define HAVE_STRFTIME 1" >>confdefs.h
fi
# Check to see if fopen accepts "b" mode.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen accepts \"b\" mode" >&5
printf %s "checking whether fopen accepts \"b\" mode... " >&6; }
if test ${libopts_cv_run_fopen_binary+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_run_fopen_binary=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int main (int argc, char ** argv) {
FILE * fp = fopen("conftest.$ac_ext", "rb");
return (fp == NULL) ? 1 : fclose(fp); }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_run_fopen_binary=yes
else $as_nop
libopts_cv_run_fopen_binary=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_run_fopen_binary
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_run_fopen_binary}" >&5
printf "%s\n" "${libopts_cv_run_fopen_binary}" >&6; }
if test "X${libopts_cv_run_fopen_binary}" != Xno
then
printf "%s\n" "#define FOPEN_BINARY_FLAG \"b\"" >>confdefs.h
else
printf "%s\n" "#define FOPEN_BINARY_FLAG \"\"" >>confdefs.h
fi
# Check to see if fopen accepts "t" mode.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopen accepts \"t\" mode" >&5
printf %s "checking whether fopen accepts \"t\" mode... " >&6; }
if test ${libopts_cv_run_fopen_text+y}
then :
printf %s "(cached) " >&6
else $as_nop
if test "$cross_compiling" = yes
then :
libopts_cv_run_fopen_text=no
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdio.h>
int main (int argc, char ** argv) {
FILE * fp = fopen("conftest.$ac_ext", "rt");
return (fp == NULL) ? 1 : fclose(fp); }
_ACEOF
if ac_fn_c_try_run "$LINENO"
then :
libopts_cv_run_fopen_text=yes
else $as_nop
libopts_cv_run_fopen_text=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
# end of RUN_IFELSE
fi
# end of AC_CACHE_VAL for libopts_cv_run_fopen_text
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${libopts_cv_run_fopen_text}" >&5
printf "%s\n" "${libopts_cv_run_fopen_text}" >&6; }
if test "X${libopts_cv_run_fopen_text}" != Xno
then
printf "%s\n" "#define FOPEN_TEXT_FLAG \"t\"" >>confdefs.h
else
printf "%s\n" "#define FOPEN_TEXT_FLAG \"\"" >>confdefs.h
fi
# Check to see if not wanting optional option args.
# Check whether --enable-optional-args was given.
if test ${enable_optional_args+y}
then :
enableval=$enable_optional_args; libopts_cv_enable_optional_args=${enable_optional_args}
else $as_nop
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether not wanting optional option args" >&5
printf %s "checking whether not wanting optional option args... " >&6; }
if test ${libopts_cv_enable_optional_args+y}
then :
printf %s "(cached) " >&6
else $as_nop
libopts_cv_enable_optional_args=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libopts_cv_enable_optional_args" >&5
printf "%s\n" "$libopts_cv_enable_optional_args" >&6; }
fi
# end of AC_ARG_ENABLE
if test "X${libopts_cv_enable_optional_args}" = Xno
then
printf "%s\n" "#define NO_OPTIONAL_OPT_ARGS 1" >>confdefs.h
fi
fi
ac_config_files="$ac_config_files libopts/Makefile"
# end of AC_DEFUN of LIBOPTS_CHECK
# From when we only used libevent for sntp:
#AM_COND_IF(
# [BUILD_SNTP],
# [NTP_LIBEVENT_CHECK],
# [NTP_LIBEVENT_CHECK_NOBUILD]
#)
ntp_pkgconfig_min_version='0.15.0'
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
printf "%s\n" "$PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
fi
if test -z "$ac_cv_path_PKG_CONFIG"; then
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $ac_pt_PKG_CONFIG in
[\\/]* | ?:[\\/]*)
ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
PKG_CONFIG=""
else
case $cross_compiling:$ac_tool_warned in
yes:)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
fi
else
PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
fi
{ ac_cv_path_PKG_CONFIG=; unset ac_cv_path_PKG_CONFIG;}
{ ac_cv_path_ac_pt_PKG_CONFIG=; unset ac_cv_path_ac_pt_PKG_CONFIG;}
case "$PKG_CONFIG" in
/*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if pkg-config is at least version $ntp_pkgconfig_min_version" >&5
printf %s "checking if pkg-config is at least version $ntp_pkgconfig_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $ntp_pkgconfig_min_version; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
printf "%s\n" "yes" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
PKG_CONFIG=""
fi
;;
esac
# Check whether --enable-local-libevent was given.
if test ${enable_local_libevent+y}
then :
enableval=$enable_local_libevent; ntp_use_local_libevent=$enableval
else $as_nop
ntp_use_local_libevent=${ntp_use_local_libevent-detect}
fi
ntp_libevent_min_version=2
ntp_libevent_tearoff=libevent
case "$ntp_use_local_libevent" in
yes)
;;
*) # If we have (a good enough) pkg-config, see if it can find libevent
case "$PKG_CONFIG" in
/*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libevent $ntp_libevent_min_version or later is installed" >&5
printf %s "checking if libevent $ntp_libevent_min_version or later is installed... " >&6; }
if $PKG_CONFIG --atleast-version=$ntp_libevent_min_version libevent
then
ntp_use_local_libevent=no
ntp_libevent_version="`$PKG_CONFIG --modversion libevent`"
case "$ntp_libevent_version" in
*.*) ;;
*) ntp_libevent_version='(unknown)' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, version $ntp_libevent_version" >&5
printf "%s\n" "yes, version $ntp_libevent_version" >&6; }
CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
CPPFLAGS_LIBEVENT=`$PKG_CONFIG --cflags-only-I libevent`
# HMS: I hope the following is accurate.
# We don't need -levent, we only need -levent_core.
# While we could grab only the -L stuff, there *might* be
# other flags there we want. Originally we just removed -levent
# but then somebody decided to install -levent-2.0
# LDADD_LIBEVENT=`$PKG_CONFIG --libs libevent | sed 's:-levent::'`
# So now we dance...
LDADD_LIBEVENT=
for i in `$PKG_CONFIG --libs libevent` `$PKG_CONFIG --cflags-only-other libevent_pthreads`
do
case "$i" in
-D*) ;;
-levent*) ;;
*) case "$LDADD_LIBEVENT" in
'') LDADD_LIBEVENT="$i" ;;
*) LDADD_LIBEVENT="$LDADD_LIBEVENT $i" ;;
esac
;;
esac
done
case "$LIBISC_PTHREADS_NOTHREADS" in
pthreads)
LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_pthreads"
esac
LDADD_LIBEVENT="$LDADD_LIBEVENT -levent_core"
else
ntp_use_local_libevent=yes
# HMS: do we only need to do this if LIBISC_PTHREADS_NOTHREADS
# is "pthreads"?
CFLAGS_LIBEVENT=`$PKG_CONFIG --cflags libevent_pthreads`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
;;
*)
ntp_use_local_libevent=yes
;;
esac
;;
esac
case "$ntp_use_local_libevent" in
yes)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using libevent tearoff" >&5
printf "%s\n" "$as_me: Using libevent tearoff" >&6;}
CPPFLAGS_LIBEVENT="-I\$(top_builddir)/$ntp_libevent_tearoff/include -I\$(top_srcdir)/$ntp_libevent_tearoff/include"
case "$LIBISC_PTHREADS_NOTHREADS" in
pthreads)
LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_pthreads.la \$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
;;
*)
LDADD_LIBEVENT="\$(top_builddir)/$ntp_libevent_tearoff/libevent_core.la"
esac
esac
if test "x$ntp_use_local_libevent" = "xyes"; then
BUILD_LIBEVENT_TRUE=
BUILD_LIBEVENT_FALSE='#'
else
BUILD_LIBEVENT_TRUE='#'
BUILD_LIBEVENT_FALSE=
fi
case "$ntp_libevent_tearoff" in
libevent)
;;
*)
as_fn_error $? "ntp_libevent.m4 dir must be libevent, not $ntp_libevent_tearoff" "$LINENO" 5
;;
esac
case "$ntp_use_local_libevent" in
yes)
ac_configure_args=" --disable-openssl${ac_configure_args}"
ac_configure_args=" --disable-shared${ac_configure_args}"
ac_configure_args=" --disable-libevent-regress${ac_configure_args}"
ac_configure_args=" --disable-libevent-install${ac_configure_args}"
ac_configure_args=" --enable-silent-rules${ac_configure_args}"
ac_configure_args=" --enable-function-sections${ac_configure_args}"
ac_configure_args=" LEP_CFLAGS='${NTP_HARD_CFLAGS}'${ac_configure_args}"
ac_configure_args=" LEP_CPPFLAGS='${NTP_HARD_CPPFLAGS}'${ac_configure_args}"
ac_configure_args=" LEP_LDFLAGS='${NTP_HARD_LDFLAGS}'${ac_configure_args}"
subdirs="$subdirs libevent"
;;
*)
NTP_FORCE_LIBEVENT_DIST=libevent
;;
esac
# Checks for libraries.
LIB_SYSLOG=''
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing openlog" >&5
printf %s "checking for library containing openlog... " >&6; }
if test ${ac_cv_search_openlog+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char openlog ();
int
main (void)
{
return openlog ();
;
return 0;
}
_ACEOF
for ac_lib in '' gen syslog
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_openlog=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_openlog+y}
then :
break
fi
done
if test ${ac_cv_search_openlog+y}
then :
else $as_nop
ac_cv_search_openlog=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openlog" >&5
printf "%s\n" "$ac_cv_search_openlog" >&6; }
ac_res=$ac_cv_search_openlog
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
case "$ac_cv_search_openlog" in
'none required') ;;
no) ;;
*) LIB_SYSLOG="$ac_cv_search_openlog $LIB_SYSLOG" ;;
esac
fi
# Checks for header files.
ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
if test "x$ac_cv_header_netdb_h" = xyes
then :
printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default"
if test "x$ac_cv_header_string_h" = xyes
then :
printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default"
if test "x$ac_cv_header_strings_h" = xyes
then :
printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default"
if test "x$ac_cv_header_syslog_h" = xyes
then :
printf "%s\n" "#define HAVE_SYSLOG_H 1" >>confdefs.h
fi
for ac_header in sysexits.h
do :
ac_fn_c_check_header_compile "$LINENO" "sysexits.h" "ac_cv_header_sysexits_h" "$ac_includes_default"
if test "x$ac_cv_header_sysexits_h" = xyes
then :
printf "%s\n" "#define HAVE_SYSEXITS_H 1" >>confdefs.h
else $as_nop
printf "%s\n" "#define EX_OK 0" >>confdefs.h
printf "%s\n" "#define EX_SOFTWARE 70" >>confdefs.h
fi
done
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for facilitynames in syslog.h" >&5
printf %s "checking for facilitynames in syslog.h... " >&6; }
if test ${ac_cv_HAVE_SYSLOG_FACILITYNAMES+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#define SYSLOG_NAMES
#include <stdlib.h>
#include <syslog.h>
int
main (void)
{
void *fnames; fnames = facilitynames;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_HAVE_SYSLOG_FACILITYNAMES=yes
else $as_nop
ac_cv_HAVE_SYSLOG_FACILITYNAMES=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_HAVE_SYSLOG_FACILITYNAMES" >&5
printf "%s\n" "$ac_cv_HAVE_SYSLOG_FACILITYNAMES" >&6; }
case "$ac_cv_HAVE_SYSLOG_FACILITYNAMES" in
yes)
printf "%s\n" "#define HAVE_SYSLOG_FACILITYNAMES 1" >>confdefs.h
;;
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: No facilitynames in <syslog.h>" >&5
printf "%s\n" "$as_me: WARNING: No facilitynames in <syslog.h>" >&2;}
;;
cross)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: facilitynames in <syslog.h> - cross-compiling" >&5
printf "%s\n" "$as_me: WARNING: facilitynames in <syslog.h> - cross-compiling" >&2;}
;;
esac
# Checks for typedefs, structures, and compiler characteristics.
ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
if test "x$ac_cv_type__Bool" = xyes
then :
printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
printf %s "checking for stdbool.h that conforms to C99... " >&6; }
if test ${ac_cv_header_stdbool_h+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <stdbool.h>
#ifndef __bool_true_false_are_defined
#error "__bool_true_false_are_defined is not defined"
#endif
char a[__bool_true_false_are_defined == 1 ? 1 : -1];
/* Regardless of whether this is C++ or "_Bool" is a
valid type name, "true" and "false" should be usable
in #if expressions and integer constant expressions,
and "bool" should be a valid type name. */
#if !true
#error "'true' is not true"
#endif
#if true != 1
#error "'true' is not equal to 1"
#endif
char b[true == 1 ? 1 : -1];
char c[true];
#if false
#error "'false' is not false"
#endif
#if false != 0
#error "'false' is not equal to 0"
#endif
char d[false == 0 ? 1 : -1];
enum { e = false, f = true, g = false * true, h = true * 256 };
char i[(bool) 0.5 == true ? 1 : -1];
char j[(bool) 0.0 == false ? 1 : -1];
char k[sizeof (bool) > 0 ? 1 : -1];
struct sb { bool s: 1; bool t; } s;
char l[sizeof s.t > 0 ? 1 : -1];
/* The following fails for
HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
bool m[h];
char n[sizeof m == h * sizeof m[0] ? 1 : -1];
char o[-1 - (bool) 0 < 0 ? 1 : -1];
/* Catch a bug in an HP-UX C compiler. See
https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
*/
bool p = true;
bool *pp = &p;
/* C 1999 specifies that bool, true, and false are to be
macros, but C++ 2011 and later overrule this. */
#if __cplusplus < 201103
#ifndef bool
#error "bool is not defined"
#endif
#ifndef false
#error "false is not defined"
#endif
#ifndef true
#error "true is not defined"
#endif
#endif
/* If _Bool is available, repeat with it all the tests
above that used bool. */
#ifdef HAVE__BOOL
struct sB { _Bool s: 1; _Bool t; } t;
char q[(_Bool) 0.5 == true ? 1 : -1];
char r[(_Bool) 0.0 == false ? 1 : -1];
char u[sizeof (_Bool) > 0 ? 1 : -1];
char v[sizeof t.t > 0 ? 1 : -1];
_Bool w[h];
char x[sizeof m == h * sizeof m[0] ? 1 : -1];
char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
_Bool z = true;
_Bool *pz = &p;
#endif
int
main (void)
{
bool ps = &s;
*pp |= p;
*pp |= ! p;
#ifdef HAVE__BOOL
_Bool pt = &t;
*pz |= z;
*pz |= ! z;
#endif
/* Refer to every declared value, so they cannot be
discarded as unused. */
return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+ !l + !m + !n + !o + !p + !pp + !ps
#ifdef HAVE__BOOL
+ !q + !r + !u + !v + !w + !x + !y + !z + !pt
#endif
);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ac_cv_header_stdbool_h=yes
else $as_nop
ac_cv_header_stdbool_h=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
if test $ac_cv_header_stdbool_h = yes; then
printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h
fi
VER_SUFFIX=
# Check whether --with-crypto was given.
if test ${with_crypto+y}
then :
withval=$with_crypto;
fi
# Check whether --with-openssl-libdir was given.
if test ${with_openssl_libdir+y}
then :
withval=$with_openssl_libdir;
fi
# Check whether --with-openssl-incdir was given.
if test ${with_openssl_incdir+y}
then :
withval=$with_openssl_incdir;
fi
# Check whether --with-rpath was given.
if test ${with_rpath+y}
then :
withval=$with_rpath;
fi
ntp_openssl=no
ntp_openssl_from_pkg_config=no
with_crypto=${with_crypto:-openssl,libcrypto}
case "$with_crypto" in
yes)
with_crypto=openssl,libcrypto
esac
case "$with_crypto:${PKG_CONFIG:+notempty}:${with_openssl_libdir-notgiven}:${with_openssl_incdir-notgiven}" in
no:*) ;;
*:notempty:notgiven:notgiven)
for pkg in `echo $with_crypto | sed -e 's/,/ /'`; do
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config for $pkg" >&5
printf %s "checking pkg-config for $pkg... " >&6; }
if $PKG_CONFIG --exists $pkg ; then
CPPFLAGS_NTP="$CPPFLAGS_NTP `$PKG_CONFIG --cflags-only-I $pkg`"
CFLAGS_NTP="$CFLAGS_NTP `$PKG_CONFIG --cflags-only-other $pkg`"
LDADD_NTP="$LDADD_NTP `$PKG_CONFIG --libs-only-L $pkg`"
LDADD_NTP="$LDADD_NTP `$PKG_CONFIG --libs-only-l --static $pkg`"
LDFLAGS_NTP="$LDFLAGS_NTP `$PKG_CONFIG --libs-only-other $pkg`"
VER_SUFFIX=o
ntp_openssl=yes
ntp_openssl_from_pkg_config=yes
ntp_openssl_version="`$PKG_CONFIG --modversion $pkg`"
case "$ntp_openssl_version" in
*.*) ;;
*) ntp_openssl_version='(unknown)' ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, version $ntp_openssl_version" >&5
printf "%s\n" "yes, version $ntp_openssl_version" >&6; }
break
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
done
esac
case "$with_crypto:$ntp_openssl" in
no:*) ;;
*:no)
need_dash_r=
need_dash_Wlrpath=
case "${with_rpath-notgiven}" in
yes)
# Lame - what to do if we need -Wl... but not -R?
need_dash_r=1
;;
notgiven)
case "$host" in
*-*-linux*)
# This may really only be true for gcc
need_dash_Wlrpath=1
;;
*-*-netbsd*)
need_dash_r=1
;;
*-*-solaris*)
need_dash_r=1
;;
esac
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl library directory" >&5
printf %s "checking for openssl library directory... " >&6; }
with_openssl_libdir=${with_openssl_libdir-notgiven}
case "$with_openssl_libdir" in
notgiven)
case "$build" in
$host)
with_openssl_libdir=default
;;
*)
with_openssl_libdir=no
;;
esac
esac
case "$with_openssl_libdir" in
default)
# Look in:
with_openssl_libdir="/usr/lib /usr/lib/openssl /usr/sfw/lib"
with_openssl_libdir="$with_openssl_libdir /usr/local/lib"
with_openssl_libdir="$with_openssl_libdir /usr/local/ssl/lib /lib"
esac
case "$with_openssl_libdir" in
no)
;;
*) # Look for libcrypto.a and libssl.a:
for i in $with_openssl_libdir no
do
case "$host" in
*-*-darwin*)
test -f $i/libcrypto.dylib -a -f $i/libssl.dylib && break
;;
*)
test -f $i/libcrypto.so -a -f $i/libssl.so && break
test -f $i/libcrypto.a -a -f $i/libssl.a && break
;;
esac
done
openssl_libdir=$i
;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $openssl_libdir" >&5
printf "%s\n" "$openssl_libdir" >&6; }
case "$openssl_libdir" in
no)
openssl_libdir=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcrypto and libssl not found in any of $with_openssl_libdir" >&5
printf "%s\n" "$as_me: WARNING: libcrypto and libssl not found in any of $with_openssl_libdir" >&2;}
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl include directory" >&5
printf %s "checking for openssl include directory... " >&6; }
with_openssl_incdir=${with_openssl_incdir-notgiven}
case "$with_openssl_incdir" in
notgiven)
# Look in:
with_openssl_incdir="/usr/include /usr/sfw/include"
with_openssl_incdir="$with_openssl_incdir /usr/local/include"
with_openssl_incdir="$with_openssl_incdir /usr/local/ssl/include"
esac
case "$with_openssl_incdir" in
no)
;;
*) # look for openssl/evp.h:
for i in $with_openssl_incdir no
do
test -f $i/openssl/evp.h && break
done
openssl_incdir=$i
;;
esac
{ i=; unset i;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $openssl_incdir" >&5
printf "%s\n" "$openssl_incdir" >&6; }
case "$openssl_incdir" in
no)
openssl_incdir=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: did not find openssl/evp.h in any of $with_openssl_incdir" >&5
printf "%s\n" "$as_me: WARNING: did not find openssl/evp.h in any of $with_openssl_incdir" >&2;}
esac
if test -z "$openssl_libdir" -o -z "$openssl_incdir"
then
ntp_openssl=no
else
ntp_openssl=yes
VER_SUFFIX=o
fi
case "$ntp_openssl" in
yes)
# We have OpenSSL inc/lib dirs - use them.
case "$openssl_incdir" in
/usr/include)
;;
*)
CPPFLAGS_NTP="$CPPFLAGS_NTP -I$openssl_incdir"
;;
esac
case "$openssl_libdir" in
/usr/lib)
;;
*)
LDADD_NTP="$LDADD_NTP -L$openssl_libdir"
case "$need_dash_r" in
1)
LDFLAGS_NTP="$LDFLAGS_NTP -R$openssl_libdir"
esac
case "$need_dash_Wlrpath" in
1)
LDFLAGS_NTP="$LDFLAGS_NTP -Wl,-rpath,$openssl_libdir"
esac
;;
esac
LDADD_NTP="$LDADD_NTP -lcrypto"
esac
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we will use crypto" >&5
printf %s "checking if we will use crypto... " >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_openssl" >&5
printf "%s\n" "$ntp_openssl" >&6; }
case "$ntp_openssl" in
yes)
ac_fn_c_check_header_compile "$LINENO" "openssl/cmac.h" "ac_cv_header_openssl_cmac_h" "$ac_includes_default"
if test "x$ac_cv_header_openssl_cmac_h" = xyes
then :
printf "%s\n" "#define HAVE_OPENSSL_CMAC_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "openssl/hmac.h" "ac_cv_header_openssl_hmac_h" "$ac_includes_default"
if test "x$ac_cv_header_openssl_hmac_h" = xyes
then :
printf "%s\n" "#define HAVE_OPENSSL_HMAC_H 1" >>confdefs.h
fi
printf "%s\n" "#define OPENSSL /**/" >>confdefs.h
case "$VER_SUFFIX" in
*o*) ;;
*) as_fn_error $? "OPENSSL set but no 'o' in VER_SUFFIX!" "$LINENO" 5 ;;
esac
;;
esac
NTPO_SAVED_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $CPPFLAGS_NTP"
NTPO_SAVED_LIBS="$LIBS"
#
# check for linking with -lcrypto failure, and try -lcrypto -lz.
# Helps m68k-atari-mint
#
case "$ntp_openssl:$ntp_openssl_from_pkg_config" in
yes:no)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linking with -lcrypto alone works" >&5
printf %s "checking if linking with -lcrypto alone works... " >&6; }
if test ${ntp_cv_bare_lcrypto+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/err.h"
#include "openssl/evp.h"
int
main (void)
{
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_cv_bare_lcrypto=yes
else $as_nop
ntp_cv_bare_lcrypto=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_bare_lcrypto" >&5
printf "%s\n" "$ntp_cv_bare_lcrypto" >&6; }
case "$ntp_cv_bare_lcrypto" in
no)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP -lz"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if linking with -lcrypto -lz works" >&5
printf %s "checking if linking with -lcrypto -lz works... " >&6; }
if test ${ntp_cv_lcrypto_lz+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/err.h"
#include "openssl/evp.h"
int
main (void)
{
ERR_load_crypto_strings();
OpenSSL_add_all_algorithms();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
ntp_cv_lcrypto_lz=yes
else $as_nop
ntp_cv_lcrypto_lz=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_lcrypto_lz" >&5
printf "%s\n" "$ntp_cv_lcrypto_lz" >&6; }
case "$ntp_cv_lcrypto_lz" in
yes)
LDADD_NTP="$LDADD_NTP -lz"
esac
esac
esac
#
# Older OpenSSL headers have a number of callback prototypes inside
# other function prototypes which trigger copious warnings with gcc's
# -Wstrict-prototypes, which is included in -Wall.
#
# An example:
#
# int i2d_RSA_NET(const RSA *a, unsigned char **pp,
# int (*cb)(), int sgckey);
# ^^^^^^^^^^^
#
#
#
openssl_triggers_warnings=unknown
NTPO_SAVED_CFLAGS="$CFLAGS"
case "$ntp_openssl:$GCC" in
yes:yes)
CFLAGS="$CFLAGS -Werror"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main (void)
{
/* see if -Werror breaks gcc */
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
gcc_handles_Werror=yes
else $as_nop
gcc_handles_Werror=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
case "$gcc_handles_Werror" in
no)
# if this gcc doesn't do -Werror go ahead and use
# -Wstrict-prototypes.
openssl_triggers_warnings=yes
;;
yes)
CFLAGS="$CFLAGS -Wstrict-prototypes"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include "openssl/asn1_mac.h"
#include "openssl/bn.h"
#include "openssl/err.h"
#include "openssl/evp.h"
#include "openssl/pem.h"
#include "openssl/rand.h"
#include "openssl/x509v3.h"
int
main (void)
{
/* empty body */
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
openssl_triggers_warnings=no
else $as_nop
openssl_triggers_warnings=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
esac
case "$openssl_triggers_warnings" in
yes)
CFLAGS_NTP="$CFLAGS_NTP -Wno-strict-prototypes"
;;
*)
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-prototypes"
esac
;;
no:yes)
# gcc without OpenSSL
CFLAGS_NTP="$CFLAGS_NTP -Wstrict-prototypes"
esac
# Because we don't want -Werror for the EVP_MD_do_all_sorted check
CFLAGS="$NTPO_SAVED_CFLAGS"
case "$ntp_openssl" in
yes)
LIBS="$NTPO_SAVED_LIBS $LDADD_NTP"
ac_fn_c_check_func "$LINENO" "EVP_MD_do_all_sorted" "ac_cv_func_EVP_MD_do_all_sorted"
if test "x$ac_cv_func_EVP_MD_do_all_sorted" = xyes
then :
printf "%s\n" "#define HAVE_EVP_MD_DO_ALL_SORTED 1" >>confdefs.h
fi
;;
esac
CPPFLAGS="$NTPO_SAVED_CPPFLAGS"
LIBS="$NTPO_SAVED_LIBS"
{ NTPO_SAVED_CFLAGS=; unset NTPO_SAVED_CFLAGS;}
{ NTPO_SAVED_CPPFLAGS=; unset NTPO_SAVED_CPPFLAGS;}
{ NTPO_SAVED_LIBS=; unset NTPO_SAVED_LIBS;}
{ openssl_triggers_warnings=; unset openssl_triggers_warnings;}
{ ntp_openssl_from_pkg_config=; unset ntp_openssl_from_pkg_config;}
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_storage" >&5
printf %s "checking for struct sockaddr_storage... " >&6; }
if test ${ntp_cv_sockaddr_storage+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct sockaddr_storage n;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_sockaddr_storage=yes
else $as_nop
ntp_cv_sockaddr_storage=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_sockaddr_storage" >&5
printf "%s\n" "$ntp_cv_sockaddr_storage" >&6; }
case "$ntp_cv_sockaddr_storage" in
yes)
printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_storage.__ss_family" >&5
printf %s "checking for sockaddr_storage.__ss_family... " >&6; }
if test ${ntp_cv_have___ss_family+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct sockaddr_storage s;
s.__ss_family = 1;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_have___ss_family=yes
else $as_nop
ntp_cv_have___ss_family=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_have___ss_family" >&5
printf "%s\n" "$ntp_cv_have___ss_family" >&6; }
case "$ntp_cv_have___ss_family" in
yes)
printf "%s\n" "#define HAVE___SS_FAMILY_IN_SS 1" >>confdefs.h
esac
esac
#
# Look for in_port_t.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in_port_t" >&5
printf %s "checking for in_port_t... " >&6; }
if test ${isc_cv_have_in_port_t+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <netinet/in.h>
int
main (void)
{
in_port_t port = 25;
return (0);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_in_port_t=yes
else $as_nop
isc_cv_have_in_port_t=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_in_port_t" >&5
printf "%s\n" "$isc_cv_have_in_port_t" >&6; }
case "$isc_cv_have_in_port_t" in
no)
printf "%s\n" "#define ISC_PLATFORM_NEEDPORTT 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking type of socklen arg for getsockname()" >&5
printf %s "checking type of socklen arg for getsockname()... " >&6; }
if test ${ntp_cv_getsockname_socklen_type+y}
then :
printf %s "(cached) " >&6
else $as_nop
getsockname_socklen_type_found=no
for getsockname_arg2 in 'struct sockaddr *' 'void *'; do
for ntp_cv_getsockname_socklen_type in 'socklen_t' 'size_t' 'unsigned int' 'int'; do
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
int
main (void)
{
extern
getsockname(int, $getsockname_arg2,
$ntp_cv_getsockname_socklen_type *);
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
getsockname_socklen_type_found=yes ; break 2
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
done
done
case "$getsockname_socklen_type_found" in
no)
ntp_cv_getsockname_socklen_type='socklen_t'
esac
{ getsockname_arg2=; unset getsockname_arg2;}
{ getsockname_socklen_type_found=; unset getsockname_socklen_type_found;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_getsockname_socklen_type" >&5
printf "%s\n" "$ntp_cv_getsockname_socklen_type" >&6; }
printf "%s\n" "#define GETSOCKNAME_SOCKLEN_TYPE $ntp_cv_getsockname_socklen_type" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking struct sockaddr for sa_len" >&5
printf %s "checking struct sockaddr for sa_len... " >&6; }
if test ${isc_cv_platform_havesalen+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
int
main (void)
{
extern struct sockaddr *ps;
return ps->sa_len;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_platform_havesalen=yes
else $as_nop
isc_cv_platform_havesalen=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_platform_havesalen" >&5
printf "%s\n" "$isc_cv_platform_havesalen" >&6; }
case "$isc_cv_platform_havesalen" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVESALEN 1" >>confdefs.h
esac
# Check whether --enable-ipv6 was given.
if test ${enable_ipv6+y}
then :
enableval=$enable_ipv6;
fi
case "$enable_ipv6" in
yes|''|autodetect)
case "$host" in
powerpc-ibm-aix4*)
;;
*)
printf "%s\n" "#define WANT_IPV6 1" >>confdefs.h
;;
esac
;;
no)
;;
esac
case "$host" in
*-*-darwin*)
printf "%s\n" "#define __APPLE_USE_RFC_3542 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 structures" >&5
printf %s "checking for IPv6 structures... " >&6; }
if test ${isc_cv_found_ipv6+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int
main (void)
{
struct sockaddr_in6 sin6;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_found_ipv6=yes
else $as_nop
isc_cv_found_ipv6=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_found_ipv6" >&5
printf "%s\n" "$isc_cv_found_ipv6" >&6; }
#
# See whether IPv6 support is provided via a Kame add-on.
# This is done before other IPv6 linking tests so LIBS is properly set.
#
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Kame IPv6 support" >&5
printf %s "checking for Kame IPv6 support... " >&6; }
# Check whether --with-kame was given.
if test ${with_kame+y}
then :
withval=$with_kame; use_kame="$withval"
else $as_nop
use_kame="no"
fi
case "$use_kame" in
no)
;;
yes)
kame_path=/usr/local/v6
;;
*)
kame_path="$use_kame"
;;
esac
case "$use_kame" in
no)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
;;
*)
if test -f $kame_path/lib/libinet6.a; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $kame_path/lib/libinet6.a" >&5
printf "%s\n" "$kame_path/lib/libinet6.a" >&6; }
LIBS="-L$kame_path/lib -linet6 $LIBS"
else
as_fn_error $? "$kame_path/lib/libinet6.a not found.
Please choose the proper path with the following command:
configure --with-kame=PATH
" "$LINENO" 5
fi
;;
esac
#
# Whether netinet6/in6.h is needed has to be defined in isc/platform.h.
# Including it on Kame-using platforms is very bad, though, because
# Kame uses #error against direct inclusion. So include it on only
# the platform that is otherwise broken without it -- BSD/OS 4.0 through 4.1.
# This is done before the in6_pktinfo check because that's what
# netinet6/in6.h is needed for.
#
case "$host" in
*-bsdi4.[01]*)
printf "%s\n" "#define ISC_PLATFORM_NEEDNETINET6IN6H 1" >>confdefs.h
isc_netinet6in6_hack="#include <netinet6/in6.h>"
;;
*)
isc_netinet6in6_hack=""
;;
esac
#
# This is similar to the netinet6/in6.h issue.
#
case "$host" in
*-sco-sysv*uw*|*-*-sysv*UnixWare*|*-*-sysv*OpenUNIX*)
printf "%s\n" "#define ISC_PLATFORM_FIXIN6ISADDR 1" >>confdefs.h
isc_netinetin6_hack="#include <netinet/in6.h>"
;;
*)
isc_netinetin6_hack=""
;;
esac
case "$isc_cv_found_ipv6" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIPV6 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in6_pktinfo" >&5
printf %s "checking for in6_pktinfo... " >&6; }
if test ${isc_cv_have_in6_pktinfo+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
struct in6_pktinfo xyzzy;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_in6_pktinfo=yes
else $as_nop
isc_cv_have_in6_pktinfo=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_in6_pktinfo" >&5
printf "%s\n" "$isc_cv_have_in6_pktinfo" >&6; }
case "$isc_cv_have_in6_pktinfo" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIN6PKTINFO 1" >>confdefs.h
esac
# HMS: Use HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID instead?
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sockaddr_in6.sin6_scope_id" >&5
printf %s "checking for sockaddr_in6.sin6_scope_id... " >&6; }
if test ${isc_cv_have_sin6_scope_id+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
struct sockaddr_in6 xyzzy;
xyzzy.sin6_scope_id = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_have_sin6_scope_id=yes
else $as_nop
isc_cv_have_sin6_scope_id=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_have_sin6_scope_id" >&5
printf "%s\n" "$isc_cv_have_sin6_scope_id" >&6; }
case "$isc_cv_have_sin6_scope_id" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVESCOPEID 1" >>confdefs.h
esac
esac
# We need this check run even without isc_cv_found_ipv6=yes
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in6addr_any" >&5
printf %s "checking for in6addr_any... " >&6; }
if test ${isc_cv_in6addr_any_links+y}
then :
printf %s "(cached) " >&6
else $as_nop
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_includes_default
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
int
main (void)
{
printf("%x", in6addr_any.s6_addr[15]);
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"
then :
isc_cv_in6addr_any_links=yes
else $as_nop
isc_cv_in6addr_any_links=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext conftest.$ac_ext
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_in6addr_any_links" >&5
printf "%s\n" "$isc_cv_in6addr_any_links" >&6; }
case "$isc_cv_in6addr_any_links" in
no)
printf "%s\n" "#define ISC_PLATFORM_NEEDIN6ADDRANY 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct if_laddrconf" >&5
printf %s "checking for struct if_laddrconf... " >&6; }
if test ${isc_cv_struct_if_laddrconf+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <net/if6.h>
int
main (void)
{
struct if_laddrconf a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_struct_if_laddrconf=yes
else $as_nop
isc_cv_struct_if_laddrconf=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_struct_if_laddrconf" >&5
printf "%s\n" "$isc_cv_struct_if_laddrconf" >&6; }
case "$isc_cv_struct_if_laddrconf" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIF_LADDRCONF 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct if_laddrreq" >&5
printf %s "checking for struct if_laddrreq... " >&6; }
if test ${isc_cv_struct_if_laddrreq+y}
then :
printf %s "(cached) " >&6
else $as_nop
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <sys/types.h>
#include <net/if6.h>
int
main (void)
{
struct if_laddrreq a;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
isc_cv_struct_if_laddrreq=yes
else $as_nop
isc_cv_struct_if_laddrreq=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $isc_cv_struct_if_laddrreq" >&5
printf "%s\n" "$isc_cv_struct_if_laddrreq" >&6; }
case "$isc_cv_struct_if_laddrreq" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIF_LADDRREQ 1" >>confdefs.h
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for multicast IP support" >&5
printf %s "checking for multicast IP support... " >&6; }
if test ${ntp_cv_multicast+y}
then :
printf %s "(cached) " >&6
else $as_nop
ntp_cv_multicast=no
case "$host" in
i386-sequent-sysv4)
;;
*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#ifdef HAVE_NETINET_IN_H
# include <netinet/in.h>
#endif
int
main (void)
{
struct ip_mreq ipmr;
ipmr.imr_interface.s_addr = 0;
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
ntp_cv_multicast=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_multicast" >&5
printf "%s\n" "$ntp_cv_multicast" >&6; }
case "$ntp_cv_multicast" in
yes)
printf "%s\n" "#define MCAST 1" >>confdefs.h
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking arg type needed for setsockopt() IP*_MULTICAST_LOOP" >&5
printf %s "checking arg type needed for setsockopt() IP*_MULTICAST_LOOP... " >&6; }
if test ${ntp_cv_typeof_ip_multicast_loop+y}
then :
printf %s "(cached) " >&6
else $as_nop
case "$host" in
*-*-netbsd*|*-*-*linux*)
ntp_cv_typeof_ip_multicast_loop=u_int
;;
*)
ntp_cv_typeof_ip_multicast_loop=u_char
;;
esac
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ntp_cv_typeof_ip_multicast_loop" >&5
printf "%s\n" "$ntp_cv_typeof_ip_multicast_loop" >&6; }
printf "%s\n" "#define TYPEOF_IP_MULTICAST_LOOP $ntp_cv_typeof_ip_multicast_loop" >>confdefs.h
esac
# Check whether --enable-getifaddrs was given.
if test ${enable_getifaddrs+y}
then :
enableval=$enable_getifaddrs; want_getifaddrs="$enableval"
else $as_nop
want_getifaddrs="yes"
fi
case $want_getifaddrs in
glibc)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: --enable-getifaddrs=glibc is no longer required" >&5
printf "%s\n" "$as_me: WARNING: --enable-getifaddrs=glibc is no longer required" >&2;}
esac
case $want_getifaddrs in
no)
;;
*)
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
ac_fn_c_check_func "$LINENO" "getifaddrs" "ac_cv_func_getifaddrs"
if test "x$ac_cv_func_getifaddrs" = xyes
then :
printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
fi
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
;;
esac
#
# Check for if_nametoindex() for IPv6 scoped addresses support
#
case "$host" in
*-hp-hpux*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing if_nametoindex" >&5
printf %s "checking for library containing if_nametoindex... " >&6; }
if test ${ac_cv_search_if_nametoindex+y}
then :
printf %s "(cached) " >&6
else $as_nop
ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
char if_nametoindex ();
int
main (void)
{
return if_nametoindex ();
;
return 0;
}
_ACEOF
for ac_lib in '' ipv6
do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $ac_func_search_save_LIBS"
fi
if ac_fn_c_try_link "$LINENO"
then :
ac_cv_search_if_nametoindex=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam \
conftest$ac_exeext
if test ${ac_cv_search_if_nametoindex+y}
then :
break
fi
done
if test ${ac_cv_search_if_nametoindex+y}
then :
else $as_nop
ac_cv_search_if_nametoindex=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_if_nametoindex" >&5
printf "%s\n" "$ac_cv_search_if_nametoindex" >&6; }
ac_res=$ac_cv_search_if_nametoindex
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
fi
esac
SAVED_LIBS="$LIBS"
LIBS="$LDADD_LIBNTP $LIBS"
ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
if test "x$ac_cv_func_if_nametoindex" = xyes
then :
printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
fi
LIBS="$SAVED_LIBS"
{ SAVED_LIBS=; unset SAVED_LIBS;}
case "$ac_cv_func_if_nametoindex" in
yes)
printf "%s\n" "#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1" >>confdefs.h
esac
###
# Hacks
# these need work if we're to move libntp under sntp
printf "%s\n" "#define HAVE_NO_NICE 1" >>confdefs.h
printf "%s\n" "#define HAVE_TERMIOS 1" >>confdefs.h
# Checks for library functions.
ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket"
if test "x$ac_cv_func_socket" = xyes
then :
printf "%s\n" "#define HAVE_SOCKET 1" >>confdefs.h
fi
# We may not need have_unity
have_unity=false
# Extract the first word of "ruby", so it can be a program name with args.
set dummy ruby; ac_word=$2
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PATH_RUBY+y}
then :
printf %s "(cached) " >&6
else $as_nop
case $PATH_RUBY in
[\\/]* | ?:[\\/]*)
ac_cv_path_PATH_RUBY="$PATH_RUBY" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PATH_RUBY="$as_dir$ac_word$ac_exec_ext"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
;;
esac
fi
PATH_RUBY=$ac_cv_path_PATH_RUBY
if test -n "$PATH_RUBY"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_RUBY" >&5
printf "%s\n" "$PATH_RUBY" >&6; }
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
printf "%s\n" "no" >&6; }
fi
case "$PATH_RUBY" in
/*)
have_unity=true
;;
*) PATH_RUBY="false"
;;
esac
# We may not need UNITYBUILD_AVAILABLE
if $have_unity; then
UNITYBUILD_AVAILABLE_TRUE=
UNITYBUILD_AVAILABLE_FALSE='#'
else
UNITYBUILD_AVAILABLE_TRUE='#'
UNITYBUILD_AVAILABLE_FALSE=
fi
case "$build" in
$host) cross=0 ;;
*) cross=1 ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we want to enable tests with undiagnosed problems" >&5
printf %s "checking if we want to enable tests with undiagnosed problems... " >&6; }
# Check whether --enable-problem-tests was given.
if test ${enable_problem_tests+y}
then :
enableval=$enable_problem_tests; sntp_ept=$enableval
else $as_nop
sntp_ept=yes
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sntp_ept" >&5
printf "%s\n" "$sntp_ept" >&6; }
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can run test-kodDatabase" >&5
printf %s "checking if we can run test-kodDatabase... " >&6; }
sntp_test_kodDatabase="no"
case "$sntp_ept:$cross:$host" in
no:0:*-apple-darwin12.6.0) ;;
*) sntp_test_kodDatabase="yes" ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sntp_test_kodDatabase" >&5
printf "%s\n" "$sntp_test_kodDatabase" >&6; }
if test x$sntp_test_kodDatabase = xyes; then
BUILD_TEST_KODDATABASE_TRUE=
BUILD_TEST_KODDATABASE_FALSE='#'
else
BUILD_TEST_KODDATABASE_TRUE='#'
BUILD_TEST_KODDATABASE_FALSE=
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can run test-kodFile" >&5
printf %s "checking if we can run test-kodFile... " >&6; }
sntp_test_kodFile="no"
case "$sntp_ept:$cross:$host" in
no:0:*-apple-darwin12.6.0) ;;
*) sntp_test_kodFile="yes" ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sntp_test_kodFile" >&5
printf "%s\n" "$sntp_test_kodFile" >&6; }
if test x$sntp_test_kodFile = xyes; then
BUILD_TEST_KODFILE_TRUE=
BUILD_TEST_KODFILE_FALSE='#'
else
BUILD_TEST_KODFILE_TRUE='#'
BUILD_TEST_KODFILE_FALSE=
fi
# All libraries should be in various LIB_* variables now.
#LIBS=
# Sadly not. There is a gettext() check somewhere, and on Solaris this pulls
# in -lintl -lgen, outside our "scope".
ac_config_files="$ac_config_files Makefile"
ac_config_files="$ac_config_files include/Makefile"
ac_config_files="$ac_config_files scripts/Makefile"
ac_config_files="$ac_config_files tests/Makefile"
ac_config_files="$ac_config_files tests/fileHandlingTest.h"
ac_config_files="$ac_config_files unity/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
# scripts and configure runs, see configure's option --config-cache.
# It is not useful on other systems. If it contains results you don't
# want to keep, you may remove or edit it.
#
# config.status only pays attention to the cache file if you give it
# the --recheck option to rerun configure.
#
# `ac_cv_env_foo' variables (set or unset) will be overridden when
# loading this file, other *unset* `ac_cv_foo' will be assigned the
# following values.
_ACEOF
# The following way of writing the cache mishandles newlines in values,
# but we know of no workaround that is simple, portable, and efficient.
# So, we kill variables containing newlines.
# Ultrix sh set writes to stderr and can't be redirected directly,
# and sets the high bit in the cache file unless we assign to the vars.
(
for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
*_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
*) { eval $ac_var=; unset $ac_var;} ;;
esac ;;
esac
done
(set) 2>&1 |
case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
# `set' does not quote correctly, so add quotes: double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
"s/'/'\\\\''/g;
s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
) |
sed '
/^ac_cv_env_/b end
t clear
:clear
s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
t end
s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
:end' >>confcache
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
case $cache_file in #(
*/* | ?:*)
mv -f confcache "$cache_file"$$ &&
mv -f "$cache_file"$$ "$cache_file" ;; #(
*)
mv -f confcache "$cache_file" ;;
esac
fi
fi
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
printf %s "checking that generated files are newer than configure... " >&6; }
if test -n "$am_sleep_pid"; then
# Hide warnings about reused PIDs.
wait $am_sleep_pid 2>/dev/null
fi
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
printf "%s\n" "done" >&6; }
if test -n "$EXEEXT"; then
am__EXEEXT_TRUE=
am__EXEEXT_FALSE='#'
else
am__EXEEXT_TRUE='#'
am__EXEEXT_FALSE=
fi
if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
as_fn_error $? "conditional \"AMDEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${WANT_CALC_TICKADJ_MS_TRUE}" && test -z "${WANT_CALC_TICKADJ_MS_FALSE}"; then
as_fn_error $? "conditional \"WANT_CALC_TICKADJ_MS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_NTPSWEEP_TRUE}" && test -z "${INSTALL_NTPSWEEP_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_NTPSWEEP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_UPDATE_LEAP_TRUE}" && test -z "${INSTALL_UPDATE_LEAP_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_UPDATE_LEAP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${NTP_CROSSCOMPILE_TRUE}" && test -z "${NTP_CROSSCOMPILE_FALSE}"; then
as_fn_error $? "conditional \"NTP_CROSSCOMPILE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${PTHREADS_TRUE}" && test -z "${PTHREADS_FALSE}"; then
as_fn_error $? "conditional \"PTHREADS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_SNTP_TRUE}" && test -z "${BUILD_SNTP_FALSE}"; then
as_fn_error $? "conditional \"BUILD_SNTP\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${GL_GENERATE_STDNORETURN_H_TRUE}" && test -z "${GL_GENERATE_STDNORETURN_H_FALSE}"; then
as_fn_error $? "conditional \"GL_GENERATE_STDNORETURN_H\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${INSTALL_LIBOPTS_TRUE}" && test -z "${INSTALL_LIBOPTS_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_LIBOPTS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${NEED_LIBOPTS_TRUE}" && test -z "${NEED_LIBOPTS_FALSE}"; then
as_fn_error $? "conditional \"NEED_LIBOPTS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_LIBEVENT_TRUE}" && test -z "${BUILD_LIBEVENT_FALSE}"; then
as_fn_error $? "conditional \"BUILD_LIBEVENT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${UNITYBUILD_AVAILABLE_TRUE}" && test -z "${UNITYBUILD_AVAILABLE_FALSE}"; then
as_fn_error $? "conditional \"UNITYBUILD_AVAILABLE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_TEST_KODDATABASE_TRUE}" && test -z "${BUILD_TEST_KODDATABASE_FALSE}"; then
as_fn_error $? "conditional \"BUILD_TEST_KODDATABASE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${BUILD_TEST_KODFILE_TRUE}" && test -z "${BUILD_TEST_KODFILE_FALSE}"; then
as_fn_error $? "conditional \"BUILD_TEST_KODFILE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
# Compiler output produced by configure, useful for debugging
# configure, is in config.log if it exists.
debug=false
ac_cs_recheck=false
ac_cs_silent=false
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
exec 6>&1
## ----------------------------------- ##
## Main body of $CONFIG_STATUS script. ##
## ----------------------------------- ##
_ASEOF
test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by sntp $as_me 4.2.8p16, which was
+This file was extended by sntp $as_me 4.2.8p17, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
CONFIG_LINKS = $CONFIG_LINKS
CONFIG_COMMANDS = $CONFIG_COMMANDS
$ $0 $@
on `(hostname || uname -n) 2>/dev/null | sed 1q`
"
_ACEOF
case $ac_config_files in *"
"*) set x $ac_config_files; shift; ac_config_files=$*;;
esac
case $ac_config_headers in *"
"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
esac
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
config_commands="$ac_config_commands"
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
\`$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
and actions are specified as TAGs, all are instantiated by default.
Usage: $0 [OPTION]... [TAG]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
do not print progress messages
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
instantiate the configuration header FILE
Configuration files:
$config_files
Configuration headers:
$config_headers
Configuration commands:
$config_commands
Report bugs to <https://bugs.ntp.org/>.
sntp home page: <https://www.ntp.org/>."
_ACEOF
ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-sntp config.status 4.2.8p16
+sntp config.status 4.2.8p17
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
AWK='$AWK'
test -n "\$AWK" || AWK=awk
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
do
case $1 in
--*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
--*=)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=
ac_shift=:
;;
*)
ac_option=$1
ac_optarg=$2
ac_shift=shift
;;
esac
case $ac_option in
# Handling of the options.
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
printf "%s\n" "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
printf "%s\n" "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
--he | --h)
# Conflict between --help and --header
as_fn_error $? "ambiguous option: \`$1'
Try \`$0 --help' for more information.";;
--help | --hel | -h )
printf "%s\n" "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
# This is an error.
-*) as_fn_error $? "unrecognized option: \`$1'
Try \`$0 --help' for more information." ;;
*) as_fn_append ac_config_targets " $1"
ac_need_defaults=false ;;
esac
shift
done
ac_configure_extra_args=
if $ac_cs_silent; then
exec 6>/dev/null
ac_configure_extra_args="$ac_configure_extra_args --silent"
fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
\printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
printf "%s\n" "$ac_log"
} >&5
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
sed_quote_subst='$sed_quote_subst'
double_quote_subst='$double_quote_subst'
delay_variable_subst='$delay_variable_subst'
SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
LTCC='$LTCC'
LTCFLAGS='$LTCFLAGS'
compiler='$compiler_DEFAULT'
# A function that is used when there is no print builtin or printf.
func_fallback_echo ()
{
eval 'cat <<_LTECHO_EOF
\$1
_LTECHO_EOF'
}
# Quote evaled strings.
for var in SED \
GREP \
EGREP \
FGREP \
SHELL \
ECHO \
LD \
PATH_SEPARATOR \
NM \
LN_S \
lt_SP2NL \
lt_NL2SP \
reload_flag \
OBJDUMP \
deplibs_check_method \
file_magic_cmd \
file_magic_glob \
want_nocaseglob \
DLLTOOL \
sharedlib_from_linklib_cmd \
AR \
AR_FLAGS \
archiver_list_spec \
STRIP \
RANLIB \
CC \
CFLAGS \
compiler \
lt_cv_sys_global_symbol_pipe \
lt_cv_sys_global_symbol_to_cdecl \
lt_cv_sys_global_symbol_to_import \
lt_cv_sys_global_symbol_to_c_name_address \
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
lt_cv_nm_interface \
nm_file_list_spec \
lt_cv_truncate_bin \
lt_prog_compiler_no_builtin_flag \
lt_prog_compiler_pic \
lt_prog_compiler_wl \
lt_prog_compiler_static \
lt_cv_prog_compiler_c_o \
need_locks \
MANIFEST_TOOL \
DSYMUTIL \
NMEDIT \
LIPO \
OTOOL \
OTOOL64 \
shrext_cmds \
export_dynamic_flag_spec \
whole_archive_flag_spec \
compiler_needs_object \
with_gnu_ld \
allow_undefined_flag \
no_undefined_flag \
hardcode_libdir_flag_spec \
hardcode_libdir_separator \
exclude_expsyms \
include_expsyms \
file_list_spec \
variables_saved_for_relink \
libname_spec \
library_names_spec \
soname_spec \
install_override_mode \
finish_eval \
old_striplib \
striplib; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
;;
*)
eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
;;
esac
done
# Double-quote double-evaled strings.
for var in reload_cmds \
old_postinstall_cmds \
old_postuninstall_cmds \
old_archive_cmds \
extract_expsyms_cmds \
old_archive_from_new_cmds \
old_archive_from_expsyms_cmds \
archive_cmds \
archive_expsym_cmds \
module_cmds \
module_expsym_cmds \
export_symbols_cmds \
prelink_cmds \
postlink_cmds \
postinstall_cmds \
postuninstall_cmds \
finish_cmds \
sys_lib_search_path_spec \
configure_time_dlsearch_path \
configure_time_lt_sys_library_path; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
;;
*)
eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
;;
esac
done
ac_aux_dir='$ac_aux_dir'
# See if we are running on zsh, and set the options that allow our
# commands through without removal of \ escapes INIT.
if test -n "\${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
PACKAGE='$PACKAGE'
VERSION='$VERSION'
RM='$RM'
ofile='$ofile'
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
do
case $ac_config_target in
"config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"libopts/Makefile") CONFIG_FILES="$CONFIG_FILES libopts/Makefile" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;;
"scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tests/fileHandlingTest.h") CONFIG_FILES="$CONFIG_FILES tests/fileHandlingTest.h" ;;
"unity/Makefile") CONFIG_FILES="$CONFIG_FILES unity/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# If the user did not use the arguments to specify the items to instantiate,
# then the envvar interface is used. Set only those that are not.
# We use the long form for the default assignment because of an extremely
# bizarre bug on SunOS 4.1.3.
if $ac_need_defaults; then
test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
# simply because there is no reason against having it here, and in addition,
# creating and moving files from /tmp can sometimes cause problems.
# Hook for its removal unless debugging.
# Note that there is a small window in which the directory will not be cleaned:
# after its creation but before its name has been assigned to `$tmp'.
$debug ||
{
tmp= ac_tmp=
trap 'exit_status=$?
: "${ac_tmp:=$tmp}"
{ test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
' 0
trap 'as_fn_exit 1' 1 2 13 15
}
# Create a (secure) tmp directory for tmp files.
{
tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
test -d "$tmp"
} ||
{
tmp=./conf$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
ac_tmp=$tmp
# Set up the scripts for CONFIG_FILES section.
# No need to generate them if there are no CONFIG_FILES.
# This happens for instance with `./config.status config.h'.
if test -n "$CONFIG_FILES"; then
ac_cr=`echo X | tr X '\015'`
# On cygwin, bash can eat \r inside `` if the user requested igncr.
# But we know of no other shell where ac_cr would be empty at this
# point, so we can use a bashism as a fallback.
if test "x$ac_cr" = x; then
eval ac_cr=\$\'\\r\'
fi
ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
ac_cs_awk_cr='\\r'
else
ac_cs_awk_cr=$ac_cr
fi
echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
{
echo "cat >conf$$subs.awk <<_ACEOF" &&
echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
rm -f conf$$subs.sh
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
h
s/^/S["/; s/!.*/"]=/
p
g
s/^[^!]*!//
:repl
t repl
s/'"$ac_delim"'$//
t delim
:nl
h
s/\(.\{148\}\)..*/\1/
t more1
s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
p
n
b repl
:more1
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t nl
:delim
h
s/\(.\{148\}\)..*/\1/
t more2
s/["\\]/\\&/g; s/^/"/; s/$/"/
p
b
:more2
s/["\\]/\\&/g; s/^/"/; s/$/"\\/
p
g
s/.\{148\}//
t delim
' <conf$$subs.awk | sed '
/^[^""]/{
N
s/\n//
}
' >>$CONFIG_STATUS || ac_write_fail=1
rm -f conf$$subs.awk
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
FS = ""
}
{
line = $ 0
nfields = split(line, field, "@")
substed = 0
len = length(field[1])
for (i = 2; i < nfields; i++) {
key = field[i]
keylen = length(key)
if (S_is_set[key]) {
value = S[key]
line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
len += length(value) + length(field[++i])
substed = 1
} else
len += 1 + keylen
}
print line
}
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
cat
fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
|| as_fn_error $? "could not setup config files machinery" "$LINENO" 5
_ACEOF
# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
h
s///
s/^/:/
s/[ ]*$/:/
s/:\$(srcdir):/:/g
s/:\${srcdir}:/:/g
s/:@srcdir@:/:/g
s/^:*//
s/:*$//
x
s/\(=[ ]*\).*/\1/
G
s/\n//
s/^[^=]*=[ ]*$//
}'
fi
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
# No need to generate them if there are no CONFIG_HEADERS.
# This happens for instance with `./config.status Makefile'.
if test -n "$CONFIG_HEADERS"; then
cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
BEGIN {
_ACEOF
# Transform confdefs.h into an awk script `defines.awk', embedded as
# here-document in config.status, that substitutes the proper values into
# config.h.in to produce config.h.
# Create a delimiter string that does not exist in confdefs.h, to ease
# handling of long lines.
ac_delim='%!_!# '
for ac_last_try in false false :; do
ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
if test -z "$ac_tt"; then
break
elif $ac_last_try; then
as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
else
ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
fi
done
# For the awk script, D is an array of macro values keyed by name,
# likewise P contains macro parameters if any. Preserve backslash
# newline sequences.
ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
sed -n '
s/.\{148\}/&'"$ac_delim"'/g
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*/ /
t def
d
:def
s/\\$//
t bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3"/p
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
d
:bsnl
s/["\\]/\\&/g
s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
D["\1"]=" \3\\\\\\n"\\/p
t cont
s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
t cont
d
:cont
n
s/.\{148\}/&'"$ac_delim"'/g
t clear
:clear
s/\\$//
t bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/"/p
d
:bsnlc
s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
b cont
' <confdefs.h | sed '
s/'"$ac_delim"'/"\\\
"/g' >>$CONFIG_STATUS || ac_write_fail=1
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
line = \$ 0
split(line, arg, " ")
if (arg[1] == "#") {
defundef = arg[2]
mac1 = arg[3]
} else {
defundef = substr(arg[1], 2)
mac1 = arg[2]
}
split(mac1, mac2, "(") #)
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
# Preserve the white space surrounding the "#".
print prefix "define", macro P[macro] D[macro]
next
} else {
# Replace #undef with comments. This is necessary, for example,
# in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
if (defundef == "undef") {
print "/*", prefix defundef, macro, "*/"
next
}
}
}
{ print }
_ACAWK
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
shift
for ac_tag
do
case $ac_tag in
:[FHLC]) ac_mode=$ac_tag; continue;;
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
:L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
ac_save_IFS=$IFS
IFS=:
set x $ac_tag
IFS=$ac_save_IFS
shift
ac_file=$1
shift
case $ac_mode in
:L) ac_source=$1;;
:[FH])
ac_file_inputs=
for ac_f
do
case $ac_f in
-) ac_f="$ac_tmp/stdin";;
*) # Look for the file first in the build tree, then in the source tree
# (if the path is not absolute). The absolute path cannot be DOS-style,
# because $ac_f cannot contain `:'.
test -f "$ac_f" ||
case $ac_f in
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
esac
case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
printf "%s\n" "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
ac_sed_conf_input=`printf "%s\n" "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
case $ac_tag in
*:-:* | *:-) cat >"$ac_tmp/stdin" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
ac_dir=`$as_dirname -- "$ac_file" ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
case $ac_mode in
:F)
#
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
ac_MKDIR_P=$MKDIR_P
case $MKDIR_P in
[\\/$]* | ?:[\\/]* ) ;;
*/*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
/@localedir@/p
/@mandir@/p'
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
s&@infodir@&$infodir&g
s&@localedir@&$localedir&g
s&@mandir@&$mandir&g
s&\\\${datarootdir}&$datarootdir&g' ;;
esac
_ACEOF
# Neutralize VPATH when `$srcdir' = `.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
s&@top_builddir@&$ac_top_builddir_sub&;t t
s&@top_build_prefix@&$ac_top_build_prefix&;t t
s&@srcdir@&$ac_srcdir&;t t
s&@abs_srcdir@&$ac_abs_srcdir&;t t
s&@top_srcdir@&$ac_top_srcdir&;t t
s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
"
eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
>$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
case $ac_file in
-) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
*) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
esac \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
;;
:H)
#
# CONFIG_HEADER
#
if test x"$ac_file" != x-; then
{
printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
printf "%s\n" "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
# Compute "$ac_file"'s index in $config_headers.
_am_arg="$ac_file"
_am_stamp_count=1
for _am_header in $config_headers :; do
case $_am_header in
$_am_arg | $_am_arg:* )
break ;;
* )
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac
done
echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$_am_arg" : 'X\(//\)[^/]' \| \
X"$_am_arg" : 'X\(//\)$' \| \
X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`/stamp-h$_am_stamp_count
;;
:C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
;;
esac
case $ac_file$ac_mode in
"depfiles":C) test x"$AMDEP_TRUE" != x"" || {
# Older Autoconf quotes --file arguments for eval, but not when files
# are listed without --file. Let's play safe and only enable the eval
# if we detect the quoting.
# TODO: see whether this extra hack can be removed once we start
# requiring Autoconf 2.70 or later.
case $CONFIG_FILES in #(
*\'*) :
eval set x "$CONFIG_FILES" ;; #(
*) :
set x $CONFIG_FILES ;; #(
*) :
;;
esac
shift
# Used to flag and report bootstrapping failures.
am_rc=0
for am_mf
do
# Strip MF so we end up with the name of the file.
am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
# Check whether this is an Automake generated Makefile which includes
# dependency-tracking related rules and includes.
# Grep'ing the whole file directly is not great: AIX grep has a line
# limit of 2048, but all sed's we know have understand at least 4000.
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|| continue
am_dirpart=`$as_dirname -- "$am_mf" ||
$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$am_mf" : 'X\(//\)[^/]' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$am_mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
am_filepart=`$as_basename -- "$am_mf" ||
$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
X"$am_mf" : 'X\(//\)$' \| \
X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$am_mf" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
{ echo "$as_me:$LINENO: cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles" >&5
(cd "$am_dirpart" \
&& sed -e '/# am--include-marker/d' "$am_filepart" \
| $MAKE -f - am--depfiles) >&5 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } || am_rc=$?
done
if test $am_rc -ne 0; then
{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider
re-running the configure script with MAKE=\"gmake\" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See \`config.log' for more details" "$LINENO" 5; }
fi
{ am_dirpart=; unset am_dirpart;}
{ am_filepart=; unset am_filepart;}
{ am_mf=; unset am_mf;}
{ am_rc=; unset am_rc;}
rm -f conftest-deps.mk
}
;;
"libtool":C)
# See if we are running on zsh, and set the options that allow our
# commands through without removal of \ escapes.
if test -n "${ZSH_VERSION+set}"; then
setopt NO_GLOB_SUBST
fi
cfgfile=${ofile}T
trap "$RM \"$cfgfile\"; exit 1" 1 2 15
$RM "$cfgfile"
cat <<_LT_EOF >> "$cfgfile"
#! $SHELL
# Generated automatically by $as_me ($PACKAGE) $VERSION
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
# Provide generalized library-building support services.
# Written by Gordon Matzigkeit, 1996
# Copyright (C) 2014 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions. There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# GNU Libtool is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of of the License, or
# (at your option) any later version.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program or library that is built
# using GNU Libtool, you may include this file under the same
# distribution terms that you use for the rest of that program.
#
# GNU Libtool is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# The names of the tagged configurations supported by this script.
available_tags=''
# Configured defaults for sys_lib_dlsearch_path munging.
: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
# ### BEGIN LIBTOOL CONFIG
# A sed program that does not truncate output.
SED=$lt_SED
# Sed that helps us avoid accidentally triggering echo(1) options like -n.
Xsed="\$SED -e 1s/^X//"
# A grep program that handles long lines.
GREP=$lt_GREP
# An ERE matcher.
EGREP=$lt_EGREP
# A literal string matcher.
FGREP=$lt_FGREP
# Shell to use when invoking shell scripts.
SHELL=$lt_SHELL
# An echo program that protects backslashes.
ECHO=$lt_ECHO
# Whether or not to build shared libraries.
build_libtool_libs=$enable_shared
# Which release of libtool.m4 was used?
macro_version=$macro_version
macro_revision=$macro_revision
# Whether or not to build static libraries.
build_old_libs=$enable_static
# What type of objects to build.
pic_mode=$pic_mode
# Whether or not to optimize for fast installation.
fast_install=$enable_fast_install
# Shared archive member basename,for filename based shared library versioning on AIX.
shared_archive_member_spec=$shared_archive_member_spec
# The PATH separator for the build system.
PATH_SEPARATOR=$lt_PATH_SEPARATOR
# The host system.
host_alias=$host_alias
host=$host
host_os=$host_os
# The build system.
build_alias=$build_alias
build=$build
build_os=$build_os
# A BSD- or MS-compatible name lister.
NM=$lt_NM
# Whether we need soft or hard links.
LN_S=$lt_LN_S
# What is the maximum length of a command?
max_cmd_len=$max_cmd_len
# Object file suffix (normally "o").
objext=$ac_objext
# Executable file suffix (normally "").
exeext=$exeext
# whether the shell understands "unset".
lt_unset=$lt_unset
# turn spaces into newlines.
SP2NL=$lt_lt_SP2NL
# turn newlines into spaces.
NL2SP=$lt_lt_NL2SP
# convert \$build file names to \$host format.
to_host_file_cmd=$lt_cv_to_host_file_cmd
# convert \$build files to toolchain format.
to_tool_file_cmd=$lt_cv_to_tool_file_cmd
# An object symbol dumper.
OBJDUMP=$lt_OBJDUMP
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
# Command to use when deplibs_check_method = "file_magic".
file_magic_cmd=$lt_file_magic_cmd
# How to find potential files when deplibs_check_method = "file_magic".
file_magic_glob=$lt_file_magic_glob
# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
want_nocaseglob=$lt_want_nocaseglob
# DLL creation program.
DLLTOOL=$lt_DLLTOOL
# Command to associate shared and link libraries.
sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
# The archiver.
AR=$lt_AR
# Flags to create an archive.
AR_FLAGS=$lt_AR_FLAGS
# How to feed a file listing to the archiver.
archiver_list_spec=$lt_archiver_list_spec
# A symbol stripping program.
STRIP=$lt_STRIP
# Commands used to install an old-style archive.
RANLIB=$lt_RANLIB
old_postinstall_cmds=$lt_old_postinstall_cmds
old_postuninstall_cmds=$lt_old_postuninstall_cmds
# Whether to use a lock for old archive extraction.
lock_old_archive_extraction=$lock_old_archive_extraction
# A C compiler.
LTCC=$lt_CC
# LTCC compiler flags.
LTCFLAGS=$lt_CFLAGS
# Take the output of nm and produce a listing of raw symbols and C names.
global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
# Transform the output of nm in a proper C declaration.
global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
# Transform the output of nm into a list of symbols to manually relocate.
global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
# Transform the output of nm in a C name address pair.
global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
# Transform the output of nm in a C name address pair when lib prefix is needed.
global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
# The name lister interface.
nm_interface=$lt_lt_cv_nm_interface
# Specify filename containing input files for \$NM.
nm_file_list_spec=$lt_nm_file_list_spec
# The root where to search for dependent libraries,and where our libraries should be installed.
lt_sysroot=$lt_sysroot
# Command to truncate a binary pipe.
lt_truncate_bin=$lt_lt_cv_truncate_bin
# The name of the directory that contains temporary libtool files.
objdir=$objdir
# Used to examine libraries when file_magic_cmd begins with "file".
MAGIC_CMD=$MAGIC_CMD
# Must we lock files when doing compilation?
need_locks=$lt_need_locks
# Manifest tool.
MANIFEST_TOOL=$lt_MANIFEST_TOOL
# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
DSYMUTIL=$lt_DSYMUTIL
# Tool to change global to local symbols on Mac OS X.
NMEDIT=$lt_NMEDIT
# Tool to manipulate fat objects and archives on Mac OS X.
LIPO=$lt_LIPO
# ldd/readelf like tool for Mach-O binaries on Mac OS X.
OTOOL=$lt_OTOOL
# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
OTOOL64=$lt_OTOOL64
# Old archive suffix (normally "a").
libext=$libext
# Shared library suffix (normally ".so").
shrext_cmds=$lt_shrext_cmds
# The commands to extract the exported symbol list from a shared archive.
extract_expsyms_cmds=$lt_extract_expsyms_cmds
# Variables whose values should be saved in libtool wrapper scripts and
# restored at link time.
variables_saved_for_relink=$lt_variables_saved_for_relink
# Do we need the "lib" prefix for modules?
need_lib_prefix=$need_lib_prefix
# Do we need a version for libraries?
need_version=$need_version
# Library versioning type.
version_type=$version_type
# Shared library runtime path variable.
runpath_var=$runpath_var
# Shared library path variable.
shlibpath_var=$shlibpath_var
# Is shlibpath searched before the hard-coded library search path?
shlibpath_overrides_runpath=$shlibpath_overrides_runpath
# Format of library name prefix.
libname_spec=$lt_libname_spec
# List of archive names. First name is the real one, the rest are links.
# The last name is the one that the linker finds with -lNAME
library_names_spec=$lt_library_names_spec
# The coded name of the library, if different from the real name.
soname_spec=$lt_soname_spec
# Permission mode override for installation of shared libraries.
install_override_mode=$lt_install_override_mode
# Command to use after installation of a shared archive.
postinstall_cmds=$lt_postinstall_cmds
# Command to use after uninstallation of a shared archive.
postuninstall_cmds=$lt_postuninstall_cmds
# Commands used to finish a libtool library installation in a directory.
finish_cmds=$lt_finish_cmds
# As "finish_cmds", except a single script fragment to be evaled but
# not shown.
finish_eval=$lt_finish_eval
# Whether we should hardcode library paths into libraries.
hardcode_into_libs=$hardcode_into_libs
# Compile-time system search path for libraries.
sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Detected run-time system search path for libraries.
sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
# Whether dlopen is supported.
dlopen_support=$enable_dlopen
# Whether dlopen of programs is supported.
dlopen_self=$enable_dlopen_self
# Whether dlopen of statically linked programs is supported.
dlopen_self_static=$enable_dlopen_self_static
# Commands to strip libraries.
old_striplib=$lt_old_striplib
striplib=$lt_striplib
# The linker used to build libraries.
LD=$lt_LD
# How to create reloadable object files.
reload_flag=$lt_reload_flag
reload_cmds=$lt_reload_cmds
# Commands used to build an old-style archive.
old_archive_cmds=$lt_old_archive_cmds
# A language specific compiler.
CC=$lt_compiler
# Is the compiler the GNU compiler?
with_gcc=$GCC
# Compiler flag to turn off builtin functions.
no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
# Additional compiler flags for building library objects.
pic_flag=$lt_lt_prog_compiler_pic
# How to pass a linker flag through the compiler.
wl=$lt_lt_prog_compiler_wl
# Compiler flag to prevent dynamic linking.
link_static_flag=$lt_lt_prog_compiler_static
# Does compiler simultaneously support -c and -o options?
compiler_c_o=$lt_lt_cv_prog_compiler_c_o
# Whether or not to add -lc for building shared libraries.
build_libtool_need_lc=$archive_cmds_need_lc
# Whether or not to disallow shared libs when runtime libs are static.
allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
# Compiler flag to allow reflexive dlopens.
export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
# Compiler flag to generate shared objects directly from archives.
whole_archive_flag_spec=$lt_whole_archive_flag_spec
# Whether the compiler copes with passing no objects directly.
compiler_needs_object=$lt_compiler_needs_object
# Create an old-style archive from a shared archive.
old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
# Create a temporary old-style archive to link instead of a shared archive.
old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
# Commands used to build a shared archive.
archive_cmds=$lt_archive_cmds
archive_expsym_cmds=$lt_archive_expsym_cmds
# Commands used to build a loadable module if different from building
# a shared archive.
module_cmds=$lt_module_cmds
module_expsym_cmds=$lt_module_expsym_cmds
# Whether we are building with GNU ld or not.
with_gnu_ld=$lt_with_gnu_ld
# Flag that allows shared libraries with undefined symbols to be built.
allow_undefined_flag=$lt_allow_undefined_flag
# Flag that enforces no undefined symbols.
no_undefined_flag=$lt_no_undefined_flag
# Flag to hardcode \$libdir into a binary during linking.
# This must work even if \$libdir does not exist
hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
# Whether we need a single "-rpath" flag with a separated argument.
hardcode_libdir_separator=$lt_hardcode_libdir_separator
# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
# DIR into the resulting binary.
hardcode_direct=$hardcode_direct
# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
# DIR into the resulting binary and the resulting library dependency is
# "absolute",i.e impossible to change by setting \$shlibpath_var if the
# library is relocated.
hardcode_direct_absolute=$hardcode_direct_absolute
# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
# into the resulting binary.
hardcode_minus_L=$hardcode_minus_L
# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
# into the resulting binary.
hardcode_shlibpath_var=$hardcode_shlibpath_var
# Set to "yes" if building a shared library automatically hardcodes DIR
# into the library and all subsequent libraries and executables linked
# against it.
hardcode_automatic=$hardcode_automatic
# Set to yes if linker adds runtime paths of dependent libraries
# to runtime path list.
inherit_rpath=$inherit_rpath
# Whether libtool must link a program against all its dependency libraries.
link_all_deplibs=$link_all_deplibs
# Set to "yes" if exported symbols are required.
always_export_symbols=$always_export_symbols
# The commands to list exported symbols.
export_symbols_cmds=$lt_export_symbols_cmds
# Symbols that should not be listed in the preloaded symbols.
exclude_expsyms=$lt_exclude_expsyms
# Symbols that must always be exported.
include_expsyms=$lt_include_expsyms
# Commands necessary for linking programs (against libraries) with templates.
prelink_cmds=$lt_prelink_cmds
# Commands necessary for finishing linking programs.
postlink_cmds=$lt_postlink_cmds
# Specify filename containing input files.
file_list_spec=$lt_file_list_spec
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action
# ### END LIBTOOL CONFIG
_LT_EOF
cat <<'_LT_EOF' >> "$cfgfile"
# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
# func_munge_path_list VARIABLE PATH
# -----------------------------------
# VARIABLE is name of variable containing _space_ separated list of
# directories to be munged by the contents of PATH, which is string
# having a format:
# "DIR[:DIR]:"
# string "DIR[ DIR]" will be prepended to VARIABLE
# ":DIR[:DIR]"
# string "DIR[ DIR]" will be appended to VARIABLE
# "DIRP[:DIRP]::[DIRA:]DIRA"
# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
# "DIRA[ DIRA]" will be appended to VARIABLE
# "DIR[:DIR]"
# VARIABLE will be replaced by "DIR[ DIR]"
func_munge_path_list ()
{
case x$2 in
x)
;;
*:)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
;;
x:*)
eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
;;
*::*)
eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
;;
*)
eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
;;
esac
}
# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
func_cc_basename ()
{
for cc_temp in $*""; do
case $cc_temp in
compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
\-*) ;;
*) break;;
esac
done
func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
}
# ### END FUNCTIONS SHARED WITH CONFIGURE
_LT_EOF
case $host_os in
aix3*)
cat <<\_LT_EOF >> "$cfgfile"
# AIX sometimes has problems with the GCC collect2 program. For some
# reason, if we set the COLLECT_NAMES environment variable, the problems
# vanish in a puff of smoke.
if test set != "${COLLECT_NAMES+set}"; then
COLLECT_NAMES=
export COLLECT_NAMES
fi
_LT_EOF
;;
esac
ltmain=$ac_aux_dir/ltmain.sh
# We use sed instead of cat because bash on DJGPP gets confused if
# if finds mixed CR/LF and LF-only lines. Since sed operates in
# text mode, it properly converts lines to CR/LF. This bash problem
# is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" ||
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
;;
esac
done # for ac_tag
as_fn_exit 0
_ACEOF
ac_clean_files=$ac_clean_files_save
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
# Unfortunately, on DOS this fails, as config.log is still kept open
# by configure, so config.status won't be able to write to it; its
# output is simply discarded. So we exec the FD to /dev/null,
# effectively closing config.log, so it can be properly (re)opened and
# appended to by config.status. When coming back to configure, we
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
$SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
#
# CONFIG_SUBDIRS section.
#
if test "$no_recursion" != yes; then
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
# so they do not pile up.
ac_sub_configure_args=
ac_prev=
eval "set x $ac_configure_args"
shift
for ac_arg
do
if test -n "$ac_prev"; then
ac_prev=
continue
fi
case $ac_arg in
-cache-file | --cache-file | --cache-fil | --cache-fi \
| --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
ac_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
| --c=*)
;;
--config-cache | -C)
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ac_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ac_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
;;
--disable-option-checking)
;;
*)
case $ac_arg in
*\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
esac
done
# Always prepend --prefix to ensure using the same prefix
# in subdir configurations.
ac_arg="--prefix=$prefix"
case $ac_arg in
*\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
# Pass --silent
if test "$silent" = yes; then
ac_sub_configure_args="--silent $ac_sub_configure_args"
fi
# Always prepend --disable-option-checking to silence warnings, since
# different subdirs can have different --enable and --with options.
ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
ac_popdir=`pwd`
for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
# Do not complain, so a configure script can configure whichever
# parts of a large source tree are present.
test -d "$srcdir/$ac_dir" || continue
ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
printf "%s\n" "$ac_msg" >&6
as_dir="$ac_dir"; as_fn_mkdir_p
ac_builddir=.
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
esac ;;
esac
ac_abs_top_builddir=$ac_pwd
ac_abs_builddir=$ac_pwd$ac_dir_suffix
# for backward compatibility:
ac_top_builddir=$ac_top_build_prefix
case $srcdir in
.) # We are building in place.
ac_srcdir=.
ac_top_srcdir=$ac_top_builddir_sub
ac_abs_top_srcdir=$ac_pwd ;;
[\\/]* | ?:[\\/]* ) # Absolute name.
ac_srcdir=$srcdir$ac_dir_suffix;
ac_top_srcdir=$srcdir
ac_abs_top_srcdir=$srcdir ;;
*) # Relative name.
ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_build_prefix$srcdir
ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
esac
ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
cd "$ac_dir"
# Check for configure.gnu first; this name is used for a wrapper for
# Metaconfig's "Configure" on case-insensitive file systems.
if test -f "$ac_srcdir/configure.gnu"; then
ac_sub_configure=$ac_srcdir/configure.gnu
elif test -f "$ac_srcdir/configure"; then
ac_sub_configure=$ac_srcdir/configure
else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
ac_sub_configure=
fi
# The recursion is here.
if test -n "$ac_sub_configure"; then
# Make the cache file name correct relative to the subdirectory.
case $cache_file in
[\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
*) # Relative name.
ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
esac
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
# The eval makes quoting arguments work.
eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
--cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
fi
cd "$ac_popdir"
done
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
diff --git a/contrib/ntp/sntp/crypto.c b/contrib/ntp/sntp/crypto.c
index 5456c092aff8..7807ccc00b03 100644
--- a/contrib/ntp/sntp/crypto.c
+++ b/contrib/ntp/sntp/crypto.c
@@ -1,335 +1,330 @@
/*
* HMS: we need to test:
* - OpenSSL versions, if we are building with them
* - our versions
*
* We may need to test with(out) OPENSSL separately.
*/
#include <config.h>
#include "crypto.h"
#include <ctype.h>
#include "isc/string.h"
-#include "ntp_md5.h"
-
-#ifndef EVP_MAX_MD_SIZE
-# define EVP_MAX_MD_SIZE 32
-#endif
struct key *key_ptr;
size_t key_cnt = 0;
typedef struct key Key_T;
static u_int
compute_mac(
u_char digest[EVP_MAX_MD_SIZE],
char const * macname,
void const * pkt_data,
u_int pkt_size,
void const * key_data,
u_int key_size
)
{
u_int len = 0;
#if defined(OPENSSL) && defined(ENABLE_CMAC)
size_t slen = 0;
#endif
int key_type;
INIT_SSL();
key_type = keytype_from_text(macname, NULL);
#if defined(OPENSSL) && defined(ENABLE_CMAC)
/* Check if CMAC key type specific code required */
if (key_type == NID_cmac) {
CMAC_CTX * ctx = NULL;
u_char keybuf[AES_128_KEY_SIZE];
/* adjust key size (zero padded buffer) if necessary */
if (AES_128_KEY_SIZE > key_size) {
memcpy(keybuf, key_data, key_size);
memset((keybuf + key_size), 0,
(AES_128_KEY_SIZE - key_size));
key_data = keybuf;
}
if (!(ctx = CMAC_CTX_new())) {
msyslog(LOG_ERR, "make_mac: CMAC %s CTX new failed.", CMAC);
}
else if (!CMAC_Init(ctx, key_data, AES_128_KEY_SIZE,
EVP_aes_128_cbc(), NULL)) {
msyslog(LOG_ERR, "make_mac: CMAC %s Init failed.", CMAC);
}
else if (!CMAC_Update(ctx, pkt_data, (size_t)pkt_size)) {
msyslog(LOG_ERR, "make_mac: CMAC %s Update failed.", CMAC);
}
else if (!CMAC_Final(ctx, digest, &slen)) {
msyslog(LOG_ERR, "make_mac: CMAC %s Final failed.", CMAC);
slen = 0;
}
len = (u_int)slen;
if (ctx)
CMAC_CTX_free(ctx);
/* Test our AES-128-CMAC implementation */
} else /* MD5 MAC handling */
#endif
{
EVP_MD_CTX * ctx;
if (!(ctx = EVP_MD_CTX_new())) {
msyslog(LOG_ERR, "make_mac: MAC %s Digest CTX new failed.",
macname);
goto mac_fail;
}
#ifdef OPENSSL /* OpenSSL 1 supports return codes 0 fail, 1 okay */
# ifdef EVP_MD_CTX_FLAG_NON_FIPS_ALLOW
EVP_MD_CTX_set_flags(ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW);
# endif
/* [Bug 3457] DON'T use plain EVP_DigestInit! It would
* kill the flags! */
if (!EVP_DigestInit_ex(ctx, EVP_get_digestbynid(key_type), NULL)) {
msyslog(LOG_ERR, "make_mac: MAC %s Digest Init failed.",
macname);
goto mac_fail;
}
if (!EVP_DigestUpdate(ctx, key_data, key_size)) {
msyslog(LOG_ERR, "make_mac: MAC %s Digest Update key failed.",
macname);
goto mac_fail;
}
if (!EVP_DigestUpdate(ctx, pkt_data, pkt_size)) {
msyslog(LOG_ERR, "make_mac: MAC %s Digest Update data failed.",
macname);
goto mac_fail;
}
if (!EVP_DigestFinal(ctx, digest, &len)) {
msyslog(LOG_ERR, "make_mac: MAC %s Digest Final failed.",
macname);
len = 0;
}
#else /* !OPENSSL */
(void)key_type; /* unused, so try to prevent compiler from croaks */
if (!EVP_DigestInit(ctx, EVP_get_digestbynid(key_type))) {
msyslog(LOG_ERR, "make_mac: MAC MD5 Digest Init failed.");
goto mac_fail;
}
EVP_DigestUpdate(ctx, key_data, key_size);
EVP_DigestUpdate(ctx, pkt_data, pkt_size);
EVP_DigestFinal(ctx, digest, &len);
#endif
mac_fail:
EVP_MD_CTX_free(ctx);
}
return len;
}
int
make_mac(
const void * pkt_data,
int pkt_size,
int mac_size,
Key_T const * cmp_key,
void * digest
)
{
u_int len;
u_char dbuf[EVP_MAX_MD_SIZE];
if (cmp_key->key_len > 64 || mac_size <= 0)
return 0;
if (pkt_size % 4 != 0)
return 0;
len = compute_mac(dbuf, cmp_key->typen,
pkt_data, (u_int)pkt_size,
cmp_key->key_seq, (u_int)cmp_key->key_len);
if (len) {
if (len > (u_int)mac_size)
len = (u_int)mac_size;
memcpy(digest, dbuf, len);
}
return (int)len;
}
/* Generates a md5 digest of the key specified in keyid concatenated with the
* ntp packet (exluding the MAC) and compares this digest to the digest in
* the packet's MAC. If they're equal this function returns 1 (packet is
* authentic) or else 0 (not authentic).
*/
int
auth_md5(
void const * pkt_data,
int pkt_size,
int mac_size,
Key_T const * cmp_key
)
{
u_int len = 0;
u_char const * pkt_ptr = pkt_data;
u_char dbuf[EVP_MAX_MD_SIZE];
if (mac_size <= 0 || (size_t)mac_size > sizeof(dbuf))
return FALSE;
len = compute_mac(dbuf, cmp_key->typen,
pkt_ptr, (u_int)pkt_size,
cmp_key->key_seq, (u_int)cmp_key->key_len);
pkt_ptr += pkt_size + 4;
if (len > (u_int)mac_size)
len = (u_int)mac_size;
/* isc_tsmemcmp will be better when its easy to link with. sntp
* is a 1-shot program, so snooping for timing attacks is
* Harder.
*/
return ((u_int)mac_size == len) && !memcmp(dbuf, pkt_ptr, len);
}
static int
hex_val(
unsigned char x
)
{
int val;
if ('0' <= x && x <= '9')
val = x - '0';
else if ('a' <= x && x <= 'f')
val = x - 'a' + 0xa;
else if ('A' <= x && x <= 'F')
val = x - 'A' + 0xA;
else
val = -1;
return val;
}
/* Load keys from the specified keyfile into the key structures.
* Returns -1 if the reading failed, otherwise it returns the
* number of keys it read
*/
int
auth_init(
const char *keyfile,
struct key **keys
)
{
FILE *keyf = fopen(keyfile, "r");
struct key *prev = NULL;
int scan_cnt, line_cnt = 1;
char kbuf[200];
char keystring[129];
/* HMS: Is it OK to do this later, after we know we have a key file? */
INIT_SSL();
if (keyf == NULL) {
if (debug)
printf("sntp auth_init: Couldn't open key file %s for reading!\n", keyfile);
return -1;
}
if (feof(keyf)) {
if (debug)
printf("sntp auth_init: Key file %s is empty!\n", keyfile);
fclose(keyf);
return -1;
}
key_cnt = 0;
while (!feof(keyf)) {
char * octothorpe;
struct key *act;
int goodline = 0;
if (NULL == fgets(kbuf, sizeof(kbuf), keyf))
continue;
kbuf[sizeof(kbuf) - 1] = '\0';
octothorpe = strchr(kbuf, '#');
if (octothorpe)
*octothorpe = '\0';
act = emalloc(sizeof(*act));
/* keep width 15 = sizeof struct key.typen - 1 synced */
scan_cnt = sscanf(kbuf, "%d %15s %128s",
&act->key_id, act->typen, keystring);
if (scan_cnt == 3) {
int len = strlen(keystring);
goodline = 1; /* assume best for now */
if (len <= 20) {
act->key_len = len;
memcpy(act->key_seq, keystring, len + 1);
} else if ((len & 1) != 0) {
goodline = 0; /* it's bad */
} else {
int j;
act->key_len = len >> 1;
for (j = 0; j < len; j+=2) {
int val;
val = (hex_val(keystring[j]) << 4) |
hex_val(keystring[j+1]);
if (val < 0) {
goodline = 0; /* it's bad */
break;
}
act->key_seq[j>>1] = (char)val;
}
}
act->typei = keytype_from_text(act->typen, NULL);
if (0 == act->typei) {
printf("%s: line %d: key %d, %s not supported - ignoring\n",
keyfile, line_cnt,
act->key_id, act->typen);
goodline = 0; /* it's bad */
}
}
if (goodline) {
act->next = NULL;
if (NULL == prev)
*keys = act;
else
prev->next = act;
prev = act;
key_cnt++;
} else {
if (debug) {
printf("auth_init: scanf %d items, skipping line %d.",
scan_cnt, line_cnt);
}
free(act);
}
line_cnt++;
}
fclose(keyf);
key_ptr = *keys;
return key_cnt;
}
/* Looks for the key with keyid key_id and sets the d_key pointer to the
* address of the key. If no matching key is found the pointer is not touched.
*/
void
get_key(
int key_id,
struct key **d_key
)
{
struct key *itr_key;
if (key_cnt == 0)
return;
for (itr_key = key_ptr; itr_key; itr_key = itr_key->next) {
if (itr_key->key_id == key_id) {
*d_key = itr_key;
break;
}
}
return;
}
diff --git a/contrib/ntp/sntp/crypto.h b/contrib/ntp/sntp/crypto.h
index 961dca042a9f..4e75df20a9a3 100644
--- a/contrib/ntp/sntp/crypto.h
+++ b/contrib/ntp/sntp/crypto.h
@@ -1,35 +1,34 @@
#ifndef CRYPTO_H
#define CRYPTO_H
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ntp_fp.h>
#include <ntp.h>
#include <ntp_stdlib.h>
-#include <ntp_md5.h> /* provides OpenSSL digest API */
#include "utilities.h"
#include "sntp-opts.h"
#define LEN_PKT_MAC LEN_PKT_NOMAC + sizeof(u_int32)
/* #include "sntp-opts.h" */
struct key {
struct key * next;
int key_id;
int key_len;
int typei;
char typen[20];
char key_seq[64];
};
extern int auth_init(const char *keyfile, struct key **keys);
extern void get_key(int key_id, struct key **d_key);
extern int make_mac(const void *pkt_data, int pkt_size, int mac_size,
const struct key *cmp_key, void *digest);
extern int auth_md5(const void *pkt_data, int pkt_size, int mac_size,
const struct key *cmp_key);
#endif
diff --git a/contrib/ntp/sntp/include/version.def b/contrib/ntp/sntp/include/version.def
index c8c4ebe3d900..bba075cfff5f 100644
--- a/contrib/ntp/sntp/include/version.def
+++ b/contrib/ntp/sntp/include/version.def
@@ -1 +1 @@
-version = '4.2.8p16';
+version = '4.2.8p17';
diff --git a/contrib/ntp/sntp/include/version.texi b/contrib/ntp/sntp/include/version.texi
index 75c06dd43af0..eaead228a2d3 100644
--- a/contrib/ntp/sntp/include/version.texi
+++ b/contrib/ntp/sntp/include/version.texi
@@ -1,3 +1,3 @@
-@set UPDATED 31 May 2023
-@set EDITION 4.2.8p16
-@set VERSION 4.2.8p16
+@set UPDATED 06 June 2023
+@set EDITION 4.2.8p17
+@set VERSION 4.2.8p17
diff --git a/contrib/ntp/sntp/invoke-sntp.texi b/contrib/ntp/sntp/invoke-sntp.texi
index 7f31eddb8b4d..4c03b3a498f3 100644
--- a/contrib/ntp/sntp/invoke-sntp.texi
+++ b/contrib/ntp/sntp/invoke-sntp.texi
@@ -1,430 +1,430 @@
@node sntp Invocation
@section Invoking sntp
@pindex sntp
@cindex standard Simple Network Time Protocol client program
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-sntp.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 02:48:07 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:36:12 AM by AutoGen 5.18.16
# From the definitions sntp-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@code{sntp}
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system's time (given suitable privilege). It can be
run as an interactive command or from a
@code{cron}
job.
NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
@code{'1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 [host] IP sN'}
where the
@code{'(+0800)'}
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
@code{'+4.567'}
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
@code{'+/- 0.089'}
is the reported
@emph{synchronization} @emph{distance}
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
@code{'+/- ?'}.
If the
@emph{host}
is different from the
@emph{IP},
both will be displayed.
Otherwise, only the
@emph{IP}
is displayed.
Finally, the
@emph{stratum}
of the host is reported
and the leap indicator is decoded and displayed.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{sntp} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* sntp usage:: sntp help/usage (@option{--help})
* sntp ipv4:: ipv4 option (-4)
* sntp ipv6:: ipv6 option (-6)
* sntp authentication:: authentication option (-a)
* sntp broadcast:: broadcast option (-b)
* sntp concurrent:: concurrent option (-c)
* sntp gap:: gap option (-g)
* sntp kod:: kod option (-K)
* sntp keyfile:: keyfile option (-k)
* sntp logfile:: logfile option (-l)
* sntp steplimit:: steplimit option (-M)
* sntp ntpversion:: ntpversion option (-o)
* sntp usereservedport:: usereservedport option (-r)
* sntp timeout:: timeout option (-t)
* sntp wait:: wait option
* sntp config:: presetting/configuring sntp
* sntp exit status:: exit status
* sntp Usage:: Usage
* sntp Authors:: Authors
@end menu
@node sntp usage
@subsection sntp help/usage (@option{--help})
@cindex sntp help
This is the automatically generated usage text for sntp.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p16
+sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p17
Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-a Num authentication Enable authentication with the key auth-keynumber
-b Str broadcast Listen to the address specified for broadcast time sync
- may appear multiple times
-c Str concurrent Concurrently query all IPs returned for host-name
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-g Num gap The gap (in milliseconds) between time requests
-K Fil kod KoD history filename
-k Fil keyfile Look in this file for the key specified with -a
-l Fil logfile Log to specified logfile
-M Num steplimit Adjustments less than steplimit msec will be slewed
- it must be in the range:
greater than or equal to 0
-o Num ntpversion Send int as our NTP protocol version
- it must be in the range:
0 to 7
-r no usereservedport Use the NTP Reserved Port (port 123)
-S no step OK to 'step' the time with settimeofday(2)
-s no slew OK to 'slew' the time with adjtime(2)
-t Num timeout The number of seconds to wait for responses
no wait Wait for pending replies (if not setting the time)
- disabled as '--no-wait'
- enabled by default
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-> opt save-opts save the option state to a config file
-< Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named SNTP_*
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node sntp ipv4
@subsection ipv4 option (-4)
@cindex sntp-ipv4
This is the ``force ipv4 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv6.
@end itemize
Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
@node sntp ipv6
@subsection ipv6 option (-6)
@cindex sntp-ipv6
This is the ``force ipv6 dns name resolution'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must not appear in combination with any of the following options:
ipv4.
@end itemize
Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
@node sntp authentication
@subsection authentication option (-a)
@cindex sntp-authentication
This is the ``enable authentication with the key @var{auth-keynumber}'' option.
This option takes a number argument @file{auth-keynumber}.
Enable authentication using the key specified in this option's
argument. The argument of this option is the @option{keyid}, a
number specified in the @option{keyfile} as this key's identifier.
See the @option{keyfile} option (@option{-k}) for more details.
@node sntp broadcast
@subsection broadcast option (-b)
@cindex sntp-broadcast
This is the ``listen to the address specified for broadcast time sync'' option.
This option takes a string argument @file{broadcast-address}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
If specified @code{sntp} will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with @option{-t}.
@node sntp concurrent
@subsection concurrent option (-c)
@cindex sntp-concurrent
This is the ``concurrently query all ips returned for host-name'' option.
This option takes a string argument @file{host-name}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
may appear an unlimited number of times.
@end itemize
Requests from an NTP "client" to a "server" should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
@code{ntpd}, and therefore @code{sntp} will send queries to these IPs
one after another, with a 2-second gap in between each query.
The @option{-c} or @option{--concurrent} flag says that any IPs
returned for the DNS lookup of the supplied host-name are on
different machines, so we can send concurrent queries.
@node sntp gap
@subsection gap option (-g)
@cindex sntp-gap
This is the ``the gap (in milliseconds) between time requests'' option.
This option takes a number argument @file{milliseconds}.
Since we're only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
@node sntp kod
@subsection kod option (-K)
@cindex sntp-kod
This is the ``kod history filename'' option.
This option takes a file argument @file{file-name}.
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
@node sntp keyfile
@subsection keyfile option (-k)
@cindex sntp-keyfile
This is the ``look in this file for the key specified with @option{-a}'' option.
This option takes a file argument @file{file-name}.
This option specifies the keyfile.
@code{sntp} will search for the key specified with @option{-a}
@file{keyno} in this file. See @command{ntp.keys(5)} for more
information.
@node sntp logfile
@subsection logfile option (-l)
@cindex sntp-logfile
This is the ``log to specified logfile'' option.
This option takes a file argument @file{file-name}.
This option causes the client to write log messages to the specified
@file{logfile}.
@node sntp steplimit
@subsection steplimit option (-M)
@cindex sntp-steplimit
This is the ``adjustments less than @var{steplimit} msec will be slewed'' option.
This option takes a number argument.
If the time adjustment is less than @file{steplimit} milliseconds,
slew the amount using @command{adjtime(2)}. Otherwise, step the
correction using @command{settimeofday(2)}. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
@node sntp ntpversion
@subsection ntpversion option (-o)
@cindex sntp-ntpversion
This is the ``send @var{int} as our ntp protocol version'' option.
This option takes a number argument.
When sending requests to a remote server, tell them we are running
NTP protocol version @file{ntpversion} .
@node sntp usereservedport
@subsection usereservedport option (-r)
@cindex sntp-usereservedport
This is the ``use the ntp reserved port (port 123)'' option.
Use port 123, which is reserved for NTP, for our network
communications.
@node sntp timeout
@subsection timeout option (-t)
@cindex sntp-timeout
This is the ``the number of seconds to wait for responses'' option.
This option takes a number argument @file{seconds}.
When waiting for a reply, @code{sntp} will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If @code{sntp} is
only waiting for a broadcast response a longer timeout is
likely needed.
@node sntp wait
@subsection wait option
@cindex sntp-wait
This is the ``wait for pending replies (if not setting the time)'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
can be disabled with --no-wait.
@item
It is enabled by default.
@end itemize
If we are not setting the time, wait for all pending responses.
@node sntp config
@subsection presetting/configuring sntp
Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{SNTP} and @code{SNTP_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{SNTP} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
@noindent
@code{libopts} will search in 2 places for configuration files:
@itemize @bullet
@item
$HOME
@item
$PWD
@end itemize
The environment variables @code{HOME}, and @code{PWD}
are expanded and replaced when @file{sntp} runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named @file{.ntprc} is searched for
within that directory and processed.
Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
@example
[SNTP]
@end example
@noindent
or by
@example
<?program sntp>
@end example
@noindent
Do not mix these styles within one configuration file.
Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
<sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions. You simply note that it is a
hierarchicly valued option. @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node sntp exit status
@subsection sntp exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error. Please report
it to autogen-users@@lists.sourceforge.net. Thank you.
@end table
@node sntp Usage
@subsection sntp Usage
@node sntp Authors
@subsection sntp Authors
diff --git a/contrib/ntp/sntp/m4/version.m4 b/contrib/ntp/sntp/m4/version.m4
index aef0b0c5a6fd..95deaa41c695 100644
--- a/contrib/ntp/sntp/m4/version.m4
+++ b/contrib/ntp/sntp/m4/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[4.2.8p16])
+m4_define([VERSION_NUMBER],[4.2.8p17])
diff --git a/contrib/ntp/sntp/scm-rev b/contrib/ntp/sntp/scm-rev
index c2fda3ce6d2e..5e3d42f5e853 100644
--- a/contrib/ntp/sntp/scm-rev
+++ b/contrib/ntp/sntp/scm-rev
@@ -1 +1 @@
-1.3996
+1.4004
diff --git a/contrib/ntp/sntp/sntp-opts.c b/contrib/ntp/sntp/sntp-opts.c
index d57f335e976d..29c726cb5973 100644
--- a/contrib/ntp/sntp/sntp-opts.c
+++ b/contrib/ntp/sntp/sntp-opts.c
@@ -1,1580 +1,1580 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 02:47:47 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:35:52 AM by AutoGen 5.18.16
* From the definitions sntp-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the sntp author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The sntp program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "sntp-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (sntp_opt_strs+0)
#define zLicenseDescrip (sntp_opt_strs+341)
/*
* global included definitions
*/
#ifdef __windows
extern int atoi(const char*);
#else
# include <stdlib.h>
#endif
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for sntp options
*/
static char const sntp_opt_strs[2567] =
-/* 0 */ "sntp 4.2.8p16\n"
+/* 0 */ "sntp 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 341 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1009 */ "Force IPv4 DNS name resolution\0"
/* 1040 */ "IPV4\0"
/* 1045 */ "ipv4\0"
/* 1050 */ "Force IPv6 DNS name resolution\0"
/* 1081 */ "IPV6\0"
/* 1086 */ "ipv6\0"
/* 1091 */ "Enable authentication with the key auth-keynumber\0"
/* 1141 */ "AUTHENTICATION\0"
/* 1156 */ "authentication\0"
/* 1171 */ "Listen to the address specified for broadcast time sync\0"
/* 1227 */ "BROADCAST\0"
/* 1237 */ "broadcast\0"
/* 1247 */ "Concurrently query all IPs returned for host-name\0"
/* 1297 */ "CONCURRENT\0"
/* 1308 */ "concurrent\0"
/* 1319 */ "Increase debug verbosity level\0"
/* 1350 */ "DEBUG_LEVEL\0"
/* 1362 */ "debug-level\0"
/* 1374 */ "Set the debug verbosity level\0"
/* 1404 */ "SET_DEBUG_LEVEL\0"
/* 1420 */ "set-debug-level\0"
/* 1436 */ "The gap (in milliseconds) between time requests\0"
/* 1484 */ "GAP\0"
/* 1488 */ "gap\0"
/* 1492 */ "KoD history filename\0"
/* 1513 */ "KOD\0"
/* 1517 */ "kod\0"
/* 1521 */ "/var/db/ntp-kod\0"
/* 1537 */ "Look in this file for the key specified with -a\0"
/* 1585 */ "KEYFILE\0"
/* 1593 */ "keyfile\0"
/* 1601 */ "/etc/ntp.keys\0"
/* 1615 */ "Log to specified logfile\0"
/* 1640 */ "LOGFILE\0"
/* 1648 */ "logfile\0"
/* 1656 */ "Adjustments less than steplimit msec will be slewed\0"
/* 1708 */ "STEPLIMIT\0"
/* 1718 */ "steplimit\0"
/* 1728 */ "Send int as our NTP protocol version\0"
/* 1765 */ "NTPVERSION\0"
/* 1776 */ "ntpversion\0"
/* 1787 */ "Use the NTP Reserved Port (port 123)\0"
/* 1824 */ "USERESERVEDPORT\0"
/* 1840 */ "usereservedport\0"
/* 1856 */ "OK to 'step' the time with settimeofday(2)\0"
/* 1899 */ "STEP\0"
/* 1904 */ "step\0"
/* 1909 */ "OK to 'slew' the time with adjtime(2)\0"
/* 1947 */ "SLEW\0"
/* 1952 */ "slew\0"
/* 1957 */ "The number of seconds to wait for responses\0"
/* 2001 */ "TIMEOUT\0"
/* 2009 */ "timeout\0"
/* 2017 */ "Wait for pending replies (if not setting the time)\0"
/* 2068 */ "WAIT\0"
/* 2073 */ "no-wait\0"
/* 2081 */ "no\0"
/* 2084 */ "display extended usage information and exit\0"
/* 2128 */ "help\0"
/* 2133 */ "extended usage information passed thru pager\0"
/* 2178 */ "more-help\0"
/* 2188 */ "output version information and exit\0"
/* 2224 */ "version\0"
/* 2232 */ "save the option state to a config file\0"
/* 2271 */ "save-opts\0"
/* 2281 */ "load options from a config file\0"
/* 2313 */ "LOAD_OPTS\0"
/* 2323 */ "no-load-opts\0"
/* 2336 */ "SNTP\0"
-/* 2341 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p16\n"
+/* 2341 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ hostname-or-IP ...]\n\0"
/* 2501 */ "$HOME\0"
/* 2507 */ ".\0"
/* 2509 */ ".ntprc\0"
/* 2516 */ "https://bugs.ntp.org, bugs@ntp.org\0"
/* 2551 */ "\n\0"
-/* 2553 */ "sntp 4.2.8p16";
+/* 2553 */ "sntp 4.2.8p17";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
#define IPV4_DESC (sntp_opt_strs+1009)
/** Upper-cased name for the ipv4 option */
#define IPV4_NAME (sntp_opt_strs+1040)
/** Name string for the ipv4 option */
#define IPV4_name (sntp_opt_strs+1045)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv4 option */
#define IPV4_FLAGS (OPTST_DISABLED)
/**
* ipv6 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
#define IPV6_DESC (sntp_opt_strs+1050)
/** Upper-cased name for the ipv6 option */
#define IPV6_NAME (sntp_opt_strs+1081)
/** Name string for the ipv6 option */
#define IPV6_name (sntp_opt_strs+1086)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
/** Compiled in flag settings for the ipv6 option */
#define IPV6_FLAGS (OPTST_DISABLED)
/**
* authentication option description:
*/
/** Descriptive text for the authentication option */
#define AUTHENTICATION_DESC (sntp_opt_strs+1091)
/** Upper-cased name for the authentication option */
#define AUTHENTICATION_NAME (sntp_opt_strs+1141)
/** Name string for the authentication option */
#define AUTHENTICATION_name (sntp_opt_strs+1156)
/** Compiled in flag settings for the authentication option */
#define AUTHENTICATION_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* broadcast option description:
*/
/** Descriptive text for the broadcast option */
#define BROADCAST_DESC (sntp_opt_strs+1171)
/** Upper-cased name for the broadcast option */
#define BROADCAST_NAME (sntp_opt_strs+1227)
/** Name string for the broadcast option */
#define BROADCAST_name (sntp_opt_strs+1237)
/** Compiled in flag settings for the broadcast option */
#define BROADCAST_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* concurrent option description:
*/
/** Descriptive text for the concurrent option */
#define CONCURRENT_DESC (sntp_opt_strs+1247)
/** Upper-cased name for the concurrent option */
#define CONCURRENT_NAME (sntp_opt_strs+1297)
/** Name string for the concurrent option */
#define CONCURRENT_name (sntp_opt_strs+1308)
/** Compiled in flag settings for the concurrent option */
#define CONCURRENT_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
/**
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
#define DEBUG_LEVEL_DESC (sntp_opt_strs+1319)
/** Upper-cased name for the debug-level option */
#define DEBUG_LEVEL_NAME (sntp_opt_strs+1350)
/** Name string for the debug-level option */
#define DEBUG_LEVEL_name (sntp_opt_strs+1362)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
/**
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
#define SET_DEBUG_LEVEL_DESC (sntp_opt_strs+1374)
/** Upper-cased name for the set-debug-level option */
#define SET_DEBUG_LEVEL_NAME (sntp_opt_strs+1404)
/** Name string for the set-debug-level option */
#define SET_DEBUG_LEVEL_name (sntp_opt_strs+1420)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* gap option description:
*/
/** Descriptive text for the gap option */
#define GAP_DESC (sntp_opt_strs+1436)
/** Upper-cased name for the gap option */
#define GAP_NAME (sntp_opt_strs+1484)
/** Name string for the gap option */
#define GAP_name (sntp_opt_strs+1488)
/** The compiled in default value for the gap option argument */
#define GAP_DFT_ARG ((char const*)50)
/** Compiled in flag settings for the gap option */
#define GAP_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* kod option description:
*/
/** Descriptive text for the kod option */
#define KOD_DESC (sntp_opt_strs+1492)
/** Upper-cased name for the kod option */
#define KOD_NAME (sntp_opt_strs+1513)
/** Name string for the kod option */
#define KOD_name (sntp_opt_strs+1517)
/** The compiled in default value for the kod option argument */
#define KOD_DFT_ARG (sntp_opt_strs+1521)
/** Compiled in flag settings for the kod option */
#define KOD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
/**
* keyfile option description:
*/
/** Descriptive text for the keyfile option */
#define KEYFILE_DESC (sntp_opt_strs+1537)
/** Upper-cased name for the keyfile option */
#define KEYFILE_NAME (sntp_opt_strs+1585)
/** Name string for the keyfile option */
#define KEYFILE_name (sntp_opt_strs+1593)
/** The compiled in default value for the keyfile option argument */
#define KEYFILE_DFT_ARG (sntp_opt_strs+1601)
/** Compiled in flag settings for the keyfile option */
#define KEYFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
/**
* logfile option description:
*/
/** Descriptive text for the logfile option */
#define LOGFILE_DESC (sntp_opt_strs+1615)
/** Upper-cased name for the logfile option */
#define LOGFILE_NAME (sntp_opt_strs+1640)
/** Name string for the logfile option */
#define LOGFILE_name (sntp_opt_strs+1648)
/** Compiled in flag settings for the logfile option */
#define LOGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
/**
* steplimit option description:
*/
/** Descriptive text for the steplimit option */
#define STEPLIMIT_DESC (sntp_opt_strs+1656)
/** Upper-cased name for the steplimit option */
#define STEPLIMIT_NAME (sntp_opt_strs+1708)
/** Name string for the steplimit option */
#define STEPLIMIT_name (sntp_opt_strs+1718)
/** Compiled in flag settings for the steplimit option */
#define STEPLIMIT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* ntpversion option description:
*/
/** Descriptive text for the ntpversion option */
#define NTPVERSION_DESC (sntp_opt_strs+1728)
/** Upper-cased name for the ntpversion option */
#define NTPVERSION_NAME (sntp_opt_strs+1765)
/** Name string for the ntpversion option */
#define NTPVERSION_name (sntp_opt_strs+1776)
/** The compiled in default value for the ntpversion option argument */
#define NTPVERSION_DFT_ARG ((char const*)4)
/** Compiled in flag settings for the ntpversion option */
#define NTPVERSION_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* usereservedport option description:
*/
/** Descriptive text for the usereservedport option */
#define USERESERVEDPORT_DESC (sntp_opt_strs+1787)
/** Upper-cased name for the usereservedport option */
#define USERESERVEDPORT_NAME (sntp_opt_strs+1824)
/** Name string for the usereservedport option */
#define USERESERVEDPORT_name (sntp_opt_strs+1840)
/** Compiled in flag settings for the usereservedport option */
#define USERESERVEDPORT_FLAGS (OPTST_DISABLED)
/**
* step option description:
*/
/** Descriptive text for the step option */
#define STEP_DESC (sntp_opt_strs+1856)
/** Upper-cased name for the step option */
#define STEP_NAME (sntp_opt_strs+1899)
/** Name string for the step option */
#define STEP_name (sntp_opt_strs+1904)
/** Compiled in flag settings for the step option */
#define STEP_FLAGS (OPTST_DISABLED)
/**
* slew option description:
*/
/** Descriptive text for the slew option */
#define SLEW_DESC (sntp_opt_strs+1909)
/** Upper-cased name for the slew option */
#define SLEW_NAME (sntp_opt_strs+1947)
/** Name string for the slew option */
#define SLEW_name (sntp_opt_strs+1952)
/** Compiled in flag settings for the slew option */
#define SLEW_FLAGS (OPTST_DISABLED)
/**
* timeout option description:
*/
/** Descriptive text for the timeout option */
#define TIMEOUT_DESC (sntp_opt_strs+1957)
/** Upper-cased name for the timeout option */
#define TIMEOUT_NAME (sntp_opt_strs+2001)
/** Name string for the timeout option */
#define TIMEOUT_name (sntp_opt_strs+2009)
/** The compiled in default value for the timeout option argument */
#define TIMEOUT_DFT_ARG ((char const*)5)
/** Compiled in flag settings for the timeout option */
#define TIMEOUT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* wait option description:
*/
/** Descriptive text for the wait option */
#define WAIT_DESC (sntp_opt_strs+2017)
/** Upper-cased name for the wait option */
#define WAIT_NAME (sntp_opt_strs+2068)
/** disablement name for the wait option */
#define NOT_WAIT_name (sntp_opt_strs+2073)
/** disablement prefix for the wait option */
#define NOT_WAIT_PFX (sntp_opt_strs+2081)
/** Name string for the wait option */
#define WAIT_name (NOT_WAIT_name + 3)
/** Compiled in flag settings for the wait option */
#define WAIT_FLAGS (OPTST_INITENABLED)
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (sntp_opt_strs+2084)
#define HELP_name (sntp_opt_strs+2128)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (sntp_opt_strs+2133)
#define MORE_HELP_name (sntp_opt_strs+2178)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (sntp_opt_strs+2188)
#define VER_name (sntp_opt_strs+2224)
#define SAVE_OPTS_DESC (sntp_opt_strs+2232)
#define SAVE_OPTS_name (sntp_opt_strs+2271)
#define LOAD_OPTS_DESC (sntp_opt_strs+2281)
#define LOAD_OPTS_NAME (sntp_opt_strs+2313)
#define NO_LOAD_OPTS_name (sntp_opt_strs+2323)
#define LOAD_OPTS_pfx (sntp_opt_strs+2081)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
*/
extern tOptProc
ntpOptionPrintVersion, optionBooleanVal, optionNestedVal,
optionNumericVal, optionPagedUsage, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doOptDebug_Level, doOptKeyfile, doOptKod, doOptLogfile,
doOptNtpversion, doOptSteplimit, doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the sntp Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the sntp program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_IPV4,
/* equiv idx, value */ 0, VALUE_OPT_IPV4,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV4_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv4 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv4CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV4_DESC, IPV4_NAME, IPV4_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_IPV6,
/* equiv idx, value */ 1, VALUE_OPT_IPV6,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IPV6_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ipv6 */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, aIpv6CantList,
/* option proc */ NULL,
/* desc, NAME, name */ IPV6_DESC, IPV6_NAME, IPV6_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_AUTHENTICATION,
/* equiv idx, value */ 2, VALUE_OPT_AUTHENTICATION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ AUTHENTICATION_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --authentication */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ AUTHENTICATION_DESC, AUTHENTICATION_NAME, AUTHENTICATION_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_BROADCAST,
/* equiv idx, value */ 3, VALUE_OPT_BROADCAST,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ BROADCAST_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --broadcast */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ BROADCAST_DESC, BROADCAST_NAME, BROADCAST_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_CONCURRENT,
/* equiv idx, value */ 4, VALUE_OPT_CONCURRENT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ CONCURRENT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --concurrent */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionStackArg,
/* desc, NAME, name */ CONCURRENT_DESC, CONCURRENT_NAME, CONCURRENT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 5, VALUE_OPT_DEBUG_LEVEL,
/* equiv idx, value */ 5, VALUE_OPT_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptDebug_Level,
/* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 6, VALUE_OPT_SET_DEBUG_LEVEL,
/* equiv idx, value */ 6, VALUE_OPT_SET_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --set-debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 7, VALUE_OPT_GAP,
/* equiv idx, value */ 7, VALUE_OPT_GAP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GAP_FLAGS, 0,
/* last opt argumnt */ { GAP_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ GAP_DESC, GAP_NAME, GAP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 8, VALUE_OPT_KOD,
/* equiv idx, value */ 8, VALUE_OPT_KOD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ KOD_FLAGS, 0,
/* last opt argumnt */ { KOD_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptKod,
/* desc, NAME, name */ KOD_DESC, KOD_NAME, KOD_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 9, VALUE_OPT_KEYFILE,
/* equiv idx, value */ 9, VALUE_OPT_KEYFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ KEYFILE_FLAGS, 0,
/* last opt argumnt */ { KEYFILE_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptKeyfile,
/* desc, NAME, name */ KEYFILE_DESC, KEYFILE_NAME, KEYFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 10, VALUE_OPT_LOGFILE,
/* equiv idx, value */ 10, VALUE_OPT_LOGFILE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LOGFILE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --logfile */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptLogfile,
/* desc, NAME, name */ LOGFILE_DESC, LOGFILE_NAME, LOGFILE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 11, VALUE_OPT_STEPLIMIT,
/* equiv idx, value */ 11, VALUE_OPT_STEPLIMIT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ STEPLIMIT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --steplimit */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptSteplimit,
/* desc, NAME, name */ STEPLIMIT_DESC, STEPLIMIT_NAME, STEPLIMIT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 12, VALUE_OPT_NTPVERSION,
/* equiv idx, value */ 12, VALUE_OPT_NTPVERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ NTPVERSION_FLAGS, 0,
/* last opt argumnt */ { NTPVERSION_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptNtpversion,
/* desc, NAME, name */ NTPVERSION_DESC, NTPVERSION_NAME, NTPVERSION_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 13, VALUE_OPT_USERESERVEDPORT,
/* equiv idx, value */ 13, VALUE_OPT_USERESERVEDPORT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ USERESERVEDPORT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --usereservedport */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ USERESERVEDPORT_DESC, USERESERVEDPORT_NAME, USERESERVEDPORT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 14, VALUE_OPT_STEP,
/* equiv idx, value */ 14, VALUE_OPT_STEP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ STEP_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --step */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ STEP_DESC, STEP_NAME, STEP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 15, VALUE_OPT_SLEW,
/* equiv idx, value */ 15, VALUE_OPT_SLEW,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SLEW_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --slew */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SLEW_DESC, SLEW_NAME, SLEW_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 16, VALUE_OPT_TIMEOUT,
/* equiv idx, value */ 16, VALUE_OPT_TIMEOUT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ TIMEOUT_FLAGS, 0,
/* last opt argumnt */ { TIMEOUT_DFT_ARG },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ TIMEOUT_DESC, TIMEOUT_NAME, TIMEOUT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 17, VALUE_OPT_WAIT,
/* equiv idx, value */ 17, VALUE_OPT_WAIT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ WAIT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --wait */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ WAIT_DESC, WAIT_NAME, WAIT_name,
/* disablement strs */ NOT_WAIT_name, NOT_WAIT_PFX },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionLoadOpt,
/* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
/* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of sntp. */
#define zPROGNAME (sntp_opt_strs+2336)
/** Reference to the title line for sntp usage. */
#define zUsageTitle (sntp_opt_strs+2341)
/** sntp configuration file name. */
#define zRcName (sntp_opt_strs+2509)
/** Directories to search for sntp config files. */
static char const * const apzHomeList[3] = {
sntp_opt_strs+2501,
sntp_opt_strs+2507,
NULL };
/** The sntp program bug email address. */
#define zBugsAddr (sntp_opt_strs+2516)
/** Clarification/explanation of what sntp does. */
#define zExplain (sntp_opt_strs+2551)
/** Extra detail explaining what sntp does. */
#define zDetail (NULL)
/** The full version string for sntp. */
#define zFullVersion (sntp_opt_strs+2553)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define sntp_full_usage (NULL)
#define sntp_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = SNTP_EXIT_SUCCESS;
optionUsage(&sntpOptions, ex_code);
/* NOTREACHED */
exit(SNTP_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug-level option.
*
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
{
/*
* Be sure the flag-code[0] handles special values for the options pointer
* viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
* ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
* reset its state.
*/
/* extracted from debug-opt.def, line 15 */
OPT_VALUE_SET_DEBUG_LEVEL++;
(void)pOptDesc;
(void)pOptions;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the kod option.
* Specifies the filename to be used for the persistent history of KoD
* responses received from servers. If the file does not exist, a
* warning message will be displayed. The file will not be created.
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptKod(tOptions* pOptions, tOptDesc* pOptDesc)
{
static teOptFileType const type =
FTYPE_MODE_MAY_EXIST + FTYPE_MODE_NO_OPEN;
static tuFileMode mode;
#ifndef O_CLOEXEC
# define O_CLOEXEC 0
#endif
mode.file_flags = O_CLOEXEC;
/*
* This function handles special invalid values for "pOptions"
*/
optionFileCheck(pOptions, pOptDesc, type, mode);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the keyfile option.
* This option specifies the keyfile.
* @code{sntp} will search for the key specified with @option{-a}
* @file{keyno} in this file. See @command{ntp.keys(5)} for more
* information.
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptKeyfile(tOptions* pOptions, tOptDesc* pOptDesc)
{
static teOptFileType const type =
FTYPE_MODE_MAY_EXIST + FTYPE_MODE_NO_OPEN;
static tuFileMode mode;
#ifndef O_CLOEXEC
# define O_CLOEXEC 0
#endif
mode.file_flags = O_CLOEXEC;
/*
* This function handles special invalid values for "pOptions"
*/
optionFileCheck(pOptions, pOptDesc, type, mode);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the logfile option.
* This option causes the client to write log messages to the specified
* @file{logfile}.
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptLogfile(tOptions* pOptions, tOptDesc* pOptDesc)
{
static teOptFileType const type =
FTYPE_MODE_MAY_EXIST + FTYPE_MODE_NO_OPEN;
static tuFileMode mode;
#ifndef O_CLOEXEC
# define O_CLOEXEC 0
#endif
mode.file_flags = O_CLOEXEC;
/*
* This function handles special invalid values for "pOptions"
*/
optionFileCheck(pOptions, pOptDesc, type, mode);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the steplimit option.
* If the time adjustment is less than @file{steplimit} milliseconds,
* slew the amount using @command{adjtime(2)}. Otherwise, step the
* correction using @command{settimeofday(2)}. The default value is 0,
* which means all adjustments will be stepped. This is a feature, as
* different situations demand different values.
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptSteplimit(tOptions* pOptions, tOptDesc* pOptDesc)
{
static struct {long rmin, rmax;} const rng[1] = {
{ 0, LONG_MAX } };
int ix;
if (pOptions <= OPTPROC_EMIT_LIMIT)
goto emit_ranges;
optionNumericVal(pOptions, pOptDesc);
for (ix = 0; ix < 1; ix++) {
if (pOptDesc->optArg.argInt < rng[ix].rmin)
continue; /* ranges need not be ordered. */
if (pOptDesc->optArg.argInt == rng[ix].rmin)
return;
if (rng[ix].rmax == LONG_MIN)
continue;
if (pOptDesc->optArg.argInt <= rng[ix].rmax)
return;
}
option_usage_fp = stderr;
emit_ranges:
optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the ntpversion option.
* When sending requests to a remote server, tell them we are running
* NTP protocol version @file{ntpversion} .
* @param[in] pOptions the sntp options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptNtpversion(tOptions* pOptions, tOptDesc* pOptDesc)
{
static struct {long rmin, rmax;} const rng[1] = {
{ 0, 7 } };
int ix;
if (pOptions <= OPTPROC_EMIT_LIMIT)
goto emit_ranges;
optionNumericVal(pOptions, pOptDesc);
for (ix = 0; ix < 1; ix++) {
if (pOptDesc->optArg.argInt < rng[ix].rmin)
continue; /* ranges need not be ordered. */
if (pOptDesc->optArg.argInt == rng[ix].rmin)
return;
if (rng[ix].rmax == LONG_MIN)
continue;
if (pOptDesc->optArg.argInt <= rng[ix].rmax)
return;
}
option_usage_fp = stderr;
emit_ranges:
optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
}
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with sntp.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged sntp
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define sntp_packager_info NULL
#else
/** Packager information for sntp. */
static char const sntp_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport sntp bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for sntp. The one structure that
* binds them all.
*/
tOptions sntpOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_NEGATIONS
+ OPTPROC_ENVIRON
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
INDEX_OPT_SAVE_OPTS, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
23 /* full option count */, 18 /* user option count */,
sntp_full_usage, sntp_short_usage,
NULL, NULL,
PKGDATADIR, sntp_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* sntp program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(SNTP_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the sntpOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &sntpOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the sntpOptions structure noted in the
comments below. The literal text is defined in sntp_opt_strs.
NOTE: the strings below are segmented with respect to the source string
sntp_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via sntpOptions.pzCopyright */
- puts(_("sntp 4.2.8p16\n\
+ puts(_("sntp 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via sntpOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Force IPv4 DNS name resolution"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Force IPv6 DNS name resolution"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Enable authentication with the key auth-keynumber"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Listen to the address specified for broadcast time sync"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Concurrently query all IPs returned for host-name"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Increase debug verbosity level"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Set the debug verbosity level"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("The gap (in milliseconds) between time requests"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("KoD history filename"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Look in this file for the key specified with -a"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Log to specified logfile"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Adjustments less than steplimit msec will be slewed"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Send int as our NTP protocol version"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Use the NTP Reserved Port (port 123)"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("OK to 'step' the time with settimeofday(2)"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("OK to 'slew' the time with adjtime(2)"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("The number of seconds to wait for responses"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("Wait for pending replies (if not setting the time)"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("save the option state to a config file"));
/* referenced via sntpOptions.pOptDesc->pzText */
puts(_("load options from a config file"));
/* referenced via sntpOptions.pzUsageTitle */
- puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p16\n\
+ puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ hostname-or-IP ...]\n"));
/* referenced via sntpOptions.pzExplain */
puts(_("\n"));
/* referenced via sntpOptions.pzFullVersion */
- puts(_("sntp 4.2.8p16"));
+ puts(_("sntp 4.2.8p17"));
/* referenced via sntpOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via sntpOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* sntp-opts.c ends here */
diff --git a/contrib/ntp/sntp/sntp-opts.h b/contrib/ntp/sntp/sntp-opts.h
index e8bee64a9cdd..a7cff4d550b0 100644
--- a/contrib/ntp/sntp/sntp-opts.h
+++ b/contrib/ntp/sntp/sntp-opts.h
@@ -1,379 +1,379 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 02:47:47 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:35:52 AM by AutoGen 5.18.16
* From the definitions sntp-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the sntp author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The sntp program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the sntp program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_SNTP_OPTS_H_GUARD
#define AUTOOPTS_SNTP_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for sntp
*/
typedef enum {
INDEX_OPT_IPV4 = 0,
INDEX_OPT_IPV6 = 1,
INDEX_OPT_AUTHENTICATION = 2,
INDEX_OPT_BROADCAST = 3,
INDEX_OPT_CONCURRENT = 4,
INDEX_OPT_DEBUG_LEVEL = 5,
INDEX_OPT_SET_DEBUG_LEVEL = 6,
INDEX_OPT_GAP = 7,
INDEX_OPT_KOD = 8,
INDEX_OPT_KEYFILE = 9,
INDEX_OPT_LOGFILE = 10,
INDEX_OPT_STEPLIMIT = 11,
INDEX_OPT_NTPVERSION = 12,
INDEX_OPT_USERESERVEDPORT = 13,
INDEX_OPT_STEP = 14,
INDEX_OPT_SLEW = 15,
INDEX_OPT_TIMEOUT = 16,
INDEX_OPT_WAIT = 17,
INDEX_OPT_VERSION = 18,
INDEX_OPT_HELP = 19,
INDEX_OPT_MORE_HELP = 20,
INDEX_OPT_SAVE_OPTS = 21,
INDEX_OPT_LOAD_OPTS = 22
} teOptIndex;
/** count of all options for sntp */
#define OPTION_CT 23
/** sntp version */
-#define SNTP_VERSION "4.2.8p16"
+#define SNTP_VERSION "4.2.8p17"
/** Full sntp version text */
-#define SNTP_FULL_VERSION "sntp 4.2.8p16"
+#define SNTP_FULL_VERSION "sntp 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(IPV4)
*/
#define DESC(n) (sntpOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of sntp exit codes
*/
typedef enum {
SNTP_EXIT_SUCCESS = 0,
SNTP_EXIT_FAILURE = 1,
SNTP_EXIT_USAGE_ERROR = 64,
SNTP_EXIT_NO_CONFIG_INPUT = 66,
SNTP_EXIT_LIBOPTS_FAILURE = 70
} sntp_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef IPV4
# warning undefining IPV4 due to option name conflict
# undef IPV4
# endif
# ifdef IPV6
# warning undefining IPV6 due to option name conflict
# undef IPV6
# endif
# ifdef AUTHENTICATION
# warning undefining AUTHENTICATION due to option name conflict
# undef AUTHENTICATION
# endif
# ifdef BROADCAST
# warning undefining BROADCAST due to option name conflict
# undef BROADCAST
# endif
# ifdef CONCURRENT
# warning undefining CONCURRENT due to option name conflict
# undef CONCURRENT
# endif
# ifdef DEBUG_LEVEL
# warning undefining DEBUG_LEVEL due to option name conflict
# undef DEBUG_LEVEL
# endif
# ifdef SET_DEBUG_LEVEL
# warning undefining SET_DEBUG_LEVEL due to option name conflict
# undef SET_DEBUG_LEVEL
# endif
# ifdef GAP
# warning undefining GAP due to option name conflict
# undef GAP
# endif
# ifdef KOD
# warning undefining KOD due to option name conflict
# undef KOD
# endif
# ifdef KEYFILE
# warning undefining KEYFILE due to option name conflict
# undef KEYFILE
# endif
# ifdef LOGFILE
# warning undefining LOGFILE due to option name conflict
# undef LOGFILE
# endif
# ifdef STEPLIMIT
# warning undefining STEPLIMIT due to option name conflict
# undef STEPLIMIT
# endif
# ifdef NTPVERSION
# warning undefining NTPVERSION due to option name conflict
# undef NTPVERSION
# endif
# ifdef USERESERVEDPORT
# warning undefining USERESERVEDPORT due to option name conflict
# undef USERESERVEDPORT
# endif
# ifdef STEP
# warning undefining STEP due to option name conflict
# undef STEP
# endif
# ifdef SLEW
# warning undefining SLEW due to option name conflict
# undef SLEW
# endif
# ifdef TIMEOUT
# warning undefining TIMEOUT due to option name conflict
# undef TIMEOUT
# endif
# ifdef WAIT
# warning undefining WAIT due to option name conflict
# undef WAIT
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef IPV4
# undef IPV6
# undef AUTHENTICATION
# undef BROADCAST
# undef CONCURRENT
# undef DEBUG_LEVEL
# undef SET_DEBUG_LEVEL
# undef GAP
# undef KOD
# undef KEYFILE
# undef LOGFILE
# undef STEPLIMIT
# undef NTPVERSION
# undef USERESERVEDPORT
# undef STEP
# undef SLEW
# undef TIMEOUT
# undef WAIT
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_IPV4 '4'
#define VALUE_OPT_IPV6 '6'
#define VALUE_OPT_AUTHENTICATION 'a'
#define OPT_VALUE_AUTHENTICATION (DESC(AUTHENTICATION).optArg.argInt)
#define VALUE_OPT_BROADCAST 'b'
#define VALUE_OPT_CONCURRENT 'c'
#define VALUE_OPT_DEBUG_LEVEL 'd'
#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
#define VALUE_OPT_GAP 'g'
#define OPT_VALUE_GAP (DESC(GAP).optArg.argInt)
#define VALUE_OPT_KOD 'K'
#define VALUE_OPT_KEYFILE 'k'
#define VALUE_OPT_LOGFILE 'l'
#define VALUE_OPT_STEPLIMIT 'M'
#define OPT_VALUE_STEPLIMIT (DESC(STEPLIMIT).optArg.argInt)
#define VALUE_OPT_NTPVERSION 'o'
#define OPT_VALUE_NTPVERSION (DESC(NTPVERSION).optArg.argInt)
#define VALUE_OPT_USERESERVEDPORT 'r'
#define VALUE_OPT_STEP 'S'
#define VALUE_OPT_SLEW 's'
#define VALUE_OPT_TIMEOUT 't'
#define OPT_VALUE_TIMEOUT (DESC(TIMEOUT).optArg.argInt)
#define VALUE_OPT_WAIT 0x1001
#define SET_OPT_WAIT STMTS( \
DESC(WAIT).optActualIndex = 17; \
DESC(WAIT).optActualValue = VALUE_OPT_WAIT; \
DESC(WAIT).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(WAIT).fOptState |= OPTST_SET )
#define DISABLE_OPT_WAIT STMTS( \
DESC(WAIT).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(WAIT).fOptState |= OPTST_SET | OPTST_DISABLED; \
DESC(WAIT).optArg.argString = NULL )
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1002
/** option flag (value) for save-opts-value option */
#define VALUE_OPT_SAVE_OPTS '>'
/** option flag (value) for load-opts-value option */
#define VALUE_OPT_LOAD_OPTS '<'
#define SET_OPT_SAVE_OPTS(a) STMTS( \
DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(sntpOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(sntpOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
sntpOptions.curOptIdx = (n); \
sntpOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*sntpOptions.pUsageProc)(&sntpOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the sntp option descriptor.
*/
extern tOptions sntpOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(sntpOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(sntpOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(sntpOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(sntpOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_SNTP_OPTS_H_GUARD */
/* sntp-opts.h ends here */
diff --git a/contrib/ntp/sntp/sntp.1sntpman b/contrib/ntp/sntp/sntp.1sntpman
index a1fc294e2dc9..7d532020c280 100644
--- a/contrib/ntp/sntp/sntp.1sntpman
+++ b/contrib/ntp/sntp/sntp.1sntpman
@@ -1,362 +1,362 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp 1sntpman "31 May 2023" "4.2.8p16" "User Commands"
+.TH sntp 1sntpman "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:48:09 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:36:14 AM by AutoGen 5.18.16
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]sntp\fP
\- standard Simple Network Time Protocol client program
.SH SYNOPSIS
\f\*[B-Font]sntp\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ hostname-or-IP ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]sntp\fP
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system's time (given suitable privilege). It can be
run as an interactive command or from a
\f\*[B-Font]cron\f[]
job.
NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
.sp \n(Ppu
.ne 2
The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
\f\*[B-Font]'1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 [host] IP sN'\f[]
where the
\f\*[B-Font]'(+0800)'\f[]
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
\f\*[B-Font]'+4.567'\f[]
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
\f\*[B-Font]'+/- 0.089'\f[]
is the reported
\fIsynchronization\f[] \fIdistance\f[]
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
\f\*[B-Font]'+/- ?'\f[].
If the
\fIhost\f[]
is different from the
\fIIP\f[],
both will be displayed.
Otherwise, only the
\fIIP\f[]
is displayed.
Finally, the
\fIstratum\f[]
of the host is reported
and the leap indicator is decoded and displayed.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-a\f[] \f\*[I-Font]auth\-keynumber\f[], \f\*[B-Font]\-\-authentication\f[]=\f\*[I-Font]auth\-keynumber\f[]
Enable authentication with the key \fBauth-keynumber\fP.
This option takes an integer number as its argument.
.sp
Enable authentication using the key specified in this option's
argument. The argument of this option is the \fBkeyid\fP, a
number specified in the \fBkeyfile\fP as this key's identifier.
See the \fBkeyfile\fP option (\fB-k\fP) for more details.
.TP
.NOP \f\*[B-Font]\-b\f[] \f\*[I-Font]broadcast\-address\f[], \f\*[B-Font]\-\-broadcast\f[]=\f\*[I-Font]broadcast\-address\f[]
Listen to the address specified for broadcast time sync.
This option may appear an unlimited number of times.
.sp
If specified \fBsntp\fP will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with \fB-t\fP.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]host\-name\f[], \f\*[B-Font]\-\-concurrent\f[]=\f\*[I-Font]host\-name\f[]
Concurrently query all IPs returned for host-name.
This option may appear an unlimited number of times.
.sp
Requests from an NTP "client" to a "server" should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
\fBntpd\fP, and therefore \fBsntp\fP will send queries to these IPs
one after another, with a 2-second gap in between each query.
.sp
The \fB-c\fP or \fB--concurrent\fP flag says that any IPs
returned for the DNS lookup of the supplied host-name are on
different machines, so we can send concurrent queries.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-g\f[] \f\*[I-Font]milliseconds\f[], \f\*[B-Font]\-\-gap\f[]=\f\*[I-Font]milliseconds\f[]
The gap (in milliseconds) between time requests.
This option takes an integer number as its argument.
The default
\f\*[I-Font]milliseconds\f[]
for this option is:
.ti +4
50
.sp
Since we're only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
.TP
.NOP \f\*[B-Font]\-K\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-kod\f[]=\f\*[I-Font]file\-name\f[]
KoD history filename.
The default
\f\*[I-Font]file\-name\f[]
for this option is:
.ti +4
/var/db/ntp-kod
.sp
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
.TP
.NOP \f\*[B-Font]\-k\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-keyfile\f[]=\f\*[I-Font]file\-name\f[]
Look in this file for the key specified with \fB-a\fP.
The default
\f\*[I-Font]file\-name\f[]
for this option is:
.ti +4
/etc/ntp.keys
.sp
This option specifies the keyfile.
\fBsntp\fP will search for the key specified with \fB-a\fP
\fIkeyno\fP in this file. See \fBntp.keys(5)\fP for more
information.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-logfile\f[]=\f\*[I-Font]file\-name\f[]
Log to specified logfile.
.sp
This option causes the client to write log messages to the specified
\fIlogfile\fP.
.TP
.NOP \f\*[B-Font]\-M\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-steplimit\f[]=\f\*[I-Font]number\f[]
Adjustments less than \fBsteplimit\fP msec will be slewed.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]number\f[]
is constrained to being:
.in +4
.nf
.na
greater than or equal to 0
.fi
.in -4
.sp
If the time adjustment is less than \fIsteplimit\fP milliseconds,
slew the amount using \fBadjtime(2)\fP. Otherwise, step the
correction using \fBsettimeofday(2)\fP. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
.TP
.NOP \f\*[B-Font]\-o\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-ntpversion\f[]=\f\*[I-Font]number\f[]
Send \fBint\fP as our NTP protocol version.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]number\f[]
is constrained to being:
.in +4
.nf
.na
in the range 0 through 7
.fi
.in -4
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
4
.sp
When sending requests to a remote server, tell them we are running
NTP protocol version \fIntpversion\fP .
.TP
.NOP \f\*[B-Font]\-r\f[], \f\*[B-Font]\-\-usereservedport\f[]
Use the NTP Reserved Port (port 123).
.sp
Use port 123, which is reserved for NTP, for our network
communications.
.TP
.NOP \f\*[B-Font]\-S\f[], \f\*[B-Font]\-\-step\f[]
OK to 'step' the time with \fBsettimeofday(2)\fP.
.sp
.TP
.NOP \f\*[B-Font]\-s\f[], \f\*[B-Font]\-\-slew\f[]
OK to 'slew' the time with \fBadjtime(2)\fP.
.sp
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]seconds\f[], \f\*[B-Font]\-\-timeout\f[]=\f\*[I-Font]seconds\f[]
The number of seconds to wait for responses.
This option takes an integer number as its argument.
The default
\f\*[I-Font]seconds\f[]
for this option is:
.ti +4
5
.sp
When waiting for a reply, \fBsntp\fP will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If \fBsntp\fP is
only waiting for a broadcast response a longer timeout is
likely needed.
.TP
.NOP \f\*[B-Font]\-\-wait\f[], \f\*[B-Font]\-\-no\-wait\f[]
Wait for pending replies (if not setting the time).
The \fIno\-wait\fP form will disable the option.
This option is enabled by default.
.sp
If we are not setting the time, wait for all pending responses.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBSNTP_<option-name>\fP or \fBSNTP\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
.TP 7
.NOP \f[C]sntp ntpserver.somewhere\f[]
is the simplest use of this program
and can be run as an unprivileged command
to check the current time and error in the local clock.
.TP 7
.NOP \f[C]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\f[]\fR(8)\f[]
job,
\f\*[B-Font]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
will request the time from the server,
and if that server reports that it is synchronized
then if the offset adjustment is less than 128 milliseconds
the correction will be slewed,
and if the correction is more than 128 milliseconds
the correction will be stepped.
.TP 7
.NOP \f[C]sntp \-S ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\f[]\fR(8)\f[]
job,
\f\*[B-Font]sntp \-S ntpserver.somewhere\f[]
will set (step) the local clock from a synchronized specified server,
like the (deprecated)
\fCntpdate\f[]\fR(1ntpdatemdoc)\f[],
or
\fCrdate\f[]\fR(8)\f[]
commands.
.PP
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Johannes Maximilian Kuehn"
.br
.NOP "Harlan Stenn"
.br
.NOP "Dave Hart"
.br
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBsntp\fP
option definitions.
diff --git a/contrib/ntp/sntp/sntp.1sntpmdoc b/contrib/ntp/sntp/sntp.1sntpmdoc
index 0c9753955405..0f58ff4090af 100644
--- a/contrib/ntp/sntp/sntp.1sntpmdoc
+++ b/contrib/ntp/sntp/sntp.1sntpmdoc
@@ -1,317 +1,317 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt SNTP 1sntpmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:48:05 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:36:10 AM by AutoGen 5.18.16
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm sntp
.Nd standard Simple Network Time Protocol client program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ hostname\-or\-IP ...]
.Pp
.Sh DESCRIPTION
.Nm
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system's time (given suitable privilege). It can be
run as an interactive command or from a
.Ic cron
job.
NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
.Pp
The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
.Ic "'1996\-10\-15 20:17:25.123 (+0800) +4.567 +/\- 0.089 [host] IP sN'"
where the
.Ic "'(+0800)'"
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
.Ic "'+4.567'"
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
.Ic "'+/\- 0.089'"
is the reported
.Em synchronization distance
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
.Ic "'+/\- ?'" .
If the
.Em host
is different from the
.Em IP ,
both will be displayed.
Otherwise, only the
.Em IP
is displayed.
Finally, the
.Em stratum
of the host is reported
and the leap indicator is decoded and displayed.
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
.It Fl a Ar auth\-keynumber , Fl \-authentication Ns = Ns Ar auth\-keynumber
Enable authentication with the key \fBauth\-keynumber\fP.
This option takes an integer number as its argument.
.sp
Enable authentication using the key specified in this option's
argument. The argument of this option is the \fBkeyid\fP, a
number specified in the \fBkeyfile\fP as this key's identifier.
See the \fBkeyfile\fP option (\fB\-k\fP) for more details.
.It Fl b Ar broadcast\-address , Fl \-broadcast Ns = Ns Ar broadcast\-address
Listen to the address specified for broadcast time sync.
This option may appear an unlimited number of times.
.sp
If specified \fBsntp\fP will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with \fB\-t\fP.
.It Fl c Ar host\-name , Fl \-concurrent Ns = Ns Ar host\-name
Concurrently query all IPs returned for host\-name.
This option may appear an unlimited number of times.
.sp
Requests from an NTP "client" to a "server" should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
\fBntpd\fP, and therefore \fBsntp\fP will send queries to these IPs
one after another, with a 2\-second gap in between each query.
.sp
The \fB\-c\fP or \fB\-\-concurrent\fP flag says that any IPs
returned for the DNS lookup of the supplied host\-name are on
different machines, so we can send concurrent queries.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl g Ar milliseconds , Fl \-gap Ns = Ns Ar milliseconds
The gap (in milliseconds) between time requests.
This option takes an integer number as its argument.
The default
.Ar milliseconds
for this option is:
.ti +4
50
.sp
Since we're only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
.It Fl K Ar file\-name , Fl \-kod Ns = Ns Ar file\-name
KoD history filename.
The default
.Ar file\-name
for this option is:
.ti +4
/var/db/ntp\-kod
.sp
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
.It Fl k Ar file\-name , Fl \-keyfile Ns = Ns Ar file\-name
Look in this file for the key specified with \fB\-a\fP.
The default
.Ar file\-name
for this option is:
.ti +4
/etc/ntp.keys
.sp
This option specifies the keyfile.
\fBsntp\fP will search for the key specified with \fB\-a\fP
\fIkeyno\fP in this file. See \fBntp.keys(5)\fP for more
information.
.It Fl l Ar file\-name , Fl \-logfile Ns = Ns Ar file\-name
Log to specified logfile.
.sp
This option causes the client to write log messages to the specified
\fIlogfile\fP.
.It Fl M Ar number , Fl \-steplimit Ns = Ns Ar number
Adjustments less than \fBsteplimit\fP msec will be slewed.
This option takes an integer number as its argument.
The value of
.Ar number
is constrained to being:
.in +4
.nf
.na
greater than or equal to 0
.fi
.in -4
.sp
If the time adjustment is less than \fIsteplimit\fP milliseconds,
slew the amount using \fBadjtime(2)\fP. Otherwise, step the
correction using \fBsettimeofday(2)\fP. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
.It Fl o Ar number , Fl \-ntpversion Ns = Ns Ar number
Send \fBint\fP as our NTP protocol version.
This option takes an integer number as its argument.
The value of
.Ar number
is constrained to being:
.in +4
.nf
.na
in the range 0 through 7
.fi
.in -4
The default
.Ar number
for this option is:
.ti +4
4
.sp
When sending requests to a remote server, tell them we are running
NTP protocol version \fIntpversion\fP .
.It Fl r , Fl \-usereservedport
Use the NTP Reserved Port (port 123).
.sp
Use port 123, which is reserved for NTP, for our network
communications.
.It Fl S , Fl \-step
OK to 'step' the time with \fBsettimeofday(2)\fP.
.sp
.It Fl s , Fl \-slew
OK to 'slew' the time with \fBadjtime(2)\fP.
.sp
.It Fl t Ar seconds , Fl \-timeout Ns = Ns Ar seconds
The number of seconds to wait for responses.
This option takes an integer number as its argument.
The default
.Ar seconds
for this option is:
.ti +4
5
.sp
When waiting for a reply, \fBsntp\fP will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If \fBsntp\fP is
only waiting for a broadcast response a longer timeout is
likely needed.
.It Fl \-wait , Fl \-no\-wait
Wait for pending replies (if not setting the time).
The \fIno\-wait\fP form will disable the option.
This option is enabled by default.
.sp
If we are not setting the time, wait for all pending responses.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBSNTP_<option\-name>\fP or \fBSNTP\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Bl -tag -width indent
.It Li "sntp ntpserver.somewhere"
is the simplest use of this program
and can be run as an unprivileged command
to check the current time and error in the local clock.
.It Li "sntp \-Ss \-M 128 ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
.Ic "sntp \-Ss \-M 128 ntpserver.somewhere"
will request the time from the server,
and if that server reports that it is synchronized
then if the offset adjustment is less than 128 milliseconds
the correction will be slewed,
and if the correction is more than 128 milliseconds
the correction will be stepped.
.It Li "sntp \-S ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
.Ic "sntp \-S ntpserver.somewhere"
will set (step) the local clock from a synchronized specified server,
like the (deprecated)
.Xr ntpdate 1ntpdatemdoc ,
or
.Xr rdate 8
commands.
.El
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Johannes Maximilian Kuehn"
.An "Harlan Stenn"
.An "Dave Hart"
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBsntp\fP
option definitions.
diff --git a/contrib/ntp/sntp/sntp.html b/contrib/ntp/sntp/sntp.html
index bfa3aa6ace98..71d3c35d439c 100644
--- a/contrib/ntp/sntp/sntp.html
+++ b/contrib/ntp/sntp/sntp.html
@@ -1,646 +1,646 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sntp User&rsquo;s Manual</title>
<meta name="description" content="Sntp User&rsquo;s Manual">
<meta name="keywords" content="Sntp User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Sntp User&rsquo;s Manual</h1>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#sntp-Description" accesskey="n" rel="next">sntp Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="Simple-Network-Time-Protocol-User-Manual"></span><h1 class="top">Simple Network Time Protocol User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>sntp</code> program,
that can be used to query a Network Time Protocol (NTP) server and
display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
</p>
-<p>This document applies to version 4.2.8p16 of <code>sntp</code>.
+<p>This document applies to version 4.2.8p17 of <code>sntp</code>.
</p>
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
</p>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description" href="#toc-Description">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#sntp-Description" accesskey="1">sntp Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Description
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-Invocation" accesskey="2">sntp Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking sntp
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="3">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
</table>
<hr>
<span id="sntp-Description"></span><div class="header">
<p>
Next: <a href="#sntp-Invocation" accesskey="n" rel="next">sntp Invocation</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description"></span><h2 class="chapter">1 Description</h2>
<p>By default, <code>sntp</code> writes the local data and time (i.e., not UTC) to the
standard output in the format:
</p>
<div class="example">
<pre class="example">1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 secs
</pre></div>
<p>where
YYYY-MM-DD HH:MM:SS.SUBSEC is the local date and time,
(+0800) is the local timezone adjustment (so we would add 8 hours and 0 minutes to convert the reported local time to UTC),
and
the +4.567 +/- 0.089 secs indicates the time offset and
error bound of the system clock relative to the server clock.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#sntp-Invocation" accesskey="1">Invoking sntp</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Usage" accesskey="2">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="sntp-Invocation"></span><div class="header">
<p>
Next: <a href="#Usage" accesskey="n" rel="next">Usage</a>, Previous: <a href="#sntp-Description" accesskey="p" rel="prev">sntp Description</a>, Up: <a href="#sntp-Description" accesskey="u" rel="up">sntp Description</a> &nbsp; </p>
</div>
<span id="Invoking-sntp"></span><h3 class="section">1.1 Invoking sntp</h3>
<span id="index-sntp"></span>
<span id="index-standard-Simple-Network-Time-Protocol-client-program"></span>
<p><code>sntp</code>
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system&rsquo;s time (given suitable privilege). It can be
run as an interactive command or from a
<code>cron</code>
job.
</p>
<p>NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
</p>
<p>The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
</p>
<p><code>'1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 [host] IP sN'</code>
</p>
<p>where the
<code>'(+0800)'</code>
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
<code>'+4.567'</code>
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
<code>'+/- 0.089'</code>
is the reported
<em>synchronization</em> <em>distance</em>
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
<code>'+/- ?'</code>.
If the
<em>host</em>
is different from the
<em>IP</em>,
both will be displayed.
Otherwise, only the
<em>IP</em>
is displayed.
Finally, the
<em>stratum</em>
of the host is reported
and the leap indicator is decoded and displayed.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>sntp</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#sntp-usage" accesskey="1">sntp usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">sntp help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-ipv4" accesskey="2">sntp ipv4</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv4 option (-4)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-ipv6" accesskey="3">sntp ipv6</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ipv6 option (-6)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-authentication" accesskey="4">sntp authentication</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">authentication option (-a)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-broadcast" accesskey="5">sntp broadcast</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">broadcast option (-b)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-concurrent" accesskey="6">sntp concurrent</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">concurrent option (-c)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-gap" accesskey="7">sntp gap</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">gap option (-g)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-kod" accesskey="8">sntp kod</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">kod option (-K)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-keyfile" accesskey="9">sntp keyfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">keyfile option (-k)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-logfile">sntp logfile</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">logfile option (-l)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-steplimit">sntp steplimit</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">steplimit option (-M)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-ntpversion">sntp ntpversion</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntpversion option (-o)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-usereservedport">sntp usereservedport</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">usereservedport option (-r)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-timeout">sntp timeout</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">timeout option (-t)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-wait">sntp wait</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">wait option
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-config">sntp config</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">presetting/configuring sntp
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-exit-status">sntp exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-Usage">sntp Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#sntp-Authors">sntp Authors</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Authors
</td></tr>
</table>
<hr>
<span id="sntp-usage"></span><div class="header">
<p>
Next: <a href="#sntp-ipv4" accesskey="n" rel="next">sntp ipv4</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="sntp-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.1.1 sntp help/usage (<samp>--help</samp>)</h4>
<span id="index-sntp-help"></span>
<p>This is the automatically generated usage text for sntp.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p16
+<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p17
Usage: sntp [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
- prohibits the option 'ipv6'
-6 no ipv6 Force IPv6 DNS name resolution
- prohibits the option 'ipv4'
-a Num authentication Enable authentication with the key auth-keynumber
-b Str broadcast Listen to the address specified for broadcast time sync
- may appear multiple times
-c Str concurrent Concurrently query all IPs returned for host-name
- may appear multiple times
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-g Num gap The gap (in milliseconds) between time requests
-K Fil kod KoD history filename
-k Fil keyfile Look in this file for the key specified with -a
-l Fil logfile Log to specified logfile
-M Num steplimit Adjustments less than steplimit msec will be slewed
- it must be in the range:
greater than or equal to 0
-o Num ntpversion Send int as our NTP protocol version
- it must be in the range:
0 to 7
-r no usereservedport Use the NTP Reserved Port (port 123)
-S no step OK to 'step' the time with settimeofday(2)
-s no slew OK to 'slew' the time with adjtime(2)
-t Num timeout The number of seconds to wait for responses
no wait Wait for pending replies (if not setting the time)
- disabled as '--no-wait'
- enabled by default
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-&gt; opt save-opts save the option state to a config file
-&lt; Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named SNTP_*
Please send bug reports to: &lt;https://bugs.ntp.org, bugs@ntp.org&gt;
</pre></div>
<hr>
<span id="sntp-ipv4"></span><div class="header">
<p>
Next: <a href="#sntp-ipv6" accesskey="n" rel="next">sntp ipv6</a>, Previous: <a href="#sntp-usage" accesskey="p" rel="prev">sntp usage</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="ipv4-option-_0028_002d4_0029"></span><h4 class="subsection">1.1.2 ipv4 option (-4)</h4>
<span id="index-sntp_002dipv4"></span>
<p>This is the &ldquo;force ipv4 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv6.
</li></ul>
<p>Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
</p><hr>
<span id="sntp-ipv6"></span><div class="header">
<p>
Next: <a href="#sntp-authentication" accesskey="n" rel="next">sntp authentication</a>, Previous: <a href="#sntp-ipv4" accesskey="p" rel="prev">sntp ipv4</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="ipv6-option-_0028_002d6_0029"></span><h4 class="subsection">1.1.3 ipv6 option (-6)</h4>
<span id="index-sntp_002dipv6"></span>
<p>This is the &ldquo;force ipv6 dns name resolution&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must not appear in combination with any of the following options:
ipv4.
</li></ul>
<p>Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
</p><hr>
<span id="sntp-authentication"></span><div class="header">
<p>
Next: <a href="#sntp-broadcast" accesskey="n" rel="next">sntp broadcast</a>, Previous: <a href="#sntp-ipv6" accesskey="p" rel="prev">sntp ipv6</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="authentication-option-_0028_002da_0029"></span><h4 class="subsection">1.1.4 authentication option (-a)</h4>
<span id="index-sntp_002dauthentication"></span>
<p>This is the &ldquo;enable authentication with the key <var>auth-keynumber</var>&rdquo; option.
This option takes a number argument <samp>auth-keynumber</samp>.
Enable authentication using the key specified in this option&rsquo;s
argument. The argument of this option is the <samp>keyid</samp>, a
number specified in the <samp>keyfile</samp> as this key&rsquo;s identifier.
See the <samp>keyfile</samp> option (<samp>-k</samp>) for more details.
</p><hr>
<span id="sntp-broadcast"></span><div class="header">
<p>
Next: <a href="#sntp-concurrent" accesskey="n" rel="next">sntp concurrent</a>, Previous: <a href="#sntp-authentication" accesskey="p" rel="prev">sntp authentication</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="broadcast-option-_0028_002db_0029"></span><h4 class="subsection">1.1.5 broadcast option (-b)</h4>
<span id="index-sntp_002dbroadcast"></span>
<p>This is the &ldquo;listen to the address specified for broadcast time sync&rdquo; option.
This option takes a string argument <samp>broadcast-address</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>If specified <code>sntp</code> will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with <samp>-t</samp>.
</p><hr>
<span id="sntp-concurrent"></span><div class="header">
<p>
Next: <a href="#sntp-gap" accesskey="n" rel="next">sntp gap</a>, Previous: <a href="#sntp-broadcast" accesskey="p" rel="prev">sntp broadcast</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="concurrent-option-_0028_002dc_0029"></span><h4 class="subsection">1.1.6 concurrent option (-c)</h4>
<span id="index-sntp_002dconcurrent"></span>
<p>This is the &ldquo;concurrently query all ips returned for host-name&rdquo; option.
This option takes a string argument <samp>host-name</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> may appear an unlimited number of times.
</li></ul>
<p>Requests from an NTP &quot;client&quot; to a &quot;server&quot; should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
<code>ntpd</code>, and therefore <code>sntp</code> will send queries to these IPs
one after another, with a 2-second gap in between each query.
</p>
<p>The <samp>-c</samp> or <samp>--concurrent</samp> flag says that any IPs
returned for the DNS lookup of the supplied host-name are on
different machines, so we can send concurrent queries.
</p><hr>
<span id="sntp-gap"></span><div class="header">
<p>
Next: <a href="#sntp-kod" accesskey="n" rel="next">sntp kod</a>, Previous: <a href="#sntp-concurrent" accesskey="p" rel="prev">sntp concurrent</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="gap-option-_0028_002dg_0029"></span><h4 class="subsection">1.1.7 gap option (-g)</h4>
<span id="index-sntp_002dgap"></span>
<p>This is the &ldquo;the gap (in milliseconds) between time requests&rdquo; option.
This option takes a number argument <samp>milliseconds</samp>.
Since we&rsquo;re only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
</p><hr>
<span id="sntp-kod"></span><div class="header">
<p>
Next: <a href="#sntp-keyfile" accesskey="n" rel="next">sntp keyfile</a>, Previous: <a href="#sntp-gap" accesskey="p" rel="prev">sntp gap</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="kod-option-_0028_002dK_0029"></span><h4 class="subsection">1.1.8 kod option (-K)</h4>
<span id="index-sntp_002dkod"></span>
<p>This is the &ldquo;kod history filename&rdquo; option.
This option takes a file argument <samp>file-name</samp>.
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
</p><hr>
<span id="sntp-keyfile"></span><div class="header">
<p>
Next: <a href="#sntp-logfile" accesskey="n" rel="next">sntp logfile</a>, Previous: <a href="#sntp-kod" accesskey="p" rel="prev">sntp kod</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="keyfile-option-_0028_002dk_0029"></span><h4 class="subsection">1.1.9 keyfile option (-k)</h4>
<span id="index-sntp_002dkeyfile"></span>
<p>This is the &ldquo;look in this file for the key specified with <samp>-a</samp>&rdquo; option.
This option takes a file argument <samp>file-name</samp>.
This option specifies the keyfile.
<code>sntp</code> will search for the key specified with <samp>-a</samp>
<samp>keyno</samp> in this file. See <code>ntp.keys(5)</code> for more
information.
</p><hr>
<span id="sntp-logfile"></span><div class="header">
<p>
Next: <a href="#sntp-steplimit" accesskey="n" rel="next">sntp steplimit</a>, Previous: <a href="#sntp-keyfile" accesskey="p" rel="prev">sntp keyfile</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="logfile-option-_0028_002dl_0029"></span><h4 class="subsection">1.1.10 logfile option (-l)</h4>
<span id="index-sntp_002dlogfile"></span>
<p>This is the &ldquo;log to specified logfile&rdquo; option.
This option takes a file argument <samp>file-name</samp>.
This option causes the client to write log messages to the specified
<samp>logfile</samp>.
</p><hr>
<span id="sntp-steplimit"></span><div class="header">
<p>
Next: <a href="#sntp-ntpversion" accesskey="n" rel="next">sntp ntpversion</a>, Previous: <a href="#sntp-logfile" accesskey="p" rel="prev">sntp logfile</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="steplimit-option-_0028_002dM_0029"></span><h4 class="subsection">1.1.11 steplimit option (-M)</h4>
<span id="index-sntp_002dsteplimit"></span>
<p>This is the &ldquo;adjustments less than <var>steplimit</var> msec will be slewed&rdquo; option.
This option takes a number argument.
If the time adjustment is less than <samp>steplimit</samp> milliseconds,
slew the amount using <code>adjtime(2)</code>. Otherwise, step the
correction using <code>settimeofday(2)</code>. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
</p><hr>
<span id="sntp-ntpversion"></span><div class="header">
<p>
Next: <a href="#sntp-usereservedport" accesskey="n" rel="next">sntp usereservedport</a>, Previous: <a href="#sntp-steplimit" accesskey="p" rel="prev">sntp steplimit</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="ntpversion-option-_0028_002do_0029"></span><h4 class="subsection">1.1.12 ntpversion option (-o)</h4>
<span id="index-sntp_002dntpversion"></span>
<p>This is the &ldquo;send <var>int</var> as our ntp protocol version&rdquo; option.
This option takes a number argument.
When sending requests to a remote server, tell them we are running
NTP protocol version <samp>ntpversion</samp> .
</p><hr>
<span id="sntp-usereservedport"></span><div class="header">
<p>
Next: <a href="#sntp-timeout" accesskey="n" rel="next">sntp timeout</a>, Previous: <a href="#sntp-ntpversion" accesskey="p" rel="prev">sntp ntpversion</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="usereservedport-option-_0028_002dr_0029"></span><h4 class="subsection">1.1.13 usereservedport option (-r)</h4>
<span id="index-sntp_002dusereservedport"></span>
<p>This is the &ldquo;use the ntp reserved port (port 123)&rdquo; option.
Use port 123, which is reserved for NTP, for our network
communications.
</p><hr>
<span id="sntp-timeout"></span><div class="header">
<p>
Next: <a href="#sntp-wait" accesskey="n" rel="next">sntp wait</a>, Previous: <a href="#sntp-usereservedport" accesskey="p" rel="prev">sntp usereservedport</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="timeout-option-_0028_002dt_0029"></span><h4 class="subsection">1.1.14 timeout option (-t)</h4>
<span id="index-sntp_002dtimeout"></span>
<p>This is the &ldquo;the number of seconds to wait for responses&rdquo; option.
This option takes a number argument <samp>seconds</samp>.
When waiting for a reply, <code>sntp</code> will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If <code>sntp</code> is
only waiting for a broadcast response a longer timeout is
likely needed.
</p><hr>
<span id="sntp-wait"></span><div class="header">
<p>
Next: <a href="#sntp-config" accesskey="n" rel="next">sntp config</a>, Previous: <a href="#sntp-timeout" accesskey="p" rel="prev">sntp timeout</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="wait-option"></span><h4 class="subsection">1.1.15 wait option</h4>
<span id="index-sntp_002dwait"></span>
<p>This is the &ldquo;wait for pending replies (if not setting the time)&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> can be disabled with &ndash;no-wait.
</li><li> It is enabled by default.
</li></ul>
<p>If we are not setting the time, wait for all pending responses.
</p>
<hr>
<span id="sntp-config"></span><div class="header">
<p>
Next: <a href="#sntp-exit-status" accesskey="n" rel="next">sntp exit status</a>, Previous: <a href="#sntp-wait" accesskey="p" rel="prev">sntp wait</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="presetting_002fconfiguring-sntp"></span><h4 class="subsection">1.1.16 presetting/configuring sntp</h4>
<p>Any option that is not marked as <i>not presettable</i> may be preset by
loading values from configuration (&quot;rc&quot; or &quot;ini&quot;) files, and values from environment variables named <code>SNTP</code> and <code>SNTP_&lt;OPTION_NAME&gt;</code>. <code>&lt;OPTION_NAME&gt;</code> must be one of
the options listed above in upper case and segmented with underscores.
The <code>SNTP</code> variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
</p>
<p><code>libopts</code> will search in 2 places for configuration files:
</p><ul>
<li> $HOME
</li><li> $PWD
</li></ul>
<p>The environment variables <code>HOME</code>, and <code>PWD</code>
are expanded and replaced when <samp>sntp</samp> runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named <samp>.ntprc</samp> is searched for
within that directory and processed.
</p>
<p>Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
</p>
<p>Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
</p><div class="example">
<pre class="example">[SNTP]
</pre></div>
<p>or by
</p><div class="example">
<pre class="example">&lt;?program sntp&gt;
</pre></div>
<p>Do not mix these styles within one configuration file.
</p>
<p>Compound values and carefully constructed string values may also be
specified using XML syntax:
</p><div class="example">
<pre class="example">&lt;option-name&gt;
&lt;sub-opt&gt;...&amp;lt;...&amp;gt;...&lt;/sub-opt&gt;
&lt;/option-name&gt;
</pre></div>
<p>yielding an <code>option-name.sub-opt</code> string value of
</p><div class="example">
<pre class="example">&quot;...&lt;...&gt;...&quot;
</pre></div>
<p><code>AutoOpts</code> does not track suboptions. You simply note that it is a
hierarchicly valued option. <code>AutoOpts</code> does provide a means for searching
the associated name/value pair list (see: optionFindValue).
</p>
<p>The command line options relating to configuration and/or usage help are:
</p>
<span id="version-_0028_002d_0029"></span><h4 class="subsubheading">version (-)</h4>
<p>Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>version</samp>&rsquo;</dt>
<dd><p>Only print the version. This is the default.
</p></dd>
<dt>&lsquo;<samp>copyright</samp>&rsquo;</dt>
<dd><p>Name the copyright usage licensing terms.
</p></dd>
<dt>&lsquo;<samp>verbose</samp>&rsquo;</dt>
<dd><p>Print the full copyright usage licensing terms.
</p></dd>
</dl>
<hr>
<span id="sntp-exit-status"></span><div class="header">
<p>
Next: <a href="#sntp-Usage" accesskey="n" rel="next">sntp Usage</a>, Previous: <a href="#sntp-config" accesskey="p" rel="prev">sntp config</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="sntp-exit-status-1"></span><h4 class="subsection">1.1.17 sntp exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
<dt>&lsquo;<samp>66 (EX_NOINPUT)</samp>&rsquo;</dt>
<dd><p>A specified configuration file could not be loaded.
</p></dd>
<dt>&lsquo;<samp>70 (EX_SOFTWARE)</samp>&rsquo;</dt>
<dd><p>libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
</p></dd>
</dl>
<hr>
<span id="sntp-Usage"></span><div class="header">
<p>
Next: <a href="#sntp-Authors" accesskey="n" rel="next">sntp Authors</a>, Previous: <a href="#sntp-exit-status" accesskey="p" rel="prev">sntp exit status</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="sntp-Usage-1"></span><h4 class="subsection">1.1.18 sntp Usage</h4>
<hr>
<span id="sntp-Authors"></span><div class="header">
<p>
Previous: <a href="#sntp-Usage" accesskey="p" rel="prev">sntp Usage</a>, Up: <a href="#sntp-Invocation" accesskey="u" rel="up">sntp Invocation</a> &nbsp; </p>
</div>
<span id="sntp-Authors-1"></span><h4 class="subsection">1.1.19 sntp Authors</h4>
<hr>
<span id="Usage"></span><div class="header">
<p>
Previous: <a href="#sntp-Invocation" accesskey="p" rel="prev">sntp Invocation</a>, Up: <a href="#sntp-Description" accesskey="u" rel="up">sntp Description</a> &nbsp; </p>
</div>
<span id="Usage-1"></span><h3 class="section">1.2 Usage</h3>
<p>The simplest use of this program is as an unprivileged command to
check the current time, offset, and error in the local clock.
For example:
</p>
<div class="example">
<pre class="example">sntp ntpserver.somewhere
</pre></div>
<p>With suitable privilege, it can be run as a command or in a
<code>crom</code> job to reset the local clock from a reliable server, like
the <code>ntpdate</code> and <code>rdate</code> commands.
For example:
</p>
<div class="example">
<pre class="example">sntp -a ntpserver.somewhere
</pre></div>
<hr>
</body>
</html>
diff --git a/contrib/ntp/sntp/sntp.man.in b/contrib/ntp/sntp/sntp.man.in
index 61768840982f..ca4ddea8e35c 100644
--- a/contrib/ntp/sntp/sntp.man.in
+++ b/contrib/ntp/sntp/sntp.man.in
@@ -1,362 +1,362 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp @SNTP_MS@ "31 May 2023" "4.2.8p16" "User Commands"
+.TH sntp @SNTP_MS@ "06 Jun 2023" "4.2.8p17" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:48:09 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:36:14 AM by AutoGen 5.18.16
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]sntp\fP
\- standard Simple Network Time Protocol client program
.SH SYNOPSIS
\f\*[B-Font]sntp\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
[ hostname-or-IP ...]
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
\f\*[B-Font]sntp\fP
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system's time (given suitable privilege). It can be
run as an interactive command or from a
\f\*[B-Font]cron\f[]
job.
NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
.sp \n(Ppu
.ne 2
The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
\f\*[B-Font]'1996-10-15 20:17:25.123 (+0800) +4.567 +/- 0.089 [host] IP sN'\f[]
where the
\f\*[B-Font]'(+0800)'\f[]
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
\f\*[B-Font]'+4.567'\f[]
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
\f\*[B-Font]'+/- 0.089'\f[]
is the reported
\fIsynchronization\f[] \fIdistance\f[]
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
\f\*[B-Font]'+/- ?'\f[].
If the
\fIhost\f[]
is different from the
\fIIP\f[],
both will be displayed.
Otherwise, only the
\fIIP\f[]
is displayed.
Finally, the
\fIstratum\f[]
of the host is reported
and the leap indicator is decoded and displayed.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-4\f[], \f\*[B-Font]\-\-ipv4\f[]
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
.TP
.NOP \f\*[B-Font]\-6\f[], \f\*[B-Font]\-\-ipv6\f[]
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
.TP
.NOP \f\*[B-Font]\-a\f[] \f\*[I-Font]auth\-keynumber\f[], \f\*[B-Font]\-\-authentication\f[]=\f\*[I-Font]auth\-keynumber\f[]
Enable authentication with the key \fBauth-keynumber\fP.
This option takes an integer number as its argument.
.sp
Enable authentication using the key specified in this option's
argument. The argument of this option is the \fBkeyid\fP, a
number specified in the \fBkeyfile\fP as this key's identifier.
See the \fBkeyfile\fP option (\fB-k\fP) for more details.
.TP
.NOP \f\*[B-Font]\-b\f[] \f\*[I-Font]broadcast\-address\f[], \f\*[B-Font]\-\-broadcast\f[]=\f\*[I-Font]broadcast\-address\f[]
Listen to the address specified for broadcast time sync.
This option may appear an unlimited number of times.
.sp
If specified \fBsntp\fP will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with \fB-t\fP.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]host\-name\f[], \f\*[B-Font]\-\-concurrent\f[]=\f\*[I-Font]host\-name\f[]
Concurrently query all IPs returned for host-name.
This option may appear an unlimited number of times.
.sp
Requests from an NTP "client" to a "server" should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
\fBntpd\fP, and therefore \fBsntp\fP will send queries to these IPs
one after another, with a 2-second gap in between each query.
.sp
The \fB-c\fP or \fB--concurrent\fP flag says that any IPs
returned for the DNS lookup of the supplied host-name are on
different machines, so we can send concurrent queries.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-g\f[] \f\*[I-Font]milliseconds\f[], \f\*[B-Font]\-\-gap\f[]=\f\*[I-Font]milliseconds\f[]
The gap (in milliseconds) between time requests.
This option takes an integer number as its argument.
The default
\f\*[I-Font]milliseconds\f[]
for this option is:
.ti +4
50
.sp
Since we're only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
.TP
.NOP \f\*[B-Font]\-K\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-kod\f[]=\f\*[I-Font]file\-name\f[]
KoD history filename.
The default
\f\*[I-Font]file\-name\f[]
for this option is:
.ti +4
/var/db/ntp-kod
.sp
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
.TP
.NOP \f\*[B-Font]\-k\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-keyfile\f[]=\f\*[I-Font]file\-name\f[]
Look in this file for the key specified with \fB-a\fP.
The default
\f\*[I-Font]file\-name\f[]
for this option is:
.ti +4
/etc/ntp.keys
.sp
This option specifies the keyfile.
\fBsntp\fP will search for the key specified with \fB-a\fP
\fIkeyno\fP in this file. See \fBntp.keys(5)\fP for more
information.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]file\-name\f[], \f\*[B-Font]\-\-logfile\f[]=\f\*[I-Font]file\-name\f[]
Log to specified logfile.
.sp
This option causes the client to write log messages to the specified
\fIlogfile\fP.
.TP
.NOP \f\*[B-Font]\-M\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-steplimit\f[]=\f\*[I-Font]number\f[]
Adjustments less than \fBsteplimit\fP msec will be slewed.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]number\f[]
is constrained to being:
.in +4
.nf
.na
greater than or equal to 0
.fi
.in -4
.sp
If the time adjustment is less than \fIsteplimit\fP milliseconds,
slew the amount using \fBadjtime(2)\fP. Otherwise, step the
correction using \fBsettimeofday(2)\fP. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
.TP
.NOP \f\*[B-Font]\-o\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-ntpversion\f[]=\f\*[I-Font]number\f[]
Send \fBint\fP as our NTP protocol version.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]number\f[]
is constrained to being:
.in +4
.nf
.na
in the range 0 through 7
.fi
.in -4
The default
\f\*[I-Font]number\f[]
for this option is:
.ti +4
4
.sp
When sending requests to a remote server, tell them we are running
NTP protocol version \fIntpversion\fP .
.TP
.NOP \f\*[B-Font]\-r\f[], \f\*[B-Font]\-\-usereservedport\f[]
Use the NTP Reserved Port (port 123).
.sp
Use port 123, which is reserved for NTP, for our network
communications.
.TP
.NOP \f\*[B-Font]\-S\f[], \f\*[B-Font]\-\-step\f[]
OK to 'step' the time with \fBsettimeofday(2)\fP.
.sp
.TP
.NOP \f\*[B-Font]\-s\f[], \f\*[B-Font]\-\-slew\f[]
OK to 'slew' the time with \fBadjtime(2)\fP.
.sp
.TP
.NOP \f\*[B-Font]\-t\f[] \f\*[I-Font]seconds\f[], \f\*[B-Font]\-\-timeout\f[]=\f\*[I-Font]seconds\f[]
The number of seconds to wait for responses.
This option takes an integer number as its argument.
The default
\f\*[I-Font]seconds\f[]
for this option is:
.ti +4
5
.sp
When waiting for a reply, \fBsntp\fP will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If \fBsntp\fP is
only waiting for a broadcast response a longer timeout is
likely needed.
.TP
.NOP \f\*[B-Font]\-\-wait\f[], \f\*[B-Font]\-\-no\-wait\f[]
Wait for pending replies (if not setting the time).
The \fIno\-wait\fP form will disable the option.
This option is enabled by default.
.sp
If we are not setting the time, wait for all pending responses.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBSNTP_<option-name>\fP or \fBSNTP\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
.TP 7
.NOP \f[C]sntp ntpserver.somewhere\f[]
is the simplest use of this program
and can be run as an unprivileged command
to check the current time and error in the local clock.
.TP 7
.NOP \f[C]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\f[]\fR(8)\f[]
job,
\f\*[B-Font]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
will request the time from the server,
and if that server reports that it is synchronized
then if the offset adjustment is less than 128 milliseconds
the correction will be slewed,
and if the correction is more than 128 milliseconds
the correction will be stepped.
.TP 7
.NOP \f[C]sntp \-S ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\f[]\fR(8)\f[]
job,
\f\*[B-Font]sntp \-S ntpserver.somewhere\f[]
will set (step) the local clock from a synchronized specified server,
like the (deprecated)
\fCntpdate\f[]\fR(@NTPDATE_MS@)\f[],
or
\fCrdate\f[]\fR(8)\f[]
commands.
.PP
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH AUTHORS
.NOP "Johannes Maximilian Kuehn"
.br
.NOP "Harlan Stenn"
.br
.NOP "Dave Hart"
.br
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH "NOTES"
This manual page was \fIAutoGen\fP-erated from the \fBsntp\fP
option definitions.
diff --git a/contrib/ntp/sntp/sntp.mdoc.in b/contrib/ntp/sntp/sntp.mdoc.in
index 9585720e18b7..3e5fa337725f 100644
--- a/contrib/ntp/sntp/sntp.mdoc.in
+++ b/contrib/ntp/sntp/sntp.mdoc.in
@@ -1,317 +1,317 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt SNTP @SNTP_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 02:48:05 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:36:10 AM by AutoGen 5.18.16
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm sntp
.Nd standard Simple Network Time Protocol client program
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
[ hostname\-or\-IP ...]
.Pp
.Sh DESCRIPTION
.Nm
can be used as an SNTP client to query a NTP or SNTP server and either display
the time or set the local system's time (given suitable privilege). It can be
run as an interactive command or from a
.Ic cron
job.
NTP (the Network Time Protocol) and SNTP (the Simple Network Time Protocol)
are defined and described by RFC 5905.
.Pp
The default is to write the estimated correct local date and time (i.e. not
UTC) to the standard output in a format like:
.Ic "'1996\-10\-15 20:17:25.123 (+0800) +4.567 +/\- 0.089 [host] IP sN'"
where the
.Ic "'(+0800)'"
means that to get to UTC from the reported local time one must
add 8 hours and 0 minutes,
the
.Ic "'+4.567'"
indicates the local clock is 4.567 seconds behind the correct time
(so 4.567 seconds must be added to the local clock to get it to be correct).
Note that the number of decimals printed for this value will change
based on the reported precision of the server.
.Ic "'+/\- 0.089'"
is the reported
.Em synchronization distance
(in seconds), which represents the maximum error due to all causes.
If the server does not report valid data needed to calculate the
synchronization distance, this will be reported as
.Ic "'+/\- ?'" .
If the
.Em host
is different from the
.Em IP ,
both will be displayed.
Otherwise, only the
.Em IP
is displayed.
Finally, the
.Em stratum
of the host is reported
and the leap indicator is decoded and displayed.
.Sh "OPTIONS"
.Bl -tag
.It Fl 4 , Fl \-ipv4
Force IPv4 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv6.
.sp
Force DNS resolution of the following host names on the command line
to the IPv4 namespace.
.It Fl 6 , Fl \-ipv6
Force IPv6 DNS name resolution.
This option must not appear in combination with any of the following options:
ipv4.
.sp
Force DNS resolution of the following host names on the command line
to the IPv6 namespace.
.It Fl a Ar auth\-keynumber , Fl \-authentication Ns = Ns Ar auth\-keynumber
Enable authentication with the key \fBauth\-keynumber\fP.
This option takes an integer number as its argument.
.sp
Enable authentication using the key specified in this option's
argument. The argument of this option is the \fBkeyid\fP, a
number specified in the \fBkeyfile\fP as this key's identifier.
See the \fBkeyfile\fP option (\fB\-k\fP) for more details.
.It Fl b Ar broadcast\-address , Fl \-broadcast Ns = Ns Ar broadcast\-address
Listen to the address specified for broadcast time sync.
This option may appear an unlimited number of times.
.sp
If specified \fBsntp\fP will listen to the specified address
for NTP broadcasts. The default maximum wait time
can (and probably should) be modified with \fB\-t\fP.
.It Fl c Ar host\-name , Fl \-concurrent Ns = Ns Ar host\-name
Concurrently query all IPs returned for host\-name.
This option may appear an unlimited number of times.
.sp
Requests from an NTP "client" to a "server" should never be sent
more rapidly than one every 2 seconds. By default, any IPs returned
as part of a DNS lookup are assumed to be for a single instance of
\fBntpd\fP, and therefore \fBsntp\fP will send queries to these IPs
one after another, with a 2\-second gap in between each query.
.sp
The \fB\-c\fP or \fB\-\-concurrent\fP flag says that any IPs
returned for the DNS lookup of the supplied host\-name are on
different machines, so we can send concurrent queries.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl g Ar milliseconds , Fl \-gap Ns = Ns Ar milliseconds
The gap (in milliseconds) between time requests.
This option takes an integer number as its argument.
The default
.Ar milliseconds
for this option is:
.ti +4
50
.sp
Since we're only going to use the first valid response we get and
there is benefit to specifying a good number of servers to query,
separate the queries we send out by the specified number of
milliseconds.
.It Fl K Ar file\-name , Fl \-kod Ns = Ns Ar file\-name
KoD history filename.
The default
.Ar file\-name
for this option is:
.ti +4
/var/db/ntp\-kod
.sp
Specifies the filename to be used for the persistent history of KoD
responses received from servers. If the file does not exist, a
warning message will be displayed. The file will not be created.
.It Fl k Ar file\-name , Fl \-keyfile Ns = Ns Ar file\-name
Look in this file for the key specified with \fB\-a\fP.
The default
.Ar file\-name
for this option is:
.ti +4
/etc/ntp.keys
.sp
This option specifies the keyfile.
\fBsntp\fP will search for the key specified with \fB\-a\fP
\fIkeyno\fP in this file. See \fBntp.keys(5)\fP for more
information.
.It Fl l Ar file\-name , Fl \-logfile Ns = Ns Ar file\-name
Log to specified logfile.
.sp
This option causes the client to write log messages to the specified
\fIlogfile\fP.
.It Fl M Ar number , Fl \-steplimit Ns = Ns Ar number
Adjustments less than \fBsteplimit\fP msec will be slewed.
This option takes an integer number as its argument.
The value of
.Ar number
is constrained to being:
.in +4
.nf
.na
greater than or equal to 0
.fi
.in -4
.sp
If the time adjustment is less than \fIsteplimit\fP milliseconds,
slew the amount using \fBadjtime(2)\fP. Otherwise, step the
correction using \fBsettimeofday(2)\fP. The default value is 0,
which means all adjustments will be stepped. This is a feature, as
different situations demand different values.
.It Fl o Ar number , Fl \-ntpversion Ns = Ns Ar number
Send \fBint\fP as our NTP protocol version.
This option takes an integer number as its argument.
The value of
.Ar number
is constrained to being:
.in +4
.nf
.na
in the range 0 through 7
.fi
.in -4
The default
.Ar number
for this option is:
.ti +4
4
.sp
When sending requests to a remote server, tell them we are running
NTP protocol version \fIntpversion\fP .
.It Fl r , Fl \-usereservedport
Use the NTP Reserved Port (port 123).
.sp
Use port 123, which is reserved for NTP, for our network
communications.
.It Fl S , Fl \-step
OK to 'step' the time with \fBsettimeofday(2)\fP.
.sp
.It Fl s , Fl \-slew
OK to 'slew' the time with \fBadjtime(2)\fP.
.sp
.It Fl t Ar seconds , Fl \-timeout Ns = Ns Ar seconds
The number of seconds to wait for responses.
This option takes an integer number as its argument.
The default
.Ar seconds
for this option is:
.ti +4
5
.sp
When waiting for a reply, \fBsntp\fP will wait the number
of seconds specified before giving up. The default should be
more than enough for a unicast response. If \fBsntp\fP is
only waiting for a broadcast response a longer timeout is
likely needed.
.It Fl \-wait , Fl \-no\-wait
Wait for pending replies (if not setting the time).
The \fIno\-wait\fP form will disable the option.
This option is enabled by default.
.sp
If we are not setting the time, wait for all pending responses.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBSNTP_<option\-name>\fP or \fBSNTP\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Bl -tag -width indent
.It Li "sntp ntpserver.somewhere"
is the simplest use of this program
and can be run as an unprivileged command
to check the current time and error in the local clock.
.It Li "sntp \-Ss \-M 128 ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
.Ic "sntp \-Ss \-M 128 ntpserver.somewhere"
will request the time from the server,
and if that server reports that it is synchronized
then if the offset adjustment is less than 128 milliseconds
the correction will be slewed,
and if the correction is more than 128 milliseconds
the correction will be stepped.
.It Li "sntp \-S ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
.Ic "sntp \-S ntpserver.somewhere"
will set (step) the local clock from a synchronized specified server,
like the (deprecated)
.Xr ntpdate @NTPDATE_MS@ ,
or
.Xr rdate 8
commands.
.El
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh AUTHORS
.An "Johannes Maximilian Kuehn"
.An "Harlan Stenn"
.An "Dave Hart"
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh "BUGS"
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh "NOTES"
This manual page was \fIAutoGen\fP\-erated from the \fBsntp\fP
option definitions.
diff --git a/contrib/ntp/tests/libntp/data/mills,david-03.jpg b/contrib/ntp/tests/libntp/data/mills,david-03.jpg
new file mode 100644
index 000000000000..c164eea2cf33
Binary files /dev/null and b/contrib/ntp/tests/libntp/data/mills,david-03.jpg differ
diff --git a/contrib/ntp/tests/libntp/data/ntp.keys b/contrib/ntp/tests/libntp/data/ntp.keys
new file mode 100644
index 000000000000..6c8c743fd7d2
--- /dev/null
+++ b/contrib/ntp/tests/libntp/data/ntp.keys
@@ -0,0 +1,34 @@
+# This unit test ntp.keys file has hard-coded the current set
+# of OpenSSL-supported digest algorithms. It needs to be updated
+# after newer algorithms are available. The current list can be
+# obtained with:
+#
+# ntpq -c "help keytype"
+#
+# tests/libntp/digest.c similarly hardcodes the list of digests
+# to test.
+#
+# Each digest is tested twice with keyids separated by 50 for
+# plaintext and hex-encoded keys.
+
+ 1 AES128CMAC X~A=%NWlo]p$dGq,S3M9
+ 2 MD4 oV'8?f+J5`_EOvW!B,R`
+ 3 MD5 >b^IZa4>K6:Au=KS>S-6
+ 4 MDC2 b@XOS~6VZ.E9Qv!CJYV,
+ 5 RIPEMD160 I89p}f6QopwC\LwHBm;e
+ 6 SHA1 A;H=E;.m4N%t%EeJ90[d
+ 7 SHAKE128 |HxLoa,mzG<"y>^TI_(1
+ 8 MD5 306+^SHLV5{"v7W`U3aY # unused so far
+ 9 MD5 lGyKZgsI_Pi"y"8JAT98 # unused
+10 MD5 2:VO]Q5u%/b&}.<P?T~9 # unused
+
+51 AES128CMAC d0cd9f3ee181769ca7cccaada09f093c5fe8e628
+52 MD4 7080bc47eea6b379b2ff841805a144fb4a241a16
+53 MD5 b4c25b70f1fda16a7fef7552c9371e0cedee2e3c
+54 MDC2 3cb1d4633a460179a7c96aed6c6a9273c3c98af8
+55 RIPEMD160 6028ec169bfbe55ab61ffa7baa34b482020f0619
+56 SHA1 17d96a86eb9b9075f33e1c0a08bb2bb61e916e33
+57 SHAKE128 70da1a91030eb91836c1cf76cf67ddfd6b96fa91
+58 SHA1 7ce5deea7569d7423d5e1b497c8eb3bfeff852d5 # unused so far
+59 SHA1 9fd568e8f371deae54a65bc50b52bbe1f6529589 # unused
+60 SHA1 ce85046978a4df8366e102c4f1267399bbc25737 # unused
diff --git a/contrib/ntp/tests/libntp/digests.c b/contrib/ntp/tests/libntp/digests.c
new file mode 100644
index 000000000000..03e9ef1b838e
--- /dev/null
+++ b/contrib/ntp/tests/libntp/digests.c
@@ -0,0 +1,415 @@
+#include "config.h"
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "unity.h"
+#include "ntp.h"
+#include "ntp_stdlib.h"
+
+/*
+ * tests/libntp/data/ntp.keys has two keys for each algorithm, 50 keyids apart.
+ * The first is 20 random ASCII chars, the 2nd 40 random hex values.
+ */
+#define HEX_KEYID_OFFSET 50
+
+/* in generated srcdir.c */
+extern const char srcdir[];
+
+/* needed by authtrust() */
+u_long current_time;
+
+static bool setup;
+static u_int32 * pkt;
+static size_t pkt_sz;
+static u_char * mac;
+
+/* helper routine */
+void dump_mac(keyid_t keyid, u_char *pmac, size_t octets);
+
+
+/* unity calls setUp before each test routine */
+void setUp(void);
+void
+setUp(void)
+{
+ static bool done_once;
+ const char msg_rel_fname[] = "data/mills,david-03.jpg";
+ const char keys_rel_fname[] = "data/ntp.keys";
+ char msg_fname[PATH_MAX];
+ char keys_fname[PATH_MAX];
+ int msgf;
+ int result;
+ struct stat msg_stat;
+ u_char * msg;
+ size_t msg_sz;
+ size_t pad_sz;
+ ssize_t octets;
+
+ if (done_once) {
+ return;
+ }
+ done_once = TRUE;
+
+ init_auth();
+
+ snprintf(keys_fname, sizeof(keys_fname), "%s/%s", srcdir,
+ keys_rel_fname);
+ if (! authreadkeys(keys_fname)) {
+ fprintf(stderr, "could not load keys %s\n", keys_fname);
+ return;
+ }
+
+ snprintf(msg_fname, sizeof(msg_fname), "%s/%s", srcdir, msg_rel_fname);
+ msgf = open(msg_fname, O_RDONLY);
+ if (msgf < 0) {
+ fprintf(stderr, "could not open msg file %s\n", msg_fname);
+ return;
+ }
+
+ result = fstat(msgf, &msg_stat);
+ if (result < 0) {
+ fprintf(stderr, "could not get msg file %s size\n", msg_fname);
+ return;
+ }
+
+ msg_sz = msg_stat.st_size;
+ /* round up to next multiple of 4 as needed by MD5authencrypt() */
+ pad_sz = sizeof(u_int32) - (msg_sz % sizeof(u_int32));
+ if (sizeof(u_int32) == pad_sz) {
+ pad_sz = 0;
+ }
+ /* allocate room for the message, key ID, and MAC */
+ msg = emalloc_zero(msg_sz + pad_sz + MAX_MAC_LEN);
+ octets = read(msgf, msg, msg_sz);
+ if (octets != msg_sz) {
+ fprintf(stderr, "could not read msg from file %s, %u != %u\n",
+ msg_fname, (u_int)octets, (u_int)msg_sz);
+ return;
+ }
+ zero_mem(msg + msg_sz, pad_sz);
+ pkt_sz = msg_sz + pad_sz;
+ mac = (void *)((u_char *)msg + pkt_sz);
+ pkt = (void *)msg;
+
+ setup = TRUE;
+}
+
+/* reduce code duplication with an ugly macro */
+#define TEST_ONE_DIGEST(key, exp_sz, exp_mac) \
+do { \
+ size_t res_sz; \
+ \
+ zero_mem(mac, MAX_MAC_LEN); \
+ if (!auth_findkey(key)) { \
+ TEST_IGNORE_MESSAGE("MAC unsupported on this system"); \
+ return; \
+ } \
+ authtrust((key), 1); \
+ \
+ res_sz = authencrypt((key), pkt, pkt_sz); \
+ if (KEY_MAC_LEN == res_sz) { \
+ TEST_IGNORE_MESSAGE("Likely OpenSSL 3 failed digest " \
+ "init."); \
+ return; \
+ } \
+ TEST_ASSERT_EQUAL_UINT((u_int)((exp_sz) + KEY_MAC_LEN), res_sz);\
+ dump_mac((key), mac, res_sz); \
+ TEST_ASSERT_EQUAL_HEX8_ARRAY((exp_mac), mac, MAX_MAC_LEN); \
+} while (FALSE)
+
+
+#define AES128CMAC_KEYID 1
+#undef KEYID_A
+#define KEYID_A AES128CMAC_KEYID
+#undef DG_SZ
+#define DG_SZ 16
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_AES128CMAC(void);
+void test_Digest_AES128CMAC(void)
+{
+#if defined(OPENSSL) && defined(ENABLE_CMAC)
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0x34, 0x5b, 0xcf, 0xa8,
+ 0x85, 0x6e, 0x9d, 0x01,
+ 0xeb, 0x81, 0x25, 0xc2,
+ 0xa4, 0xb8, 0x1b, 0xe0
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0xd1, 0x04, 0x4e, 0xbf,
+ 0x79, 0x2d, 0x3a, 0x40,
+ 0xcd, 0xdc, 0x5a, 0x44,
+ 0xde, 0xe0, 0x0c, 0x84
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! (OPENSSL && ENABLE_CMAC) follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL or not ENABLE_CMAC");
+#endif
+}
+
+
+#define MD4_KEYID 2
+#undef KEYID_A
+#define KEYID_A MD4_KEYID
+#undef DG_SZ
+#define DG_SZ 16
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_MD4(void);
+void test_Digest_MD4(void)
+{
+#ifdef OPENSSL
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0xf3, 0x39, 0x34, 0xca,
+ 0xe0, 0x48, 0x26, 0x0f,
+ 0x13, 0xca, 0x56, 0x9e,
+ 0xbc, 0x53, 0x9c, 0x66
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0x5e, 0xe6, 0x81, 0xf2,
+ 0x57, 0x57, 0x8a, 0x2b,
+ 0xa8, 0x76, 0x8e, 0x7a,
+ 0xc4, 0xf4, 0x34, 0x7e
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! OPENSSL follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL");
+#endif
+}
+
+
+#define MD5_KEYID 3
+#undef KEYID_A
+#define KEYID_A MD5_KEYID
+#undef DG_SZ
+#define DG_SZ 16
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_MD5(void);
+void test_Digest_MD5(void)
+{
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0xa6, 0x8d, 0x3a, 0xfe,
+ 0x52, 0xe5, 0xf7, 0xe9,
+ 0x4c, 0x97, 0x72, 0x16,
+ 0x7c, 0x28, 0x18, 0xaf
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0xd4, 0x11, 0x2c, 0xc6,
+ 0x66, 0x74, 0x46, 0x8b,
+ 0x12, 0xb1, 0x8c, 0x49,
+ 0xb0, 0x06, 0xda, 0x34
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+}
+
+
+#define MDC2_KEYID 4
+#undef KEYID_A
+#define KEYID_A MDC2_KEYID
+#undef DG_SZ
+#define DG_SZ 16
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_MDC2(void);
+void test_Digest_MDC2(void)
+{
+#ifdef OPENSSL
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0xa0, 0xfc, 0x18, 0xb6,
+ 0xea, 0xba, 0xa5, 0x27,
+ 0xc9, 0x64, 0x0e, 0x41,
+ 0x95, 0x90, 0x5d, 0xf5
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0xe3, 0x2c, 0x1e, 0x64,
+ 0x7f, 0x85, 0x81, 0xe7,
+ 0x3b, 0xc3, 0x93, 0x5e,
+ 0xcd, 0x0e, 0x89, 0xeb
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! OPENSSL follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL");
+#endif
+}
+
+
+#define RIPEMD160_KEYID 5
+#undef KEYID_A
+#define KEYID_A RIPEMD160_KEYID
+#undef DG_SZ
+#define DG_SZ 20
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_RIPEMD160(void);
+void test_Digest_RIPEMD160(void)
+{
+#ifdef OPENSSL
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0x8c, 0x3e, 0x55, 0xbb,
+ 0xec, 0x7c, 0xf6, 0x30,
+ 0xef, 0xd1, 0x45, 0x8c,
+ 0xdd, 0x29, 0x32, 0x7e,
+ 0x04, 0x87, 0x6c, 0xd7
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0x2d, 0x4a, 0x48, 0xdd,
+ 0x28, 0x02, 0xb4, 0x9d,
+ 0xe3, 0x6d, 0x1b, 0x90,
+ 0x2b, 0xc4, 0x3f, 0xe5,
+ 0x19, 0x60, 0x12, 0xbc
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! OPENSSL follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL");
+#endif
+}
+
+
+#define SHA1_KEYID 6
+#undef KEYID_A
+#define KEYID_A SHA1_KEYID
+#undef DG_SZ
+#define DG_SZ 20
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_SHA1(void);
+void test_Digest_SHA1(void)
+{
+#ifdef OPENSSL
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0xe2, 0xc6, 0x17, 0x71,
+ 0x03, 0xc1, 0x85, 0x56,
+ 0x35, 0xc7, 0x4e, 0x75,
+ 0x79, 0x82, 0x9d, 0xcb,
+ 0x2d, 0x06, 0x0e, 0xfa
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0x01, 0x16, 0x37, 0xb4,
+ 0xf5, 0x2d, 0xe0, 0x97,
+ 0xaf, 0xd8, 0x58, 0xf7,
+ 0xad, 0xb3, 0x7e, 0x38,
+ 0x86, 0x85, 0x78, 0x44
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! OPENSSL follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL");
+#endif
+}
+
+
+#define SHAKE128_KEYID 7
+#undef KEYID_A
+#define KEYID_A SHAKE128_KEYID
+#undef DG_SZ
+#define DG_SZ 16
+#undef KEYID_B
+#define KEYID_B (KEYID_A + HEX_KEYID_OFFSET)
+void test_Digest_SHAKE128(void);
+void test_Digest_SHAKE128(void)
+{
+#ifdef OPENSSL
+ u_char expectedA[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_A,
+ 0x5c, 0x0c, 0x1a, 0x85,
+ 0xad, 0x03, 0xb2, 0x9a,
+ 0xe4, 0x75, 0x37, 0x93,
+ 0xaa, 0xa6, 0xcd, 0x76
+ };
+ u_char expectedB[MAX_MAC_LEN] =
+ {
+ 0, 0, 0, KEYID_B,
+ 0x07, 0x04, 0x63, 0xcc,
+ 0x46, 0xaf, 0xca, 0x00,
+ 0x7d, 0xd1, 0x5a, 0x39,
+ 0xfd, 0x34, 0xca, 0x10
+ };
+
+ TEST_ASSERT(setup);
+ TEST_ONE_DIGEST(KEYID_A, DG_SZ, expectedA);
+ TEST_ONE_DIGEST(KEYID_B, DG_SZ, expectedB);
+#else /* ! OPENSSL follows */
+ TEST_IGNORE_MESSAGE("Skipping, no OPENSSL");
+#endif
+}
+
+
+/*
+ * Dump a MAC in a form easy to cut and paste into the expected declaration.
+ */
+void dump_mac(
+ keyid_t keyid,
+ u_char * pmac,
+ size_t octets
+ )
+{
+ char dump[128];
+ size_t dc = 0;
+ size_t idx;
+
+ dc += snprintf(dump + dc, sizeof(dump) - dc, "digest with key %u { ", keyid);
+
+ for (idx = 0; idx < octets; idx++) {
+ if (10 == idx) {
+ msyslog(LOG_DEBUG, "%s", dump);
+ dc = 0;
+ }
+ if (dc < sizeof(dump)) {
+ dc += snprintf(dump + dc, sizeof(dump) - dc,
+ "0x%02x, ", pmac[idx]);
+ }
+ }
+
+ if (dc < sizeof(dump)) {
+ dc += snprintf(dump + dc, sizeof(dump) - dc, "}");
+ }
+
+ msyslog(LOG_DEBUG, "%s", dump);
+}
+
diff --git a/contrib/ntp/tests/libntp/run-digests.c b/contrib/ntp/tests/libntp/run-digests.c
new file mode 100644
index 000000000000..ae574d0e239e
--- /dev/null
+++ b/contrib/ntp/tests/libntp/run-digests.c
@@ -0,0 +1,80 @@
+/* AUTOGENERATED FILE. DO NOT EDIT. */
+
+//=======Test Runner Used To Run Each Test Below=====
+#define RUN_TEST(TestFunc, TestLineNum) \
+{ \
+ Unity.CurrentTestName = #TestFunc; \
+ Unity.CurrentTestLineNumber = TestLineNum; \
+ Unity.NumberOfTests++; \
+ if (TEST_PROTECT()) \
+ { \
+ setUp(); \
+ TestFunc(); \
+ } \
+ if (TEST_PROTECT() && !TEST_IS_IGNORED) \
+ { \
+ tearDown(); \
+ } \
+ UnityConcludeTest(); \
+}
+
+//=======Automagically Detected Files To Include=====
+#include "unity.h"
+#include <setjmp.h>
+#include <stdio.h>
+#include "config.h"
+#include "ntp.h"
+#include "ntp_stdlib.h"
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+//=======External Functions This Runner Calls=====
+extern void setUp(void);
+extern void tearDown(void);
+extern void test_Digest_AES128CMAC(void);
+extern void test_Digest_MD4(void);
+extern void test_Digest_MD5(void);
+extern void test_Digest_MDC2(void);
+extern void test_Digest_RIPEMD160(void);
+extern void test_Digest_SHA1(void);
+extern void test_Digest_SHAKE128(void);
+
+
+//=======Suite Setup=====
+static void suite_setup(void)
+{
+extern int change_iobufs(int);
+extern int change_logfile(const char*, int);
+change_iobufs(1);
+change_logfile("stderr", 0);
+}
+
+//=======Test Reset Option=====
+void resetTest(void);
+void resetTest(void)
+{
+ tearDown();
+ setUp();
+}
+
+char const *progname;
+
+
+//=======MAIN=====
+int main(int argc, char *argv[])
+{
+ progname = argv[0];
+ suite_setup();
+ UnityBegin("digests.c");
+ RUN_TEST(test_Digest_AES128CMAC, 131);
+ RUN_TEST(test_Digest_MD4, 168);
+ RUN_TEST(test_Digest_MD5, 205);
+ RUN_TEST(test_Digest_MDC2, 238);
+ RUN_TEST(test_Digest_RIPEMD160, 275);
+ RUN_TEST(test_Digest_SHA1, 314);
+ RUN_TEST(test_Digest_SHAKE128, 353);
+
+ return (UnityEnd());
+}
diff --git a/contrib/ntp/util/invoke-ntp-keygen.texi b/contrib/ntp/util/invoke-ntp-keygen.texi
index da9f2695f921..2ee45b30970c 100644
--- a/contrib/ntp/util/invoke-ntp-keygen.texi
+++ b/contrib/ntp/util/invoke-ntp-keygen.texi
@@ -1,1525 +1,1525 @@
@node ntp-keygen Invocation
@section Invoking ntp-keygen
@pindex ntp-keygen
@cindex Create a NTP host key
@ignore
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-keygen.texi)
#
-# It has been AutoGen-ed May 31, 2023 at 08:03:04 PM by AutoGen 5.18.16
+# It has been AutoGen-ed June 6, 2023 at 04:38:29 AM by AutoGen 5.18.16
# From the definitions ntp-keygen-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex-encoded random bit strings suitable for SHA1, AES-128-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
utility programs.
The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
Some files used by this program are encrypted using a private password.
The
@code{-p}
option specifies the read password for local encrypted files and the
@code{-q}
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
@code{hostname(1)}
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
@code{ntp-keygen}
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
The
@code{pw}
option of the
@code{crypto}
@code{ntpd(1ntpdmdoc)}
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
@code{ntpd(1ntpdmdoc)}
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
@file{ntp.keys},
is usually installed in
@file{/etc}.
Other files and links are usually installed in
@file{/usr/local/etc},
which is normally in a shared filesystem in
NFS-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
@file{/etc}
using the
@code{keysdir}
@code{ntpd(1ntpdmdoc)}
configuration file command.
This program directs commentary and error messages to the standard
error stream
@file{stderr}
and remote files to the standard output stream
@file{stdout}
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
@file{ntpkey*}
and include the file type, generating host and filestamp,
as described in the
@ref{Cryptographic Data Files}
section below.
@subsubsection Running the Program
The safest way to run the
@code{ntp-keygen}
program is logged in directly as root.
The recommended procedure is change to the
@kbd{keys}
directory, usually
@file{/usr/local/etc},
then run the program.
To test and gain experience with Autokey concepts, log in as root and
change to the
@kbd{keys}
directory, usually
@file{/usr/local/etc}.
When run for the first time, or if all files with names beginning with
@file{ntpkey*}
have been removed, use the
@code{ntp-keygen}
command without arguments to generate a default
@code{RSA}
host key and matching
@code{RSA-MD5}
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
The host key is used to encrypt the cookie when required and so must be
@code{RSA}
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
@code{RSA}
or
@code{DSA}
type.
By default, the message digest type is
@code{MD5},
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
@code{AES128CMAC}, @code{MD2}, @code{MD5}, @code{MDC2}, @code{SHA}, @code{SHA1}
and
@code{RIPE160}
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
@code{RSA}
sign keys;
however, only
@code{SHA}
and
@code{SHA1}
certificates are compatible with
@code{DSA}
sign keys.
Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
Running the program as other than root and using the Unix
@code{su(1)}
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
@file{.rnd}
in the user home directory.
However, there should be only one
@file{.rnd},
most conveniently
in the root directory, so it is convenient to define the
.Ev RANDFILE
environment variable used by the OpenSSL library as the path to
@file{.rnd}.
Installing the keys as root might not work in NFS-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
@file{/etc}
using the
@code{keysdir}
@code{ntpd(1ntpdmdoc)}
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
All files are installed by default in the keys directory
@file{/usr/local/etc},
which is normally in a shared filesystem
in NFS-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
@kbd{hostname}
and
@kbd{filestamp}
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
@code{ntpd(1ntpdmdoc)}
follows it to the file name to extract the
@kbd{filestamp}.
If a link is not present,
@code{ntpd(1ntpdmdoc)}
extracts the
@kbd{filestamp}
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
@code{ntp-keygen}
program uses the same
@kbd{filestamp}
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
@code{ntp-keygen}
with the
@code{-T}
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
@code{-S}
option and this can be either
@code{RSA}
or
@code{DSA}
type.
By default, the signature
message digest type is
@code{MD5},
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
@code{-c}
option.
The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken-and-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball-and-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re-generated.
Additional information on trusted groups and identity schemes is on the
@quotedblleft{}Autokey Public-Key Authentication@quotedblright{}
page.
File names begin with the prefix
@file{ntpkey}_
and end with the suffix
@file{_}@kbd{hostname}. @kbd{filestamp},
where
@kbd{hostname}
is the owner name, usually the string returned
by the Unix
@code{hostname(1)}
command, and
@kbd{filestamp}
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
@code{rm} @file{ntpkey*}
command or all files generated
at a specific time can be removed by a
@code{rm} @file{*}@kbd{filestamp}
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
@subsubsection Trusted Hosts and Groups
Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
@ref{Authentication Options}
section of
@code{ntp.conf(5)}.
The default cryptotype uses
@code{RSA}
encryption,
@code{MD5}
message digest
and
@code{TC}
identification.
First, configure a NTP subnet including one or more low-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
@ref{Automatic NTP Configuration Options}
section of
@code{ntp.conf(5)}.
On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
@file{ntpkey}
files.
Then run
@code{ntp-keygen}
@code{-T}
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
@code{-T}
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
@code{ntp-keygen}
with the
@code{-S} @kbd{type}
option, where
@kbd{type}
is either
@code{RSA}
or
@code{DSA}.
The most frequent need to do this is when a
@code{DSA}-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
@code{ntp-keygen}
with the
@code{-c} @kbd{scheme}
option and selected
@kbd{scheme}
as needed.
If
@code{ntp-keygen}
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
@code{ntp-keygen}
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
@code{ntpd(1ntpdmdoc)}
should be restarted.
When
@code{ntpd(1ntpdmdoc)}
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
@subsubsection Identity Schemes
As mentioned on the Autonomous Authentication page,
the default
@code{TC}
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
@code{PC}, @code{IFF}, @code{GQ}
and
@code{MV}
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
The PC scheme supports only one trusted host in the group.
On trusted host alice run
@code{ntp-keygen}
@code{-P}
@code{-p} @kbd{password}
to generate the host key file
@file{ntpkey}_ @code{RSA} @file{key_alice.} @kbd{filestamp}
and trusted private certificate file
@file{ntpkey}_ @code{RSA-MD5} @code{_} @file{cert_alice.} @kbd{filestamp},
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
@kbd{bob}
install a soft link from the generic name
@file{ntpkey_host_}@kbd{bob}
to the host key file and soft link
@file{ntpkey_cert_}@kbd{bob}
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
For the
@code{IFF}
scheme proceed as in the
@code{TC}
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
@code{IFF}
parameter file.
On trusted host alice run
@code{ntp-keygen}
@code{-T}
@code{-I}
@code{-p} @kbd{password}
to produce her parameter file
@file{ntpkey_IFFpar_alice.}@kbd{filestamp},
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
@file{ntpkey_iff_alice}
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
@code{IFF}
scheme is independent
of keys and certificates, these files can be refreshed as needed.
If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
@code{ntp-keygen}
@code{-e}
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
@file{ntpkey_iff_alice}
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
For the
@code{GQ}
scheme proceed as in the
@code{TC}
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
@code{IFF}
parameter file.
On trusted host alice run
@code{ntp-keygen}
@code{-T}
@code{-G}
@code{-p} @kbd{password}
to produce her parameter file
@file{ntpkey_GQpar_alice.}@kbd{filestamp},
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
@file{ntpkey_gq_alice}
to this file.
In addition, on each host
@kbd{bob}
install a soft link
from generic
@file{ntpkey_gq_}@kbd{bob}
to this file.
As the
@code{GQ}
scheme updates the
@code{GQ}
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
For the
@code{MV}
scheme, proceed as in the
@code{TC}
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
@code{ntp-keygen}
@code{-V} @kbd{n}
@code{-p} @kbd{password},
where
@kbd{n}
is the number of revokable keys (typically 5) to produce
the parameter file
@file{ntpkeys_MVpar_trish.}@kbd{filestamp}
and client key files
@file{ntpkeys_MVkey}@kbd{d} @kbd{_} @file{trish.} @kbd{filestamp}
where
@kbd{d}
is the key number (0 <
@kbd{d}
<
@kbd{n}).
Copy the parameter file to alice and install a soft link
from the generic
@file{ntpkey_mv_alice}
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
@file{ntpkey_mvkey_bob}
to the client key file.
As the
@code{MV}
scheme is independent of keys and certificates,
these files can be refreshed as needed.
@subsubsection Command Line Options
@table @asis
@item @code{-b} @code{--imbits}= @kbd{modulus}
Set the number of bits in the identity modulus for generating identity keys to
@kbd{modulus}
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
@item @code{-c} @code{--certificate}= @kbd{scheme}
Select certificate signature encryption/message digest scheme.
The
@kbd{scheme}
can be one of the following:
@code{RSA-MD2}, @code{RSA-MD5}, @code{RSA-MDC2}, @code{RSA-SHA}, @code{RSA-SHA1}, @code{RSA-RIPEMD160}, @code{DSA-SHA},
or
@code{DSA-SHA1}.
Note that
@code{RSA}
schemes must be used with an
@code{RSA}
sign key and
@code{DSA}
schemes must be used with a
@code{DSA}
sign key.
The default without this option is
@code{RSA-MD5}.
If compatibility with FIPS 140-2 is required, either the
@code{DSA-SHA}
or
@code{DSA-SHA1}
scheme must be used.
@item @code{-C} @code{--cipher}= @kbd{cipher}
Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three-key triple DES in CBC mode,
@code{des-ede3-cbc}.
The
@code{openssl} @code{-h}
command provided with OpenSSL displays available ciphers.
@item @code{-d} @code{--debug-level}
Increase debugging verbosity level.
This option displays the cryptographic data produced in eye-friendly billboards.
@item @code{-D} @code{--set-debug-level}= @kbd{level}
Set the debugging verbosity to
@kbd{level}.
This option displays the cryptographic data produced in eye-friendly billboards.
@item @code{-e} @code{--id-key}
Write the
@code{IFF}
or
@code{GQ}
public parameters from the
@kbd{IFFkey} @kbd{or} @kbd{GQkey}
client keys file previously specified
as unencrypted data to the standard output stream
@file{stdout}.
This is intended for automatic key distribution by email.
@item @code{-G} @code{--gq-params}
Generate a new encrypted
@code{GQ}
parameters and key file for the Guillou-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
@code{-I}
and
@code{-V}
options.
@item @code{-H} @code{--host-key}
Generate a new encrypted
@code{RSA}
public/private host key file.
@item @code{-I} @code{--iffkey}
Generate a new encrypted
@code{IFF}
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
@code{-G}
and
Fl V
options.
@item @code{-i} @code{--ident}= @kbd{group}
Set the optional Autokey group name to
@kbd{group}.
This is used in the identity scheme parameter file names of
@code{IFF}, @code{GQ},
and
@code{MV}
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
@code{-i}
or
@code{-s}
following an
@quoteleft{}@@@quoteright{}
character, is also used in certificate subject and issuer names in the form
@kbd{host} @kbd{@@} @kbd{group}
and should match the group specified via
@code{crypto} @code{ident}
or
@code{server} @code{ident}
in the ntpd configuration file.
@item @code{-l} @code{--lifetime}= @kbd{days}
Set the lifetime for certificate expiration to
@kbd{days}.
The default lifetime is one year (365 days).
@item @code{-m} @code{--modulus}= @kbd{bits}
Set the number of bits in the prime modulus for generating files to
@kbd{bits}.
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
@item @code{-M} @code{--md5key}
Generate a new symmetric keys file containing 10
@code{MD5}
keys, and if OpenSSL is available, 10
@code{SHA}
keys.
An
@code{MD5}
key is a string of 20 random printable ASCII characters, while a
@code{SHA}
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
@item @code{-p} @code{--password}= @kbd{passwd}
Set the password for reading and writing encrypted files to
@kbd{passwd}.
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
@code{hostname}
command.
@item @code{-P} @code{--pvt-cert}
Generate a new private certificate used by the
@code{PC}
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
@item @code{-q} @code{--export-passwd}= @kbd{passwd}
Set the password for writing encrypted
@code{IFF}, @code{GQ} @code{and} @code{MV}
identity files redirected to
@file{stdout}
to
@kbd{passwd}.
In effect, these files are decrypted with the
@code{-p}
password, then encrypted with the
@code{-q}
password.
By default, the password is the string returned by the Unix
@code{hostname}
command.
@item @code{-s} @code{--subject-key}= @code{[host]} @code{[@@ @kbd{group}]}
Specify the Autokey host name, where
@kbd{host}
is the optional host name and
@kbd{group}
is the optional group name.
The host name, and if provided, group name are used in
@kbd{host} @kbd{@@} @kbd{group}
form as certificate subject and issuer.
Specifying
@code{-s} @code{-@@} @kbd{group}
is allowed, and results in leaving the host name unchanged, as with
@code{-i} @kbd{group}.
The group name, or if no group is provided, the host name are also used in the
file names of
@code{IFF}, @code{GQ},
and
@code{MV}
identity scheme client parameter files.
If
@kbd{host}
is not specified, the default host name is the string returned by the Unix
@code{hostname}
command.
@item @code{-S} @code{--sign-key}= @code{[@code{RSA} | @code{DSA}]}
Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140-2 is required, the sign key type must be
@code{DSA}.
@item @code{-T} @code{--trusted-cert}
Generate a trusted certificate.
By default, the program generates a non-trusted certificate.
@item @code{-V} @code{--mv-params} @kbd{nkeys}
Generate
@kbd{nkeys}
encrypted server keys and parameters for the Mu-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
@code{-I}
and
@code{-G}
options.
Note: support for this option should be considered a work in progress.
@end table
@subsubsection Random Seed File
All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
@code{ntp-keygen}
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
The entropy seed used by the OpenSSL library is contained in a file,
usually called
@file{.rnd},
which must be available when starting the NTP daemon
or the
@code{ntp-keygen}
program.
The NTP daemon will first look for the file
using the path specified by the
@code{randfile}
subcommand of the
@code{crypto}
configuration command.
If not specified in this way, or when starting the
@code{ntp-keygen}
program,
the OpenSSL library will look for the file using the path specified
by the
.Ev RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
.Ev RANDFILE
environment variable is not present,
the library will look for the
@file{.rnd}
file in the user home directory.
Since both the
@code{ntp-keygen}
program and
@code{ntpd(1ntpdmdoc)}
daemon must run as root, the logical place to put this file is in
@file{/.rnd}
or
@file{/root/.rnd}.
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
@subsubsection Cryptographic Data Files
All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
@file{ntpkey_}@kbd{key} @kbd{_} @kbd{name}. @kbd{filestamp},
where
@kbd{key}
is the key or parameter type,
@kbd{name}
is the host or group name and
@kbd{filestamp}
is the filestamp (NTP seconds) when the file was created.
By convention,
@kbd{key}
names in generated file names include both upper and lower case
characters, while
@kbd{key}
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
@file{date}
format.
Lines beginning with
@quoteleft{}#@quoteright{}
are considered comments and ignored by the
@code{ntp-keygen}
program and
@code{ntpd(1ntpdmdoc)}
daemon.
The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
The format of the symmetric keys file, ordinarily named
@file{ntp.keys},
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
@verbatim
# ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L";Nw<\`.I<f4U0)247"i # MD5 key
2 MD5 &>l0%XXK9O'51VwV<xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o@}3i@@@@V@@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6"Sh?F # MD5 key
9 MD5 3-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
@end verbatim
@example
Figure 1. Typical Symmetric Key File
@end example
Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
@example
@kbd{keyno} @kbd{type} @kbd{key}
@end example
where
@kbd{keyno}
is a positive integer in the range 1-65535;
@kbd{type}
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
@code{MD5}
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140-2 is required,
the key type must be either
@code{SHA}
or
@code{SHA1};
@kbd{key}
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
@quoteleft{}@quoteright{}!
through
@quoteleft{}~@quoteright{}
) excluding space and the
@quoteleft{}#@quoteright{}
character, and terminated by whitespace or a
@quoteleft{}#@quoteright{}
character.
An OpenSSL key consists of a hex-encoded ASCII string of 40 characters, which
is truncated as necessary.
Note that the keys used by the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
The
@code{ntp-keygen}
program generates a symmetric keys file
@file{ntpkey_MD5key_}@kbd{hostname}. @kbd{filestamp}.
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
@file{ntp.keys},
so
@code{ntp-keygen}
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
@code{ntpq(1ntpqmdoc)}
and
@code{ntpdc(1ntpdcmdoc)}
utilities.
This section was generated by @strong{AutoGen},
using the @code{agtexi-cmd} template and the option descriptions for the @code{ntp-keygen} program.
This software is released under the NTP license, <http://ntp.org/license>.
@menu
* ntp-keygen usage:: ntp-keygen help/usage (@option{--help})
* ntp-keygen imbits:: imbits option (-b)
* ntp-keygen certificate:: certificate option (-c)
* ntp-keygen cipher:: cipher option (-C)
* ntp-keygen id-key:: id-key option (-e)
* ntp-keygen gq-params:: gq-params option (-G)
* ntp-keygen host-key:: host-key option (-H)
* ntp-keygen iffkey:: iffkey option (-I)
* ntp-keygen ident:: ident option (-i)
* ntp-keygen lifetime:: lifetime option (-l)
* ntp-keygen modulus:: modulus option (-m)
* ntp-keygen md5key:: md5key option (-M)
* ntp-keygen pvt-cert:: pvt-cert option (-P)
* ntp-keygen password:: password option (-p)
* ntp-keygen export-passwd:: export-passwd option (-q)
* ntp-keygen subject-name:: subject-name option (-s)
* ntp-keygen sign-key:: sign-key option (-S)
* ntp-keygen trusted-cert:: trusted-cert option (-T)
* ntp-keygen mv-params:: mv-params option (-V)
* ntp-keygen mv-keys:: mv-keys option (-v)
* ntp-keygen config:: presetting/configuring ntp-keygen
* ntp-keygen exit status:: exit status
* ntp-keygen Usage:: Usage
* ntp-keygen Notes:: Notes
* ntp-keygen Bugs:: Bugs
@end menu
@node ntp-keygen usage
@subsection ntp-keygen help/usage (@option{--help})
@cindex ntp-keygen help
This is the automatically generated usage text for ntp-keygen.
The text printed is the same whether selected with the @code{help} option
(@option{--help}) or the @code{more-help} option (@option{--more-help}). @code{more-help} will print
the usage text by passing it through a pager program.
@code{more-help} is disabled on platforms without a working
@code{fork(2)} function. The @code{PAGER} environment variable is
used to select the program, defaulting to @file{more}. Both will exit
with a status code of 0.
@exampleindent 0
@example
-ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p16
+ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p17
Usage: ntp-keygen [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
Flg Arg Option-Name Description
-b Num imbits identity modulus bits
- it must be in the range:
256 to 2048
-c Str certificate certificate scheme
-C Str cipher privatekey cipher
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-e no id-key Write IFF or GQ identity keys
-G no gq-params Generate GQ parameters and keys
-H no host-key generate RSA host key
-I no iffkey generate IFF parameters
-i Str ident set Autokey group name
-l Num lifetime set certificate lifetime
-m Num modulus prime modulus
- it must be in the range:
256 to 2048
-M no md5key generate symmetric keys
-P no pvt-cert generate PC private certificate
-p Str password local private password
-q Str export-passwd export IFF or GQ group keys with password
-s Str subject-name set host and optionally group name
-S Str sign-key generate sign key (RSA or DSA)
-T no trusted-cert trusted certificate (TC scheme)
-V Num mv-params generate <num> MV parameters
-v Num mv-keys update <num> MV keys
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-> opt save-opts save the option state to a config file
-< Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTP_KEYGEN_*
Please send bug reports to: <https://bugs.ntp.org, bugs@@ntp.org>
@end example
@exampleindent 4
@node ntp-keygen imbits
@subsection imbits option (-b)
@cindex ntp-keygen-imbits
This is the ``identity modulus bits'' option.
This option takes a number argument @file{imbits}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
The number of bits in the identity modulus. The default is 512.
@node ntp-keygen certificate
@subsection certificate option (-c)
@cindex ntp-keygen-certificate
This is the ``certificate scheme'' option.
This option takes a string argument @file{scheme}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
scheme is one of
RSA-MD2, RSA-MD5, RSA-MDC2, RSA-SHA, RSA-SHA1, RSA-RIPEMD160,
DSA-SHA, or DSA-SHA1.
Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA-MD5.
@node ntp-keygen cipher
@subsection cipher option (-C)
@cindex ntp-keygen-cipher
This is the ``privatekey cipher'' option.
This option takes a string argument @file{cipher}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Select the cipher which is used to encrypt the files containing
private keys. The default is three-key triple DES in CBC mode,
equivalent to "@code{-C des-ede3-cbc}". The openssl tool lists ciphers
available in "@code{openssl -h}" output.
@node ntp-keygen id-key
@subsection id-key option (-e)
@cindex ntp-keygen-id-key
This is the ``write iff or gq identity keys'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
@node ntp-keygen gq-params
@subsection gq-params option (-G)
@cindex ntp-keygen-gq-params
This is the ``generate gq parameters and keys'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
@node ntp-keygen host-key
@subsection host-key option (-H)
@cindex ntp-keygen-host-key
This is the ``generate rsa host key'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate new host keys, obsoleting any that may exist.
@node ntp-keygen iffkey
@subsection iffkey option (-I)
@cindex ntp-keygen-iffkey
This is the ``generate iff parameters'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
@node ntp-keygen ident
@subsection ident option (-i)
@cindex ntp-keygen-ident
This is the ``set autokey group name'' option.
This option takes a string argument @file{group}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using @code{-i/--ident} or
using @code{-s/--subject-name} following an '@code{@@}' character,
is also a part of the self-signed host certificate subject and
issuer names in the form @code{host@@group} and should match the
'@code{crypto ident}' or '@code{server ident}' configuration in the
@code{ntpd} configuration file.
@node ntp-keygen lifetime
@subsection lifetime option (-l)
@cindex ntp-keygen-lifetime
This is the ``set certificate lifetime'' option.
This option takes a number argument @file{lifetime}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Set the certificate expiration to lifetime days from now.
@node ntp-keygen modulus
@subsection modulus option (-m)
@cindex ntp-keygen-modulus
This is the ``prime modulus'' option.
This option takes a number argument @file{modulus}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
The number of bits in the prime modulus. The default is 512.
@node ntp-keygen md5key
@subsection md5key option (-M)
@cindex ntp-keygen-md5key
This is the ``generate symmetric keys'' option.
Generate symmetric keys, obsoleting any that may exist.
@node ntp-keygen pvt-cert
@subsection pvt-cert option (-P)
@cindex ntp-keygen-pvt-cert
This is the ``generate pc private certificate'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate a private certificate. By default, the program generates
public certificates.
@node ntp-keygen password
@subsection password option (-p)
@cindex ntp-keygen-password
This is the ``local private password'' option.
This option takes a string argument @file{passwd}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Local files containing private data are encrypted with the
DES-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the "crypto pw password"
configuration command. The default password is the local
hostname.
@node ntp-keygen export-passwd
@subsection export-passwd option (-q)
@cindex ntp-keygen-export-passwd
This is the ``export iff or gq group keys with password'' option.
This option takes a string argument @file{passwd}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Export IFF or GQ identity group keys to the standard output,
encrypted with the DES-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
"crypto pw password" configuration command. See also the option
--id-key (-e) for unencrypted exports.
@node ntp-keygen subject-name
@subsection subject-name option (-s)
@cindex ntp-keygen-subject-name
This is the ``set host and optionally group name'' option.
This option takes a string argument @file{host@@group}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Set the Autokey host name, and optionally, group name specified
following an '@code{@@}' character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in @code{host@@group} form for the host certificate subject and issuer
fields. Specifying '@code{-s @@group}' is allowed, and results in
leaving the host name unchanged while appending @code{@@group} to the
subject and issuer fields, as with @code{-i group}. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
@node ntp-keygen sign-key
@subsection sign-key option (-S)
@cindex ntp-keygen-sign-key
This is the ``generate sign key (rsa or dsa)'' option.
This option takes a string argument @file{sign}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
@node ntp-keygen trusted-cert
@subsection trusted-cert option (-T)
@cindex ntp-keygen-trusted-cert
This is the ``trusted certificate (tc scheme)'' option.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate a trusted certificate. By default, the program generates
a non-trusted certificate.
@node ntp-keygen mv-params
@subsection mv-params option (-V)
@cindex ntp-keygen-mv-params
This is the ``generate <num> mv parameters'' option.
This option takes a number argument @file{num}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
Generate parameters and keys for the Mu-Varadharajan (MV)
identification scheme.
@node ntp-keygen mv-keys
@subsection mv-keys option (-v)
@cindex ntp-keygen-mv-keys
This is the ``update <num> mv keys'' option.
This option takes a number argument @file{num}.
@noindent
This option has some usage constraints. It:
@itemize @bullet
@item
must be compiled in by defining @code{AUTOKEY} during the compilation.
@end itemize
This option has no @samp{doc} documentation.
@node ntp-keygen config
@subsection presetting/configuring ntp-keygen
Any option that is not marked as @i{not presettable} may be preset by
loading values from configuration ("rc" or "ini") files, and values from environment variables named @code{NTP-KEYGEN} and @code{NTP-KEYGEN_<OPTION_NAME>}. @code{<OPTION_NAME>} must be one of
the options listed above in upper case and segmented with underscores.
The @code{NTP-KEYGEN} variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
@noindent
@code{libopts} will search in 2 places for configuration files:
@itemize @bullet
@item
$HOME
@item
$PWD
@end itemize
The environment variables @code{HOME}, and @code{PWD}
are expanded and replaced when @file{ntp-keygen} runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named @file{.ntprc} is searched for
within that directory and processed.
Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
@example
[NTP-KEYGEN]
@end example
@noindent
or by
@example
<?program ntp-keygen>
@end example
@noindent
Do not mix these styles within one configuration file.
Compound values and carefully constructed string values may also be
specified using XML syntax:
@example
<option-name>
<sub-opt>...&lt;...&gt;...</sub-opt>
</option-name>
@end example
@noindent
yielding an @code{option-name.sub-opt} string value of
@example
"...<...>..."
@end example
@code{AutoOpts} does not track suboptions. You simply note that it is a
hierarchicly valued option. @code{AutoOpts} does provide a means for searching
the associated name/value pair list (see: optionFindValue).
The command line options relating to configuration and/or usage help are:
@subsubheading version (-)
Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
@table @samp
@item version
Only print the version. This is the default.
@item copyright
Name the copyright usage licensing terms.
@item verbose
Print the full copyright usage licensing terms.
@end table
@node ntp-keygen exit status
@subsection ntp-keygen exit status
One of the following exit values will be returned:
@table @samp
@item 0 (EXIT_SUCCESS)
Successful program execution.
@item 1 (EXIT_FAILURE)
The operation failed or the command syntax was not valid.
@item 66 (EX_NOINPUT)
A specified configuration file could not be loaded.
@item 70 (EX_SOFTWARE)
libopts had an internal operational error. Please report
it to autogen-users@@lists.sourceforge.net. Thank you.
@end table
@node ntp-keygen Usage
@subsection ntp-keygen Usage
@node ntp-keygen Notes
@subsection ntp-keygen Notes
@node ntp-keygen Bugs
@subsection ntp-keygen Bugs
diff --git a/contrib/ntp/util/ntp-keygen-opts.c b/contrib/ntp/util/ntp-keygen-opts.c
index 47d03516a713..fb3c78fdff51 100644
--- a/contrib/ntp/util/ntp-keygen-opts.c
+++ b/contrib/ntp/util/ntp-keygen-opts.c
@@ -1,1722 +1,1722 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c)
*
- * It has been AutoGen-ed May 31, 2023 at 08:03:01 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:24 AM by AutoGen 5.18.16
* From the definitions ntp-keygen-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This source file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntp-keygen author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntp-keygen program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
#ifndef __doxygen__
#define OPTION_CODE_COMPILE 1
#include "ntp-keygen-opts.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef __cplusplus
extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntp_keygen_opt_strs+0)
#define zLicenseDescrip (ntp_keygen_opt_strs+353)
/*
* global included definitions
*/
#include <stdlib.h>
#ifdef __windows
extern int atoi(const char*);
#else
# include <stdlib.h>
#endif
#ifndef NULL
# define NULL 0
#endif
/**
* static const strings for ntp-keygen options
*/
static char const ntp_keygen_opt_strs[2443] =
-/* 0 */ "ntp-keygen (ntp) 4.2.8p16\n"
+/* 0 */ "ntp-keygen (ntp) 4.2.8p17\n"
"Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n"
"This is free software. It is licensed for use, modification and\n"
"redistribution under the terms of the NTP License, copies of which\n"
"can be seen at:\n"
" <http://ntp.org/license>\n"
" <http://opensource.org/licenses/ntp-license.php>\n\0"
/* 353 */ "Permission to use, copy, modify, and distribute this software and its\n"
"documentation for any purpose with or without fee is hereby granted,\n"
"provided that the above copyright notice appears in all copies and that\n"
"both the copyright notice and this permission notice appear in supporting\n"
"documentation, and that the name The University of Delaware not be used in\n"
"advertising or publicity pertaining to distribution of the software without\n"
"specific, written prior permission. The University of Delaware and Network\n"
"Time Foundation makes no representations about the suitability this\n"
"software for any purpose. It is provided \"as is\" without express or\n"
"implied warranty.\n\0"
/* 1021 */ "identity modulus bits\0"
/* 1043 */ "IMBITS\0"
/* 1050 */ "imbits\0"
/* 1057 */ "certificate scheme\0"
/* 1076 */ "CERTIFICATE\0"
/* 1088 */ "certificate\0"
/* 1100 */ "privatekey cipher\0"
/* 1118 */ "CIPHER\0"
/* 1125 */ "cipher\0"
/* 1132 */ "Increase debug verbosity level\0"
/* 1163 */ "DEBUG_LEVEL\0"
/* 1175 */ "debug-level\0"
/* 1187 */ "Set the debug verbosity level\0"
/* 1217 */ "SET_DEBUG_LEVEL\0"
/* 1233 */ "set-debug-level\0"
/* 1249 */ "Write IFF or GQ identity keys\0"
/* 1279 */ "ID_KEY\0"
/* 1286 */ "id-key\0"
/* 1293 */ "Generate GQ parameters and keys\0"
/* 1325 */ "GQ_PARAMS\0"
/* 1335 */ "gq-params\0"
/* 1345 */ "generate RSA host key\0"
/* 1367 */ "HOST_KEY\0"
/* 1376 */ "host-key\0"
/* 1385 */ "generate IFF parameters\0"
/* 1409 */ "IFFKEY\0"
/* 1416 */ "iffkey\0"
/* 1423 */ "set Autokey group name\0"
/* 1446 */ "IDENT\0"
/* 1452 */ "ident\0"
/* 1458 */ "set certificate lifetime\0"
/* 1483 */ "LIFETIME\0"
/* 1492 */ "lifetime\0"
/* 1501 */ "prime modulus\0"
/* 1515 */ "MODULUS\0"
/* 1523 */ "modulus\0"
/* 1531 */ "generate symmetric keys\0"
/* 1555 */ "MD5KEY\0"
/* 1562 */ "md5key\0"
/* 1569 */ "generate PC private certificate\0"
/* 1601 */ "PVT_CERT\0"
/* 1610 */ "pvt-cert\0"
/* 1619 */ "local private password\0"
/* 1642 */ "PASSWORD\0"
/* 1651 */ "password\0"
/* 1660 */ "export IFF or GQ group keys with password\0"
/* 1702 */ "EXPORT_PASSWD\0"
/* 1716 */ "export-passwd\0"
/* 1730 */ "set host and optionally group name\0"
/* 1765 */ "SUBJECT_NAME\0"
/* 1778 */ "subject-name\0"
/* 1791 */ "generate sign key (RSA or DSA)\0"
/* 1822 */ "SIGN_KEY\0"
/* 1831 */ "sign-key\0"
/* 1840 */ "trusted certificate (TC scheme)\0"
/* 1872 */ "TRUSTED_CERT\0"
/* 1885 */ "trusted-cert\0"
/* 1898 */ "generate <num> MV parameters\0"
/* 1927 */ "MV_PARAMS\0"
/* 1937 */ "mv-params\0"
/* 1947 */ "update <num> MV keys\0"
/* 1968 */ "MV_KEYS\0"
/* 1976 */ "mv-keys\0"
/* 1984 */ "display extended usage information and exit\0"
/* 2028 */ "help\0"
/* 2033 */ "extended usage information passed thru pager\0"
/* 2078 */ "more-help\0"
/* 2088 */ "output version information and exit\0"
/* 2124 */ "version\0"
/* 2132 */ "save the option state to a config file\0"
/* 2171 */ "save-opts\0"
/* 2181 */ "load options from a config file\0"
/* 2213 */ "LOAD_OPTS\0"
/* 2223 */ "no-load-opts\0"
/* 2236 */ "no\0"
/* 2239 */ "NTP_KEYGEN\0"
-/* 2250 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p16\n"
+/* 2250 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p17\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
/* 2365 */ "$HOME\0"
/* 2371 */ ".\0"
/* 2373 */ ".ntprc\0"
/* 2380 */ "https://bugs.ntp.org, bugs@ntp.org\0"
/* 2415 */ "\n\0"
-/* 2417 */ "ntp-keygen (ntp) 4.2.8p16";
+/* 2417 */ "ntp-keygen (ntp) 4.2.8p17";
/**
* imbits option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the imbits option */
#define IMBITS_DESC (ntp_keygen_opt_strs+1021)
/** Upper-cased name for the imbits option */
#define IMBITS_NAME (ntp_keygen_opt_strs+1043)
/** Name string for the imbits option */
#define IMBITS_name (ntp_keygen_opt_strs+1050)
/** Compiled in flag settings for the imbits option */
#define IMBITS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable imbits */
#define IMBITS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define IMBITS_NAME NULL
#define IMBITS_DESC NULL
#define IMBITS_name NULL
#endif /* AUTOKEY */
/**
* certificate option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the certificate option */
#define CERTIFICATE_DESC (ntp_keygen_opt_strs+1057)
/** Upper-cased name for the certificate option */
#define CERTIFICATE_NAME (ntp_keygen_opt_strs+1076)
/** Name string for the certificate option */
#define CERTIFICATE_name (ntp_keygen_opt_strs+1088)
/** Compiled in flag settings for the certificate option */
#define CERTIFICATE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable certificate */
#define CERTIFICATE_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define CERTIFICATE_NAME NULL
#define CERTIFICATE_DESC NULL
#define CERTIFICATE_name NULL
#endif /* AUTOKEY */
/**
* cipher option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the cipher option */
#define CIPHER_DESC (ntp_keygen_opt_strs+1100)
/** Upper-cased name for the cipher option */
#define CIPHER_NAME (ntp_keygen_opt_strs+1118)
/** Name string for the cipher option */
#define CIPHER_name (ntp_keygen_opt_strs+1125)
/** Compiled in flag settings for the cipher option */
#define CIPHER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable cipher */
#define CIPHER_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define CIPHER_NAME NULL
#define CIPHER_DESC NULL
#define CIPHER_name NULL
#endif /* AUTOKEY */
/**
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
#define DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1132)
/** Upper-cased name for the debug-level option */
#define DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1163)
/** Name string for the debug-level option */
#define DEBUG_LEVEL_name (ntp_keygen_opt_strs+1175)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
/**
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
#define SET_DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1187)
/** Upper-cased name for the set-debug-level option */
#define SET_DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1217)
/** Name string for the set-debug-level option */
#define SET_DEBUG_LEVEL_name (ntp_keygen_opt_strs+1233)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
/**
* id-key option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the id-key option */
#define ID_KEY_DESC (ntp_keygen_opt_strs+1249)
/** Upper-cased name for the id-key option */
#define ID_KEY_NAME (ntp_keygen_opt_strs+1279)
/** Name string for the id-key option */
#define ID_KEY_name (ntp_keygen_opt_strs+1286)
/** Compiled in flag settings for the id-key option */
#define ID_KEY_FLAGS (OPTST_DISABLED)
#else /* disable id-key */
#define ID_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define ID_KEY_NAME NULL
#define ID_KEY_DESC NULL
#define ID_KEY_name NULL
#endif /* AUTOKEY */
/**
* gq-params option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the gq-params option */
#define GQ_PARAMS_DESC (ntp_keygen_opt_strs+1293)
/** Upper-cased name for the gq-params option */
#define GQ_PARAMS_NAME (ntp_keygen_opt_strs+1325)
/** Name string for the gq-params option */
#define GQ_PARAMS_name (ntp_keygen_opt_strs+1335)
/** Compiled in flag settings for the gq-params option */
#define GQ_PARAMS_FLAGS (OPTST_DISABLED)
#else /* disable gq-params */
#define GQ_PARAMS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define GQ_PARAMS_NAME NULL
#define GQ_PARAMS_DESC NULL
#define GQ_PARAMS_name NULL
#endif /* AUTOKEY */
/**
* host-key option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the host-key option */
#define HOST_KEY_DESC (ntp_keygen_opt_strs+1345)
/** Upper-cased name for the host-key option */
#define HOST_KEY_NAME (ntp_keygen_opt_strs+1367)
/** Name string for the host-key option */
#define HOST_KEY_name (ntp_keygen_opt_strs+1376)
/** Compiled in flag settings for the host-key option */
#define HOST_KEY_FLAGS (OPTST_DISABLED)
#else /* disable host-key */
#define HOST_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define HOST_KEY_NAME NULL
#define HOST_KEY_DESC NULL
#define HOST_KEY_name NULL
#endif /* AUTOKEY */
/**
* iffkey option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the iffkey option */
#define IFFKEY_DESC (ntp_keygen_opt_strs+1385)
/** Upper-cased name for the iffkey option */
#define IFFKEY_NAME (ntp_keygen_opt_strs+1409)
/** Name string for the iffkey option */
#define IFFKEY_name (ntp_keygen_opt_strs+1416)
/** Compiled in flag settings for the iffkey option */
#define IFFKEY_FLAGS (OPTST_DISABLED)
#else /* disable iffkey */
#define IFFKEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define IFFKEY_NAME NULL
#define IFFKEY_DESC NULL
#define IFFKEY_name NULL
#endif /* AUTOKEY */
/**
* ident option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the ident option */
#define IDENT_DESC (ntp_keygen_opt_strs+1423)
/** Upper-cased name for the ident option */
#define IDENT_NAME (ntp_keygen_opt_strs+1446)
/** Name string for the ident option */
#define IDENT_name (ntp_keygen_opt_strs+1452)
/** Compiled in flag settings for the ident option */
#define IDENT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable ident */
#define IDENT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define IDENT_NAME NULL
#define IDENT_DESC NULL
#define IDENT_name NULL
#endif /* AUTOKEY */
/**
* lifetime option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the lifetime option */
#define LIFETIME_DESC (ntp_keygen_opt_strs+1458)
/** Upper-cased name for the lifetime option */
#define LIFETIME_NAME (ntp_keygen_opt_strs+1483)
/** Name string for the lifetime option */
#define LIFETIME_name (ntp_keygen_opt_strs+1492)
/** Compiled in flag settings for the lifetime option */
#define LIFETIME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable lifetime */
#define LIFETIME_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define LIFETIME_NAME NULL
#define LIFETIME_DESC NULL
#define LIFETIME_name NULL
#endif /* AUTOKEY */
/**
* modulus option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the modulus option */
#define MODULUS_DESC (ntp_keygen_opt_strs+1501)
/** Upper-cased name for the modulus option */
#define MODULUS_NAME (ntp_keygen_opt_strs+1515)
/** Name string for the modulus option */
#define MODULUS_name (ntp_keygen_opt_strs+1523)
/** Compiled in flag settings for the modulus option */
#define MODULUS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable modulus */
#define MODULUS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define MODULUS_NAME NULL
#define MODULUS_DESC NULL
#define MODULUS_name NULL
#endif /* AUTOKEY */
/**
* md5key option description:
*/
/** Descriptive text for the md5key option */
#define MD5KEY_DESC (ntp_keygen_opt_strs+1531)
/** Upper-cased name for the md5key option */
#define MD5KEY_NAME (ntp_keygen_opt_strs+1555)
/** Name string for the md5key option */
#define MD5KEY_name (ntp_keygen_opt_strs+1562)
/** Compiled in flag settings for the md5key option */
#define MD5KEY_FLAGS (OPTST_DISABLED)
/**
* pvt-cert option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the pvt-cert option */
#define PVT_CERT_DESC (ntp_keygen_opt_strs+1569)
/** Upper-cased name for the pvt-cert option */
#define PVT_CERT_NAME (ntp_keygen_opt_strs+1601)
/** Name string for the pvt-cert option */
#define PVT_CERT_name (ntp_keygen_opt_strs+1610)
/** Compiled in flag settings for the pvt-cert option */
#define PVT_CERT_FLAGS (OPTST_DISABLED)
#else /* disable pvt-cert */
#define PVT_CERT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define PVT_CERT_NAME NULL
#define PVT_CERT_DESC NULL
#define PVT_CERT_name NULL
#endif /* AUTOKEY */
/**
* password option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the password option */
#define PASSWORD_DESC (ntp_keygen_opt_strs+1619)
/** Upper-cased name for the password option */
#define PASSWORD_NAME (ntp_keygen_opt_strs+1642)
/** Name string for the password option */
#define PASSWORD_name (ntp_keygen_opt_strs+1651)
/** Compiled in flag settings for the password option */
#define PASSWORD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable password */
#define PASSWORD_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define PASSWORD_NAME NULL
#define PASSWORD_DESC NULL
#define PASSWORD_name NULL
#endif /* AUTOKEY */
/**
* export-passwd option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the export-passwd option */
#define EXPORT_PASSWD_DESC (ntp_keygen_opt_strs+1660)
/** Upper-cased name for the export-passwd option */
#define EXPORT_PASSWD_NAME (ntp_keygen_opt_strs+1702)
/** Name string for the export-passwd option */
#define EXPORT_PASSWD_name (ntp_keygen_opt_strs+1716)
/** Compiled in flag settings for the export-passwd option */
#define EXPORT_PASSWD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable export-passwd */
#define EXPORT_PASSWD_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define EXPORT_PASSWD_NAME NULL
#define EXPORT_PASSWD_DESC NULL
#define EXPORT_PASSWD_name NULL
#endif /* AUTOKEY */
/**
* subject-name option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the subject-name option */
#define SUBJECT_NAME_DESC (ntp_keygen_opt_strs+1730)
/** Upper-cased name for the subject-name option */
#define SUBJECT_NAME_NAME (ntp_keygen_opt_strs+1765)
/** Name string for the subject-name option */
#define SUBJECT_NAME_name (ntp_keygen_opt_strs+1778)
/** Compiled in flag settings for the subject-name option */
#define SUBJECT_NAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable subject-name */
#define SUBJECT_NAME_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define SUBJECT_NAME_NAME NULL
#define SUBJECT_NAME_DESC NULL
#define SUBJECT_NAME_name NULL
#endif /* AUTOKEY */
/**
* sign-key option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the sign-key option */
#define SIGN_KEY_DESC (ntp_keygen_opt_strs+1791)
/** Upper-cased name for the sign-key option */
#define SIGN_KEY_NAME (ntp_keygen_opt_strs+1822)
/** Name string for the sign-key option */
#define SIGN_KEY_name (ntp_keygen_opt_strs+1831)
/** Compiled in flag settings for the sign-key option */
#define SIGN_KEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
#else /* disable sign-key */
#define SIGN_KEY_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define SIGN_KEY_NAME NULL
#define SIGN_KEY_DESC NULL
#define SIGN_KEY_name NULL
#endif /* AUTOKEY */
/**
* trusted-cert option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the trusted-cert option */
#define TRUSTED_CERT_DESC (ntp_keygen_opt_strs+1840)
/** Upper-cased name for the trusted-cert option */
#define TRUSTED_CERT_NAME (ntp_keygen_opt_strs+1872)
/** Name string for the trusted-cert option */
#define TRUSTED_CERT_name (ntp_keygen_opt_strs+1885)
/** Compiled in flag settings for the trusted-cert option */
#define TRUSTED_CERT_FLAGS (OPTST_DISABLED)
#else /* disable trusted-cert */
#define TRUSTED_CERT_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define TRUSTED_CERT_NAME NULL
#define TRUSTED_CERT_DESC NULL
#define TRUSTED_CERT_name NULL
#endif /* AUTOKEY */
/**
* mv-params option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the mv-params option */
#define MV_PARAMS_DESC (ntp_keygen_opt_strs+1898)
/** Upper-cased name for the mv-params option */
#define MV_PARAMS_NAME (ntp_keygen_opt_strs+1927)
/** Name string for the mv-params option */
#define MV_PARAMS_name (ntp_keygen_opt_strs+1937)
/** Compiled in flag settings for the mv-params option */
#define MV_PARAMS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable mv-params */
#define MV_PARAMS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define MV_PARAMS_NAME NULL
#define MV_PARAMS_DESC NULL
#define MV_PARAMS_name NULL
#endif /* AUTOKEY */
/**
* mv-keys option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the mv-keys option */
#define MV_KEYS_DESC (ntp_keygen_opt_strs+1947)
/** Upper-cased name for the mv-keys option */
#define MV_KEYS_NAME (ntp_keygen_opt_strs+1968)
/** Name string for the mv-keys option */
#define MV_KEYS_name (ntp_keygen_opt_strs+1976)
/** Compiled in flag settings for the mv-keys option */
#define MV_KEYS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
#else /* disable mv-keys */
#define MV_KEYS_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define MV_KEYS_NAME NULL
#define MV_KEYS_DESC NULL
#define MV_KEYS_name NULL
#endif /* AUTOKEY */
/*
* Help/More_Help/Version option descriptions:
*/
#define HELP_DESC (ntp_keygen_opt_strs+1984)
#define HELP_name (ntp_keygen_opt_strs+2028)
#ifdef HAVE_WORKING_FORK
#define MORE_HELP_DESC (ntp_keygen_opt_strs+2033)
#define MORE_HELP_name (ntp_keygen_opt_strs+2078)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
#define MORE_HELP_name HELP_name
#define MORE_HELP_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#endif
#ifdef NO_OPTIONAL_OPT_ARGS
# define VER_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
#define VER_DESC (ntp_keygen_opt_strs+2088)
#define VER_name (ntp_keygen_opt_strs+2124)
#define SAVE_OPTS_DESC (ntp_keygen_opt_strs+2132)
#define SAVE_OPTS_name (ntp_keygen_opt_strs+2171)
#define LOAD_OPTS_DESC (ntp_keygen_opt_strs+2181)
#define LOAD_OPTS_NAME (ntp_keygen_opt_strs+2213)
#define NO_LOAD_OPTS_name (ntp_keygen_opt_strs+2223)
#define LOAD_OPTS_pfx (ntp_keygen_opt_strs+2236)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
*/
#ifdef AUTOKEY
static tOptProc doOptImbits;
#else /* not AUTOKEY */
# define doOptImbits NULL
#endif /* def/not AUTOKEY */
#ifdef AUTOKEY
static tOptProc doOptModulus;
#else /* not AUTOKEY */
# define doOptModulus NULL
#endif /* def/not AUTOKEY */
extern tOptProc
ntpOptionPrintVersion, optionBooleanVal, optionNestedVal,
optionNumericVal, optionPagedUsage, optionResetOpt,
optionStackArg, optionTimeDate, optionTimeVal,
optionUnstackArg, optionVendorOption;
static tOptProc
doOptDebug_Level, doUsageOpt;
#define VER_PROC ntpOptionPrintVersion
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Define the ntp-keygen Option Descriptions.
* This is an array of OPTION_CT entries, one for each
* option that the ntp-keygen program responds to.
*/
static tOptDesc optDesc[OPTION_CT] = {
{ /* entry idx, value */ 0, VALUE_OPT_IMBITS,
/* equiv idx, value */ 0, VALUE_OPT_IMBITS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IMBITS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --imbits */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptImbits,
/* desc, NAME, name */ IMBITS_DESC, IMBITS_NAME, IMBITS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 1, VALUE_OPT_CERTIFICATE,
/* equiv idx, value */ 1, VALUE_OPT_CERTIFICATE,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ CERTIFICATE_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --certificate */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ CERTIFICATE_DESC, CERTIFICATE_NAME, CERTIFICATE_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 2, VALUE_OPT_CIPHER,
/* equiv idx, value */ 2, VALUE_OPT_CIPHER,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ CIPHER_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --cipher */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ CIPHER_DESC, CIPHER_NAME, CIPHER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equiv idx, value */ 3, VALUE_OPT_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptDebug_Level,
/* desc, NAME, name */ DEBUG_LEVEL_DESC, DEBUG_LEVEL_NAME, DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equiv idx, value */ 4, VALUE_OPT_SET_DEBUG_LEVEL,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ SET_DEBUG_LEVEL_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --set-debug-level */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ SET_DEBUG_LEVEL_DESC, SET_DEBUG_LEVEL_NAME, SET_DEBUG_LEVEL_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 5, VALUE_OPT_ID_KEY,
/* equiv idx, value */ 5, VALUE_OPT_ID_KEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ ID_KEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --id-key */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ ID_KEY_DESC, ID_KEY_NAME, ID_KEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 6, VALUE_OPT_GQ_PARAMS,
/* equiv idx, value */ 6, VALUE_OPT_GQ_PARAMS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ GQ_PARAMS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --gq-params */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ GQ_PARAMS_DESC, GQ_PARAMS_NAME, GQ_PARAMS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 7, VALUE_OPT_HOST_KEY,
/* equiv idx, value */ 7, VALUE_OPT_HOST_KEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ HOST_KEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --host-key */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ HOST_KEY_DESC, HOST_KEY_NAME, HOST_KEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 8, VALUE_OPT_IFFKEY,
/* equiv idx, value */ 8, VALUE_OPT_IFFKEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IFFKEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --iffkey */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ IFFKEY_DESC, IFFKEY_NAME, IFFKEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 9, VALUE_OPT_IDENT,
/* equiv idx, value */ 9, VALUE_OPT_IDENT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ IDENT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --ident */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ IDENT_DESC, IDENT_NAME, IDENT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 10, VALUE_OPT_LIFETIME,
/* equiv idx, value */ 10, VALUE_OPT_LIFETIME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ LIFETIME_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --lifetime */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ LIFETIME_DESC, LIFETIME_NAME, LIFETIME_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 11, VALUE_OPT_MODULUS,
/* equiv idx, value */ 11, VALUE_OPT_MODULUS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MODULUS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --modulus */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doOptModulus,
/* desc, NAME, name */ MODULUS_DESC, MODULUS_NAME, MODULUS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 12, VALUE_OPT_MD5KEY,
/* equiv idx, value */ 12, VALUE_OPT_MD5KEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MD5KEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --md5key */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ MD5KEY_DESC, MD5KEY_NAME, MD5KEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 13, VALUE_OPT_PVT_CERT,
/* equiv idx, value */ 13, VALUE_OPT_PVT_CERT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PVT_CERT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --pvt-cert */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PVT_CERT_DESC, PVT_CERT_NAME, PVT_CERT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 14, VALUE_OPT_PASSWORD,
/* equiv idx, value */ 14, VALUE_OPT_PASSWORD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ PASSWORD_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --password */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ PASSWORD_DESC, PASSWORD_NAME, PASSWORD_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 15, VALUE_OPT_EXPORT_PASSWD,
/* equiv idx, value */ 15, VALUE_OPT_EXPORT_PASSWD,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ EXPORT_PASSWD_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --export-passwd */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ EXPORT_PASSWD_DESC, EXPORT_PASSWD_NAME, EXPORT_PASSWD_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 16, VALUE_OPT_SUBJECT_NAME,
/* equiv idx, value */ 16, VALUE_OPT_SUBJECT_NAME,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SUBJECT_NAME_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --subject-name */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SUBJECT_NAME_DESC, SUBJECT_NAME_NAME, SUBJECT_NAME_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 17, VALUE_OPT_SIGN_KEY,
/* equiv idx, value */ 17, VALUE_OPT_SIGN_KEY,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ SIGN_KEY_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --sign-key */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SIGN_KEY_DESC, SIGN_KEY_NAME, SIGN_KEY_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 18, VALUE_OPT_TRUSTED_CERT,
/* equiv idx, value */ 18, VALUE_OPT_TRUSTED_CERT,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ TRUSTED_CERT_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --trusted-cert */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ TRUSTED_CERT_DESC, TRUSTED_CERT_NAME, TRUSTED_CERT_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 19, VALUE_OPT_MV_PARAMS,
/* equiv idx, value */ 19, VALUE_OPT_MV_PARAMS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MV_PARAMS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --mv-params */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ MV_PARAMS_DESC, MV_PARAMS_NAME, MV_PARAMS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ 20, VALUE_OPT_MV_KEYS,
/* equiv idx, value */ 20, VALUE_OPT_MV_KEYS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MV_KEYS_FLAGS, 0,
/* last opt argumnt */ { NULL }, /* --mv-keys */
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionNumericVal,
/* desc, NAME, name */ MV_KEYS_DESC, MV_KEYS_NAME, MV_KEYS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_VERSION, VALUE_OPT_VERSION,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_VERSION,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ VER_FLAGS, AOUSE_VERSION,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ VER_PROC,
/* desc, NAME, name */ VER_DESC, NULL, VER_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_HELP, VALUE_OPT_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_IMM | OPTST_NO_INIT, AOUSE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ doUsageOpt,
/* desc, NAME, name */ HELP_DESC, NULL, HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_MORE_HELP, VALUE_OPT_MORE_HELP,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_MORE_HELP,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ MORE_HELP_FLAGS, AOUSE_MORE_HELP,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionPagedUsage,
/* desc, NAME, name */ MORE_HELP_DESC, NULL, MORE_HELP_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_SAVE_OPTS, VALUE_OPT_SAVE_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_SAVE_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, 1, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_ARG_OPTIONAL | OPTST_NO_INIT, AOUSE_SAVE_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ NULL,
/* desc, NAME, name */ SAVE_OPTS_DESC, NULL, SAVE_OPTS_name,
/* disablement strs */ NULL, NULL },
{ /* entry idx, value */ INDEX_OPT_LOAD_OPTS, VALUE_OPT_LOAD_OPTS,
/* equiv idx value */ NO_EQUIVALENT, VALUE_OPT_LOAD_OPTS,
/* equivalenced to */ NO_EQUIVALENT,
/* min, max, act ct */ 0, NOLIMIT, 0,
/* opt state flags */ OPTST_SET_ARGTYPE(OPARG_TYPE_STRING)
| OPTST_DISABLE_IMM, AOUSE_LOAD_OPTS,
/* last opt argumnt */ { NULL },
/* arg list/cookie */ NULL,
/* must/cannot opts */ NULL, NULL,
/* option proc */ optionLoadOpt,
/* desc, NAME, name */ LOAD_OPTS_DESC, LOAD_OPTS_NAME, LOAD_OPTS_name,
/* disablement strs */ NO_LOAD_OPTS_name, LOAD_OPTS_pfx }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntp-keygen. */
#define zPROGNAME (ntp_keygen_opt_strs+2239)
/** Reference to the title line for ntp-keygen usage. */
#define zUsageTitle (ntp_keygen_opt_strs+2250)
/** ntp-keygen configuration file name. */
#define zRcName (ntp_keygen_opt_strs+2373)
/** Directories to search for ntp-keygen config files. */
static char const * const apzHomeList[3] = {
ntp_keygen_opt_strs+2365,
ntp_keygen_opt_strs+2371,
NULL };
/** The ntp-keygen program bug email address. */
#define zBugsAddr (ntp_keygen_opt_strs+2380)
/** Clarification/explanation of what ntp-keygen does. */
#define zExplain (ntp_keygen_opt_strs+2415)
/** Extra detail explaining what ntp-keygen does. */
#define zDetail (NULL)
/** The full version string for ntp-keygen. */
#define zFullVersion (ntp_keygen_opt_strs+2417)
/* extracted from optcode.tlib near line 342 */
#if defined(ENABLE_NLS)
# define OPTPROC_BASE OPTPROC_TRANSLATE
static tOptionXlateProc translate_option_strings;
#else
# define OPTPROC_BASE OPTPROC_NONE
# define translate_option_strings NULL
#endif /* ENABLE_NLS */
#define ntp_keygen_full_usage (NULL)
#define ntp_keygen_short_usage (NULL)
#endif /* not defined __doxygen__ */
/*
* Create the static procedure(s) declared above.
*/
/**
* The callout function that invokes the optionUsage function.
*
* @param[in] opts the AutoOpts option description structure
* @param[in] od the descriptor for the "help" (usage) option.
* @noreturn
*/
static void
doUsageOpt(tOptions * opts, tOptDesc * od)
{
int ex_code;
ex_code = NTP_KEYGEN_EXIT_SUCCESS;
optionUsage(&ntp_keygenOptions, ex_code);
/* NOTREACHED */
exit(NTP_KEYGEN_EXIT_FAILURE);
(void)opts;
(void)od;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the imbits option, when AUTOKEY is #define-d.
* The number of bits in the identity modulus. The default is 512.
* @param[in] pOptions the ntp-keygen options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
#ifdef AUTOKEY
static void
doOptImbits(tOptions* pOptions, tOptDesc* pOptDesc)
{
static struct {long rmin, rmax;} const rng[1] = {
{ 256, 2048 } };
int ix;
if (pOptions <= OPTPROC_EMIT_LIMIT)
goto emit_ranges;
optionNumericVal(pOptions, pOptDesc);
for (ix = 0; ix < 1; ix++) {
if (pOptDesc->optArg.argInt < rng[ix].rmin)
continue; /* ranges need not be ordered. */
if (pOptDesc->optArg.argInt == rng[ix].rmin)
return;
if (rng[ix].rmax == LONG_MIN)
continue;
if (pOptDesc->optArg.argInt <= rng[ix].rmax)
return;
}
option_usage_fp = stderr;
emit_ranges:
optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
}
#endif /* defined AUTOKEY */
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the debug-level option.
*
* @param[in] pOptions the ntp-keygen options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
static void
doOptDebug_Level(tOptions* pOptions, tOptDesc* pOptDesc)
{
/*
* Be sure the flag-code[0] handles special values for the options pointer
* viz. (poptions <= OPTPROC_EMIT_LIMIT) *and also* the special flag bit
* ((poptdesc->fOptState & OPTST_RESET) != 0) telling the option to
* reset its state.
*/
/* extracted from debug-opt.def, line 15 */
OPT_VALUE_SET_DEBUG_LEVEL++;
(void)pOptDesc;
(void)pOptions;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Code to handle the modulus option, when AUTOKEY is #define-d.
* The number of bits in the prime modulus. The default is 512.
* @param[in] pOptions the ntp-keygen options data structure
* @param[in,out] pOptDesc the option descriptor for this option.
*/
#ifdef AUTOKEY
static void
doOptModulus(tOptions* pOptions, tOptDesc* pOptDesc)
{
static struct {long rmin, rmax;} const rng[1] = {
{ 256, 2048 } };
int ix;
if (pOptions <= OPTPROC_EMIT_LIMIT)
goto emit_ranges;
optionNumericVal(pOptions, pOptDesc);
for (ix = 0; ix < 1; ix++) {
if (pOptDesc->optArg.argInt < rng[ix].rmin)
continue; /* ranges need not be ordered. */
if (pOptDesc->optArg.argInt == rng[ix].rmin)
return;
if (rng[ix].rmax == LONG_MIN)
continue;
if (pOptDesc->optArg.argInt <= rng[ix].rmax)
return;
}
option_usage_fp = stderr;
emit_ranges:
optionShowRange(pOptions, pOptDesc, VOIDP(rng), 1);
}
#endif /* defined AUTOKEY */
/* extracted from optmain.tlib near line 1250 */
/**
* The directory containing the data associated with ntp-keygen.
*/
#ifndef PKGDATADIR
# define PKGDATADIR ""
#endif
/**
* Information about the person or institution that packaged ntp-keygen
* for the current distribution.
*/
#ifndef WITH_PACKAGER
# define ntp_keygen_packager_info NULL
#else
/** Packager information for ntp-keygen. */
static char const ntp_keygen_packager_info[] =
"Packaged by " WITH_PACKAGER
# ifdef WITH_PACKAGER_VERSION
" ("WITH_PACKAGER_VERSION")"
# endif
# ifdef WITH_PACKAGER_BUG_REPORTS
"\nReport ntp_keygen bugs to " WITH_PACKAGER_BUG_REPORTS
# endif
"\n";
#endif
#ifndef __doxygen__
#endif /* __doxygen__ */
/**
* The option definitions for ntp-keygen. The one structure that
* binds them all.
*/
tOptions ntp_keygenOptions = {
OPTIONS_STRUCT_VERSION,
0, NULL, /* original argc + argv */
( OPTPROC_BASE
+ OPTPROC_ERRSTOP
+ OPTPROC_SHORTOPT
+ OPTPROC_LONGOPT
+ OPTPROC_NO_REQ_OPT
+ OPTPROC_ENVIRON
+ OPTPROC_NO_ARGS
+ OPTPROC_MISUSE ),
0, NULL, /* current option index, current option */
NULL, NULL, zPROGNAME,
zRcName, zCopyright, zLicenseDescrip,
zFullVersion, apzHomeList, zUsageTitle,
zExplain, zDetail, optDesc,
zBugsAddr, /* address to send bugs to */
NULL, NULL, /* extensions/saved state */
optionUsage, /* usage procedure */
translate_option_strings, /* translation procedure */
/*
* Indexes to special options
*/
{ INDEX_OPT_MORE_HELP, /* more-help option index */
INDEX_OPT_SAVE_OPTS, /* save option index */
NO_EQUIVALENT, /* '-#' option index */
NO_EQUIVALENT /* index of default opt */
},
26 /* full option count */, 21 /* user option count */,
ntp_keygen_full_usage, ntp_keygen_short_usage,
NULL, NULL,
PKGDATADIR, ntp_keygen_packager_info
};
#if ENABLE_NLS
/**
* This code is designed to translate translatable option text for the
* ntp-keygen program. These translations happen upon entry
* to optionProcess().
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef HAVE_DCGETTEXT
# include <gettext.h>
#endif
#include <autoopts/usage-txt.h>
static char * AO_gettext(char const * pz);
static void coerce_it(void ** s);
/**
* AutoGen specific wrapper function for gettext. It relies on the macro _()
* to convert from English to the target language, then strdup-duplicates the
* result string. It tries the "libopts" domain first, then whatever has been
* set via the \a textdomain(3) call.
*
* @param[in] pz the input text used as a lookup key.
* @returns the translated text (if there is one),
* or the original text (if not).
*/
static char *
AO_gettext(char const * pz)
{
char * res;
if (pz == NULL)
return NULL;
#ifdef HAVE_DCGETTEXT
/*
* While processing the option_xlateable_txt data, try to use the
* "libopts" domain. Once we switch to the option descriptor data,
* do *not* use that domain.
*/
if (option_xlateable_txt.field_ct != 0) {
res = dgettext("libopts", pz);
if (res == pz)
res = (char *)VOIDP(_(pz));
} else
res = (char *)VOIDP(_(pz));
#else
res = (char *)VOIDP(_(pz));
#endif
if (res == pz)
return res;
res = strdup(res);
if (res == NULL) {
fputs(_("No memory for duping translated strings\n"), stderr);
exit(NTP_KEYGEN_EXIT_FAILURE);
}
return res;
}
/**
* All the pointers we use are marked "* const", but they are stored in
* writable memory. Coerce the mutability and set the pointer.
*/
static void coerce_it(void ** s) { *s = AO_gettext(*s);
}
/**
* Translate all the translatable strings in the ntp_keygenOptions
* structure defined above. This is done only once.
*/
static void
translate_option_strings(void)
{
tOptions * const opts = &ntp_keygenOptions;
/*
* Guard against re-translation. It won't work. The strings will have
* been changed by the first pass through this code. One shot only.
*/
if (option_xlateable_txt.field_ct != 0) {
/*
* Do the translations. The first pointer follows the field count
* field. The field count field is the size of a pointer.
*/
char ** ppz = (char**)VOIDP(&(option_xlateable_txt));
int ix = option_xlateable_txt.field_ct;
do {
ppz++; /* skip over field_ct */
*ppz = AO_gettext(*ppz);
} while (--ix > 0);
/* prevent re-translation and disable "libopts" domain lookup */
option_xlateable_txt.field_ct = 0;
coerce_it(VOIDP(&(opts->pzCopyright)));
coerce_it(VOIDP(&(opts->pzCopyNotice)));
coerce_it(VOIDP(&(opts->pzFullVersion)));
coerce_it(VOIDP(&(opts->pzUsageTitle)));
coerce_it(VOIDP(&(opts->pzExplain)));
coerce_it(VOIDP(&(opts->pzDetail)));
{
tOptDesc * od = opts->pOptDesc;
for (ix = opts->optCt; ix > 0; ix--, od++)
coerce_it(VOIDP(&(od->pzText)));
}
}
}
#endif /* ENABLE_NLS */
#ifdef DO_NOT_COMPILE_THIS_CODE_IT_IS_FOR_GETTEXT
/** I18N function strictly for xgettext. Do not compile. */
static void bogus_function(void) {
/* TRANSLATORS:
The following dummy function was crated solely so that xgettext can
extract the correct strings. These strings are actually referenced
by a field name in the ntp_keygenOptions structure noted in the
comments below. The literal text is defined in ntp_keygen_opt_strs.
NOTE: the strings below are segmented with respect to the source string
ntp_keygen_opt_strs. The strings above are handed off for translation
at run time a paragraph at a time. Consequently, they are presented here
for translation a paragraph at a time.
ALSO: often the description for an option will reference another option
by name. These are set off with apostrophe quotes (I hope). Do not
translate option names.
*/
/* referenced via ntp_keygenOptions.pzCopyright */
- puts(_("ntp-keygen (ntp) 4.2.8p16\n\
+ puts(_("ntp-keygen (ntp) 4.2.8p17\n\
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.\n\
This is free software. It is licensed for use, modification and\n\
redistribution under the terms of the NTP License, copies of which\n\
can be seen at:\n"));
puts(_(" <http://ntp.org/license>\n\
<http://opensource.org/licenses/ntp-license.php>\n"));
/* referenced via ntp_keygenOptions.pzCopyNotice */
puts(_("Permission to use, copy, modify, and distribute this software and its\n\
documentation for any purpose with or without fee is hereby granted,\n\
provided that the above copyright notice appears in all copies and that\n\
both the copyright notice and this permission notice appear in supporting\n\
documentation, and that the name The University of Delaware not be used in\n\
advertising or publicity pertaining to distribution of the software without\n\
specific, written prior permission. The University of Delaware and Network\n\
Time Foundation makes no representations about the suitability this\n\
software for any purpose. It is provided \"as is\" without express or\n\
implied warranty.\n"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("identity modulus bits"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("certificate scheme"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("privatekey cipher"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("Increase debug verbosity level"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("Set the debug verbosity level"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("Write IFF or GQ identity keys"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("Generate GQ parameters and keys"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate RSA host key"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate IFF parameters"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("set Autokey group name"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("set certificate lifetime"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("prime modulus"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate symmetric keys"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate PC private certificate"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("local private password"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("export IFF or GQ group keys with password"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("set host and optionally group name"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate sign key (RSA or DSA)"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("trusted certificate (TC scheme)"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("generate <num> MV parameters"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("update <num> MV keys"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("display extended usage information and exit"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("extended usage information passed thru pager"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("output version information and exit"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("save the option state to a config file"));
/* referenced via ntp_keygenOptions.pOptDesc->pzText */
puts(_("load options from a config file"));
/* referenced via ntp_keygenOptions.pzUsageTitle */
- puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p16\n\
+ puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p17\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
/* referenced via ntp_keygenOptions.pzExplain */
puts(_("\n"));
/* referenced via ntp_keygenOptions.pzFullVersion */
- puts(_("ntp-keygen (ntp) 4.2.8p16"));
+ puts(_("ntp-keygen (ntp) 4.2.8p17"));
/* referenced via ntp_keygenOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
/* referenced via ntp_keygenOptions.pzShortUsage */
puts(_("<<<NOT-FOUND>>>"));
/* LIBOPTS-MESSAGES: */
#line 67 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 89 "../autoopts.c"
puts(_("allocation of %d bytes failed\n"));
#line 48 "../init.c"
puts(_("AutoOpts function called without option descriptor\n"));
#line 81 "../init.c"
puts(_("\tThis exceeds the compiled library version: "));
#line 79 "../init.c"
puts(_("Automated Options Processing Error!\n"
"\t%s called AutoOpts function with structure version %d:%d:%d.\n"));
#line 78 "../autoopts.c"
puts(_("realloc of %d bytes at 0x%p failed\n"));
#line 83 "../init.c"
puts(_("\tThis is less than the minimum library version: "));
#line 121 "../version.c"
puts(_("Automated Options version %s\n"
"\tCopyright (C) 1999-2017 by Bruce Korb - all rights reserved\n"));
#line 49 "../makeshell.c"
puts(_("(AutoOpts bug): %s.\n"));
#line 90 "../reset.c"
puts(_("optionResetOpt() called, but reset-option not configured"));
#line 241 "../usage.c"
puts(_("could not locate the 'help' option"));
#line 330 "../autoopts.c"
puts(_("optionProcess() was called with invalid data"));
#line 697 "../usage.c"
puts(_("invalid argument type specified"));
#line 568 "../find.c"
puts(_("defaulted to option with optional arg"));
#line 76 "../alias.c"
puts(_("aliasing option is out of range."));
#line 210 "../enum.c"
puts(_("%s error: the keyword '%s' is ambiguous for %s\n"));
#line 78 "../find.c"
puts(_(" The following options match:\n"));
#line 263 "../find.c"
puts(_("%s: ambiguous option name: %s (matches %d options)\n"));
#line 161 "../check.c"
puts(_("%s: Command line arguments required\n"));
#line 43 "../alias.c"
puts(_("%d %s%s options allowed\n"));
#line 56 "../makeshell.c"
puts(_("%s error %d (%s) calling %s for '%s'\n"));
#line 268 "../makeshell.c"
puts(_("interprocess pipe"));
#line 171 "../version.c"
puts(_("error: version option argument '%c' invalid. Use:\n"
"\t'v' - version only\n"
"\t'c' - version and copyright\n"
"\t'n' - version and full copyright notice\n"));
#line 58 "../check.c"
puts(_("%s error: the '%s' and '%s' options conflict\n"));
#line 187 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 400 "../find.c"
puts(_("%s: The '%s' option has been disabled."));
#line 38 "../alias.c"
puts(_("-equivalence"));
#line 439 "../find.c"
puts(_("%s: illegal option -- %c\n"));
#line 110 "../reset.c"
puts(_("%s: illegal option -- %c\n"));
#line 241 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 740 "../find.c"
puts(_("%s: illegal option -- %s\n"));
#line 118 "../reset.c"
puts(_("%s: illegal option -- %s\n"));
#line 305 "../find.c"
puts(_("%s: unknown vendor extension option -- %s\n"));
#line 135 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 145 "../enum.c"
puts(_(" or an integer from %d through %d\n"));
#line 696 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 1030 "../usage.c"
puts(_("%s error: invalid option descriptor for %s\n"));
#line 355 "../find.c"
puts(_("%s: invalid option name: %s\n"));
#line 497 "../find.c"
puts(_("%s: The '%s' option requires an argument.\n"));
#line 150 "../autoopts.c"
puts(_("(AutoOpts bug): Equivalenced option '%s' was equivalenced to both\n"
"\t'%s' and '%s'."));
#line 94 "../check.c"
puts(_("%s error: The %s option is required\n"));
#line 602 "../find.c"
puts(_("%s: The '%s' option cannot have an argument.\n"));
#line 151 "../check.c"
puts(_("%s: Command line arguments are not allowed.\n"));
#line 568 "../save.c"
puts(_("error %d (%s) creating %s\n"));
#line 210 "../enum.c"
puts(_("%s error: '%s' does not match any %s keywords.\n"));
#line 93 "../reset.c"
puts(_("%s error: The '%s' option requires an argument.\n"));
#line 122 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 175 "../save.c"
puts(_("error %d (%s) stat-ing %s\n"));
#line 143 "../restore.c"
puts(_("%s error: no saved option state\n"));
#line 225 "../autoopts.c"
puts(_("'%s' is not a command line option.\n"));
#line 113 "../time.c"
puts(_("%s error: '%s' is not a recognizable date/time.\n"));
#line 50 "../time.c"
puts(_("%s error: '%s' is not a recognizable time duration.\n"));
#line 92 "../check.c"
puts(_("%s error: The %s option must appear %d times.\n"));
#line 165 "../numeric.c"
puts(_("%s error: '%s' is not a recognizable number.\n"));
#line 176 "../enum.c"
puts(_("%s error: %s exceeds %s keyword count\n"));
#line 279 "../usage.c"
puts(_("Try '%s %s' for more information.\n"));
#line 45 "../alias.c"
puts(_("one %s%s option allowed\n"));
#line 170 "../makeshell.c"
puts(_("standard output"));
#line 905 "../makeshell.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard output"));
#line 364 "../usage.c"
puts(_("standard output"));
#line 574 "../usage.c"
puts(_("standard output"));
#line 178 "../version.c"
puts(_("standard output"));
#line 223 "../usage.c"
puts(_("standard error"));
#line 364 "../usage.c"
puts(_("standard error"));
#line 574 "../usage.c"
puts(_("standard error"));
#line 178 "../version.c"
puts(_("standard error"));
#line 170 "../makeshell.c"
puts(_("write"));
#line 905 "../makeshell.c"
puts(_("write"));
#line 222 "../usage.c"
puts(_("write"));
#line 363 "../usage.c"
puts(_("write"));
#line 573 "../usage.c"
puts(_("write"));
#line 177 "../version.c"
puts(_("write"));
#line 60 "../numeric.c"
puts(_("%s error: %s option value %ld is out of range.\n"));
#line 44 "../check.c"
puts(_("%s error: %s option requires the %s option\n"));
#line 121 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 174 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 193 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
#line 567 "../save.c"
puts(_("%s warning: cannot save options - %s not regular file\n"));
/* END-LIBOPTS-MESSAGES */
/* USAGE-TEXT: */
#line 822 "../usage.c"
puts(_("\t\t\t\t- an alternate for '%s'\n"));
#line 1097 "../usage.c"
puts(_("Version, usage and configuration options:"));
#line 873 "../usage.c"
puts(_("\t\t\t\t- default option for unnamed options\n"));
#line 786 "../usage.c"
puts(_("\t\t\t\t- disabled as '--%s'\n"));
#line 1066 "../usage.c"
puts(_(" --- %-14s %s\n"));
#line 1064 "../usage.c"
puts(_("This option has been disabled"));
#line 813 "../usage.c"
puts(_("\t\t\t\t- enabled by default\n"));
#line 40 "../alias.c"
puts(_("%s error: only "));
#line 1143 "../usage.c"
puts(_(" - examining environment variables named %s_*\n"));
#line 168 "../file.c"
puts(_("\t\t\t\t- file must not pre-exist\n"));
#line 172 "../file.c"
puts(_("\t\t\t\t- file must pre-exist\n"));
#line 329 "../usage.c"
puts(_("Options are specified by doubled hyphens and their name or by a single\n"
"hyphen and the flag character.\n"));
#line 882 "../makeshell.c"
puts(_("\n"
"= = = = = = = =\n\n"
"This incarnation of genshell will produce\n"
"a shell script to parse the options for %s:\n\n"));
#line 142 "../enum.c"
puts(_(" or an integer mask with any of the lower %d bits set\n"));
#line 846 "../usage.c"
puts(_("\t\t\t\t- is a set membership option\n"));
#line 867 "../usage.c"
puts(_("\t\t\t\t- must appear between %d and %d times\n"));
#line 331 "../usage.c"
puts(_("Options are specified by single or double hyphens and their name.\n"));
#line 853 "../usage.c"
puts(_("\t\t\t\t- may appear multiple times\n"));
#line 840 "../usage.c"
puts(_("\t\t\t\t- may not be preset\n"));
#line 1258 "../usage.c"
puts(_(" Arg Option-Name Description\n"));
#line 1194 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1252 "../usage.c"
puts(_(" Flg Arg Option-Name Description\n"));
#line 1253 "../usage.c"
puts(_(" %3s %s"));
#line 1259 "../usage.c"
puts(_(" %3s %s"));
#line 336 "../usage.c"
puts(_("The '-#<number>' option may omit the hash char\n"));
#line 332 "../usage.c"
puts(_("All arguments are named options.\n"));
#line 920 "../usage.c"
puts(_(" - reading file %s"));
#line 358 "../usage.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 100 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 129 "../version.c"
puts(_("\n"
"Please send bug reports to: <%s>\n"));
#line 852 "../usage.c"
puts(_("\t\t\t\t- may NOT appear - preset only\n"));
#line 893 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 1141 "../usage.c"
puts(_("\n"
"The following option preset mechanisms are supported:\n"));
#line 631 "../usage.c"
puts(_("prohibits these options:\n"));
#line 626 "../usage.c"
puts(_("prohibits the option '%s'\n"));
#line 81 "../numeric.c"
puts(_("%s%ld to %ld"));
#line 79 "../numeric.c"
puts(_("%sgreater than or equal to %ld"));
#line 75 "../numeric.c"
puts(_("%s%ld exactly"));
#line 68 "../numeric.c"
puts(_("%sit must lie in one of the ranges:\n"));
#line 68 "../numeric.c"
puts(_("%sit must be in the range:\n"));
#line 88 "../numeric.c"
puts(_(", or\n"));
#line 66 "../numeric.c"
puts(_("%sis scalable with a suffix: k/K/m/M/g/G/t/T\n"));
#line 77 "../numeric.c"
puts(_("%sless than or equal to %ld"));
#line 339 "../usage.c"
puts(_("Operands and options may be intermixed. They will be reordered.\n"));
#line 601 "../usage.c"
puts(_("requires the option '%s'\n"));
#line 604 "../usage.c"
puts(_("requires these options:\n"));
#line 1270 "../usage.c"
puts(_(" Arg Option-Name Req? Description\n"));
#line 1264 "../usage.c"
puts(_(" Flg Arg Option-Name Req? Description\n"));
#line 143 "../enum.c"
puts(_("or you may use a numeric representation. Preceding these with a '!'\n"
"will clear the bits, specifying 'none' will clear all bits, and 'all'\n"
"will set them all. Multiple entries may be passed as an option\n"
"argument list.\n"));
#line 859 "../usage.c"
puts(_("\t\t\t\t- may appear up to %d times\n"));
#line 52 "../enum.c"
puts(_("The valid \"%s\" option keywords are:\n"));
#line 1101 "../usage.c"
puts(_("The next option supports vendor supported extra options:"));
#line 722 "../usage.c"
puts(_("These additional options are:"));
/* END-USAGE-TEXT */
}
#endif /* uncompilable code */
#ifdef __cplusplus
}
#endif
/* ntp-keygen-opts.c ends here */
diff --git a/contrib/ntp/util/ntp-keygen-opts.h b/contrib/ntp/util/ntp-keygen-opts.h
index 8bbd22dcd932..9e266d2b164f 100644
--- a/contrib/ntp/util/ntp-keygen-opts.h
+++ b/contrib/ntp/util/ntp-keygen-opts.h
@@ -1,395 +1,395 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.h)
*
- * It has been AutoGen-ed May 31, 2023 at 08:03:00 PM by AutoGen 5.18.16
+ * It has been AutoGen-ed June 6, 2023 at 04:38:23 AM by AutoGen 5.18.16
* From the definitions ntp-keygen-opts.def
* and the template file options
*
* Generated from AutoOpts 42:1:17 templates.
*
* AutoOpts is a copyrighted work. This header file is not encumbered
* by AutoOpts licensing, but is provided under the licensing terms chosen
* by the ntp-keygen author or copyright holder. AutoOpts is
* licensed under the terms of the LGPL. The redistributable library
* (``libopts'') is licensed under the terms of either the LGPL or, at the
* users discretion, the BSD license. See the AutoOpts and/or libopts sources
* for details.
*
* The ntp-keygen program is copyrighted and licensed
* under the following terms:
*
* Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation, all rights reserved.
* This is free software. It is licensed for use, modification and
* redistribution under the terms of the NTP License, copies of which
* can be seen at:
* <http://ntp.org/license>
* <http://opensource.org/licenses/ntp-license.php>
*
* Permission to use, copy, modify, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appears in all copies and that
* both the copyright notice and this permission notice appear in
* supporting documentation, and that the name The University of Delaware not be used in
* advertising or publicity pertaining to distribution of the software
* without specific, written prior permission. The University of Delaware and Network Time Foundation makes no
* representations about the suitability this software for any purpose. It
* is provided "as is" without express or implied warranty.
*/
/**
* This file contains the programmatic interface to the Automated
* Options generated for the ntp-keygen program.
* These macros are documented in the AutoGen info file in the
* "AutoOpts" chapter. Please refer to that doc for usage help.
*/
#ifndef AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD
#define AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD 1
#include "config.h"
#include <autoopts/options.h>
#include <stdarg.h>
#include <stdnoreturn.h>
/**
* Ensure that the library used for compiling this generated header is at
* least as new as the version current when the header template was released
* (not counting patch version increments). Also ensure that the oldest
* tolerable version is at least as old as what was current when the header
* template was released.
*/
#define AO_TEMPLATE_VERSION 172033
#if (AO_TEMPLATE_VERSION < OPTIONS_MINIMUM_VERSION) \
|| (AO_TEMPLATE_VERSION > OPTIONS_STRUCT_VERSION)
# error option template version mismatches autoopts/options.h header
Choke Me.
#endif
#if GCC_VERSION > 40400
#define NOT_REACHED __builtin_unreachable();
#else
#define NOT_REACHED
#endif
/**
* Enumeration of each option type for ntp-keygen
*/
typedef enum {
INDEX_OPT_IMBITS = 0,
INDEX_OPT_CERTIFICATE = 1,
INDEX_OPT_CIPHER = 2,
INDEX_OPT_DEBUG_LEVEL = 3,
INDEX_OPT_SET_DEBUG_LEVEL = 4,
INDEX_OPT_ID_KEY = 5,
INDEX_OPT_GQ_PARAMS = 6,
INDEX_OPT_HOST_KEY = 7,
INDEX_OPT_IFFKEY = 8,
INDEX_OPT_IDENT = 9,
INDEX_OPT_LIFETIME = 10,
INDEX_OPT_MODULUS = 11,
INDEX_OPT_MD5KEY = 12,
INDEX_OPT_PVT_CERT = 13,
INDEX_OPT_PASSWORD = 14,
INDEX_OPT_EXPORT_PASSWD = 15,
INDEX_OPT_SUBJECT_NAME = 16,
INDEX_OPT_SIGN_KEY = 17,
INDEX_OPT_TRUSTED_CERT = 18,
INDEX_OPT_MV_PARAMS = 19,
INDEX_OPT_MV_KEYS = 20,
INDEX_OPT_VERSION = 21,
INDEX_OPT_HELP = 22,
INDEX_OPT_MORE_HELP = 23,
INDEX_OPT_SAVE_OPTS = 24,
INDEX_OPT_LOAD_OPTS = 25
} teOptIndex;
/** count of all options for ntp-keygen */
#define OPTION_CT 26
/** ntp-keygen version */
-#define NTP_KEYGEN_VERSION "4.2.8p16"
+#define NTP_KEYGEN_VERSION "4.2.8p17"
/** Full ntp-keygen version text */
-#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p16"
+#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p17"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
* option name (as in the teOptIndex enumeration above).
* e.g. HAVE_OPT(IMBITS)
*/
#define DESC(n) (ntp_keygenOptions.pOptDesc[INDEX_OPT_## n])
/** 'true' if an option has been specified in any way */
#define HAVE_OPT(n) (! UNUSED_OPT(& DESC(n)))
/** The string argument to an option. The argument type must be \"string\". */
#define OPT_ARG(n) (DESC(n).optArg.argString)
/** Mask the option state revealing how an option was specified.
* It will be one and only one of \a OPTST_SET, \a OPTST_PRESET,
* \a OPTST_DEFINED, \a OPTST_RESET or zero.
*/
#define STATE_OPT(n) (DESC(n).fOptState & OPTST_SET_MASK)
/** Count of option's occurrances *on the command line*. */
#define COUNT_OPT(n) (DESC(n).optOccCt)
/** mask of \a OPTST_SET and \a OPTST_DEFINED. */
#define ISSEL_OPT(n) (SELECTED_OPT(&DESC(n)))
/** 'true' if \a HAVE_OPT would yield 'false'. */
#define ISUNUSED_OPT(n) (UNUSED_OPT(& DESC(n)))
/** 'true' if OPTST_DISABLED bit not set. */
#define ENABLED_OPT(n) (! DISABLED_OPT(& DESC(n)))
/** number of stacked option arguments.
* Valid only for stacked option arguments. */
#define STACKCT_OPT(n) (((tArgList*)(DESC(n).optCookie))->useCt)
/** stacked argument vector.
* Valid only for stacked option arguments. */
#define STACKLST_OPT(n) (((tArgList*)(DESC(n).optCookie))->apzArgs)
/** Reset an option. */
#define CLEAR_OPT(n) STMTS( \
DESC(n).fOptState &= OPTST_PERSISTENT_MASK; \
if ((DESC(n).fOptState & OPTST_INITENABLED) == 0) \
DESC(n).fOptState |= OPTST_DISABLED; \
DESC(n).optCookie = NULL )
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/**
* Enumeration of ntp-keygen exit codes
*/
typedef enum {
NTP_KEYGEN_EXIT_SUCCESS = 0,
NTP_KEYGEN_EXIT_FAILURE = 1,
NTP_KEYGEN_EXIT_USAGE_ERROR = 64,
NTP_KEYGEN_EXIT_NO_CONFIG_INPUT = 66,
NTP_KEYGEN_EXIT_LIBOPTS_FAILURE = 70
} ntp_keygen_exit_code_t;
/** @} */
/**
* Make sure there are no #define name conflicts with the option names
*/
#ifndef NO_OPTION_NAME_WARNINGS
# ifdef IMBITS
# warning undefining IMBITS due to option name conflict
# undef IMBITS
# endif
# ifdef CERTIFICATE
# warning undefining CERTIFICATE due to option name conflict
# undef CERTIFICATE
# endif
# ifdef CIPHER
# warning undefining CIPHER due to option name conflict
# undef CIPHER
# endif
# ifdef DEBUG_LEVEL
# warning undefining DEBUG_LEVEL due to option name conflict
# undef DEBUG_LEVEL
# endif
# ifdef SET_DEBUG_LEVEL
# warning undefining SET_DEBUG_LEVEL due to option name conflict
# undef SET_DEBUG_LEVEL
# endif
# ifdef ID_KEY
# warning undefining ID_KEY due to option name conflict
# undef ID_KEY
# endif
# ifdef GQ_PARAMS
# warning undefining GQ_PARAMS due to option name conflict
# undef GQ_PARAMS
# endif
# ifdef HOST_KEY
# warning undefining HOST_KEY due to option name conflict
# undef HOST_KEY
# endif
# ifdef IFFKEY
# warning undefining IFFKEY due to option name conflict
# undef IFFKEY
# endif
# ifdef IDENT
# warning undefining IDENT due to option name conflict
# undef IDENT
# endif
# ifdef LIFETIME
# warning undefining LIFETIME due to option name conflict
# undef LIFETIME
# endif
# ifdef MODULUS
# warning undefining MODULUS due to option name conflict
# undef MODULUS
# endif
# ifdef MD5KEY
# warning undefining MD5KEY due to option name conflict
# undef MD5KEY
# endif
# ifdef PVT_CERT
# warning undefining PVT_CERT due to option name conflict
# undef PVT_CERT
# endif
# ifdef PASSWORD
# warning undefining PASSWORD due to option name conflict
# undef PASSWORD
# endif
# ifdef EXPORT_PASSWD
# warning undefining EXPORT_PASSWD due to option name conflict
# undef EXPORT_PASSWD
# endif
# ifdef SUBJECT_NAME
# warning undefining SUBJECT_NAME due to option name conflict
# undef SUBJECT_NAME
# endif
# ifdef SIGN_KEY
# warning undefining SIGN_KEY due to option name conflict
# undef SIGN_KEY
# endif
# ifdef TRUSTED_CERT
# warning undefining TRUSTED_CERT due to option name conflict
# undef TRUSTED_CERT
# endif
# ifdef MV_PARAMS
# warning undefining MV_PARAMS due to option name conflict
# undef MV_PARAMS
# endif
# ifdef MV_KEYS
# warning undefining MV_KEYS due to option name conflict
# undef MV_KEYS
# endif
#else /* NO_OPTION_NAME_WARNINGS */
# undef IMBITS
# undef CERTIFICATE
# undef CIPHER
# undef DEBUG_LEVEL
# undef SET_DEBUG_LEVEL
# undef ID_KEY
# undef GQ_PARAMS
# undef HOST_KEY
# undef IFFKEY
# undef IDENT
# undef LIFETIME
# undef MODULUS
# undef MD5KEY
# undef PVT_CERT
# undef PASSWORD
# undef EXPORT_PASSWD
# undef SUBJECT_NAME
# undef SIGN_KEY
# undef TRUSTED_CERT
# undef MV_PARAMS
# undef MV_KEYS
#endif /* NO_OPTION_NAME_WARNINGS */
/**
* Interface defines for specific options.
* @{
*/
#define VALUE_OPT_IMBITS 'b'
#ifdef AUTOKEY
#define OPT_VALUE_IMBITS (DESC(IMBITS).optArg.argInt)
#endif /* AUTOKEY */
#define VALUE_OPT_CERTIFICATE 'c'
#define VALUE_OPT_CIPHER 'C'
#define VALUE_OPT_DEBUG_LEVEL 'd'
#define VALUE_OPT_SET_DEBUG_LEVEL 'D'
#define OPT_VALUE_SET_DEBUG_LEVEL (DESC(SET_DEBUG_LEVEL).optArg.argInt)
#define VALUE_OPT_ID_KEY 'e'
#define VALUE_OPT_GQ_PARAMS 'G'
#define VALUE_OPT_HOST_KEY 'H'
#define VALUE_OPT_IFFKEY 'I'
#define VALUE_OPT_IDENT 'i'
#define VALUE_OPT_LIFETIME 'l'
#ifdef AUTOKEY
#define OPT_VALUE_LIFETIME (DESC(LIFETIME).optArg.argInt)
#endif /* AUTOKEY */
#define VALUE_OPT_MODULUS 'm'
#ifdef AUTOKEY
#define OPT_VALUE_MODULUS (DESC(MODULUS).optArg.argInt)
#endif /* AUTOKEY */
#define VALUE_OPT_MD5KEY 'M'
#define VALUE_OPT_PVT_CERT 'P'
#define VALUE_OPT_PASSWORD 'p'
#define VALUE_OPT_EXPORT_PASSWD 'q'
#define VALUE_OPT_SUBJECT_NAME 's'
#define VALUE_OPT_SIGN_KEY 'S'
#define VALUE_OPT_TRUSTED_CERT 'T'
#define VALUE_OPT_MV_PARAMS 'V'
#ifdef AUTOKEY
#define OPT_VALUE_MV_PARAMS (DESC(MV_PARAMS).optArg.argInt)
#endif /* AUTOKEY */
#define VALUE_OPT_MV_KEYS 'v'
#ifdef AUTOKEY
#define OPT_VALUE_MV_KEYS (DESC(MV_KEYS).optArg.argInt)
#endif /* AUTOKEY */
/** option flag (value) for help-value option */
#define VALUE_OPT_HELP '?'
/** option flag (value) for more-help-value option */
#define VALUE_OPT_MORE_HELP '!'
/** option flag (value) for version-value option */
#define VALUE_OPT_VERSION 0x1001
/** option flag (value) for save-opts-value option */
#define VALUE_OPT_SAVE_OPTS '>'
/** option flag (value) for load-opts-value option */
#define VALUE_OPT_LOAD_OPTS '<'
#define SET_OPT_SAVE_OPTS(a) STMTS( \
DESC(SAVE_OPTS).fOptState &= OPTST_PERSISTENT_MASK; \
DESC(SAVE_OPTS).fOptState |= OPTST_SET; \
DESC(SAVE_OPTS).optArg.argString = (char const*)(a))
/*
* Interface defines not associated with particular options
*/
#define ERRSKIP_OPTERR STMTS(ntp_keygenOptions.fOptSet &= ~OPTPROC_ERRSTOP)
#define ERRSTOP_OPTERR STMTS(ntp_keygenOptions.fOptSet |= OPTPROC_ERRSTOP)
#define RESTART_OPT(n) STMTS( \
ntp_keygenOptions.curOptIdx = (n); \
ntp_keygenOptions.pzCurOpt = NULL )
#define START_OPT RESTART_OPT(1)
#define USAGE(c) (*ntp_keygenOptions.pUsageProc)(&ntp_keygenOptions, c)
#ifdef __cplusplus
extern "C" {
#endif
/* * * * * *
*
* Declare the ntp-keygen option descriptor.
*/
extern tOptions ntp_keygenOptions;
#if defined(ENABLE_NLS)
# ifndef _
# include <stdio.h>
# ifndef HAVE_GETTEXT
extern char * gettext(char const *);
# else
# include <libintl.h>
# endif
# ifndef ATTRIBUTE_FORMAT_ARG
# define ATTRIBUTE_FORMAT_ARG(_a)
# endif
static inline char* aoGetsText(char const* pz) ATTRIBUTE_FORMAT_ARG(1);
static inline char* aoGetsText(char const* pz) {
if (pz == NULL) return NULL;
return (char*)gettext(pz);
}
# define _(s) aoGetsText(s)
# endif /* _() */
# define OPT_NO_XLAT_CFG_NAMES STMTS(ntp_keygenOptions.fOptSet |= \
OPTPROC_NXLAT_OPT_CFG;)
# define OPT_NO_XLAT_OPT_NAMES STMTS(ntp_keygenOptions.fOptSet |= \
OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG;)
# define OPT_XLAT_CFG_NAMES STMTS(ntp_keygenOptions.fOptSet &= \
~(OPTPROC_NXLAT_OPT|OPTPROC_NXLAT_OPT_CFG);)
# define OPT_XLAT_OPT_NAMES STMTS(ntp_keygenOptions.fOptSet &= \
~OPTPROC_NXLAT_OPT;)
#else /* ENABLE_NLS */
# define OPT_NO_XLAT_CFG_NAMES
# define OPT_NO_XLAT_OPT_NAMES
# define OPT_XLAT_CFG_NAMES
# define OPT_XLAT_OPT_NAMES
# ifndef _
# define _(_s) _s
# endif
#endif /* ENABLE_NLS */
#ifdef __cplusplus
}
#endif
#endif /* AUTOOPTS_NTP_KEYGEN_OPTS_H_GUARD */
/* ntp-keygen-opts.h ends here */
diff --git a/contrib/ntp/util/ntp-keygen.1ntp-keygenman b/contrib/ntp/util/ntp-keygen.1ntp-keygenman
index 235e0b903d81..f96a7689b17c 100644
--- a/contrib/ntp/util/ntp-keygen.1ntp-keygenman
+++ b/contrib/ntp/util/ntp-keygen.1ntp-keygenman
@@ -1,1372 +1,1372 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen 1ntp-keygenman "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntp-keygen 1ntp-keygenman "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:44:05 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:32 AM by AutoGen 5.18.16
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp-keygen\fP
\- Create a NTP host key
.SH SYNOPSIS
\f\*[B-Font]ntp-keygen\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
.sp \n(Ppu
.ne 2
The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
.sp \n(Ppu
.ne 2
When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex-encoded random bit strings suitable for SHA1, AES-128-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utility programs.
.sp \n(Ppu
.ne 2
The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
.sp \n(Ppu
.ne 2
Some files used by this program are encrypted using a private password.
The
\f\*[B-Font]\-p\f[]
option specifies the read password for local encrypted files and the
\f\*[B-Font]\-q\f[]
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
\fChostname\f[]\fR(1)\f[]
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
\f\*[B-Font]ntp-keygen\fP
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]pw\f[]
option of the
\f\*[B-Font]crypto\f[]
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
.sp \n(Ppu
.ne 2
Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
\fIntp.keys\f[],
is usually installed in
\fI/etc\f[].
Other files and links are usually installed in
\fI/usr/local/etc\f[],
which is normally in a shared filesystem in
NFS-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
\fI/etc\f[]
using the
\f\*[B-Font]keysdir\f[]
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
configuration file command.
.sp \n(Ppu
.ne 2
This program directs commentary and error messages to the standard
error stream
\fIstderr\f[]
and remote files to the standard output stream
\fIstdout\f[]
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
\fIntpkey\&*\f[]
and include the file type, generating host and filestamp,
as described in the
\fICryptographic Data Files\f[]
section below.
.SS Running the Program
The safest way to run the
\f\*[B-Font]ntp-keygen\fP
program is logged in directly as root.
The recommended procedure is change to the
\f\*[I-Font]keys\f[]
directory, usually
\fI/usr/local/etc\f[],
then run the program.
.sp \n(Ppu
.ne 2
To test and gain experience with Autokey concepts, log in as root and
change to the
\f\*[I-Font]keys\f[]
directory, usually
\fI/usr/local/etc\f[].
When run for the first time, or if all files with names beginning with
\fIntpkey\&*\f[]
have been removed, use the
\f\*[B-Font]ntp-keygen\fP
command without arguments to generate a default
\f\*[B-Font]RSA\f[]
host key and matching
\f\*[B-Font]RSA-MD5\f[]
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
.sp \n(Ppu
.ne 2
The host key is used to encrypt the cookie when required and so must be
\f\*[B-Font]RSA\f[]
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[]
type.
By default, the message digest type is
\f\*[B-Font]MD5\f[],
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
\f\*[B-Font]AES128CMAC\f[], \f\*[B-Font]MD2\f[], \f\*[B-Font]MD5\f[], \f\*[B-Font]MDC2\f[], \f\*[B-Font]SHA\f[], \f\*[B-Font]SHA1\f[]
and
\f\*[B-Font]RIPE160\f[]
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
\f\*[B-Font]RSA\f[]
sign keys;
however, only
\f\*[B-Font]SHA\f[]
and
\f\*[B-Font]SHA1\f[]
certificates are compatible with
\f\*[B-Font]DSA\f[]
sign keys.
.sp \n(Ppu
.ne 2
Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
.sp \n(Ppu
.ne 2
Running the program as other than root and using the Unix
\fCsu\f[]\fR(1)\f[]
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
\fI.rnd\f[]
in the user home directory.
However, there should be only one
\fI.rnd\f[],
most conveniently
in the root directory, so it is convenient to define the
RANDFILE
environment variable used by the OpenSSL library as the path to
\fI.rnd\f[].
.sp \n(Ppu
.ne 2
Installing the keys as root might not work in NFS-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
\fI/etc\f[]
using the
\f\*[B-Font]keysdir\f[]
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
.sp \n(Ppu
.ne 2
Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
.sp \n(Ppu
.ne 2
All files are installed by default in the keys directory
\fI/usr/local/etc\f[],
which is normally in a shared filesystem
in NFS-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
.sp \n(Ppu
.ne 2
Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
\f\*[I-Font]hostname\f[]
and
\f\*[I-Font]filestamp\f[]
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
.sp \n(Ppu
.ne 2
The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
follows it to the file name to extract the
\f\*[I-Font]filestamp\f[].
If a link is not present,
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
extracts the
\f\*[I-Font]filestamp\f[]
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
\f\*[B-Font]ntp-keygen\fP
program uses the same
\f\*[I-Font]filestamp\f[]
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
.sp \n(Ppu
.ne 2
Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-T\f[]
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
.sp \n(Ppu
.ne 2
The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
\f\*[B-Font]\-S\f[]
option and this can be either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[]
type.
By default, the signature
message digest type is
\f\*[B-Font]MD5\f[],
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
\f\*[B-Font]\-c\f[]
option.
.sp \n(Ppu
.ne 2
The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken-and-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball-and-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re-generated.
.sp \n(Ppu
.ne 2
Additional information on trusted groups and identity schemes is on the
\*[Lq]Autokey Public-Key Authentication\*[Rq]
page.
.sp \n(Ppu
.ne 2
File names begin with the prefix
\fIntpkey\f[]_
and end with the suffix
\fI_\f[]\f\*[I-Font]hostname\f[]. \f\*[I-Font]filestamp\f[],
where
\f\*[I-Font]hostname\f[]
is the owner name, usually the string returned
by the Unix
\fChostname\f[]\fR(1)\f[]
command, and
\f\*[I-Font]filestamp\f[]
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
\f\*[B-Font]rm\f[] \fIntpkey\&*\f[]
command or all files generated
at a specific time can be removed by a
\f\*[B-Font]rm\f[] \fI\&*\f[]\f\*[I-Font]filestamp\f[]
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
.SS Trusted Hosts and Groups
Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
\fIAuthentication\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[].
The default cryptotype uses
\f\*[B-Font]RSA\f[]
encryption,
\f\*[B-Font]MD5\f[]
message digest
and
\f\*[B-Font]TC\f[]
identification.
First, configure a NTP subnet including one or more low-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[].
.sp \n(Ppu
.ne 2
On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
\fIntpkey\f[]
files.
Then run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
\f\*[B-Font]\-T\f[]
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
.sp \n(Ppu
.ne 2
If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-S\f[] \f\*[I-Font]type\f[]
option, where
\f\*[I-Font]type\f[]
is either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[].
The most frequent need to do this is when a
\f\*[B-Font]DSA\f[]\-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-c\f[] \f\*[I-Font]scheme\f[]
option and selected
\f\*[I-Font]scheme\f[]
as needed.
If
\f\*[B-Font]ntp-keygen\fP
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
.sp \n(Ppu
.ne 2
After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
\f\*[B-Font]ntp-keygen\fP
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
should be restarted.
When
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
.SS Identity Schemes
As mentioned on the Autonomous Authentication page,
the default
\f\*[B-Font]TC\f[]
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
\f\*[B-Font]PC\f[], \f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[]
and
\f\*[B-Font]MV\f[]
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
.sp \n(Ppu
.ne 2
In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
.sp \n(Ppu
.ne 2
The PC scheme supports only one trusted host in the group.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-P\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to generate the host key file
\fIntpkey\f[]_ \f\*[B-Font]RSA\f[] \fIkey_alice.\f[] \f\*[I-Font]filestamp\f[]
and trusted private certificate file
\fIntpkey\f[]_ \f\*[B-Font]RSA-MD5\f[] \f\*[B-Font]_\f[] \fIcert_alice.\f[] \f\*[I-Font]filestamp\f[],
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
\f\*[I-Font]bob\f[]
install a soft link from the generic name
\fIntpkey_host_\f[]\f\*[I-Font]bob\f[]
to the host key file and soft link
\fIntpkey_cert_\f[]\f\*[I-Font]bob\f[]
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]IFF\f[]
scheme proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
\f\*[B-Font]IFF\f[]
parameter file.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
\f\*[B-Font]\-I\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to produce her parameter file
\fIntpkey_IFFpar_alice.\f[]\f\*[I-Font]filestamp\f[],
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
\fIntpkey_iff_alice\f[]
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
\f\*[B-Font]IFF\f[]
scheme is independent
of keys and certificates, these files can be refreshed as needed.
.sp \n(Ppu
.ne 2
If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-e\f[]
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
\fIntpkey_iff_alice\f[]
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]GQ\f[]
scheme proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
\f\*[B-Font]IFF\f[]
parameter file.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
\f\*[B-Font]\-G\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to produce her parameter file
\fIntpkey_GQpar_alice.\f[]\f\*[I-Font]filestamp\f[],
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
\fIntpkey_gq_alice\f[]
to this file.
In addition, on each host
\f\*[I-Font]bob\f[]
install a soft link
from generic
\fIntpkey_gq_\f[]\f\*[I-Font]bob\f[]
to this file.
As the
\f\*[B-Font]GQ\f[]
scheme updates the
\f\*[B-Font]GQ\f[]
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]MV\f[]
scheme, proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-V\f[] \f\*[I-Font]n\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[],
where
\f\*[I-Font]n\f[]
is the number of revokable keys (typically 5) to produce
the parameter file
\fIntpkeys_MVpar_trish.\f[]\f\*[I-Font]filestamp\f[]
and client key files
\fIntpkeys_MVkey\f[]\f\*[I-Font]d\f[] \f\*[I-Font]_\f[] \fItrish.\f[] \f\*[I-Font]filestamp\f[]
where
\f\*[I-Font]d\f[]
is the key number (0 \&<
\f\*[I-Font]d\f[]
\&<
\f\*[I-Font]n\f[]).
Copy the parameter file to alice and install a soft link
from the generic
\fIntpkey_mv_alice\f[]
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
\fIntpkey_mvkey_bob\f[]
to the client key file.
As the
\f\*[B-Font]MV\f[]
scheme is independent of keys and certificates,
these files can be refreshed as needed.
.SS Command Line Options
.TP 7
.NOP \f\*[B-Font]\-b\f[] \f\*[B-Font]\-\-imbits\f[]= \f\*[I-Font]modulus\f[]
Set the number of bits in the identity modulus for generating identity keys to
\f\*[I-Font]modulus\f[]
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.TP 7
.NOP \f\*[B-Font]\-c\f[] \f\*[B-Font]\-\-certificate\f[]= \f\*[I-Font]scheme\f[]
Select certificate signature encryption/message digest scheme.
The
\f\*[I-Font]scheme\f[]
can be one of the following:
\f\*[B-Font]RSA-MD2\f[], \f\*[B-Font]RSA-MD5\f[], \f\*[B-Font]RSA-MDC2\f[], \f\*[B-Font]RSA-SHA\f[], \f\*[B-Font]RSA-SHA1\f[], \f\*[B-Font]RSA-RIPEMD160\f[], \f\*[B-Font]DSA-SHA\f[],
or
\f\*[B-Font]DSA-SHA1\f[].
Note that
\f\*[B-Font]RSA\f[]
schemes must be used with an
\f\*[B-Font]RSA\f[]
sign key and
\f\*[B-Font]DSA\f[]
schemes must be used with a
\f\*[B-Font]DSA\f[]
sign key.
The default without this option is
\f\*[B-Font]RSA-MD5\f[].
If compatibility with FIPS 140-2 is required, either the
\f\*[B-Font]DSA-SHA\f[]
or
\f\*[B-Font]DSA-SHA1\f[]
scheme must be used.
.TP 7
.NOP \f\*[B-Font]\-C\f[] \f\*[B-Font]\-\-cipher\f[]= \f\*[I-Font]cipher\f[]
Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three-key triple DES in CBC mode,
\f\*[B-Font]des-ede3-cbc\f[].
The
\f\*[B-Font]openssl\f[] \f\*[B-Font]\-h\f[]
command provided with OpenSSL displays available ciphers.
.TP 7
.NOP \f\*[B-Font]\-d\f[] \f\*[B-Font]\-\-debug-level\f[]
Increase debugging verbosity level.
This option displays the cryptographic data produced in eye-friendly billboards.
.TP 7
.NOP \f\*[B-Font]\-D\f[] \f\*[B-Font]\-\-set-debug-level\f[]= \f\*[I-Font]level\f[]
Set the debugging verbosity to
\f\*[I-Font]level\f[].
This option displays the cryptographic data produced in eye-friendly billboards.
.TP 7
.NOP \f\*[B-Font]\-e\f[] \f\*[B-Font]\-\-id-key\f[]
Write the
\f\*[B-Font]IFF\f[]
or
\f\*[B-Font]GQ\f[]
public parameters from the
\f\*[I-Font]IFFkey\f[] \f\*[I-Font]or\f[] \f\*[I-Font]GQkey\f[]
client keys file previously specified
as unencrypted data to the standard output stream
\fIstdout\f[].
This is intended for automatic key distribution by email.
.TP 7
.NOP \f\*[B-Font]\-G\f[] \f\*[B-Font]\-\-gq-params\f[]
Generate a new encrypted
\f\*[B-Font]GQ\f[]
parameters and key file for the Guillou-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-I\f[]
and
\f\*[B-Font]\-V\f[]
options.
.TP 7
.NOP \f\*[B-Font]\-H\f[] \f\*[B-Font]\-\-host-key\f[]
Generate a new encrypted
\f\*[B-Font]RSA\f[]
public/private host key file.
.TP 7
.NOP \f\*[B-Font]\-I\f[] \f\*[B-Font]\-\-iffkey\f[]
Generate a new encrypted
\f\*[B-Font]IFF\f[]
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-G\f[]
and
Fl V
options.
.TP 7
.NOP \f\*[B-Font]\-i\f[] \f\*[B-Font]\-\-ident\f[]= \f\*[I-Font]group\f[]
Set the optional Autokey group name to
\f\*[I-Font]group\f[].
This is used in the identity scheme parameter file names of
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[],
and
\f\*[B-Font]MV\f[]
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-s\f[]
following an
\[oq]@@\[cq]
character, is also used in certificate subject and issuer names in the form
\f\*[I-Font]host\f[] \f\*[I-Font]@@\f[] \f\*[I-Font]group\f[]
and should match the group specified via
\f\*[B-Font]crypto\f[] \f\*[B-Font]ident\f[]
or
\f\*[B-Font]server\f[] \f\*[B-Font]ident\f[]
in the ntpd configuration file.
.TP 7
.NOP \f\*[B-Font]\-l\f[] \f\*[B-Font]\-\-lifetime\f[]= \f\*[I-Font]days\f[]
Set the lifetime for certificate expiration to
\f\*[I-Font]days\f[].
The default lifetime is one year (365 days).
.TP 7
.NOP \f\*[B-Font]\-m\f[] \f\*[B-Font]\-\-modulus\f[]= \f\*[I-Font]bits\f[]
Set the number of bits in the prime modulus for generating files to
\f\*[I-Font]bits\f[].
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.TP 7
.NOP \f\*[B-Font]\-M\f[] \f\*[B-Font]\-\-md5key\f[]
Generate a new symmetric keys file containing 10
\f\*[B-Font]MD5\f[]
keys, and if OpenSSL is available, 10
\f\*[B-Font]SHA\f[]
keys.
An
\f\*[B-Font]MD5\f[]
key is a string of 20 random printable ASCII characters, while a
\f\*[B-Font]SHA\f[]
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
.TP 7
.NOP \f\*[B-Font]\-p\f[] \f\*[B-Font]\-\-password\f[]= \f\*[I-Font]passwd\f[]
Set the password for reading and writing encrypted files to
\f\*[I-Font]passwd\f[].
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-P\f[] \f\*[B-Font]\-\-pvt-cert\f[]
Generate a new private certificate used by the
\f\*[B-Font]PC\f[]
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
.TP 7
.NOP \f\*[B-Font]\-q\f[] \f\*[B-Font]\-\-export-passwd\f[]= \f\*[I-Font]passwd\f[]
Set the password for writing encrypted
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[] \f\*[B-Font]and\f[] \f\*[B-Font]MV\f[]
identity files redirected to
\fIstdout\f[]
to
\f\*[I-Font]passwd\f[].
In effect, these files are decrypted with the
\f\*[B-Font]\-p\f[]
password, then encrypted with the
\f\*[B-Font]\-q\f[]
password.
By default, the password is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-s\f[] \f\*[B-Font]\-\-subject-key\f[]= [host] [@@ \f\*[I-Font]group\f[]]
Specify the Autokey host name, where
\f\*[I-Font]host\f[]
is the optional host name and
\f\*[I-Font]group\f[]
is the optional group name.
The host name, and if provided, group name are used in
\f\*[I-Font]host\f[] \f\*[I-Font]@@\f[] \f\*[I-Font]group\f[]
form as certificate subject and issuer.
Specifying
\f\*[B-Font]\-s\f[] \f\*[B-Font]\-@@\f[] \f\*[I-Font]group\f[]
is allowed, and results in leaving the host name unchanged, as with
\f\*[B-Font]\-i\f[] \f\*[I-Font]group\f[].
The group name, or if no group is provided, the host name are also used in the
file names of
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[],
and
\f\*[B-Font]MV\f[]
identity scheme client parameter files.
If
\f\*[I-Font]host\f[]
is not specified, the default host name is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-S\f[] \f\*[B-Font]\-\-sign-key\f[]= [\f\*[B-Font]RSA\f[] | \f\*[B-Font]DSA\f[]]
Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140-2 is required, the sign key type must be
\f\*[B-Font]DSA\f[].
.TP 7
.NOP \f\*[B-Font]\-T\f[] \f\*[B-Font]\-\-trusted-cert\f[]
Generate a trusted certificate.
By default, the program generates a non-trusted certificate.
.TP 7
.NOP \f\*[B-Font]\-V\f[] \f\*[B-Font]\-\-mv-params\f[] \f\*[I-Font]nkeys\f[]
Generate
\f\*[I-Font]nkeys\f[]
encrypted server keys and parameters for the Mu-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-I\f[]
and
\f\*[B-Font]\-G\f[]
options.
Note: support for this option should be considered a work in progress.
.PP
.SS Random Seed File
All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
\f\*[B-Font]ntp-keygen\fP
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
.sp \n(Ppu
.ne 2
It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
.sp \n(Ppu
.ne 2
The entropy seed used by the OpenSSL library is contained in a file,
usually called
\fI.rnd\f[],
which must be available when starting the NTP daemon
or the
\f\*[B-Font]ntp-keygen\fP
program.
The NTP daemon will first look for the file
using the path specified by the
\f\*[B-Font]randfile\f[]
subcommand of the
\f\*[B-Font]crypto\f[]
configuration command.
If not specified in this way, or when starting the
\f\*[B-Font]ntp-keygen\fP
program,
the OpenSSL library will look for the file using the path specified
by the
RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
RANDFILE
environment variable is not present,
the library will look for the
\fI.rnd\f[]
file in the user home directory.
Since both the
\f\*[B-Font]ntp-keygen\fP
program and
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon must run as root, the logical place to put this file is in
\fI/.rnd\f[]
or
\fI/root/.rnd\f[].
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
.SS Cryptographic Data Files
All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
\fIntpkey_\f[]\f\*[I-Font]key\f[] \f\*[I-Font]_\f[] \f\*[I-Font]name\f[]. \f\*[I-Font]filestamp\f[],
where
\f\*[I-Font]key\f[]
is the key or parameter type,
\f\*[I-Font]name\f[]
is the host or group name and
\f\*[I-Font]filestamp\f[]
is the filestamp (NTP seconds) when the file was created.
By convention,
\f\*[I-Font]key\f[]
names in generated file names include both upper and lower case
characters, while
\f\*[I-Font]key\f[]
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
\fIdate\f[]
format.
Lines beginning with
\[oq]#\[cq]
are considered comments and ignored by the
\f\*[B-Font]ntp-keygen\fP
program and
\fCntpd\f[]\fR(1ntpdmdoc)\f[]
daemon.
.sp \n(Ppu
.ne 2
The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
.sp \n(Ppu
.ne 2
The format of the symmetric keys file, ordinarily named
\fIntp.keys\f[],
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
.br
.in +4
.nf
# ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L";Nw<\`.I<f4U0)247"i # MD5 key
2 MD5 &>l0%XXK9O'51VwV<xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o}3i@@@@V@@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6"Sh?F # MD5 key
9 MD5 3-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
.in -4
.fi
.in +4
Figure 1. Typical Symmetric Key File
.in -4
.sp \n(Ppu
.ne 2
Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
.in +4
\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[]
.in -4
where
\f\*[I-Font]keyno\f[]
is a positive integer in the range 1-65535;
\f\*[I-Font]type\f[]
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
\f\*[B-Font]MD5\f[]
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140-2 is required,
the key type must be either
\f\*[B-Font]SHA\f[]
or
\f\*[B-Font]SHA1\f[];
\f\*[I-Font]key\f[]
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
\[oq]\[cq]!
through
\[oq]~\[cq]
\&) excluding space and the
\[oq]#\[cq]
character, and terminated by whitespace or a
\[oq]#\[cq]
character.
An OpenSSL key consists of a hex-encoded ASCII string of 40 characters, which
is truncated as necessary.
.sp \n(Ppu
.ne 2
Note that the keys used by the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntp-keygen\fP
program generates a symmetric keys file
\fIntpkey_MD5key_\f[]\f\*[I-Font]hostname\f[]. \f\*[I-Font]filestamp\f[].
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
\fIntp.keys\f[],
so
\f\*[B-Font]ntp-keygen\fP
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
\fCntpq\f[]\fR(1ntpqmdoc)\f[]
and
\fCntpdc\f[]\fR(1ntpdcmdoc)\f[]
utilities.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-b\f[] \f\*[I-Font]imbits\f[], \f\*[B-Font]\-\-imbits\f[]=\f\*[I-Font]imbits\f[]
identity modulus bits.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]imbits\f[]
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the identity modulus. The default is 512.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]scheme\f[], \f\*[B-Font]\-\-certificate\f[]=\f\*[I-Font]scheme\f[]
certificate scheme.
.sp
scheme is one of
RSA-MD2, RSA-MD5, RSA-MDC2, RSA-SHA, RSA-SHA1, RSA-RIPEMD160,
DSA-SHA, or DSA-SHA1.
.sp
Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA-MD5.
.TP
.NOP \f\*[B-Font]\-C\f[] \f\*[I-Font]cipher\f[], \f\*[B-Font]\-\-cipher\f[]=\f\*[I-Font]cipher\f[]
privatekey cipher.
.sp
Select the cipher which is used to encrypt the files containing
private keys. The default is three-key triple DES in CBC mode,
equivalent to "\fB-C des-ede3-cbc\fP". The openssl tool lists ciphers
available in "\fBopenssl \-h\fP" output.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-e\f[], \f\*[B-Font]\-\-id\-key\f[]
Write IFF or GQ identity keys.
.sp
Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
.TP
.NOP \f\*[B-Font]\-G\f[], \f\*[B-Font]\-\-gq\-params\f[]
Generate GQ parameters and keys.
.sp
Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-H\f[], \f\*[B-Font]\-\-host\-key\f[]
generate RSA host key.
.sp
Generate new host keys, obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-I\f[], \f\*[B-Font]\-\-iffkey\f[]
generate IFF parameters.
.sp
Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
.TP
.NOP \f\*[B-Font]\-i\f[] \f\*[I-Font]group\f[], \f\*[B-Font]\-\-ident\f[]=\f\*[I-Font]group\f[]
set Autokey group name.
.sp
Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using \fB-i/--ident\fP or
using \fB-s/--subject-name\fP following an '\fB@@\fP' character,
is also a part of the self-signed host certificate subject and
issuer names in the form \fBhost@@group\fP and should match the
'\fBcrypto ident\fP' or '\fBserver ident\fP' configuration in the
\fBntpd\fP configuration file.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]lifetime\f[], \f\*[B-Font]\-\-lifetime\f[]=\f\*[I-Font]lifetime\f[]
set certificate lifetime.
This option takes an integer number as its argument.
.sp
Set the certificate expiration to lifetime days from now.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]modulus\f[], \f\*[B-Font]\-\-modulus\f[]=\f\*[I-Font]modulus\f[]
prime modulus.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]modulus\f[]
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the prime modulus. The default is 512.
.TP
.NOP \f\*[B-Font]\-M\f[], \f\*[B-Font]\-\-md5key\f[]
generate symmetric keys.
.sp
Generate symmetric keys, obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-P\f[], \f\*[B-Font]\-\-pvt\-cert\f[]
generate PC private certificate.
.sp
Generate a private certificate. By default, the program generates
public certificates.
.TP
.NOP \f\*[B-Font]\-p\f[] \f\*[I-Font]passwd\f[], \f\*[B-Font]\-\-password\f[]=\f\*[I-Font]passwd\f[]
local private password.
.sp
Local files containing private data are encrypted with the
DES-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the "crypto pw password"
configuration command. The default password is the local
hostname.
.TP
.NOP \f\*[B-Font]\-q\f[] \f\*[I-Font]passwd\f[], \f\*[B-Font]\-\-export\-passwd\f[]=\f\*[I-Font]passwd\f[]
export IFF or GQ group keys with password.
.sp
Export IFF or GQ identity group keys to the standard output,
encrypted with the DES-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
"crypto pw password" configuration command. See also the option
--id-key (-e) for unencrypted exports.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]host@group\f[], \f\*[B-Font]\-\-subject\-name\f[]=\f\*[I-Font]host@group\f[]
set host and optionally group name.
.sp
Set the Autokey host name, and optionally, group name specified
following an '\fB@@\fP' character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in \fBhost@@group\fP form for the host certificate subject and issuer
fields. Specifying '\fB-s @@group\fP' is allowed, and results in
leaving the host name unchanged while appending \fB@@group\fP to the
subject and issuer fields, as with \fB-i group\fP. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
.TP
.NOP \f\*[B-Font]\-S\f[] \f\*[I-Font]sign\f[], \f\*[B-Font]\-\-sign\-key\f[]=\f\*[I-Font]sign\f[]
generate sign key (RSA or DSA).
.sp
Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
.TP
.NOP \f\*[B-Font]\-T\f[], \f\*[B-Font]\-\-trusted\-cert\f[]
trusted certificate (TC scheme).
.sp
Generate a trusted certificate. By default, the program generates
a non-trusted certificate.
.TP
.NOP \f\*[B-Font]\-V\f[] \f\*[I-Font]num\f[], \f\*[B-Font]\-\-mv\-params\f[]=\f\*[I-Font]num\f[]
generate <num> MV parameters.
This option takes an integer number as its argument.
.sp
Generate parameters and keys for the Mu-Varadharajan (MV)
identification scheme.
.TP
.NOP \f\*[B-Font]\-v\f[] \f\*[I-Font]num\f[], \f\*[B-Font]\-\-mv\-keys\f[]=\f\*[I-Font]num\f[]
update <num> MV keys.
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTP_KEYGEN_<option-name>\fP or \fBNTP_KEYGEN\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
It can take quite a while to generate some cryptographic values.
.sp \n(Ppu
.ne 2
Please report bugs to http://bugs.ntp.org .
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
Portions of this document came from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp-keygen\fP
option definitions.
diff --git a/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc b/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
index 87ef82e6bb62..ce6b988d7670 100644
--- a/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
+++ b/contrib/ntp/util/ntp-keygen.1ntp-keygenmdoc
@@ -1,1223 +1,1223 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_KEYGEN 1ntp-keygenmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:44:01 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:27 AM by AutoGen 5.18.16
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp-keygen
.Nd Create a NTP host key
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
.Pp
The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM\-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
.Pp
When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo\-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex\-encoded random bit strings suitable for SHA1, AES\-128\-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
utility programs.
.Pp
The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
.Pp
Some files used by this program are encrypted using a private password.
The
.Fl p
option specifies the read password for local encrypted files and the
.Fl q
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
.Xr hostname 1
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
.Nm
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
.Pp
The
.Cm pw
option of the
.Ic crypto
.Xr ntpd 1ntpdmdoc
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
.Xr ntpd 1ntpdmdoc
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
.Pp
Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
.Pa ntp.keys ,
is usually installed in
.Pa /etc .
Other files and links are usually installed in
.Pa /usr/local/etc ,
which is normally in a shared filesystem in
NFS\-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
.Pa /etc
using the
.Ic keysdir
.Xr ntpd 1ntpdmdoc
configuration file command.
.Pp
This program directs commentary and error messages to the standard
error stream
.Pa stderr
and remote files to the standard output stream
.Pa stdout
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
.Pa ntpkey\&*
and include the file type, generating host and filestamp,
as described in the
.Sx "Cryptographic Data Files"
section below.
.Ss Running the Program
The safest way to run the
.Nm
program is logged in directly as root.
The recommended procedure is change to the
.Ar keys
directory, usually
.Pa /usr/local/etc ,
then run the program.
.Pp
To test and gain experience with Autokey concepts, log in as root and
change to the
.Ar keys
directory, usually
.Pa /usr/local/etc .
When run for the first time, or if all files with names beginning with
.Pa ntpkey\&*
have been removed, use the
.Nm
command without arguments to generate a default
.Cm RSA
host key and matching
.Cm RSA\-MD5
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
.Pp
The host key is used to encrypt the cookie when required and so must be
.Cm RSA
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
.Cm RSA
or
.Cm DSA
type.
By default, the message digest type is
.Cm MD5 ,
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
.Cm AES128CMAC , MD2 , MD5 , MDC2 , SHA , SHA1
and
.Cm RIPE160
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
.Cm RSA
sign keys;
however, only
.Cm SHA
and
.Cm SHA1
certificates are compatible with
.Cm DSA
sign keys.
.Pp
Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
.Pp
Running the program as other than root and using the Unix
.Xr su 1
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
.Pa .rnd
in the user home directory.
However, there should be only one
.Pa .rnd ,
most conveniently
in the root directory, so it is convenient to define the
.Ev RANDFILE
environment variable used by the OpenSSL library as the path to
.Pa .rnd .
.Pp
Installing the keys as root might not work in NFS\-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
.Pa /etc
using the
.Ic keysdir
.Xr ntpd 1ntpdmdoc
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
.Pp
Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
.Pp
All files are installed by default in the keys directory
.Pa /usr/local/etc ,
which is normally in a shared filesystem
in NFS\-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
.Pp
Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write\-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
.Ar hostname
and
.Ar filestamp
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
.Pp
The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
.Xr ntpd 1ntpdmdoc
follows it to the file name to extract the
.Ar filestamp .
If a link is not present,
.Xr ntpd 1ntpdmdoc
extracts the
.Ar filestamp
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
.Nm
program uses the same
.Ar filestamp
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
.Pp
Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
.Nm
with the
.Fl T
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
.Pp
The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
.Fl S
option and this can be either
.Cm RSA
or
.Cm DSA
type.
By default, the signature
message digest type is
.Cm MD5 ,
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
.Fl c
option.
.Pp
The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken\-and\-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball\-and\-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re\-generated.
.Pp
Additional information on trusted groups and identity schemes is on the
.Dq Autokey Public\-Key Authentication
page.
.Pp
File names begin with the prefix
.Pa ntpkey Ns _
and end with the suffix
.Pa _ Ns Ar hostname . Ar filestamp ,
where
.Ar hostname
is the owner name, usually the string returned
by the Unix
.Xr hostname 1
command, and
.Ar filestamp
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
.Ic rm Pa ntpkey\&*
command or all files generated
at a specific time can be removed by a
.Ic rm Pa \&* Ns Ar filestamp
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
.Ss Trusted Hosts and Groups
Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
.Sx Authentication Options
section of
.Xr ntp.conf 5 .
The default cryptotype uses
.Cm RSA
encryption,
.Cm MD5
message digest
and
.Cm TC
identification.
First, configure a NTP subnet including one or more low\-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
.Sx Automatic NTP Configuration Options
section of
.Xr ntp.conf 5 .
.Pp
On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
.Pa ntpkey
files.
Then run
.Nm
.Fl T
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
.Fl T
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
.Pp
If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
.Nm
with the
.Fl S Ar type
option, where
.Ar type
is either
.Cm RSA
or
.Cm DSA .
The most frequent need to do this is when a
.Cm DSA Ns \-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
.Nm
with the
.Fl c Ar scheme
option and selected
.Ar scheme
as needed.
If
.Nm
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
.Pp
After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
.Nm
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
.Xr ntpd 1ntpdmdoc
should be restarted.
When
.Xr ntpd 1ntpdmdoc
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
.Ss Identity Schemes
As mentioned on the Autonomous Authentication page,
the default
.Cm TC
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
.Cm PC , IFF , GQ
and
.Cm MV
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
.Pp
In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
.Pp
The PC scheme supports only one trusted host in the group.
On trusted host alice run
.Nm
.Fl P
.Fl p Ar password
to generate the host key file
.Pa ntpkey Ns _ Cm RSA Pa key_alice. Ar filestamp
and trusted private certificate file
.Pa ntpkey Ns _ Cm RSA\-MD5 _ Pa cert_alice. Ar filestamp ,
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
.Ar bob
install a soft link from the generic name
.Pa ntpkey_host_ Ns Ar bob
to the host key file and soft link
.Pa ntpkey_cert_ Ns Ar bob
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
.Pp
For the
.Cm IFF
scheme proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
.Cm IFF
parameter file.
On trusted host alice run
.Nm
.Fl T
.Fl I
.Fl p Ar password
to produce her parameter file
.Pa ntpkey_IFFpar_alice. Ns Ar filestamp ,
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
.Pa ntpkey_iff_alice
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
.Cm IFF
scheme is independent
of keys and certificates, these files can be refreshed as needed.
.Pp
If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
.Nm
.Fl e
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
.Pa ntpkey_iff_alice
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
.Pp
For the
.Cm GQ
scheme proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
.Cm IFF
parameter file.
On trusted host alice run
.Nm
.Fl T
.Fl G
.Fl p Ar password
to produce her parameter file
.Pa ntpkey_GQpar_alice. Ns Ar filestamp ,
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
.Pa ntpkey_gq_alice
to this file.
In addition, on each host
.Ar bob
install a soft link
from generic
.Pa ntpkey_gq_ Ns Ar bob
to this file.
As the
.Cm GQ
scheme updates the
.Cm GQ
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
.Pp
For the
.Cm MV
scheme, proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
.Nm
.Fl V Ar n
.Fl p Ar password ,
where
.Ar n
is the number of revokable keys (typically 5) to produce
the parameter file
.Pa ntpkeys_MVpar_trish. Ns Ar filestamp
and client key files
.Pa ntpkeys_MVkey Ns Ar d _ Pa trish. Ar filestamp
where
.Ar d
is the key number (0 \&<
.Ar d
\&<
.Ar n ) .
Copy the parameter file to alice and install a soft link
from the generic
.Pa ntpkey_mv_alice
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
.Pa ntpkey_mvkey_bob
to the client key file.
As the
.Cm MV
scheme is independent of keys and certificates,
these files can be refreshed as needed.
.Ss Command Line Options
.Bl -tag -width indent
.It Fl b Fl \-imbits Ns = Ar modulus
Set the number of bits in the identity modulus for generating identity keys to
.Ar modulus
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.It Fl c Fl \-certificate Ns = Ar scheme
Select certificate signature encryption/message digest scheme.
The
.Ar scheme
can be one of the following:
.Cm RSA\-MD2 , RSA\-MD5 , RSA\-MDC2 , RSA\-SHA , RSA\-SHA1 , RSA\-RIPEMD160 , DSA\-SHA ,
or
.Cm DSA\-SHA1 .
Note that
.Cm RSA
schemes must be used with an
.Cm RSA
sign key and
.Cm DSA
schemes must be used with a
.Cm DSA
sign key.
The default without this option is
.Cm RSA\-MD5 .
If compatibility with FIPS 140\-2 is required, either the
.Cm DSA\-SHA
or
.Cm DSA\-SHA1
scheme must be used.
.It Fl C Fl \-cipher Ns = Ar cipher
Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three\-key triple DES in CBC mode,
.Cm des\-ede3\-cbc .
The
.Ic openssl Fl h
command provided with OpenSSL displays available ciphers.
.It Fl d Fl \-debug\-level
Increase debugging verbosity level.
This option displays the cryptographic data produced in eye\-friendly billboards.
.It Fl D Fl \-set\-debug\-level Ns = Ar level
Set the debugging verbosity to
.Ar level .
This option displays the cryptographic data produced in eye\-friendly billboards.
.It Fl e Fl \-id\-key
Write the
.Cm IFF
or
.Cm GQ
public parameters from the
.Ar IFFkey or GQkey
client keys file previously specified
as unencrypted data to the standard output stream
.Pa stdout .
This is intended for automatic key distribution by email.
.It Fl G Fl \-gq\-params
Generate a new encrypted
.Cm GQ
parameters and key file for the Guillou\-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
.Fl I
and
.Fl V
options.
.It Fl H Fl \-host\-key
Generate a new encrypted
.Cm RSA
public/private host key file.
.It Fl I Fl \-iffkey
Generate a new encrypted
.Cm IFF
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
.Fl G
and
Fl V
options.
.It Fl i Fl \-ident Ns = Ar group
Set the optional Autokey group name to
.Ar group .
This is used in the identity scheme parameter file names of
.Cm IFF , GQ ,
and
.Cm MV
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
.Fl i
or
.Fl s
following an
.Ql @
character, is also used in certificate subject and issuer names in the form
.Ar host @ group
and should match the group specified via
.Ic crypto Cm ident
or
.Ic server Cm ident
in the ntpd configuration file.
.It Fl l Fl \-lifetime Ns = Ar days
Set the lifetime for certificate expiration to
.Ar days .
The default lifetime is one year (365 days).
.It Fl m Fl \-modulus Ns = Ar bits
Set the number of bits in the prime modulus for generating files to
.Ar bits .
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.It Fl M Fl \-md5key
Generate a new symmetric keys file containing 10
.Cm MD5
keys, and if OpenSSL is available, 10
.Cm SHA
keys.
An
.Cm MD5
key is a string of 20 random printable ASCII characters, while a
.Cm SHA
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
.It Fl p Fl \-password Ns = Ar passwd
Set the password for reading and writing encrypted files to
.Ar passwd .
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
.Ic hostname
command.
.It Fl P Fl \-pvt\-cert
Generate a new private certificate used by the
.Cm PC
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
.It Fl q Fl \-export\-passwd Ns = Ar passwd
Set the password for writing encrypted
.Cm IFF , GQ and MV
identity files redirected to
.Pa stdout
to
.Ar passwd .
In effect, these files are decrypted with the
.Fl p
password, then encrypted with the
.Fl q
password.
By default, the password is the string returned by the Unix
.Ic hostname
command.
.It Fl s Fl \-subject\-key Ns = Ar Oo host Oc Op @ Ar group
Specify the Autokey host name, where
.Ar host
is the optional host name and
.Ar group
is the optional group name.
The host name, and if provided, group name are used in
.Ar host @ group
form as certificate subject and issuer.
Specifying
.Fl s @ Ar group
is allowed, and results in leaving the host name unchanged, as with
.Fl i Ar group .
The group name, or if no group is provided, the host name are also used in the
file names of
.Cm IFF , GQ ,
and
.Cm MV
identity scheme client parameter files.
If
.Ar host
is not specified, the default host name is the string returned by the Unix
.Ic hostname
command.
.It Fl S Fl \-sign\-key Ns = Op Cm RSA | DSA
Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140\-2 is required, the sign key type must be
.Cm DSA .
.It Fl T Fl \-trusted\-cert
Generate a trusted certificate.
By default, the program generates a non\-trusted certificate.
.It Fl V Fl \-mv\-params Ar nkeys
Generate
.Ar nkeys
encrypted server keys and parameters for the Mu\-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
.Fl I
and
.Fl G
options.
Note: support for this option should be considered a work in progress.
.El
.Ss Random Seed File
All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo\-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
.Nm
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
.Pp
It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built\-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
.Pp
The entropy seed used by the OpenSSL library is contained in a file,
usually called
.Pa .rnd ,
which must be available when starting the NTP daemon
or the
.Nm
program.
The NTP daemon will first look for the file
using the path specified by the
.Cm randfile
subcommand of the
.Ic crypto
configuration command.
If not specified in this way, or when starting the
.Nm
program,
the OpenSSL library will look for the file using the path specified
by the
.Ev RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
.Ev RANDFILE
environment variable is not present,
the library will look for the
.Pa .rnd
file in the user home directory.
Since both the
.Nm
program and
.Xr ntpd 1ntpdmdoc
daemon must run as root, the logical place to put this file is in
.Pa /.rnd
or
.Pa /root/.rnd .
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
.Ss Cryptographic Data Files
All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
.Pa ntpkey_ Ns Ar key _ Ar name . Ar filestamp ,
where
.Ar key
is the key or parameter type,
.Ar name
is the host or group name and
.Ar filestamp
is the filestamp (NTP seconds) when the file was created.
By convention,
.Ar key
names in generated file names include both upper and lower case
characters, while
.Ar key
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
.Pa date
format.
Lines beginning with
.Ql #
are considered comments and ignored by the
.Nm
program and
.Xr ntpd 1ntpdmdoc
daemon.
.Pp
The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM\-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
.Pp
The format of the symmetric keys file, ordinarily named
.Pa ntp.keys ,
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
.Bd -literal -unfilled -offset center
# ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L";Nw<\`.I<f4U0)247"i # MD5 key
2 MD5 &>l0%XXK9O'51VwV<xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o}3i@@V@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6"Sh?F # MD5 key
9 MD5 3\-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
.Ed
.D1 Figure 1. Typical Symmetric Key File
.Pp
Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
.D1 Ar keyno Ar type Ar key
where
.Ar keyno
is a positive integer in the range 1\-65535;
.Ar type
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
.Cm MD5
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140\-2 is required,
the key type must be either
.Cm SHA
or
.Cm SHA1 ;
.Ar key
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
.Ql !
through
.Ql ~
\&) excluding space and the
.Ql #
character, and terminated by whitespace or a
.Ql #
character.
An OpenSSL key consists of a hex\-encoded ASCII string of 40 characters, which
is truncated as necessary.
.Pp
Note that the keys used by the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
.Pp
The
.Nm
program generates a symmetric keys file
.Pa ntpkey_MD5key_ Ns Ar hostname Ns . Ns Ar filestamp .
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
.Pa ntp.keys ,
so
.Nm
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
.Xr ntpq 1ntpqmdoc
and
.Xr ntpdc 1ntpdcmdoc
utilities.
.Sh "OPTIONS"
.Bl -tag
.It Fl b Ar imbits , Fl \-imbits Ns = Ns Ar imbits
identity modulus bits.
This option takes an integer number as its argument.
The value of
.Ar imbits
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the identity modulus. The default is 512.
.It Fl c Ar scheme , Fl \-certificate Ns = Ns Ar scheme
certificate scheme.
.sp
scheme is one of
RSA\-MD2, RSA\-MD5, RSA\-MDC2, RSA\-SHA, RSA\-SHA1, RSA\-RIPEMD160,
DSA\-SHA, or DSA\-SHA1.
.sp
Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA\-MD5.
.It Fl C Ar cipher , Fl \-cipher Ns = Ns Ar cipher
privatekey cipher.
.sp
Select the cipher which is used to encrypt the files containing
private keys. The default is three\-key triple DES in CBC mode,
equivalent to "\fB\-C des\-ede3\-cbc\fP". The openssl tool lists ciphers
available in "\fBopenssl \-h\fP" output.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl e , Fl \-id\-key
Write IFF or GQ identity keys.
.sp
Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
.It Fl G , Fl \-gq\-params
Generate GQ parameters and keys.
.sp
Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
.It Fl H , Fl \-host\-key
generate RSA host key.
.sp
Generate new host keys, obsoleting any that may exist.
.It Fl I , Fl \-iffkey
generate IFF parameters.
.sp
Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
.It Fl i Ar group , Fl \-ident Ns = Ns Ar group
set Autokey group name.
.sp
Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using \fB\-i/\-\-ident\fP or
using \fB\-s/\-\-subject\-name\fP following an '\fB@\fP' character,
is also a part of the self\-signed host certificate subject and
issuer names in the form \fBhost@group\fP and should match the
\'\fBcrypto ident\fP' or '\fBserver ident\fP' configuration in the
\fBntpd\fP configuration file.
.It Fl l Ar lifetime , Fl \-lifetime Ns = Ns Ar lifetime
set certificate lifetime.
This option takes an integer number as its argument.
.sp
Set the certificate expiration to lifetime days from now.
.It Fl m Ar modulus , Fl \-modulus Ns = Ns Ar modulus
prime modulus.
This option takes an integer number as its argument.
The value of
.Ar modulus
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the prime modulus. The default is 512.
.It Fl M , Fl \-md5key
generate symmetric keys.
.sp
Generate symmetric keys, obsoleting any that may exist.
.It Fl P , Fl \-pvt\-cert
generate PC private certificate.
.sp
Generate a private certificate. By default, the program generates
public certificates.
.It Fl p Ar passwd , Fl \-password Ns = Ns Ar passwd
local private password.
.sp
Local files containing private data are encrypted with the
DES\-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the "crypto pw password"
configuration command. The default password is the local
hostname.
.It Fl q Ar passwd , Fl \-export\-passwd Ns = Ns Ar passwd
export IFF or GQ group keys with password.
.sp
Export IFF or GQ identity group keys to the standard output,
encrypted with the DES\-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
"crypto pw password" configuration command. See also the option
-\-id\-key (\-e) for unencrypted exports.
.It Fl s Ar host@group , Fl \-subject\-name Ns = Ns Ar host@group
set host and optionally group name.
.sp
Set the Autokey host name, and optionally, group name specified
following an '\fB@\fP' character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in \fBhost@group\fP form for the host certificate subject and issuer
fields. Specifying '\fB\-s @group\fP' is allowed, and results in
leaving the host name unchanged while appending \fB@group\fP to the
subject and issuer fields, as with \fB\-i group\fP. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
.It Fl S Ar sign , Fl \-sign\-key Ns = Ns Ar sign
generate sign key (RSA or DSA).
.sp
Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
.It Fl T , Fl \-trusted\-cert
trusted certificate (TC scheme).
.sp
Generate a trusted certificate. By default, the program generates
a non\-trusted certificate.
.It Fl V Ar num , Fl \-mv\-params Ns = Ns Ar num
generate <num> MV parameters.
This option takes an integer number as its argument.
.sp
Generate parameters and keys for the Mu\-Varadharajan (MV)
identification scheme.
.It Fl v Ar num , Fl \-mv\-keys Ns = Ns Ar num
update <num> MV keys.
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTP_KEYGEN_<option\-name>\fP or \fBNTP_KEYGEN\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
It can take quite a while to generate some cryptographic values.
.Pp
Please report bugs to http://bugs.ntp.org .
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
Portions of this document came from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp\-keygen\fP
option definitions.
diff --git a/contrib/ntp/util/ntp-keygen.html b/contrib/ntp/util/ntp-keygen.html
index 53aabf6c9fb1..0d16b09b5b46 100644
--- a/contrib/ntp/util/ntp-keygen.html
+++ b/contrib/ntp/util/ntp-keygen.html
@@ -1,2053 +1,2053 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.6, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Ntp-keygen User&rsquo;s Manual</title>
<meta name="description" content="Ntp-keygen User&rsquo;s Manual">
<meta name="keywords" content="Ntp-keygen User&rsquo;s Manual">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="#Top" rel="start" title="Top">
<link href="dir.html#Top" rel="up" title="(dir)">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en">
<h1 class="settitle" align="center">Ntp-keygen User&rsquo;s Manual</h1>
<span id="SEC_Overview"></span>
<h2 class="shortcontents-heading">Short Table of Contents</h2>
<div class="shortcontents">
<ul class="no-bullet">
<li><a id="stoc-Description-1" href="#toc-Description-1">1 Description</a></li>
</ul>
</div>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Description" accesskey="1">Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Invocation" accesskey="2">ntp-keygen Invocation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Invoking ntp-keygen
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Running-the-Program" accesskey="3">Running the Program</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Random-Seed-File" accesskey="4">Random Seed File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Cryptographic-Data-Files" accesskey="5">Cryptographic Data Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<span id="Top"></span><div class="header">
<p>
Next: <a href="#Description" accesskey="n" rel="next">Description</a>, Previous: <a href="dir.html#Top" accesskey="p" rel="prev">(dir)</a>, Up: <a href="dir.html#Top" accesskey="u" rel="up">(dir)</a> &nbsp; </p>
</div>
<span id="NTP-Key-Generation-Program-User-Manual"></span><h1 class="top">NTP Key Generation Program User Manual</h1>
<p>This document describes the use of the NTP Project&rsquo;s <code>ntp-keygen</code>
program, that generates cryptographic data files used by the NTPv4
authentication and identity schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software
library has been installed, it can generate host keys, sign keys,
certificates, and identity keys and parameters used by the Autokey
public key cryptography.
The message digest keys file is generated in a
format compatible with NTPv3.
All other files are in PEM-encoded
printable ASCII format so they can be embedded as MIME attachments in
mail to other sites.
</p>
-<p>This document applies to version 4.2.8p16 of <code>ntp-keygen</code>.
+<p>This document applies to version 4.2.8p17 of <code>ntp-keygen</code>.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Description" accesskey="1">Description</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="Description"></span><div class="header">
<p>
Next: <a href="#Running-the-Program" accesskey="n" rel="next">Running the Program</a>, Previous: <a href="#Top" accesskey="p" rel="prev">Top</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Description-1"></span><h2 class="chapter">1 Description</h2>
<p>This program generates cryptographic data files used by the NTPv4
authentication and identity schemes. It can generate message digest
keys used in symmetric key cryptography and, if the OpenSSL software
library has been installed, it can generate host keys, sign keys,
certificates, and identity keys and parameters used by the Autokey
public key cryptography. The message digest keys file is generated in a
format compatible with NTPv3. All other files are in PEM-encoded
printable ASCII format so they can be embedded as MIME attachments in
mail to other sites.
</p>
<p>When used to generate message digest keys, the program produces a file
containing ten pseudo-random printable ASCII strings suitable for the
MD5 message digest algorithm included in the distribution.
If the
OpenSSL library is installed, it produces an additional ten hex-encoded
random bit strings suitable for the SHA1 and other message digest
algorithms.
The message digest keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys
used for ordinary NTP associations, additional keys can be defined as
passwords for the ntpq and ntpdc utility programs.
</p>
<p>The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys
are probably not compatible with anything other than Autokey.
</p>
<p>Some files used by this program are encrypted using a private password.
The <code>-p</code> option specifies the password for local encrypted files and the
<code>-q</code> option the password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
<code>gethostname()</code> function, normally the DNS name of the host, is used.
</p>
<p>The <kbd>pw</kbd> option of the <code>crypto</code> configuration command
specifies the read password for previously encrypted local files.
This must match the local password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without password,
they can be read back by ntpd without password, but only on the same
host.
</p>
<p>Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called <code>ntp.keys</code>, is
usually installed in <code>/etc</code>.
Other files and links are usually installed
in <code>/usr/local/etc</code>, which is normally in a shared filesystem in
NFS-mounted networks and cannot be changed by shared clients.
The location of the keys directory can be changed by the keysdir
configuration command in such cases.
Normally, this is in <code>/etc</code>.
</p>
<p>This program directs commentary and error messages to the standard
error stream <code>stderr</code> and remote files to the standard output stream
<code>stdout</code> where they can be piped to other applications or redirected to
files.
The names used for generated files and links all begin with the
string <code>ntpkey</code> and include the file type,
generating host and filestamp,
as described in the <a href="#Cryptographic-Data-Files">Cryptographic Data Files</a> section below.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#Running-the-Program" accesskey="1">Running the Program</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Invocation" accesskey="2">Invoking ntp-keygen</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Random-Seed-File" accesskey="3">Random Seed File</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#Cryptographic-Data-Files" accesskey="4">Cryptographic Data Files</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<span id="Running-the-Program"></span><div class="header">
<p>
Next: <a href="#Random-Seed-File" accesskey="n" rel="next">Random Seed File</a>, Previous: <a href="#Description" accesskey="p" rel="prev">Description</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Running-the-Program-1"></span><h3 class="section">1.1 Running the Program</h3>
<p>To test and gain experience with Autokey concepts, log in as root and
change to the keys directory, usually <code>/usr/local/etc</code>.
When run for the
first time, or if all files with names beginning <code>ntpkey</code>] have been
removed, use the <code>ntp-keygen</code> command without arguments to generate a
default RSA host key and matching RSA-MD5 certificate with expiration
date one year hence.
If run again without options, the program uses the
existing keys and parameters and generates only a new certificate with
new expiration date one year hence.
</p>
<p>Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using <code>ntp-keygen</code>
with the <code>-T</code> option and configure
it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
</p>
<p>The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt signatures.
A different sign key can be assigned using the <code>-S</code> option
and this can be either RSA or DSA type.
By default, the signature
message digest type is MD5, but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the <code>-c</code> option.
</p>
<p>The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken-and-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball-and-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re-generated.
</p>
<p>Additional information on trusted groups and identity schemes is on the
Autokey Public-Key Authentication page.
</p>
<hr>
<span id="ntp_002dkeygen-Invocation"></span><div class="header">
<p>
Next: <a href="#Random-Seed-File" accesskey="n" rel="next">Random Seed File</a>, Previous: <a href="#Running-the-Program" accesskey="p" rel="prev">Running the Program</a>, Up: <a href="#Description" accesskey="u" rel="up">Description</a> &nbsp; </p>
</div>
<span id="Invoking-ntp_002dkeygen"></span><h3 class="section">1.2 Invoking ntp-keygen</h3>
<span id="index-ntp_002dkeygen"></span>
<span id="index-Create-a-NTP-host-key"></span>
<p>This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
</p>
<p>The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
</p>
<p>When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex-encoded random bit strings suitable for SHA1, AES-128-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
utility programs.
</p>
<p>The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
</p>
<p>Some files used by this program are encrypted using a private password.
The
<code>-p</code>
option specifies the read password for local encrypted files and the
<code>-q</code>
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
<code>hostname(1)</code>
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
<code>ntp-keygen</code>
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
</p>
<p>The
<code>pw</code>
option of the
<code>crypto</code>
<code>ntpd(1ntpdmdoc)</code>
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
<code>ntpd(1ntpdmdoc)</code>
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
</p>
<p>Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
<samp>ntp.keys</samp>,
is usually installed in
<samp>/etc</samp>.
Other files and links are usually installed in
<samp>/usr/local/etc</samp>,
which is normally in a shared filesystem in
NFS-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
<samp>/etc</samp>
using the
<code>keysdir</code>
<code>ntpd(1ntpdmdoc)</code>
configuration file command.
</p>
<p>This program directs commentary and error messages to the standard
error stream
<samp>stderr</samp>
and remote files to the standard output stream
<samp>stdout</samp>
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
<samp>ntpkey*</samp>
and include the file type, generating host and filestamp,
as described in the
<a href="#Cryptographic-Data-Files">Cryptographic Data Files</a>
section below.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-usage" accesskey="1">ntp-keygen help/usage (<samp>--help</samp>)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-imbits" accesskey="2">imbits option (-b)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-certificate" accesskey="3">certificate option (-c)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-cipher" accesskey="4">cipher option (-C)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-id_002dkey" accesskey="5">id-key option (-e)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-gq_002dparams" accesskey="6">gq-params option (-G)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-host_002dkey" accesskey="7">host-key option (-H)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-iffkey" accesskey="8">iffkey option (-I)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-ident" accesskey="9">ident option (-i)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-lifetime">lifetime option (-l)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-modulus">modulus option (-m)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-md5key">md5key option (-M)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-pvt_002dcert">pvt-cert option (-P)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-password">password option (-p)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-export_002dpasswd">export-passwd option (-q)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-subject_002dname">subject-name option (-s)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-sign_002dkey">sign-key option (-S)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-trusted_002dcert">trusted-cert option (-T)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-mv_002dparams">mv-params option (-V)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-mv_002dkeys">mv-keys option (-v)</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-config">presetting/configuring ntp-keygen</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-exit-status">ntp-keygen exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Usage">ntp-keygen Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Notes">ntp-keygen Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Bugs">ntp-keygen Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">
</td></tr>
</table>
<span id="Running-the-Program-2"></span><h4 class="subsection">1.2.1 Running the Program</h4>
<p>The safest way to run the
<code>ntp-keygen</code>
program is logged in directly as root.
The recommended procedure is change to the
<kbd>keys</kbd>
directory, usually
<samp>/usr/local/etc</samp>,
then run the program.
</p>
<p>To test and gain experience with Autokey concepts, log in as root and
change to the
<kbd>keys</kbd>
directory, usually
<samp>/usr/local/etc</samp>.
When run for the first time, or if all files with names beginning with
<samp>ntpkey*</samp>
have been removed, use the
<code>ntp-keygen</code>
command without arguments to generate a default
<code>RSA</code>
host key and matching
<code>RSA-MD5</code>
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
</p>
<p>The host key is used to encrypt the cookie when required and so must be
<code>RSA</code>
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
<code>RSA</code>
or
<code>DSA</code>
type.
By default, the message digest type is
<code>MD5</code>,
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
<code>AES128CMAC</code>, <code>MD2</code>, <code>MD5</code>, <code>MDC2</code>, <code>SHA</code>, <code>SHA1</code>
and
<code>RIPE160</code>
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
<code>RSA</code>
sign keys;
however, only
<code>SHA</code>
and
<code>SHA1</code>
certificates are compatible with
<code>DSA</code>
sign keys.
</p>
<p>Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
</p>
<p>Running the program as other than root and using the Unix
<code>su(1)</code>
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
<samp>.rnd</samp>
in the user home directory.
However, there should be only one
<samp>.rnd</samp>,
most conveniently
in the root directory, so it is convenient to define the
.Ev RANDFILE
environment variable used by the OpenSSL library as the path to
<samp>.rnd</samp>.
</p>
<p>Installing the keys as root might not work in NFS-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
<samp>/etc</samp>
using the
<code>keysdir</code>
<code>ntpd(1ntpdmdoc)</code>
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
</p>
<p>Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
</p>
<p>All files are installed by default in the keys directory
<samp>/usr/local/etc</samp>,
which is normally in a shared filesystem
in NFS-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
</p>
<p>Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
<kbd>hostname</kbd>
and
<kbd>filestamp</kbd>
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
</p>
<p>The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
<code>ntpd(1ntpdmdoc)</code>
follows it to the file name to extract the
<kbd>filestamp</kbd>.
If a link is not present,
<code>ntpd(1ntpdmdoc)</code>
extracts the
<kbd>filestamp</kbd>
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
<code>ntp-keygen</code>
program uses the same
<kbd>filestamp</kbd>
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
</p>
<p>Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
<code>ntp-keygen</code>
with the
<code>-T</code>
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
</p>
<p>The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
<code>-S</code>
option and this can be either
<code>RSA</code>
or
<code>DSA</code>
type.
By default, the signature
message digest type is
<code>MD5</code>,
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
<code>-c</code>
option.
</p>
<p>The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken-and-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball-and-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re-generated.
</p>
<p>Additional information on trusted groups and identity schemes is on the
&ldquo;Autokey Public-Key Authentication&rdquo;
page.
</p>
<p>File names begin with the prefix
<samp>ntpkey</samp>_
and end with the suffix
<samp>_</samp><kbd>hostname</kbd>. <kbd>filestamp</kbd>,
where
<kbd>hostname</kbd>
is the owner name, usually the string returned
by the Unix
<code>hostname(1)</code>
command, and
<kbd>filestamp</kbd>
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
<code>rm</code> <samp>ntpkey*</samp>
command or all files generated
at a specific time can be removed by a
<code>rm</code> <samp>*</samp><kbd>filestamp</kbd>
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
</p>
<span id="Trusted-Hosts-and-Groups"></span><h4 class="subsubsection">1.2.1.1 Trusted Hosts and Groups</h4>
<p>Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
&lsquo;Authentication Options&rsquo;
section of
<code>ntp.conf(5)</code>.
The default cryptotype uses
<code>RSA</code>
encryption,
<code>MD5</code>
message digest
and
<code>TC</code>
identification.
First, configure a NTP subnet including one or more low-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
&lsquo;Automatic NTP Configuration Options&rsquo;
section of
<code>ntp.conf(5)</code>.
</p>
<p>On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
<samp>ntpkey</samp>
files.
Then run
<code>ntp-keygen</code>
<code>-T</code>
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
<code>-T</code>
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
</p>
<p>If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
<code>ntp-keygen</code>
with the
<code>-S</code> <kbd>type</kbd>
option, where
<kbd>type</kbd>
is either
<code>RSA</code>
or
<code>DSA</code>.
The most frequent need to do this is when a
<code>DSA</code>-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
<code>ntp-keygen</code>
with the
<code>-c</code> <kbd>scheme</kbd>
option and selected
<kbd>scheme</kbd>
as needed.
If
<code>ntp-keygen</code>
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
</p>
<p>After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
<code>ntp-keygen</code>
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
<code>ntpd(1ntpdmdoc)</code>
should be restarted.
When
<code>ntpd(1ntpdmdoc)</code>
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
</p>
<span id="Identity-Schemes"></span><h4 class="subsubsection">1.2.1.2 Identity Schemes</h4>
<p>As mentioned on the Autonomous Authentication page,
the default
<code>TC</code>
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
<code>PC</code>, <code>IFF</code>, <code>GQ</code>
and
<code>MV</code>
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
</p>
<p>In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
</p>
<p>The PC scheme supports only one trusted host in the group.
On trusted host alice run
<code>ntp-keygen</code>
<code>-P</code>
<code>-p</code> <kbd>password</kbd>
to generate the host key file
<samp>ntpkey</samp>_ <code>RSA</code> <samp>key_alice.</samp> <kbd>filestamp</kbd>
and trusted private certificate file
<samp>ntpkey</samp>_ <code>RSA-MD5</code> <code>_</code> <samp>cert_alice.</samp> <kbd>filestamp</kbd>,
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
<kbd>bob</kbd>
install a soft link from the generic name
<samp>ntpkey_host_</samp><kbd>bob</kbd>
to the host key file and soft link
<samp>ntpkey_cert_</samp><kbd>bob</kbd>
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
</p>
<p>For the
<code>IFF</code>
scheme proceed as in the
<code>TC</code>
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
<code>IFF</code>
parameter file.
On trusted host alice run
<code>ntp-keygen</code>
<code>-T</code>
<code>-I</code>
<code>-p</code> <kbd>password</kbd>
to produce her parameter file
<samp>ntpkey_IFFpar_alice.</samp><kbd>filestamp</kbd>,
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
<samp>ntpkey_iff_alice</samp>
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
<code>IFF</code>
scheme is independent
of keys and certificates, these files can be refreshed as needed.
</p>
<p>If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
<code>ntp-keygen</code>
<code>-e</code>
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
<samp>ntpkey_iff_alice</samp>
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
</p>
<p>For the
<code>GQ</code>
scheme proceed as in the
<code>TC</code>
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
<code>IFF</code>
parameter file.
On trusted host alice run
<code>ntp-keygen</code>
<code>-T</code>
<code>-G</code>
<code>-p</code> <kbd>password</kbd>
to produce her parameter file
<samp>ntpkey_GQpar_alice.</samp><kbd>filestamp</kbd>,
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
<samp>ntpkey_gq_alice</samp>
to this file.
In addition, on each host
<kbd>bob</kbd>
install a soft link
from generic
<samp>ntpkey_gq_</samp><kbd>bob</kbd>
to this file.
As the
<code>GQ</code>
scheme updates the
<code>GQ</code>
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
</p>
<p>For the
<code>MV</code>
scheme, proceed as in the
<code>TC</code>
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
<code>ntp-keygen</code>
<code>-V</code> <kbd>n</kbd>
<code>-p</code> <kbd>password</kbd>,
where
<kbd>n</kbd>
is the number of revokable keys (typically 5) to produce
the parameter file
<samp>ntpkeys_MVpar_trish.</samp><kbd>filestamp</kbd>
and client key files
<samp>ntpkeys_MVkey</samp><kbd>d</kbd> <kbd>_</kbd> <samp>trish.</samp> <kbd>filestamp</kbd>
where
<kbd>d</kbd>
is the key number (0 &lt;
<kbd>d</kbd>
&lt;
<kbd>n</kbd>).
Copy the parameter file to alice and install a soft link
from the generic
<samp>ntpkey_mv_alice</samp>
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
<samp>ntpkey_mvkey_bob</samp>
to the client key file.
As the
<code>MV</code>
scheme is independent of keys and certificates,
these files can be refreshed as needed.
</p>
<span id="Command-Line-Options"></span><h4 class="subsubsection">1.2.1.3 Command Line Options</h4>
<dl compact="compact">
<dt><code>-b</code> <code>--imbits</code>= <kbd>modulus</kbd></dt>
<dd><p>Set the number of bits in the identity modulus for generating identity keys to
<kbd>modulus</kbd>
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
</p></dd>
<dt><code>-c</code> <code>--certificate</code>= <kbd>scheme</kbd></dt>
<dd><p>Select certificate signature encryption/message digest scheme.
The
<kbd>scheme</kbd>
can be one of the following:
<code>RSA-MD2</code>, <code>RSA-MD5</code>, <code>RSA-MDC2</code>, <code>RSA-SHA</code>, <code>RSA-SHA1</code>, <code>RSA-RIPEMD160</code>, <code>DSA-SHA</code>,
or
<code>DSA-SHA1</code>.
Note that
<code>RSA</code>
schemes must be used with an
<code>RSA</code>
sign key and
<code>DSA</code>
schemes must be used with a
<code>DSA</code>
sign key.
The default without this option is
<code>RSA-MD5</code>.
If compatibility with FIPS 140-2 is required, either the
<code>DSA-SHA</code>
or
<code>DSA-SHA1</code>
scheme must be used.
</p></dd>
<dt><code>-C</code> <code>--cipher</code>= <kbd>cipher</kbd></dt>
<dd><p>Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three-key triple DES in CBC mode,
<code>des-ede3-cbc</code>.
The
<code>openssl</code> <code>-h</code>
command provided with OpenSSL displays available ciphers.
</p></dd>
<dt><code>-d</code> <code>--debug-level</code></dt>
<dd><p>Increase debugging verbosity level.
This option displays the cryptographic data produced in eye-friendly billboards.
</p></dd>
<dt><code>-D</code> <code>--set-debug-level</code>= <kbd>level</kbd></dt>
<dd><p>Set the debugging verbosity to
<kbd>level</kbd>.
This option displays the cryptographic data produced in eye-friendly billboards.
</p></dd>
<dt><code>-e</code> <code>--id-key</code></dt>
<dd><p>Write the
<code>IFF</code>
or
<code>GQ</code>
public parameters from the
<kbd>IFFkey</kbd> <kbd>or</kbd> <kbd>GQkey</kbd>
client keys file previously specified
as unencrypted data to the standard output stream
<samp>stdout</samp>.
This is intended for automatic key distribution by email.
</p></dd>
<dt><code>-G</code> <code>--gq-params</code></dt>
<dd><p>Generate a new encrypted
<code>GQ</code>
parameters and key file for the Guillou-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
<code>-I</code>
and
<code>-V</code>
options.
</p></dd>
<dt><code>-H</code> <code>--host-key</code></dt>
<dd><p>Generate a new encrypted
<code>RSA</code>
public/private host key file.
</p></dd>
<dt><code>-I</code> <code>--iffkey</code></dt>
<dd><p>Generate a new encrypted
<code>IFF</code>
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
<code>-G</code>
and
Fl V
options.
</p></dd>
<dt><code>-i</code> <code>--ident</code>= <kbd>group</kbd></dt>
<dd><p>Set the optional Autokey group name to
<kbd>group</kbd>.
This is used in the identity scheme parameter file names of
<code>IFF</code>, <code>GQ</code>,
and
<code>MV</code>
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
<code>-i</code>
or
<code>-s</code>
following an
&lsquo;@&rsquo;
character, is also used in certificate subject and issuer names in the form
<kbd>host</kbd> <kbd>@</kbd> <kbd>group</kbd>
and should match the group specified via
<code>crypto</code> <code>ident</code>
or
<code>server</code> <code>ident</code>
in the ntpd configuration file.
</p></dd>
<dt><code>-l</code> <code>--lifetime</code>= <kbd>days</kbd></dt>
<dd><p>Set the lifetime for certificate expiration to
<kbd>days</kbd>.
The default lifetime is one year (365 days).
</p></dd>
<dt><code>-m</code> <code>--modulus</code>= <kbd>bits</kbd></dt>
<dd><p>Set the number of bits in the prime modulus for generating files to
<kbd>bits</kbd>.
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
</p></dd>
<dt><code>-M</code> <code>--md5key</code></dt>
<dd><p>Generate a new symmetric keys file containing 10
<code>MD5</code>
keys, and if OpenSSL is available, 10
<code>SHA</code>
keys.
An
<code>MD5</code>
key is a string of 20 random printable ASCII characters, while a
<code>SHA</code>
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
</p></dd>
<dt><code>-p</code> <code>--password</code>= <kbd>passwd</kbd></dt>
<dd><p>Set the password for reading and writing encrypted files to
<kbd>passwd</kbd>.
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
<code>hostname</code>
command.
</p></dd>
<dt><code>-P</code> <code>--pvt-cert</code></dt>
<dd><p>Generate a new private certificate used by the
<code>PC</code>
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
</p></dd>
<dt><code>-q</code> <code>--export-passwd</code>= <kbd>passwd</kbd></dt>
<dd><p>Set the password for writing encrypted
<code>IFF</code>, <code>GQ</code> <code>and</code> <code>MV</code>
identity files redirected to
<samp>stdout</samp>
to
<kbd>passwd</kbd>.
In effect, these files are decrypted with the
<code>-p</code>
password, then encrypted with the
<code>-q</code>
password.
By default, the password is the string returned by the Unix
<code>hostname</code>
command.
</p></dd>
<dt><code>-s</code> <code>--subject-key</code>= <code>[host]</code> <code>[@ <kbd>group</kbd>]</code></dt>
<dd><p>Specify the Autokey host name, where
<kbd>host</kbd>
is the optional host name and
<kbd>group</kbd>
is the optional group name.
The host name, and if provided, group name are used in
<kbd>host</kbd> <kbd>@</kbd> <kbd>group</kbd>
form as certificate subject and issuer.
Specifying
<code>-s</code> <code>-@</code> <kbd>group</kbd>
is allowed, and results in leaving the host name unchanged, as with
<code>-i</code> <kbd>group</kbd>.
The group name, or if no group is provided, the host name are also used in the
file names of
<code>IFF</code>, <code>GQ</code>,
and
<code>MV</code>
identity scheme client parameter files.
If
<kbd>host</kbd>
is not specified, the default host name is the string returned by the Unix
<code>hostname</code>
command.
</p></dd>
<dt><code>-S</code> <code>--sign-key</code>= <code>[<code>RSA</code> | <code>DSA</code>]</code></dt>
<dd><p>Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140-2 is required, the sign key type must be
<code>DSA</code>.
</p></dd>
<dt><code>-T</code> <code>--trusted-cert</code></dt>
<dd><p>Generate a trusted certificate.
By default, the program generates a non-trusted certificate.
</p></dd>
<dt><code>-V</code> <code>--mv-params</code> <kbd>nkeys</kbd></dt>
<dd><p>Generate
<kbd>nkeys</kbd>
encrypted server keys and parameters for the Mu-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
<code>-I</code>
and
<code>-G</code>
options.
Note: support for this option should be considered a work in progress.
</p></dd>
</dl>
<span id="Random-Seed-File-1"></span><h4 class="subsubsection">1.2.1.4 Random Seed File</h4>
<p>All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
<code>ntp-keygen</code>
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
</p>
<p>It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
</p>
<p>The entropy seed used by the OpenSSL library is contained in a file,
usually called
<samp>.rnd</samp>,
which must be available when starting the NTP daemon
or the
<code>ntp-keygen</code>
program.
The NTP daemon will first look for the file
using the path specified by the
<code>randfile</code>
subcommand of the
<code>crypto</code>
configuration command.
If not specified in this way, or when starting the
<code>ntp-keygen</code>
program,
the OpenSSL library will look for the file using the path specified
by the
.Ev RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
.Ev RANDFILE
environment variable is not present,
the library will look for the
<samp>.rnd</samp>
file in the user home directory.
Since both the
<code>ntp-keygen</code>
program and
<code>ntpd(1ntpdmdoc)</code>
daemon must run as root, the logical place to put this file is in
<samp>/.rnd</samp>
or
<samp>/root/.rnd</samp>.
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
</p>
<span id="Cryptographic-Data-Files-1"></span><h4 class="subsubsection">1.2.1.5 Cryptographic Data Files</h4>
<p>All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
<samp>ntpkey_</samp><kbd>key</kbd> <kbd>_</kbd> <kbd>name</kbd>. <kbd>filestamp</kbd>,
where
<kbd>key</kbd>
is the key or parameter type,
<kbd>name</kbd>
is the host or group name and
<kbd>filestamp</kbd>
is the filestamp (NTP seconds) when the file was created.
By convention,
<kbd>key</kbd>
names in generated file names include both upper and lower case
characters, while
<kbd>key</kbd>
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
<samp>date</samp>
format.
Lines beginning with
&lsquo;#&rsquo;
are considered comments and ignored by the
<code>ntp-keygen</code>
program and
<code>ntpd(1ntpdmdoc)</code>
daemon.
</p>
<p>The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
</p>
<p>The format of the symmetric keys file, ordinarily named
<samp>ntp.keys</samp>,
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
</p><pre class="verbatim"># ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L&quot;;Nw&lt;\`.I&lt;f4U0)247&quot;i # MD5 key
2 MD5 &amp;&gt;l0%XXK9O'51VwV&lt;xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&amp;4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o@}3i@@@@V@@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6&quot;Sh?F # MD5 key
9 MD5 3-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
</pre><div class="example">
<pre class="example">Figure 1. Typical Symmetric Key File
</pre></div>
<p>Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
</p><div class="example">
<pre class="example"><kbd>keyno</kbd> <kbd>type</kbd> <kbd>key</kbd>
</pre></div>
<p>where
<kbd>keyno</kbd>
is a positive integer in the range 1-65535;
<kbd>type</kbd>
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
<code>MD5</code>
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140-2 is required,
the key type must be either
<code>SHA</code>
or
<code>SHA1</code>;
<kbd>key</kbd>
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
&lsquo;&rsquo;!
through
&lsquo;~&rsquo;
) excluding space and the
&lsquo;#&rsquo;
character, and terminated by whitespace or a
&lsquo;#&rsquo;
character.
An OpenSSL key consists of a hex-encoded ASCII string of 40 characters, which
is truncated as necessary.
</p>
<p>Note that the keys used by the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
</p>
<p>The
<code>ntp-keygen</code>
program generates a symmetric keys file
<samp>ntpkey_MD5key_</samp><kbd>hostname</kbd>. <kbd>filestamp</kbd>.
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
<samp>ntp.keys</samp>,
so
<code>ntp-keygen</code>
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
<code>ntpq(1ntpqmdoc)</code>
and
<code>ntpdc(1ntpdcmdoc)</code>
utilities.
</p>
<p>This section was generated by <strong>AutoGen</strong>,
using the <code>agtexi-cmd</code> template and the option descriptions for the <code>ntp-keygen</code> program.
This software is released under the NTP license, &lt;http://ntp.org/license&gt;.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-usage" accesskey="1">ntp-keygen usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ntp-keygen help/usage (<samp>--help</samp>)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-imbits" accesskey="2">ntp-keygen imbits</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">imbits option (-b)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-certificate" accesskey="3">ntp-keygen certificate</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">certificate option (-c)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-cipher" accesskey="4">ntp-keygen cipher</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">cipher option (-C)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-id_002dkey" accesskey="5">ntp-keygen id-key</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">id-key option (-e)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-gq_002dparams" accesskey="6">ntp-keygen gq-params</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">gq-params option (-G)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-host_002dkey" accesskey="7">ntp-keygen host-key</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">host-key option (-H)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-iffkey" accesskey="8">ntp-keygen iffkey</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">iffkey option (-I)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-ident" accesskey="9">ntp-keygen ident</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">ident option (-i)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-lifetime">ntp-keygen lifetime</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">lifetime option (-l)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-modulus">ntp-keygen modulus</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">modulus option (-m)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-md5key">ntp-keygen md5key</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">md5key option (-M)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-pvt_002dcert">ntp-keygen pvt-cert</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">pvt-cert option (-P)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-password">ntp-keygen password</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">password option (-p)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-export_002dpasswd">ntp-keygen export-passwd</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">export-passwd option (-q)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-subject_002dname">ntp-keygen subject-name</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">subject-name option (-s)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-sign_002dkey">ntp-keygen sign-key</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">sign-key option (-S)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-trusted_002dcert">ntp-keygen trusted-cert</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">trusted-cert option (-T)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-mv_002dparams">ntp-keygen mv-params</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">mv-params option (-V)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-mv_002dkeys">ntp-keygen mv-keys</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">mv-keys option (-v)
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-config">ntp-keygen config</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">presetting/configuring ntp-keygen
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-exit-status">ntp-keygen exit status</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">exit status
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Usage">ntp-keygen Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Usage
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Notes">ntp-keygen Notes</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Notes
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="#ntp_002dkeygen-Bugs">ntp-keygen Bugs</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Bugs
</td></tr>
</table>
<hr>
<span id="ntp_002dkeygen-usage"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-imbits" accesskey="n" rel="next">ntp-keygen imbits</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dkeygen-help_002fusage-_0028_002d_002dhelp_0029"></span><h4 class="subsection">1.2.2 ntp-keygen help/usage (<samp>--help</samp>)</h4>
<span id="index-ntp_002dkeygen-help"></span>
<p>This is the automatically generated usage text for ntp-keygen.
</p>
<p>The text printed is the same whether selected with the <code>help</code> option
(<samp>--help</samp>) or the <code>more-help</code> option (<samp>--more-help</samp>). <code>more-help</code> will print
the usage text by passing it through a pager program.
<code>more-help</code> is disabled on platforms without a working
<code>fork(2)</code> function. The <code>PAGER</code> environment variable is
used to select the program, defaulting to <samp>more</samp>. Both will exit
with a status code of 0.
</p>
<div class="example">
-<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p16
+<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p17
Usage: ntp-keygen [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
Flg Arg Option-Name Description
-b Num imbits identity modulus bits
- it must be in the range:
256 to 2048
-c Str certificate certificate scheme
-C Str cipher privatekey cipher
-d no debug-level Increase debug verbosity level
- may appear multiple times
-D Num set-debug-level Set the debug verbosity level
- may appear multiple times
-e no id-key Write IFF or GQ identity keys
-G no gq-params Generate GQ parameters and keys
-H no host-key generate RSA host key
-I no iffkey generate IFF parameters
-i Str ident set Autokey group name
-l Num lifetime set certificate lifetime
-m Num modulus prime modulus
- it must be in the range:
256 to 2048
-M no md5key generate symmetric keys
-P no pvt-cert generate PC private certificate
-p Str password local private password
-q Str export-passwd export IFF or GQ group keys with password
-s Str subject-name set host and optionally group name
-S Str sign-key generate sign key (RSA or DSA)
-T no trusted-cert trusted certificate (TC scheme)
-V Num mv-params generate &lt;num&gt; MV parameters
-v Num mv-keys update &lt;num&gt; MV keys
opt version output version information and exit
-? no help display extended usage information and exit
-! no more-help extended usage information passed thru pager
-&gt; opt save-opts save the option state to a config file
-&lt; Str load-opts load options from a config file
- disabled as '--no-load-opts'
- may appear multiple times
Options are specified by doubled hyphens and their name or by a single
hyphen and the flag character.
The following option preset mechanisms are supported:
- reading file $HOME/.ntprc
- reading file ./.ntprc
- examining environment variables named NTP_KEYGEN_*
Please send bug reports to: &lt;https://bugs.ntp.org, bugs@ntp.org&gt;
</pre></div>
<hr>
<span id="ntp_002dkeygen-imbits"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-certificate" accesskey="n" rel="next">ntp-keygen certificate</a>, Previous: <a href="#ntp_002dkeygen-usage" accesskey="p" rel="prev">ntp-keygen usage</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="imbits-option-_0028_002db_0029"></span><h4 class="subsection">1.2.3 imbits option (-b)</h4>
<span id="index-ntp_002dkeygen_002dimbits"></span>
<p>This is the &ldquo;identity modulus bits&rdquo; option.
This option takes a number argument <samp>imbits</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>The number of bits in the identity modulus. The default is 512.
</p><hr>
<span id="ntp_002dkeygen-certificate"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-cipher" accesskey="n" rel="next">ntp-keygen cipher</a>, Previous: <a href="#ntp_002dkeygen-imbits" accesskey="p" rel="prev">ntp-keygen imbits</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="certificate-option-_0028_002dc_0029"></span><h4 class="subsection">1.2.4 certificate option (-c)</h4>
<span id="index-ntp_002dkeygen_002dcertificate"></span>
<p>This is the &ldquo;certificate scheme&rdquo; option.
This option takes a string argument <samp>scheme</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>scheme is one of
RSA-MD2, RSA-MD5, RSA-MDC2, RSA-SHA, RSA-SHA1, RSA-RIPEMD160,
DSA-SHA, or DSA-SHA1.
</p>
<p>Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA-MD5.
</p><hr>
<span id="ntp_002dkeygen-cipher"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-id_002dkey" accesskey="n" rel="next">ntp-keygen id-key</a>, Previous: <a href="#ntp_002dkeygen-certificate" accesskey="p" rel="prev">ntp-keygen certificate</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="cipher-option-_0028_002dC_0029"></span><h4 class="subsection">1.2.5 cipher option (-C)</h4>
<span id="index-ntp_002dkeygen_002dcipher"></span>
<p>This is the &ldquo;privatekey cipher&rdquo; option.
This option takes a string argument <samp>cipher</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Select the cipher which is used to encrypt the files containing
private keys. The default is three-key triple DES in CBC mode,
equivalent to &quot;<code>-C des-ede3-cbc</code>&quot;. The openssl tool lists ciphers
available in &quot;<code>openssl -h</code>&quot; output.
</p><hr>
<span id="ntp_002dkeygen-id_002dkey"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-gq_002dparams" accesskey="n" rel="next">ntp-keygen gq-params</a>, Previous: <a href="#ntp_002dkeygen-cipher" accesskey="p" rel="prev">ntp-keygen cipher</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="id_002dkey-option-_0028_002de_0029"></span><h4 class="subsection">1.2.6 id-key option (-e)</h4>
<span id="index-ntp_002dkeygen_002did_002dkey"></span>
<p>This is the &ldquo;write iff or gq identity keys&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
</p><hr>
<span id="ntp_002dkeygen-gq_002dparams"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-host_002dkey" accesskey="n" rel="next">ntp-keygen host-key</a>, Previous: <a href="#ntp_002dkeygen-id_002dkey" accesskey="p" rel="prev">ntp-keygen id-key</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="gq_002dparams-option-_0028_002dG_0029"></span><h4 class="subsection">1.2.7 gq-params option (-G)</h4>
<span id="index-ntp_002dkeygen_002dgq_002dparams"></span>
<p>This is the &ldquo;generate gq parameters and keys&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
</p><hr>
<span id="ntp_002dkeygen-host_002dkey"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-iffkey" accesskey="n" rel="next">ntp-keygen iffkey</a>, Previous: <a href="#ntp_002dkeygen-gq_002dparams" accesskey="p" rel="prev">ntp-keygen gq-params</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="host_002dkey-option-_0028_002dH_0029"></span><h4 class="subsection">1.2.8 host-key option (-H)</h4>
<span id="index-ntp_002dkeygen_002dhost_002dkey"></span>
<p>This is the &ldquo;generate rsa host key&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate new host keys, obsoleting any that may exist.
</p><hr>
<span id="ntp_002dkeygen-iffkey"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-ident" accesskey="n" rel="next">ntp-keygen ident</a>, Previous: <a href="#ntp_002dkeygen-host_002dkey" accesskey="p" rel="prev">ntp-keygen host-key</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="iffkey-option-_0028_002dI_0029"></span><h4 class="subsection">1.2.9 iffkey option (-I)</h4>
<span id="index-ntp_002dkeygen_002diffkey"></span>
<p>This is the &ldquo;generate iff parameters&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
</p><hr>
<span id="ntp_002dkeygen-ident"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-lifetime" accesskey="n" rel="next">ntp-keygen lifetime</a>, Previous: <a href="#ntp_002dkeygen-iffkey" accesskey="p" rel="prev">ntp-keygen iffkey</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ident-option-_0028_002di_0029"></span><h4 class="subsection">1.2.10 ident option (-i)</h4>
<span id="index-ntp_002dkeygen_002dident"></span>
<p>This is the &ldquo;set autokey group name&rdquo; option.
This option takes a string argument <samp>group</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using <code>-i/--ident</code> or
using <code>-s/--subject-name</code> following an &rsquo;<code>@</code>&rsquo; character,
is also a part of the self-signed host certificate subject and
issuer names in the form <code>host@group</code> and should match the
&rsquo;<code>crypto ident</code>&rsquo; or &rsquo;<code>server ident</code>&rsquo; configuration in the
<code>ntpd</code> configuration file.
</p><hr>
<span id="ntp_002dkeygen-lifetime"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-modulus" accesskey="n" rel="next">ntp-keygen modulus</a>, Previous: <a href="#ntp_002dkeygen-ident" accesskey="p" rel="prev">ntp-keygen ident</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="lifetime-option-_0028_002dl_0029"></span><h4 class="subsection">1.2.11 lifetime option (-l)</h4>
<span id="index-ntp_002dkeygen_002dlifetime"></span>
<p>This is the &ldquo;set certificate lifetime&rdquo; option.
This option takes a number argument <samp>lifetime</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Set the certificate expiration to lifetime days from now.
</p><hr>
<span id="ntp_002dkeygen-modulus"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-md5key" accesskey="n" rel="next">ntp-keygen md5key</a>, Previous: <a href="#ntp_002dkeygen-lifetime" accesskey="p" rel="prev">ntp-keygen lifetime</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="modulus-option-_0028_002dm_0029"></span><h4 class="subsection">1.2.12 modulus option (-m)</h4>
<span id="index-ntp_002dkeygen_002dmodulus"></span>
<p>This is the &ldquo;prime modulus&rdquo; option.
This option takes a number argument <samp>modulus</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>The number of bits in the prime modulus. The default is 512.
</p><hr>
<span id="ntp_002dkeygen-md5key"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-pvt_002dcert" accesskey="n" rel="next">ntp-keygen pvt-cert</a>, Previous: <a href="#ntp_002dkeygen-modulus" accesskey="p" rel="prev">ntp-keygen modulus</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="md5key-option-_0028_002dM_0029"></span><h4 class="subsection">1.2.13 md5key option (-M)</h4>
<span id="index-ntp_002dkeygen_002dmd5key"></span>
<p>This is the &ldquo;generate symmetric keys&rdquo; option.
Generate symmetric keys, obsoleting any that may exist.
</p><hr>
<span id="ntp_002dkeygen-pvt_002dcert"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-password" accesskey="n" rel="next">ntp-keygen password</a>, Previous: <a href="#ntp_002dkeygen-md5key" accesskey="p" rel="prev">ntp-keygen md5key</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="pvt_002dcert-option-_0028_002dP_0029"></span><h4 class="subsection">1.2.14 pvt-cert option (-P)</h4>
<span id="index-ntp_002dkeygen_002dpvt_002dcert"></span>
<p>This is the &ldquo;generate pc private certificate&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate a private certificate. By default, the program generates
public certificates.
</p><hr>
<span id="ntp_002dkeygen-password"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-export_002dpasswd" accesskey="n" rel="next">ntp-keygen export-passwd</a>, Previous: <a href="#ntp_002dkeygen-pvt_002dcert" accesskey="p" rel="prev">ntp-keygen pvt-cert</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="password-option-_0028_002dp_0029"></span><h4 class="subsection">1.2.15 password option (-p)</h4>
<span id="index-ntp_002dkeygen_002dpassword"></span>
<p>This is the &ldquo;local private password&rdquo; option.
This option takes a string argument <samp>passwd</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Local files containing private data are encrypted with the
DES-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the &quot;crypto pw password&quot;
configuration command. The default password is the local
hostname.
</p><hr>
<span id="ntp_002dkeygen-export_002dpasswd"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-subject_002dname" accesskey="n" rel="next">ntp-keygen subject-name</a>, Previous: <a href="#ntp_002dkeygen-password" accesskey="p" rel="prev">ntp-keygen password</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="export_002dpasswd-option-_0028_002dq_0029"></span><h4 class="subsection">1.2.16 export-passwd option (-q)</h4>
<span id="index-ntp_002dkeygen_002dexport_002dpasswd"></span>
<p>This is the &ldquo;export iff or gq group keys with password&rdquo; option.
This option takes a string argument <samp>passwd</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Export IFF or GQ identity group keys to the standard output,
encrypted with the DES-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
&quot;crypto pw password&quot; configuration command. See also the option
&ndash;id-key (-e) for unencrypted exports.
</p><hr>
<span id="ntp_002dkeygen-subject_002dname"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-sign_002dkey" accesskey="n" rel="next">ntp-keygen sign-key</a>, Previous: <a href="#ntp_002dkeygen-export_002dpasswd" accesskey="p" rel="prev">ntp-keygen export-passwd</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="subject_002dname-option-_0028_002ds_0029"></span><h4 class="subsection">1.2.17 subject-name option (-s)</h4>
<span id="index-ntp_002dkeygen_002dsubject_002dname"></span>
<p>This is the &ldquo;set host and optionally group name&rdquo; option.
This option takes a string argument <samp>host@group</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Set the Autokey host name, and optionally, group name specified
following an &rsquo;<code>@</code>&rsquo; character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in <code>host@group</code> form for the host certificate subject and issuer
fields. Specifying &rsquo;<code>-s @group</code>&rsquo; is allowed, and results in
leaving the host name unchanged while appending <code>@group</code> to the
subject and issuer fields, as with <code>-i group</code>. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
</p><hr>
<span id="ntp_002dkeygen-sign_002dkey"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-trusted_002dcert" accesskey="n" rel="next">ntp-keygen trusted-cert</a>, Previous: <a href="#ntp_002dkeygen-subject_002dname" accesskey="p" rel="prev">ntp-keygen subject-name</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="sign_002dkey-option-_0028_002dS_0029"></span><h4 class="subsection">1.2.18 sign-key option (-S)</h4>
<span id="index-ntp_002dkeygen_002dsign_002dkey"></span>
<p>This is the &ldquo;generate sign key (rsa or dsa)&rdquo; option.
This option takes a string argument <samp>sign</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
</p><hr>
<span id="ntp_002dkeygen-trusted_002dcert"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-mv_002dparams" accesskey="n" rel="next">ntp-keygen mv-params</a>, Previous: <a href="#ntp_002dkeygen-sign_002dkey" accesskey="p" rel="prev">ntp-keygen sign-key</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="trusted_002dcert-option-_0028_002dT_0029"></span><h4 class="subsection">1.2.19 trusted-cert option (-T)</h4>
<span id="index-ntp_002dkeygen_002dtrusted_002dcert"></span>
<p>This is the &ldquo;trusted certificate (tc scheme)&rdquo; option.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate a trusted certificate. By default, the program generates
a non-trusted certificate.
</p><hr>
<span id="ntp_002dkeygen-mv_002dparams"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-mv_002dkeys" accesskey="n" rel="next">ntp-keygen mv-keys</a>, Previous: <a href="#ntp_002dkeygen-trusted_002dcert" accesskey="p" rel="prev">ntp-keygen trusted-cert</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="mv_002dparams-option-_0028_002dV_0029"></span><h4 class="subsection">1.2.20 mv-params option (-V)</h4>
<span id="index-ntp_002dkeygen_002dmv_002dparams"></span>
<p>This is the &ldquo;generate &lt;num&gt; mv parameters&rdquo; option.
This option takes a number argument <samp>num</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>Generate parameters and keys for the Mu-Varadharajan (MV)
identification scheme.
</p><hr>
<span id="ntp_002dkeygen-mv_002dkeys"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-config" accesskey="n" rel="next">ntp-keygen config</a>, Previous: <a href="#ntp_002dkeygen-mv_002dparams" accesskey="p" rel="prev">ntp-keygen mv-params</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="mv_002dkeys-option-_0028_002dv_0029"></span><h4 class="subsection">1.2.21 mv-keys option (-v)</h4>
<span id="index-ntp_002dkeygen_002dmv_002dkeys"></span>
<p>This is the &ldquo;update &lt;num&gt; mv keys&rdquo; option.
This option takes a number argument <samp>num</samp>.
</p>
<p>This option has some usage constraints. It:
</p><ul>
<li> must be compiled in by defining <code>AUTOKEY</code> during the compilation.
</li></ul>
<p>This option has no &lsquo;<samp>doc</samp>&rsquo; documentation.
</p>
<hr>
<span id="ntp_002dkeygen-config"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-exit-status" accesskey="n" rel="next">ntp-keygen exit status</a>, Previous: <a href="#ntp_002dkeygen-mv_002dkeys" accesskey="p" rel="prev">ntp-keygen mv-keys</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="presetting_002fconfiguring-ntp_002dkeygen"></span><h4 class="subsection">1.2.22 presetting/configuring ntp-keygen</h4>
<p>Any option that is not marked as <i>not presettable</i> may be preset by
loading values from configuration (&quot;rc&quot; or &quot;ini&quot;) files, and values from environment variables named <code>NTP-KEYGEN</code> and <code>NTP-KEYGEN_&lt;OPTION_NAME&gt;</code>. <code>&lt;OPTION_NAME&gt;</code> must be one of
the options listed above in upper case and segmented with underscores.
The <code>NTP-KEYGEN</code> variable will be tokenized and parsed like
the command line. The remaining variables are tested for existence and their
values are treated like option arguments.
</p>
<p><code>libopts</code> will search in 2 places for configuration files:
</p><ul>
<li> $HOME
</li><li> $PWD
</li></ul>
<p>The environment variables <code>HOME</code>, and <code>PWD</code>
are expanded and replaced when <samp>ntp-keygen</samp> runs.
For any of these that are plain files, they are simply processed.
For any that are directories, then a file named <samp>.ntprc</samp> is searched for
within that directory and processed.
</p>
<p>Configuration files may be in a wide variety of formats.
The basic format is an option name followed by a value (argument) on the
same line. Values may be separated from the option name with a colon,
equal sign or simply white space. Values may be continued across multiple
lines by escaping the newline with a backslash.
</p>
<p>Multiple programs may also share the same initialization file.
Common options are collected at the top, followed by program specific
segments. The segments are separated by lines like:
</p><div class="example">
<pre class="example">[NTP-KEYGEN]
</pre></div>
<p>or by
</p><div class="example">
<pre class="example">&lt;?program ntp-keygen&gt;
</pre></div>
<p>Do not mix these styles within one configuration file.
</p>
<p>Compound values and carefully constructed string values may also be
specified using XML syntax:
</p><div class="example">
<pre class="example">&lt;option-name&gt;
&lt;sub-opt&gt;...&amp;lt;...&amp;gt;...&lt;/sub-opt&gt;
&lt;/option-name&gt;
</pre></div>
<p>yielding an <code>option-name.sub-opt</code> string value of
</p><div class="example">
<pre class="example">&quot;...&lt;...&gt;...&quot;
</pre></div>
<p><code>AutoOpts</code> does not track suboptions. You simply note that it is a
hierarchicly valued option. <code>AutoOpts</code> does provide a means for searching
the associated name/value pair list (see: optionFindValue).
</p>
<p>The command line options relating to configuration and/or usage help are:
</p>
<span id="version-_0028_002d_0029"></span><h4 class="subsubheading">version (-)</h4>
<p>Print the program version to standard out, optionally with licensing
information, then exit 0. The optional argument specifies how much licensing
detail to provide. The default is to print just the version. The licensing information may be selected with an option argument.
Only the first letter of the argument is examined:
</p>
<dl compact="compact">
<dt>&lsquo;<samp>version</samp>&rsquo;</dt>
<dd><p>Only print the version. This is the default.
</p></dd>
<dt>&lsquo;<samp>copyright</samp>&rsquo;</dt>
<dd><p>Name the copyright usage licensing terms.
</p></dd>
<dt>&lsquo;<samp>verbose</samp>&rsquo;</dt>
<dd><p>Print the full copyright usage licensing terms.
</p></dd>
</dl>
<hr>
<span id="ntp_002dkeygen-exit-status"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-Usage" accesskey="n" rel="next">ntp-keygen Usage</a>, Previous: <a href="#ntp_002dkeygen-config" accesskey="p" rel="prev">ntp-keygen config</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dkeygen-exit-status-1"></span><h4 class="subsection">1.2.23 ntp-keygen exit status</h4>
<p>One of the following exit values will be returned:
</p><dl compact="compact">
<dt>&lsquo;<samp>0 (EXIT_SUCCESS)</samp>&rsquo;</dt>
<dd><p>Successful program execution.
</p></dd>
<dt>&lsquo;<samp>1 (EXIT_FAILURE)</samp>&rsquo;</dt>
<dd><p>The operation failed or the command syntax was not valid.
</p></dd>
<dt>&lsquo;<samp>66 (EX_NOINPUT)</samp>&rsquo;</dt>
<dd><p>A specified configuration file could not be loaded.
</p></dd>
<dt>&lsquo;<samp>70 (EX_SOFTWARE)</samp>&rsquo;</dt>
<dd><p>libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
</p></dd>
</dl>
<hr>
<span id="ntp_002dkeygen-Usage"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-Notes" accesskey="n" rel="next">ntp-keygen Notes</a>, Previous: <a href="#ntp_002dkeygen-exit-status" accesskey="p" rel="prev">ntp-keygen exit status</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dkeygen-Usage-1"></span><h4 class="subsection">1.2.24 ntp-keygen Usage</h4>
<hr>
<span id="ntp_002dkeygen-Notes"></span><div class="header">
<p>
Next: <a href="#ntp_002dkeygen-Bugs" accesskey="n" rel="next">ntp-keygen Bugs</a>, Previous: <a href="#ntp_002dkeygen-Usage" accesskey="p" rel="prev">ntp-keygen Usage</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dkeygen-Notes-1"></span><h4 class="subsection">1.2.25 ntp-keygen Notes</h4>
<hr>
<span id="ntp_002dkeygen-Bugs"></span><div class="header">
<p>
Previous: <a href="#ntp_002dkeygen-Notes" accesskey="p" rel="prev">ntp-keygen Notes</a>, Up: <a href="#ntp_002dkeygen-Invocation" accesskey="u" rel="up">ntp-keygen Invocation</a> &nbsp; </p>
</div>
<span id="ntp_002dkeygen-Bugs-1"></span><h4 class="subsection">1.2.26 ntp-keygen Bugs</h4>
<hr>
<span id="Random-Seed-File"></span><div class="header">
<p>
Next: <a href="#Cryptographic-Data-Files" accesskey="n" rel="next">Cryptographic Data Files</a>, Previous: <a href="#Running-the-Program" accesskey="p" rel="prev">Running the Program</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Random-Seed-File-2"></span><h3 class="section">1.3 Random Seed File</h3>
<p>All cryptographically sound key generation schemes must have means to
randomize the entropy seed used to initialize the internal
pseudo-random number generator used by the OpenSSL library routines.
If a site supports ssh, it is very likely that means to do this are
already available.
The entropy seed used by the OpenSSL library is contained in a file,
usually called <code>.rnd</code>, which must be available when
starting the <code>ntp-keygen</code> program or <code>ntpd</code> daemon.
</p>
<p>The OpenSSL library looks for the file using the path specified by the
<code>RANDFILE</code> environment variable in the user home directory, whether root
or some other user.
If the <code>RANDFILE</code> environment variable is not
present, the library looks for the <code>.rnd</code> file in the user home
directory.
Since both the <code>ntp-keygen</code> program and <code>ntpd</code> daemon must run
as root, the logical place to put this file is in <code>/.rnd</code> or
<code>/root/.rnd</code>.
If the file is not available or cannot be written, the program exits
with a message to the system log.
</p>
<hr>
<span id="Cryptographic-Data-Files"></span><div class="header">
<p>
Previous: <a href="#Random-Seed-File" accesskey="p" rel="prev">Random Seed File</a>, Up: <a href="#Top" accesskey="u" rel="up">Top</a> &nbsp; </p>
</div>
<span id="Cryptographic-Data-Files-2"></span><h3 class="section">1.4 Cryptographic Data Files</h3>
<p>File and link names are in the <code>form ntpkey_key_name.fstamp</code>,
where <code>key</code> is the key or parameter type,
<code>name</code> is the host or group name and
<code>fstamp</code> is the filestamp (NTP seconds) when the file was created).
By convention, key names in generated file names include both upper and
lower case characters, while key names in generated link names include
only lower case characters. The filestamp is not used in generated link
names.
</p>
<p>The key name is a string defining the cryptographic key type.
Key types include public/private keys host and sign, certificate cert
and several challenge/response key types.
By convention, client files used for
challenges have a par subtype, as in the IFF challenge IFFpar, while
server files for responses have a key subtype, as in the GQ response
GQkey.
</p>
<p>All files begin with two nonencrypted lines. The first line contains
the file name in the format <code>ntpkey_key_host.fstamp</code>.
The second line contains the datestamp in conventional Unix date format.
Lines beginning with <code>#</code> are ignored.
</p>
<p>The remainder of the file contains cryptographic data encoded first
using ASN.1 rules, then encrypted using the DES-CBC algorithm with
given password and finally written in PEM-encoded printable ASCII text
preceded and followed by MIME content identifier lines.
</p>
<p>The format of the symmetric keys file, ordinarily named <code>ntp.keys</code>,
is somewhat different than the other files in the interest of backward
compatibility.
Ordinarily, the file is generated by this program, but
it can be constructed and edited using an ordinary text editor.
</p>
<div class="example">
<pre class="example"># ntpkey_MD5key_hms.local.3564038757
# Sun Dec 9 02:45:57 2012
1 MD5 &quot;]!ghT%O;3)WJ,/Nc:&gt;I # MD5 key
2 MD5 lu+H^tF46BKR-6~pV_5 # MD5 key
3 MD5 :lnoVsE%Yz*avh%EtNC # MD5 key
4 MD5 |fdZrf0sF~;w-i^V # MD5 key
5 MD5 IyAG&gt;O&quot;y&quot;LmCRS!*bHC # MD5 key
6 MD5 &quot;&gt;e\A&gt;hT/661ri52,,H # MD5 key
7 MD5 c9x=M'CfLxax9v)PV-si # MD5 key
8 MD5 E|=jvFVov?Bn|Ev=&amp;aK\ # MD5 key
9 MD5 T!c4UT&amp;`(m$+m+B6,`Q0 # MD5 key
10 MD5 JVF/1=)=IFbHbJQz..Cd # MD5 key
11 SHA1 6dea311109529e436c2b4fccae9bc753c16d1b48 # SHA1 key
12 SHA1 7076f373d86c4848c59ff8046e49cb7d614ec394 # SHA1 key
13 SHA1 5f48b1b60591eb01b7cf1d33b7774f08d20262d3 # SHA1 key
14 SHA1 eed5ab9d9497319ec60cf3781d52607e76720178 # SHA1 key
15 SHA1 f283562611a04c964da8126296f5f8e58c3f85de # SHA1 key
16 SHA1 1930da171297dd63549af50b29449de17dcf341f # SHA1 key
17 SHA1 fee892110358cd4382322b889869e750db8e8a8f # SHA1 key
18 SHA1 b5520c9fadd7ad3fd8bfa061c8821b65d029bb37 # SHA1 key
19 SHA1 8c74fb440ec80f453ec6aaa62b9baed0ab723b92 # SHA1 key
20 SHA1 6bc05f734306a189326000970c19b3910f403795 # SHA1 key
</pre></div>
<p>Figure 1. Typical Symmetric Key File
</p>
<p>Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Each line of the file contains three fields, first an
integer between 1 and 65535, inclusive, representing the key identifier
used in the server and peer configuration commands.
Next is the key type for the message digest algorithm,
which in the absence of the
OpenSSL library must be MD5 to designate the MD5 message digest
algorithm.
If the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library.
However, if
compatibility with FIPS 140-2 is required, the key type must be either
SHA or SHA1.
The key type can be changed using an ASCII text editor.
</p>
<p>An MD5 key consists of a printable ASCII string less than or equal to
16 characters and terminated by whitespace or a # character.
An OpenSSL
key consists of a hex-encoded ASCII string of 40 characters, which is
truncated as necessary.
</p>
<p>Note that the keys used by the <code>ntpq</code> and <code>ntpdc</code> programs are
checked against passwords requested by the programs and entered by hand,
so it
is generally appropriate to specify these keys in human readable ASCII
format.
</p>
<p>The <code>ntp-keygen</code> program generates a MD5 symmetric keys file
<code>ntpkey_MD5key_hostname.filestamp</code>.
Since the file contains private
shared keys, it should be visible only to root and distributed by
secure means to other subnet hosts.
The NTP daemon loads the file <code>ntp.keys</code>, so <code>ntp-keygen</code>
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by
manual or automated means on the other subnet hosts.
While this file is
not used with the Autokey Version 2 protocol, it is needed to
authenticate some remote configuration commands used by the <code>ntpq</code> and
<code>ntpdc</code> utilities.
</p><hr>
</body>
</html>
diff --git a/contrib/ntp/util/ntp-keygen.man.in b/contrib/ntp/util/ntp-keygen.man.in
index 5910410ed424..1495530155b6 100644
--- a/contrib/ntp/util/ntp-keygen.man.in
+++ b/contrib/ntp/util/ntp-keygen.man.in
@@ -1,1372 +1,1372 @@
.de1 NOP
. it 1 an-trap
. if \\n[.$] \,\\$*\/
..
.ie t \
.ds B-Font [CB]
.ds I-Font [CI]
.ds R-Font [CR]
.el \
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen @NTP_KEYGEN_MS@ "31 May 2023" "ntp (4.2.8p16)" "User Commands"
+.TH ntp-keygen @NTP_KEYGEN_MS@ "06 Jun 2023" "ntp (4.2.8p17)" "User Commands"
.\"
.\" EDIT THIS FILE WITH CAUTION (in-mem file)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:44:05 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:32 AM by AutoGen 5.18.16
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
\f\*[B-Font]ntp-keygen\fP
\- Create a NTP host key
.SH SYNOPSIS
\f\*[B-Font]ntp-keygen\fP
.\" Mixture of short (flag) options and long options
[\f\*[B-Font]\-flags\f[]]
[\f\*[B-Font]\-flag\f[] [\f\*[I-Font]value\f[]]]
[\f\*[B-Font]\-\-option-name\f[][[=| ]\f\*[I-Font]value\f[]]]
.sp \n(Ppu
.ne 2
All arguments must be options.
.sp \n(Ppu
.ne 2
.SH DESCRIPTION
This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
.sp \n(Ppu
.ne 2
The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
.sp \n(Ppu
.ne 2
When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex-encoded random bit strings suitable for SHA1, AES-128-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utility programs.
.sp \n(Ppu
.ne 2
The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
.sp \n(Ppu
.ne 2
Some files used by this program are encrypted using a private password.
The
\f\*[B-Font]\-p\f[]
option specifies the read password for local encrypted files and the
\f\*[B-Font]\-q\f[]
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
\fChostname\f[]\fR(1)\f[]
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
\f\*[B-Font]ntp-keygen\fP
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]pw\f[]
option of the
\f\*[B-Font]crypto\f[]
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
.sp \n(Ppu
.ne 2
Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
\fIntp.keys\f[],
is usually installed in
\fI/etc\f[].
Other files and links are usually installed in
\fI/usr/local/etc\f[],
which is normally in a shared filesystem in
NFS-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
\fI/etc\f[]
using the
\f\*[B-Font]keysdir\f[]
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
configuration file command.
.sp \n(Ppu
.ne 2
This program directs commentary and error messages to the standard
error stream
\fIstderr\f[]
and remote files to the standard output stream
\fIstdout\f[]
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
\fIntpkey\&*\f[]
and include the file type, generating host and filestamp,
as described in the
\fICryptographic Data Files\f[]
section below.
.SS Running the Program
The safest way to run the
\f\*[B-Font]ntp-keygen\fP
program is logged in directly as root.
The recommended procedure is change to the
\f\*[I-Font]keys\f[]
directory, usually
\fI/usr/local/etc\f[],
then run the program.
.sp \n(Ppu
.ne 2
To test and gain experience with Autokey concepts, log in as root and
change to the
\f\*[I-Font]keys\f[]
directory, usually
\fI/usr/local/etc\f[].
When run for the first time, or if all files with names beginning with
\fIntpkey\&*\f[]
have been removed, use the
\f\*[B-Font]ntp-keygen\fP
command without arguments to generate a default
\f\*[B-Font]RSA\f[]
host key and matching
\f\*[B-Font]RSA-MD5\f[]
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
.sp \n(Ppu
.ne 2
The host key is used to encrypt the cookie when required and so must be
\f\*[B-Font]RSA\f[]
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[]
type.
By default, the message digest type is
\f\*[B-Font]MD5\f[],
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
\f\*[B-Font]AES128CMAC\f[], \f\*[B-Font]MD2\f[], \f\*[B-Font]MD5\f[], \f\*[B-Font]MDC2\f[], \f\*[B-Font]SHA\f[], \f\*[B-Font]SHA1\f[]
and
\f\*[B-Font]RIPE160\f[]
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
\f\*[B-Font]RSA\f[]
sign keys;
however, only
\f\*[B-Font]SHA\f[]
and
\f\*[B-Font]SHA1\f[]
certificates are compatible with
\f\*[B-Font]DSA\f[]
sign keys.
.sp \n(Ppu
.ne 2
Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
.sp \n(Ppu
.ne 2
Running the program as other than root and using the Unix
\fCsu\f[]\fR(1)\f[]
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
\fI.rnd\f[]
in the user home directory.
However, there should be only one
\fI.rnd\f[],
most conveniently
in the root directory, so it is convenient to define the
RANDFILE
environment variable used by the OpenSSL library as the path to
\fI.rnd\f[].
.sp \n(Ppu
.ne 2
Installing the keys as root might not work in NFS-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
\fI/etc\f[]
using the
\f\*[B-Font]keysdir\f[]
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
.sp \n(Ppu
.ne 2
Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
.sp \n(Ppu
.ne 2
All files are installed by default in the keys directory
\fI/usr/local/etc\f[],
which is normally in a shared filesystem
in NFS-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
.sp \n(Ppu
.ne 2
Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
\f\*[I-Font]hostname\f[]
and
\f\*[I-Font]filestamp\f[]
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
.sp \n(Ppu
.ne 2
The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
follows it to the file name to extract the
\f\*[I-Font]filestamp\f[].
If a link is not present,
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
extracts the
\f\*[I-Font]filestamp\f[]
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
\f\*[B-Font]ntp-keygen\fP
program uses the same
\f\*[I-Font]filestamp\f[]
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
.sp \n(Ppu
.ne 2
Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-T\f[]
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
.sp \n(Ppu
.ne 2
The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
\f\*[B-Font]\-S\f[]
option and this can be either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[]
type.
By default, the signature
message digest type is
\f\*[B-Font]MD5\f[],
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
\f\*[B-Font]\-c\f[]
option.
.sp \n(Ppu
.ne 2
The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken-and-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball-and-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re-generated.
.sp \n(Ppu
.ne 2
Additional information on trusted groups and identity schemes is on the
\*[Lq]Autokey Public-Key Authentication\*[Rq]
page.
.sp \n(Ppu
.ne 2
File names begin with the prefix
\fIntpkey\f[]_
and end with the suffix
\fI_\f[]\f\*[I-Font]hostname\f[]. \f\*[I-Font]filestamp\f[],
where
\f\*[I-Font]hostname\f[]
is the owner name, usually the string returned
by the Unix
\fChostname\f[]\fR(1)\f[]
command, and
\f\*[I-Font]filestamp\f[]
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
\f\*[B-Font]rm\f[] \fIntpkey\&*\f[]
command or all files generated
at a specific time can be removed by a
\f\*[B-Font]rm\f[] \fI\&*\f[]\f\*[I-Font]filestamp\f[]
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
.SS Trusted Hosts and Groups
Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
\fIAuthentication\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[].
The default cryptotype uses
\f\*[B-Font]RSA\f[]
encryption,
\f\*[B-Font]MD5\f[]
message digest
and
\f\*[B-Font]TC\f[]
identification.
First, configure a NTP subnet including one or more low-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
\fIAutomatic\f[] \fINTP\f[] \fIConfiguration\f[] \fIOptions\f[]
section of
\fCntp.conf\f[]\fR(5)\f[].
.sp \n(Ppu
.ne 2
On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
\fIntpkey\f[]
files.
Then run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
\f\*[B-Font]\-T\f[]
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
.sp \n(Ppu
.ne 2
If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-S\f[] \f\*[I-Font]type\f[]
option, where
\f\*[I-Font]type\f[]
is either
\f\*[B-Font]RSA\f[]
or
\f\*[B-Font]DSA\f[].
The most frequent need to do this is when a
\f\*[B-Font]DSA\f[]\-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
\f\*[B-Font]ntp-keygen\fP
with the
\f\*[B-Font]\-c\f[] \f\*[I-Font]scheme\f[]
option and selected
\f\*[I-Font]scheme\f[]
as needed.
If
\f\*[B-Font]ntp-keygen\fP
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
.sp \n(Ppu
.ne 2
After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
\f\*[B-Font]ntp-keygen\fP
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
should be restarted.
When
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
.SS Identity Schemes
As mentioned on the Autonomous Authentication page,
the default
\f\*[B-Font]TC\f[]
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
\f\*[B-Font]PC\f[], \f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[]
and
\f\*[B-Font]MV\f[]
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
.sp \n(Ppu
.ne 2
In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
.sp \n(Ppu
.ne 2
The PC scheme supports only one trusted host in the group.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-P\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to generate the host key file
\fIntpkey\f[]_ \f\*[B-Font]RSA\f[] \fIkey_alice.\f[] \f\*[I-Font]filestamp\f[]
and trusted private certificate file
\fIntpkey\f[]_ \f\*[B-Font]RSA-MD5\f[] \f\*[B-Font]_\f[] \fIcert_alice.\f[] \f\*[I-Font]filestamp\f[],
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
\f\*[I-Font]bob\f[]
install a soft link from the generic name
\fIntpkey_host_\f[]\f\*[I-Font]bob\f[]
to the host key file and soft link
\fIntpkey_cert_\f[]\f\*[I-Font]bob\f[]
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]IFF\f[]
scheme proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
\f\*[B-Font]IFF\f[]
parameter file.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
\f\*[B-Font]\-I\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to produce her parameter file
\fIntpkey_IFFpar_alice.\f[]\f\*[I-Font]filestamp\f[],
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
\fIntpkey_iff_alice\f[]
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
\f\*[B-Font]IFF\f[]
scheme is independent
of keys and certificates, these files can be refreshed as needed.
.sp \n(Ppu
.ne 2
If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-e\f[]
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
\fIntpkey_iff_alice\f[]
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]GQ\f[]
scheme proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
\f\*[B-Font]IFF\f[]
parameter file.
On trusted host alice run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-T\f[]
\f\*[B-Font]\-G\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[]
to produce her parameter file
\fIntpkey_GQpar_alice.\f[]\f\*[I-Font]filestamp\f[],
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
\fIntpkey_gq_alice\f[]
to this file.
In addition, on each host
\f\*[I-Font]bob\f[]
install a soft link
from generic
\fIntpkey_gq_\f[]\f\*[I-Font]bob\f[]
to this file.
As the
\f\*[B-Font]GQ\f[]
scheme updates the
\f\*[B-Font]GQ\f[]
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
.sp \n(Ppu
.ne 2
For the
\f\*[B-Font]MV\f[]
scheme, proceed as in the
\f\*[B-Font]TC\f[]
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
\f\*[B-Font]ntp-keygen\fP
\f\*[B-Font]\-V\f[] \f\*[I-Font]n\f[]
\f\*[B-Font]\-p\f[] \f\*[I-Font]password\f[],
where
\f\*[I-Font]n\f[]
is the number of revokable keys (typically 5) to produce
the parameter file
\fIntpkeys_MVpar_trish.\f[]\f\*[I-Font]filestamp\f[]
and client key files
\fIntpkeys_MVkey\f[]\f\*[I-Font]d\f[] \f\*[I-Font]_\f[] \fItrish.\f[] \f\*[I-Font]filestamp\f[]
where
\f\*[I-Font]d\f[]
is the key number (0 \&<
\f\*[I-Font]d\f[]
\&<
\f\*[I-Font]n\f[]).
Copy the parameter file to alice and install a soft link
from the generic
\fIntpkey_mv_alice\f[]
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
\fIntpkey_mvkey_bob\f[]
to the client key file.
As the
\f\*[B-Font]MV\f[]
scheme is independent of keys and certificates,
these files can be refreshed as needed.
.SS Command Line Options
.TP 7
.NOP \f\*[B-Font]\-b\f[] \f\*[B-Font]\-\-imbits\f[]= \f\*[I-Font]modulus\f[]
Set the number of bits in the identity modulus for generating identity keys to
\f\*[I-Font]modulus\f[]
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.TP 7
.NOP \f\*[B-Font]\-c\f[] \f\*[B-Font]\-\-certificate\f[]= \f\*[I-Font]scheme\f[]
Select certificate signature encryption/message digest scheme.
The
\f\*[I-Font]scheme\f[]
can be one of the following:
\f\*[B-Font]RSA-MD2\f[], \f\*[B-Font]RSA-MD5\f[], \f\*[B-Font]RSA-MDC2\f[], \f\*[B-Font]RSA-SHA\f[], \f\*[B-Font]RSA-SHA1\f[], \f\*[B-Font]RSA-RIPEMD160\f[], \f\*[B-Font]DSA-SHA\f[],
or
\f\*[B-Font]DSA-SHA1\f[].
Note that
\f\*[B-Font]RSA\f[]
schemes must be used with an
\f\*[B-Font]RSA\f[]
sign key and
\f\*[B-Font]DSA\f[]
schemes must be used with a
\f\*[B-Font]DSA\f[]
sign key.
The default without this option is
\f\*[B-Font]RSA-MD5\f[].
If compatibility with FIPS 140-2 is required, either the
\f\*[B-Font]DSA-SHA\f[]
or
\f\*[B-Font]DSA-SHA1\f[]
scheme must be used.
.TP 7
.NOP \f\*[B-Font]\-C\f[] \f\*[B-Font]\-\-cipher\f[]= \f\*[I-Font]cipher\f[]
Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three-key triple DES in CBC mode,
\f\*[B-Font]des-ede3-cbc\f[].
The
\f\*[B-Font]openssl\f[] \f\*[B-Font]\-h\f[]
command provided with OpenSSL displays available ciphers.
.TP 7
.NOP \f\*[B-Font]\-d\f[] \f\*[B-Font]\-\-debug-level\f[]
Increase debugging verbosity level.
This option displays the cryptographic data produced in eye-friendly billboards.
.TP 7
.NOP \f\*[B-Font]\-D\f[] \f\*[B-Font]\-\-set-debug-level\f[]= \f\*[I-Font]level\f[]
Set the debugging verbosity to
\f\*[I-Font]level\f[].
This option displays the cryptographic data produced in eye-friendly billboards.
.TP 7
.NOP \f\*[B-Font]\-e\f[] \f\*[B-Font]\-\-id-key\f[]
Write the
\f\*[B-Font]IFF\f[]
or
\f\*[B-Font]GQ\f[]
public parameters from the
\f\*[I-Font]IFFkey\f[] \f\*[I-Font]or\f[] \f\*[I-Font]GQkey\f[]
client keys file previously specified
as unencrypted data to the standard output stream
\fIstdout\f[].
This is intended for automatic key distribution by email.
.TP 7
.NOP \f\*[B-Font]\-G\f[] \f\*[B-Font]\-\-gq-params\f[]
Generate a new encrypted
\f\*[B-Font]GQ\f[]
parameters and key file for the Guillou-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-I\f[]
and
\f\*[B-Font]\-V\f[]
options.
.TP 7
.NOP \f\*[B-Font]\-H\f[] \f\*[B-Font]\-\-host-key\f[]
Generate a new encrypted
\f\*[B-Font]RSA\f[]
public/private host key file.
.TP 7
.NOP \f\*[B-Font]\-I\f[] \f\*[B-Font]\-\-iffkey\f[]
Generate a new encrypted
\f\*[B-Font]IFF\f[]
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-G\f[]
and
Fl V
options.
.TP 7
.NOP \f\*[B-Font]\-i\f[] \f\*[B-Font]\-\-ident\f[]= \f\*[I-Font]group\f[]
Set the optional Autokey group name to
\f\*[I-Font]group\f[].
This is used in the identity scheme parameter file names of
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[],
and
\f\*[B-Font]MV\f[]
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
\f\*[B-Font]\-i\f[]
or
\f\*[B-Font]\-s\f[]
following an
\[oq]@@\[cq]
character, is also used in certificate subject and issuer names in the form
\f\*[I-Font]host\f[] \f\*[I-Font]@@\f[] \f\*[I-Font]group\f[]
and should match the group specified via
\f\*[B-Font]crypto\f[] \f\*[B-Font]ident\f[]
or
\f\*[B-Font]server\f[] \f\*[B-Font]ident\f[]
in the ntpd configuration file.
.TP 7
.NOP \f\*[B-Font]\-l\f[] \f\*[B-Font]\-\-lifetime\f[]= \f\*[I-Font]days\f[]
Set the lifetime for certificate expiration to
\f\*[I-Font]days\f[].
The default lifetime is one year (365 days).
.TP 7
.NOP \f\*[B-Font]\-m\f[] \f\*[B-Font]\-\-modulus\f[]= \f\*[I-Font]bits\f[]
Set the number of bits in the prime modulus for generating files to
\f\*[I-Font]bits\f[].
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.TP 7
.NOP \f\*[B-Font]\-M\f[] \f\*[B-Font]\-\-md5key\f[]
Generate a new symmetric keys file containing 10
\f\*[B-Font]MD5\f[]
keys, and if OpenSSL is available, 10
\f\*[B-Font]SHA\f[]
keys.
An
\f\*[B-Font]MD5\f[]
key is a string of 20 random printable ASCII characters, while a
\f\*[B-Font]SHA\f[]
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
.TP 7
.NOP \f\*[B-Font]\-p\f[] \f\*[B-Font]\-\-password\f[]= \f\*[I-Font]passwd\f[]
Set the password for reading and writing encrypted files to
\f\*[I-Font]passwd\f[].
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-P\f[] \f\*[B-Font]\-\-pvt-cert\f[]
Generate a new private certificate used by the
\f\*[B-Font]PC\f[]
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
.TP 7
.NOP \f\*[B-Font]\-q\f[] \f\*[B-Font]\-\-export-passwd\f[]= \f\*[I-Font]passwd\f[]
Set the password for writing encrypted
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[] \f\*[B-Font]and\f[] \f\*[B-Font]MV\f[]
identity files redirected to
\fIstdout\f[]
to
\f\*[I-Font]passwd\f[].
In effect, these files are decrypted with the
\f\*[B-Font]\-p\f[]
password, then encrypted with the
\f\*[B-Font]\-q\f[]
password.
By default, the password is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-s\f[] \f\*[B-Font]\-\-subject-key\f[]= [host] [@@ \f\*[I-Font]group\f[]]
Specify the Autokey host name, where
\f\*[I-Font]host\f[]
is the optional host name and
\f\*[I-Font]group\f[]
is the optional group name.
The host name, and if provided, group name are used in
\f\*[I-Font]host\f[] \f\*[I-Font]@@\f[] \f\*[I-Font]group\f[]
form as certificate subject and issuer.
Specifying
\f\*[B-Font]\-s\f[] \f\*[B-Font]\-@@\f[] \f\*[I-Font]group\f[]
is allowed, and results in leaving the host name unchanged, as with
\f\*[B-Font]\-i\f[] \f\*[I-Font]group\f[].
The group name, or if no group is provided, the host name are also used in the
file names of
\f\*[B-Font]IFF\f[], \f\*[B-Font]GQ\f[],
and
\f\*[B-Font]MV\f[]
identity scheme client parameter files.
If
\f\*[I-Font]host\f[]
is not specified, the default host name is the string returned by the Unix
\f\*[B-Font]hostname\f[]
command.
.TP 7
.NOP \f\*[B-Font]\-S\f[] \f\*[B-Font]\-\-sign-key\f[]= [\f\*[B-Font]RSA\f[] | \f\*[B-Font]DSA\f[]]
Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140-2 is required, the sign key type must be
\f\*[B-Font]DSA\f[].
.TP 7
.NOP \f\*[B-Font]\-T\f[] \f\*[B-Font]\-\-trusted-cert\f[]
Generate a trusted certificate.
By default, the program generates a non-trusted certificate.
.TP 7
.NOP \f\*[B-Font]\-V\f[] \f\*[B-Font]\-\-mv-params\f[] \f\*[I-Font]nkeys\f[]
Generate
\f\*[I-Font]nkeys\f[]
encrypted server keys and parameters for the Mu-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
\f\*[B-Font]\-I\f[]
and
\f\*[B-Font]\-G\f[]
options.
Note: support for this option should be considered a work in progress.
.PP
.SS Random Seed File
All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
\f\*[B-Font]ntp-keygen\fP
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
.sp \n(Ppu
.ne 2
It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
.sp \n(Ppu
.ne 2
The entropy seed used by the OpenSSL library is contained in a file,
usually called
\fI.rnd\f[],
which must be available when starting the NTP daemon
or the
\f\*[B-Font]ntp-keygen\fP
program.
The NTP daemon will first look for the file
using the path specified by the
\f\*[B-Font]randfile\f[]
subcommand of the
\f\*[B-Font]crypto\f[]
configuration command.
If not specified in this way, or when starting the
\f\*[B-Font]ntp-keygen\fP
program,
the OpenSSL library will look for the file using the path specified
by the
RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
RANDFILE
environment variable is not present,
the library will look for the
\fI.rnd\f[]
file in the user home directory.
Since both the
\f\*[B-Font]ntp-keygen\fP
program and
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon must run as root, the logical place to put this file is in
\fI/.rnd\f[]
or
\fI/root/.rnd\f[].
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
.SS Cryptographic Data Files
All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
\fIntpkey_\f[]\f\*[I-Font]key\f[] \f\*[I-Font]_\f[] \f\*[I-Font]name\f[]. \f\*[I-Font]filestamp\f[],
where
\f\*[I-Font]key\f[]
is the key or parameter type,
\f\*[I-Font]name\f[]
is the host or group name and
\f\*[I-Font]filestamp\f[]
is the filestamp (NTP seconds) when the file was created.
By convention,
\f\*[I-Font]key\f[]
names in generated file names include both upper and lower case
characters, while
\f\*[I-Font]key\f[]
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
\fIdate\f[]
format.
Lines beginning with
\[oq]#\[cq]
are considered comments and ignored by the
\f\*[B-Font]ntp-keygen\fP
program and
\fCntpd\f[]\fR(@NTPD_MS@)\f[]
daemon.
.sp \n(Ppu
.ne 2
The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
.sp \n(Ppu
.ne 2
The format of the symmetric keys file, ordinarily named
\fIntp.keys\f[],
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
.br
.in +4
.nf
# ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L";Nw<\`.I<f4U0)247"i # MD5 key
2 MD5 &>l0%XXK9O'51VwV<xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o}3i@@@@V@@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6"Sh?F # MD5 key
9 MD5 3-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
.in -4
.fi
.in +4
Figure 1. Typical Symmetric Key File
.in -4
.sp \n(Ppu
.ne 2
Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
.in +4
\f\*[I-Font]keyno\f[] \f\*[I-Font]type\f[] \f\*[I-Font]key\f[]
.in -4
where
\f\*[I-Font]keyno\f[]
is a positive integer in the range 1-65535;
\f\*[I-Font]type\f[]
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
\f\*[B-Font]MD5\f[]
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140-2 is required,
the key type must be either
\f\*[B-Font]SHA\f[]
or
\f\*[B-Font]SHA1\f[];
\f\*[I-Font]key\f[]
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
\[oq]\[cq]!
through
\[oq]~\[cq]
\&) excluding space and the
\[oq]#\[cq]
character, and terminated by whitespace or a
\[oq]#\[cq]
character.
An OpenSSL key consists of a hex-encoded ASCII string of 40 characters, which
is truncated as necessary.
.sp \n(Ppu
.ne 2
Note that the keys used by the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
.sp \n(Ppu
.ne 2
The
\f\*[B-Font]ntp-keygen\fP
program generates a symmetric keys file
\fIntpkey_MD5key_\f[]\f\*[I-Font]hostname\f[]. \f\*[I-Font]filestamp\f[].
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
\fIntp.keys\f[],
so
\f\*[B-Font]ntp-keygen\fP
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
\fCntpq\f[]\fR(@NTPQ_MS@)\f[]
and
\fCntpdc\f[]\fR(@NTPDC_MS@)\f[]
utilities.
.SH "OPTIONS"
.TP
.NOP \f\*[B-Font]\-b\f[] \f\*[I-Font]imbits\f[], \f\*[B-Font]\-\-imbits\f[]=\f\*[I-Font]imbits\f[]
identity modulus bits.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]imbits\f[]
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the identity modulus. The default is 512.
.TP
.NOP \f\*[B-Font]\-c\f[] \f\*[I-Font]scheme\f[], \f\*[B-Font]\-\-certificate\f[]=\f\*[I-Font]scheme\f[]
certificate scheme.
.sp
scheme is one of
RSA-MD2, RSA-MD5, RSA-MDC2, RSA-SHA, RSA-SHA1, RSA-RIPEMD160,
DSA-SHA, or DSA-SHA1.
.sp
Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA-MD5.
.TP
.NOP \f\*[B-Font]\-C\f[] \f\*[I-Font]cipher\f[], \f\*[B-Font]\-\-cipher\f[]=\f\*[I-Font]cipher\f[]
privatekey cipher.
.sp
Select the cipher which is used to encrypt the files containing
private keys. The default is three-key triple DES in CBC mode,
equivalent to "\fB-C des-ede3-cbc\fP". The openssl tool lists ciphers
available in "\fBopenssl \-h\fP" output.
.TP
.NOP \f\*[B-Font]\-d\f[], \f\*[B-Font]\-\-debug\-level\f[]
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.TP
.NOP \f\*[B-Font]\-D\f[] \f\*[I-Font]number\f[], \f\*[B-Font]\-\-set\-debug\-level\f[]=\f\*[I-Font]number\f[]
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.TP
.NOP \f\*[B-Font]\-e\f[], \f\*[B-Font]\-\-id\-key\f[]
Write IFF or GQ identity keys.
.sp
Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
.TP
.NOP \f\*[B-Font]\-G\f[], \f\*[B-Font]\-\-gq\-params\f[]
Generate GQ parameters and keys.
.sp
Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-H\f[], \f\*[B-Font]\-\-host\-key\f[]
generate RSA host key.
.sp
Generate new host keys, obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-I\f[], \f\*[B-Font]\-\-iffkey\f[]
generate IFF parameters.
.sp
Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
.TP
.NOP \f\*[B-Font]\-i\f[] \f\*[I-Font]group\f[], \f\*[B-Font]\-\-ident\f[]=\f\*[I-Font]group\f[]
set Autokey group name.
.sp
Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using \fB-i/--ident\fP or
using \fB-s/--subject-name\fP following an '\fB@@\fP' character,
is also a part of the self-signed host certificate subject and
issuer names in the form \fBhost@@group\fP and should match the
'\fBcrypto ident\fP' or '\fBserver ident\fP' configuration in the
\fBntpd\fP configuration file.
.TP
.NOP \f\*[B-Font]\-l\f[] \f\*[I-Font]lifetime\f[], \f\*[B-Font]\-\-lifetime\f[]=\f\*[I-Font]lifetime\f[]
set certificate lifetime.
This option takes an integer number as its argument.
.sp
Set the certificate expiration to lifetime days from now.
.TP
.NOP \f\*[B-Font]\-m\f[] \f\*[I-Font]modulus\f[], \f\*[B-Font]\-\-modulus\f[]=\f\*[I-Font]modulus\f[]
prime modulus.
This option takes an integer number as its argument.
The value of
\f\*[I-Font]modulus\f[]
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the prime modulus. The default is 512.
.TP
.NOP \f\*[B-Font]\-M\f[], \f\*[B-Font]\-\-md5key\f[]
generate symmetric keys.
.sp
Generate symmetric keys, obsoleting any that may exist.
.TP
.NOP \f\*[B-Font]\-P\f[], \f\*[B-Font]\-\-pvt\-cert\f[]
generate PC private certificate.
.sp
Generate a private certificate. By default, the program generates
public certificates.
.TP
.NOP \f\*[B-Font]\-p\f[] \f\*[I-Font]passwd\f[], \f\*[B-Font]\-\-password\f[]=\f\*[I-Font]passwd\f[]
local private password.
.sp
Local files containing private data are encrypted with the
DES-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the "crypto pw password"
configuration command. The default password is the local
hostname.
.TP
.NOP \f\*[B-Font]\-q\f[] \f\*[I-Font]passwd\f[], \f\*[B-Font]\-\-export\-passwd\f[]=\f\*[I-Font]passwd\f[]
export IFF or GQ group keys with password.
.sp
Export IFF or GQ identity group keys to the standard output,
encrypted with the DES-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
"crypto pw password" configuration command. See also the option
--id-key (-e) for unencrypted exports.
.TP
.NOP \f\*[B-Font]\-s\f[] \f\*[I-Font]host@group\f[], \f\*[B-Font]\-\-subject\-name\f[]=\f\*[I-Font]host@group\f[]
set host and optionally group name.
.sp
Set the Autokey host name, and optionally, group name specified
following an '\fB@@\fP' character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in \fBhost@@group\fP form for the host certificate subject and issuer
fields. Specifying '\fB-s @@group\fP' is allowed, and results in
leaving the host name unchanged while appending \fB@@group\fP to the
subject and issuer fields, as with \fB-i group\fP. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
.TP
.NOP \f\*[B-Font]\-S\f[] \f\*[I-Font]sign\f[], \f\*[B-Font]\-\-sign\-key\f[]=\f\*[I-Font]sign\f[]
generate sign key (RSA or DSA).
.sp
Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
.TP
.NOP \f\*[B-Font]\-T\f[], \f\*[B-Font]\-\-trusted\-cert\f[]
trusted certificate (TC scheme).
.sp
Generate a trusted certificate. By default, the program generates
a non-trusted certificate.
.TP
.NOP \f\*[B-Font]\-V\f[] \f\*[I-Font]num\f[], \f\*[B-Font]\-\-mv\-params\f[]=\f\*[I-Font]num\f[]
generate <num> MV parameters.
This option takes an integer number as its argument.
.sp
Generate parameters and keys for the Mu-Varadharajan (MV)
identification scheme.
.TP
.NOP \f\*[B-Font]\-v\f[] \f\*[I-Font]num\f[], \f\*[B-Font]\-\-mv\-keys\f[]=\f\*[I-Font]num\f[]
update <num> MV keys.
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.TP
.NOP \f\*[B-Font]\-\&?\f[], \f\*[B-Font]\-\-help\f[]
Display usage information and exit.
.TP
.NOP \f\*[B-Font]\-\&!\f[], \f\*[B-Font]\-\-more-help\f[]
Pass the extended usage information through a pager.
.TP
.NOP \f\*[B-Font]\->\f[] [\f\*[I-Font]cfgfile\f[]], \f\*[B-Font]\-\-save-opts\f[] [=\f\*[I-Font]cfgfile\f[]]
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.TP
.NOP \f\*[B-Font]\-<\f[] \f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-load-opts\f[]=\f\*[I-Font]cfgfile\f[], \f\*[B-Font]\-\-no-load-opts\f[]
Load options from \fIcfgfile\fP.
The \fIno-load-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no-load-opts\fP is handled early,
out of order.
.TP
.NOP \f\*[B-Font]\-\-version\f[] [{\f\*[I-Font]v|c|n\f[]}]
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.PP
.SH "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTP_KEYGEN_<option-name>\fP or \fBNTP_KEYGEN\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.SH USAGE
.SH "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.SH "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.SH "EXIT STATUS"
One of the following exit values will be returned:
.TP
.NOP 0 " (EXIT_SUCCESS)"
Successful program execution.
.TP
.NOP 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.TP
.NOP 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.TP
.NOP 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
Copyright (C) 1992-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.SH BUGS
It can take quite a while to generate some cryptographic values.
.sp \n(Ppu
.ne 2
Please report bugs to http://bugs.ntp.org .
.sp \n(Ppu
.ne 2
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.SH NOTES
Portions of this document came from FreeBSD.
.sp \n(Ppu
.ne 2
This manual page was \fIAutoGen\fP-erated from the \fBntp-keygen\fP
option definitions.
diff --git a/contrib/ntp/util/ntp-keygen.mdoc.in b/contrib/ntp/util/ntp-keygen.mdoc.in
index 22a2e86f026b..44b1954cc648 100644
--- a/contrib/ntp/util/ntp-keygen.mdoc.in
+++ b/contrib/ntp/util/ntp-keygen.mdoc.in
@@ -1,1223 +1,1223 @@
-.Dd May 31 2023
+.Dd June 6 2023
.Dt NTP_KEYGEN @NTP_KEYGEN_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed May 31, 2023 at 07:44:01 PM by AutoGen 5.18.16
+.\" It has been AutoGen-ed June 6, 2023 at 04:38:27 AM by AutoGen 5.18.16
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
.Nm ntp-keygen
.Nd Create a NTP host key
.Sh SYNOPSIS
.Nm
.\" Mixture of short (flag) options and long options
.Op Fl flags
.Op Fl flag Op Ar value
.Op Fl \-option\-name Ns Oo Oo Ns "=| " Oc Ns Ar value Oc
.Pp
All arguments must be options.
.Pp
.Sh DESCRIPTION
This program generates cryptographic data files used by the NTPv4
authentication and identification schemes.
It can generate message digest keys used in symmetric key cryptography and,
if the OpenSSL software library has been installed, it can generate host keys,
signing keys, certificates, and identity keys and parameters used in Autokey
public key cryptography.
These files are used for cookie encryption,
digital signature, and challenge/response identification algorithms
compatible with the Internet standard security infrastructure.
.Pp
The message digest symmetric keys file is generated in a format
compatible with NTPv3.
All other files are in PEM\-encoded printable ASCII format,
so they can be embedded as MIME attachments in email to other sites
and certificate authorities.
By default, files are not encrypted.
.Pp
When used to generate message digest symmetric keys, the program
produces a file containing ten pseudo\-random printable ASCII strings
suitable for the MD5 message digest algorithm included in the
distribution.
If the OpenSSL library is installed, it produces an additional ten
hex\-encoded random bit strings suitable for SHA1, AES\-128\-CMAC, and
other message digest algorithms.
The message digest symmetric keys file must be distributed and stored
using secure means beyond the scope of NTP itself.
Besides the keys used for ordinary NTP associations, additional keys
can be defined as passwords for the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
utility programs.
.Pp
The remaining generated files are compatible with other OpenSSL
applications and other Public Key Infrastructure (PKI) resources.
Certificates generated by this program are compatible with extant
industry practice, although some users might find the interpretation of
X509v3 extension fields somewhat liberal.
However, the identity keys are probably not compatible with anything
other than Autokey.
.Pp
Some files used by this program are encrypted using a private password.
The
.Fl p
option specifies the read password for local encrypted files and the
.Fl q
option the write password for encrypted files sent to remote sites.
If no password is specified, the host name returned by the Unix
.Xr hostname 1
command, normally the DNS name of the host, is used as the the default read
password, for convenience.
The
.Nm
program prompts for the password if it reads an encrypted file
and the password is missing or incorrect.
If an encrypted file is read successfully and
no write password is specified, the read password is used
as the write password by default.
.Pp
The
.Cm pw
option of the
.Ic crypto
.Xr ntpd @NTPD_MS@
configuration command specifies the read
password for previously encrypted local files.
This must match the local read password used by this program.
If not specified, the host name is used.
Thus, if files are generated by this program without an explicit password,
they can be read back by
.Xr ntpd @NTPD_MS@
without specifying an explicit password but only on the same host.
If the write password used for encryption is specified as the host name,
these files can be read by that host with no explicit password.
.Pp
Normally, encrypted files for each host are generated by that host and
used only by that host, although exceptions exist as noted later on
this page.
The symmetric keys file, normally called
.Pa ntp.keys ,
is usually installed in
.Pa /etc .
Other files and links are usually installed in
.Pa /usr/local/etc ,
which is normally in a shared filesystem in
NFS\-mounted networks and cannot be changed by shared clients.
In these cases, NFS clients can specify the files in another
directory such as
.Pa /etc
using the
.Ic keysdir
.Xr ntpd @NTPD_MS@
configuration file command.
.Pp
This program directs commentary and error messages to the standard
error stream
.Pa stderr
and remote files to the standard output stream
.Pa stdout
where they can be piped to other applications or redirected to files.
The names used for generated files and links all begin with the
string
.Pa ntpkey\&*
and include the file type, generating host and filestamp,
as described in the
.Sx "Cryptographic Data Files"
section below.
.Ss Running the Program
The safest way to run the
.Nm
program is logged in directly as root.
The recommended procedure is change to the
.Ar keys
directory, usually
.Pa /usr/local/etc ,
then run the program.
.Pp
To test and gain experience with Autokey concepts, log in as root and
change to the
.Ar keys
directory, usually
.Pa /usr/local/etc .
When run for the first time, or if all files with names beginning with
.Pa ntpkey\&*
have been removed, use the
.Nm
command without arguments to generate a default
.Cm RSA
host key and matching
.Cm RSA\-MD5
certificate file with expiration date one year hence,
which is all that is necessary in many cases.
The program also generates soft links from the generic names
to the respective files.
If run again without options, the program uses the
existing keys and parameters and generates a new certificate file with
new expiration date one year hence, and soft link.
.Pp
The host key is used to encrypt the cookie when required and so must be
.Cm RSA
type.
By default, the host key is also the sign key used to encrypt signatures.
When necessary, a different sign key can be specified and this can be
either
.Cm RSA
or
.Cm DSA
type.
By default, the message digest type is
.Cm MD5 ,
but any combination
of sign key type and message digest type supported by the OpenSSL library
can be specified, including those using the
.Cm AES128CMAC , MD2 , MD5 , MDC2 , SHA , SHA1
and
.Cm RIPE160
message digest algorithms.
However, the scheme specified in the certificate must be compatible
with the sign key.
Certificates using any digest algorithm are compatible with
.Cm RSA
sign keys;
however, only
.Cm SHA
and
.Cm SHA1
certificates are compatible with
.Cm DSA
sign keys.
.Pp
Private/public key files and certificates are compatible with
other OpenSSL applications and very likely other libraries as well.
Certificates or certificate requests derived from them should be compatible
with extant industry practice, although some users might find
the interpretation of X509v3 extension fields somewhat liberal.
However, the identification parameter files, although encoded
as the other files, are probably not compatible with anything other than Autokey.
.Pp
Running the program as other than root and using the Unix
.Xr su 1
command
to assume root may not work properly, since by default the OpenSSL library
looks for the random seed file
.Pa .rnd
in the user home directory.
However, there should be only one
.Pa .rnd ,
most conveniently
in the root directory, so it is convenient to define the
.Ev RANDFILE
environment variable used by the OpenSSL library as the path to
.Pa .rnd .
.Pp
Installing the keys as root might not work in NFS\-mounted
shared file systems, as NFS clients may not be able to write
to the shared keys directory, even as root.
In this case, NFS clients can specify the files in another
directory such as
.Pa /etc
using the
.Ic keysdir
.Xr ntpd @NTPD_MS@
configuration file command.
There is no need for one client to read the keys and certificates
of other clients or servers, as these data are obtained automatically
by the Autokey protocol.
.Pp
Ordinarily, cryptographic files are generated by the host that uses them,
but it is possible for a trusted agent (TA) to generate these files
for other hosts; however, in such cases files should always be encrypted.
The subject name and trusted name default to the hostname
of the host generating the files, but can be changed by command line options.
It is convenient to designate the owner name and trusted name
as the subject and issuer fields, respectively, of the certificate.
The owner name is also used for the host and sign key files,
while the trusted name is used for the identity files.
.Pp
All files are installed by default in the keys directory
.Pa /usr/local/etc ,
which is normally in a shared filesystem
in NFS\-mounted networks.
The actual location of the keys directory
and each file can be overridden by configuration commands,
but this is not recommended.
Normally, the files for each host are generated by that host
and used only by that host, although exceptions exist
as noted later on this page.
.Pp
Normally, files containing private values,
including the host key, sign key and identification parameters,
are permitted root read/write\-only;
while others containing public values are permitted world readable.
Alternatively, files containing private values can be encrypted
and these files permitted world readable,
which simplifies maintenance in shared file systems.
Since uniqueness is insured by the
.Ar hostname
and
.Ar filestamp
file name extensions, the files for an NTP server and
dependent clients can all be installed in the same shared directory.
.Pp
The recommended practice is to keep the file name extensions
when installing a file and to install a soft link
from the generic names specified elsewhere on this page
to the generated files.
This allows new file generations to be activated simply
by changing the link.
If a link is present,
.Xr ntpd @NTPD_MS@
follows it to the file name to extract the
.Ar filestamp .
If a link is not present,
.Xr ntpd @NTPD_MS@
extracts the
.Ar filestamp
from the file itself.
This allows clients to verify that the file and generation times
are always current.
The
.Nm
program uses the same
.Ar filestamp
extension for all files generated
at one time, so each generation is distinct and can be readily
recognized in monitoring data.
.Pp
Run the command on as many hosts as necessary.
Designate one of them as the trusted host (TH) using
.Nm
with the
.Fl T
option and configure it to synchronize from reliable Internet servers.
Then configure the other hosts to synchronize to the TH directly or
indirectly.
A certificate trail is created when Autokey asks the immediately
ascendant host towards the TH to sign its certificate, which is then
provided to the immediately descendant host on request.
All group hosts should have acyclic certificate trails ending on the TH.
.Pp
The host key is used to encrypt the cookie when required and so must be
RSA type.
By default, the host key is also the sign key used to encrypt
signatures.
A different sign key can be assigned using the
.Fl S
option and this can be either
.Cm RSA
or
.Cm DSA
type.
By default, the signature
message digest type is
.Cm MD5 ,
but any combination of sign key type and
message digest type supported by the OpenSSL library can be specified
using the
.Fl c
option.
.Pp
The rules say cryptographic media should be generated with proventic
filestamps, which means the host should already be synchronized before
this program is run.
This of course creates a chicken\-and\-egg problem
when the host is started for the first time.
Accordingly, the host time
should be set by some other means, such as eyeball\-and\-wristwatch, at
least so that the certificate lifetime is within the current year.
After that and when the host is synchronized to a proventic source, the
certificate should be re\-generated.
.Pp
Additional information on trusted groups and identity schemes is on the
.Dq Autokey Public\-Key Authentication
page.
.Pp
File names begin with the prefix
.Pa ntpkey Ns _
and end with the suffix
.Pa _ Ns Ar hostname . Ar filestamp ,
where
.Ar hostname
is the owner name, usually the string returned
by the Unix
.Xr hostname 1
command, and
.Ar filestamp
is the NTP seconds when the file was generated, in decimal digits.
This both guarantees uniqueness and simplifies maintenance
procedures, since all files can be quickly removed
by a
.Ic rm Pa ntpkey\&*
command or all files generated
at a specific time can be removed by a
.Ic rm Pa \&* Ns Ar filestamp
command.
To further reduce the risk of misconfiguration,
the first two lines of a file contain the file name
and generation date and time as comments.
.Ss Trusted Hosts and Groups
Each cryptographic configuration involves selection of a signature scheme
and identification scheme, called a cryptotype,
as explained in the
.Sx Authentication Options
section of
.Xr ntp.conf 5 .
The default cryptotype uses
.Cm RSA
encryption,
.Cm MD5
message digest
and
.Cm TC
identification.
First, configure a NTP subnet including one or more low\-stratum
trusted hosts from which all other hosts derive synchronization
directly or indirectly.
Trusted hosts have trusted certificates;
all other hosts have nontrusted certificates.
These hosts will automatically and dynamically build authoritative
certificate trails to one or more trusted hosts.
A trusted group is the set of all hosts that have, directly or indirectly,
a certificate trail ending at a trusted host.
The trail is defined by static configuration file entries
or dynamic means described on the
.Sx Automatic NTP Configuration Options
section of
.Xr ntp.conf 5 .
.Pp
On each trusted host as root, change to the keys directory.
To insure a fresh fileset, remove all
.Pa ntpkey
files.
Then run
.Nm
.Fl T
to generate keys and a trusted certificate.
On all other hosts do the same, but leave off the
.Fl T
flag to generate keys and nontrusted certificates.
When complete, start the NTP daemons beginning at the lowest stratum
and working up the tree.
It may take some time for Autokey to instantiate the certificate trails
throughout the subnet, but setting up the environment is completely automatic.
.Pp
If it is necessary to use a different sign key or different digest/signature
scheme than the default, run
.Nm
with the
.Fl S Ar type
option, where
.Ar type
is either
.Cm RSA
or
.Cm DSA .
The most frequent need to do this is when a
.Cm DSA Ns \-signed
certificate is used.
If it is necessary to use a different certificate scheme than the default,
run
.Nm
with the
.Fl c Ar scheme
option and selected
.Ar scheme
as needed.
If
.Nm
is run again without these options, it generates a new certificate
using the same scheme and sign key, and soft link.
.Pp
After setting up the environment it is advisable to update certificates
from time to time, if only to extend the validity interval.
Simply run
.Nm
with the same flags as before to generate new certificates
using existing keys, and soft links.
However, if the host or sign key is changed,
.Xr ntpd @NTPD_MS@
should be restarted.
When
.Xr ntpd @NTPD_MS@
is restarted, it loads any new files and restarts the protocol.
Other dependent hosts will continue as usual until signatures are refreshed,
at which time the protocol is restarted.
.Ss Identity Schemes
As mentioned on the Autonomous Authentication page,
the default
.Cm TC
identity scheme is vulnerable to a middleman attack.
However, there are more secure identity schemes available,
including
.Cm PC , IFF , GQ
and
.Cm MV
schemes described below.
These schemes are based on a TA, one or more trusted hosts
and some number of nontrusted hosts.
Trusted hosts prove identity using values provided by the TA,
while the remaining hosts prove identity using values provided
by a trusted host and certificate trails that end on that host.
The name of a trusted host is also the name of its sugroup
and also the subject and issuer name on its trusted certificate.
The TA is not necessarily a trusted host in this sense, but often is.
.Pp
In some schemes there are separate keys for servers and clients.
A server can also be a client of another server,
but a client can never be a server for another client.
In general, trusted hosts and nontrusted hosts that operate
as both server and client have parameter files that contain
both server and client keys.
Hosts that operate
only as clients have key files that contain only client keys.
.Pp
The PC scheme supports only one trusted host in the group.
On trusted host alice run
.Nm
.Fl P
.Fl p Ar password
to generate the host key file
.Pa ntpkey Ns _ Cm RSA Pa key_alice. Ar filestamp
and trusted private certificate file
.Pa ntpkey Ns _ Cm RSA\-MD5 _ Pa cert_alice. Ar filestamp ,
and soft links.
Copy both files to all group hosts;
they replace the files which would be generated in other schemes.
On each host
.Ar bob
install a soft link from the generic name
.Pa ntpkey_host_ Ns Ar bob
to the host key file and soft link
.Pa ntpkey_cert_ Ns Ar bob
to the private certificate file.
Note the generic links are on bob, but point to files generated
by trusted host alice.
In this scheme it is not possible to refresh
either the keys or certificates without copying them
to all other hosts in the group, and recreating the soft links.
.Pp
For the
.Cm IFF
scheme proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts, then for every trusted host in the group,
generate the
.Cm IFF
parameter file.
On trusted host alice run
.Nm
.Fl T
.Fl I
.Fl p Ar password
to produce her parameter file
.Pa ntpkey_IFFpar_alice. Ns Ar filestamp ,
which includes both server and client keys.
Copy this file to all group hosts that operate as both servers
and clients and install a soft link from the generic
.Pa ntpkey_iff_alice
to this file.
If there are no hosts restricted to operate only as clients,
there is nothing further to do.
As the
.Cm IFF
scheme is independent
of keys and certificates, these files can be refreshed as needed.
.Pp
If a rogue client has the parameter file, it could masquerade
as a legitimate server and present a middleman threat.
To eliminate this threat, the client keys can be extracted
from the parameter file and distributed to all restricted clients.
After generating the parameter file, on alice run
.Nm
.Fl e
and pipe the output to a file or email program.
Copy or email this file to all restricted clients.
On these clients install a soft link from the generic
.Pa ntpkey_iff_alice
to this file.
To further protect the integrity of the keys,
each file can be encrypted with a secret password.
.Pp
For the
.Cm GQ
scheme proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts, then for every trusted host
in the group, generate the
.Cm IFF
parameter file.
On trusted host alice run
.Nm
.Fl T
.Fl G
.Fl p Ar password
to produce her parameter file
.Pa ntpkey_GQpar_alice. Ns Ar filestamp ,
which includes both server and client keys.
Copy this file to all group hosts and install a soft link
from the generic
.Pa ntpkey_gq_alice
to this file.
In addition, on each host
.Ar bob
install a soft link
from generic
.Pa ntpkey_gq_ Ns Ar bob
to this file.
As the
.Cm GQ
scheme updates the
.Cm GQ
parameters file and certificate
at the same time, keys and certificates can be regenerated as needed.
.Pp
For the
.Cm MV
scheme, proceed as in the
.Cm TC
scheme to generate keys
and certificates for all group hosts.
For illustration assume trish is the TA, alice one of several trusted hosts
and bob one of her clients.
On TA trish run
.Nm
.Fl V Ar n
.Fl p Ar password ,
where
.Ar n
is the number of revokable keys (typically 5) to produce
the parameter file
.Pa ntpkeys_MVpar_trish. Ns Ar filestamp
and client key files
.Pa ntpkeys_MVkey Ns Ar d _ Pa trish. Ar filestamp
where
.Ar d
is the key number (0 \&<
.Ar d
\&<
.Ar n ) .
Copy the parameter file to alice and install a soft link
from the generic
.Pa ntpkey_mv_alice
to this file.
Copy one of the client key files to alice for later distribution
to her clients.
It does not matter which client key file goes to alice,
since they all work the same way.
Alice copies the client key file to all of her clients.
On client bob install a soft link from generic
.Pa ntpkey_mvkey_bob
to the client key file.
As the
.Cm MV
scheme is independent of keys and certificates,
these files can be refreshed as needed.
.Ss Command Line Options
.Bl -tag -width indent
.It Fl b Fl \-imbits Ns = Ar modulus
Set the number of bits in the identity modulus for generating identity keys to
.Ar modulus
bits.
The number of bits in the identity modulus defaults to 256, but can be set to
values from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.It Fl c Fl \-certificate Ns = Ar scheme
Select certificate signature encryption/message digest scheme.
The
.Ar scheme
can be one of the following:
.Cm RSA\-MD2 , RSA\-MD5 , RSA\-MDC2 , RSA\-SHA , RSA\-SHA1 , RSA\-RIPEMD160 , DSA\-SHA ,
or
.Cm DSA\-SHA1 .
Note that
.Cm RSA
schemes must be used with an
.Cm RSA
sign key and
.Cm DSA
schemes must be used with a
.Cm DSA
sign key.
The default without this option is
.Cm RSA\-MD5 .
If compatibility with FIPS 140\-2 is required, either the
.Cm DSA\-SHA
or
.Cm DSA\-SHA1
scheme must be used.
.It Fl C Fl \-cipher Ns = Ar cipher
Select the OpenSSL cipher to encrypt the files containing private keys.
The default without this option is three\-key triple DES in CBC mode,
.Cm des\-ede3\-cbc .
The
.Ic openssl Fl h
command provided with OpenSSL displays available ciphers.
.It Fl d Fl \-debug\-level
Increase debugging verbosity level.
This option displays the cryptographic data produced in eye\-friendly billboards.
.It Fl D Fl \-set\-debug\-level Ns = Ar level
Set the debugging verbosity to
.Ar level .
This option displays the cryptographic data produced in eye\-friendly billboards.
.It Fl e Fl \-id\-key
Write the
.Cm IFF
or
.Cm GQ
public parameters from the
.Ar IFFkey or GQkey
client keys file previously specified
as unencrypted data to the standard output stream
.Pa stdout .
This is intended for automatic key distribution by email.
.It Fl G Fl \-gq\-params
Generate a new encrypted
.Cm GQ
parameters and key file for the Guillou\-Quisquater (GQ) identity scheme.
This option is mutually exclusive with the
.Fl I
and
.Fl V
options.
.It Fl H Fl \-host\-key
Generate a new encrypted
.Cm RSA
public/private host key file.
.It Fl I Fl \-iffkey
Generate a new encrypted
.Cm IFF
key file for the Schnorr (IFF) identity scheme.
This option is mutually exclusive with the
.Fl G
and
Fl V
options.
.It Fl i Fl \-ident Ns = Ar group
Set the optional Autokey group name to
.Ar group .
This is used in the identity scheme parameter file names of
.Cm IFF , GQ ,
and
.Cm MV
client parameters files.
In that role, the default is the host name if no group is provided.
The group name, if specified using
.Fl i
or
.Fl s
following an
.Ql @
character, is also used in certificate subject and issuer names in the form
.Ar host @ group
and should match the group specified via
.Ic crypto Cm ident
or
.Ic server Cm ident
in the ntpd configuration file.
.It Fl l Fl \-lifetime Ns = Ar days
Set the lifetime for certificate expiration to
.Ar days .
The default lifetime is one year (365 days).
.It Fl m Fl \-modulus Ns = Ar bits
Set the number of bits in the prime modulus for generating files to
.Ar bits .
The modulus defaults to 512, but can be set from 256 to 2048 (32 to 256 octets).
Use the larger moduli with caution, as this can consume considerable computing
resources and increases the size of authenticated packets.
.It Fl M Fl \-md5key
Generate a new symmetric keys file containing 10
.Cm MD5
keys, and if OpenSSL is available, 10
.Cm SHA
keys.
An
.Cm MD5
key is a string of 20 random printable ASCII characters, while a
.Cm SHA
key is a string of 40 random hex digits.
The file can be edited using a text editor to change the key type or key content.
This option is mutually exclusive with all other options.
.It Fl p Fl \-password Ns = Ar passwd
Set the password for reading and writing encrypted files to
.Ar passwd .
These include the host, sign and identify key files.
By default, the password is the string returned by the Unix
.Ic hostname
command.
.It Fl P Fl \-pvt\-cert
Generate a new private certificate used by the
.Cm PC
identity scheme.
By default, the program generates public certificates.
Note: the PC identity scheme is not recommended for new installations.
.It Fl q Fl \-export\-passwd Ns = Ar passwd
Set the password for writing encrypted
.Cm IFF , GQ and MV
identity files redirected to
.Pa stdout
to
.Ar passwd .
In effect, these files are decrypted with the
.Fl p
password, then encrypted with the
.Fl q
password.
By default, the password is the string returned by the Unix
.Ic hostname
command.
.It Fl s Fl \-subject\-key Ns = Ar Oo host Oc Op @ Ar group
Specify the Autokey host name, where
.Ar host
is the optional host name and
.Ar group
is the optional group name.
The host name, and if provided, group name are used in
.Ar host @ group
form as certificate subject and issuer.
Specifying
.Fl s @ Ar group
is allowed, and results in leaving the host name unchanged, as with
.Fl i Ar group .
The group name, or if no group is provided, the host name are also used in the
file names of
.Cm IFF , GQ ,
and
.Cm MV
identity scheme client parameter files.
If
.Ar host
is not specified, the default host name is the string returned by the Unix
.Ic hostname
command.
.It Fl S Fl \-sign\-key Ns = Op Cm RSA | DSA
Generate a new encrypted public/private sign key file of the specified type.
By default, the sign key is the host key and has the same type.
If compatibility with FIPS 140\-2 is required, the sign key type must be
.Cm DSA .
.It Fl T Fl \-trusted\-cert
Generate a trusted certificate.
By default, the program generates a non\-trusted certificate.
.It Fl V Fl \-mv\-params Ar nkeys
Generate
.Ar nkeys
encrypted server keys and parameters for the Mu\-Varadharajan (MV)
identity scheme.
This option is mutually exclusive with the
.Fl I
and
.Fl G
options.
Note: support for this option should be considered a work in progress.
.El
.Ss Random Seed File
All cryptographically sound key generation schemes must have means
to randomize the entropy seed used to initialize
the internal pseudo\-random number generator used
by the library routines.
The OpenSSL library uses a designated random seed file for this purpose.
The file must be available when starting the NTP daemon and
.Nm
program.
If a site supports OpenSSL or its companion OpenSSH,
it is very likely that means to do this are already available.
.Pp
It is important to understand that entropy must be evolved
for each generation, for otherwise the random number sequence
would be predictable.
Various means dependent on external events, such as keystroke intervals,
can be used to do this and some systems have built\-in entropy sources.
Suitable means are described in the OpenSSL software documentation,
but are outside the scope of this page.
.Pp
The entropy seed used by the OpenSSL library is contained in a file,
usually called
.Pa .rnd ,
which must be available when starting the NTP daemon
or the
.Nm
program.
The NTP daemon will first look for the file
using the path specified by the
.Cm randfile
subcommand of the
.Ic crypto
configuration command.
If not specified in this way, or when starting the
.Nm
program,
the OpenSSL library will look for the file using the path specified
by the
.Ev RANDFILE
environment variable in the user home directory,
whether root or some other user.
If the
.Ev RANDFILE
environment variable is not present,
the library will look for the
.Pa .rnd
file in the user home directory.
Since both the
.Nm
program and
.Xr ntpd @NTPD_MS@
daemon must run as root, the logical place to put this file is in
.Pa /.rnd
or
.Pa /root/.rnd .
If the file is not available or cannot be written,
the daemon exits with a message to the system log and the program
exits with a suitable error message.
.Ss Cryptographic Data Files
All file formats begin with two nonencrypted lines.
The first line contains the file name, including the generated host name
and filestamp, in the format
.Pa ntpkey_ Ns Ar key _ Ar name . Ar filestamp ,
where
.Ar key
is the key or parameter type,
.Ar name
is the host or group name and
.Ar filestamp
is the filestamp (NTP seconds) when the file was created.
By convention,
.Ar key
names in generated file names include both upper and lower case
characters, while
.Ar key
names in generated link names include only lower case characters.
The filestamp is not used in generated link names.
The second line contains the datestamp in conventional Unix
.Pa date
format.
Lines beginning with
.Ql #
are considered comments and ignored by the
.Nm
program and
.Xr ntpd @NTPD_MS@
daemon.
.Pp
The remainder of the file contains cryptographic data, encoded first using ASN.1
rules, then encrypted if necessary, and finally written in PEM\-encoded
printable ASCII text, preceded and followed by MIME content identifier lines.
.Pp
The format of the symmetric keys file, ordinarily named
.Pa ntp.keys ,
is somewhat different than the other files in the interest of backward compatibility.
Ordinarily, the file is generated by this program, but it can be constructed
and edited using an ordinary text editor.
.Bd -literal -unfilled -offset center
# ntpkey_MD5key_bk.ntp.org.3595864945
# Thu Dec 12 19:22:25 2013
1 MD5 L";Nw<\`.I<f4U0)247"i # MD5 key
2 MD5 &>l0%XXK9O'51VwV<xq~ # MD5 key
3 MD5 lb4zLW~d^!K:]RsD'qb6 # MD5 key
4 MD5 Yue:tL[+vR)M\`n~bY,'? # MD5 key
5 MD5 B;fx'Kgr/&4ZTbL6=RxA # MD5 key
6 MD5 4eYwa\`o}3i@@V@..R9!l # MD5 key
7 MD5 \`A.([h+;wTQ|xfi%Sn_! # MD5 key
8 MD5 45:V,r4]l6y^JH6"Sh?F # MD5 key
9 MD5 3\-5vcn*6l29DS?Xdsg)* # MD5 key
10 MD5 2late4Me # MD5 key
11 SHA1 a27872d3030a9025b8446c751b4551a7629af65c # SHA1 key
12 SHA1 21bc3b4865dbb9e920902abdccb3e04ff97a5e74 # SHA1 key
13 SHA1 2b7736fe24fef5ba85ae11594132ab5d6f6daba9 # SHA1 key
14 SHA a5332809c8878dd3a5b918819108a111509aeceb # SHA key
15 MD2 2fe16c88c760ff2f16d4267e36c1aa6c926e6964 # MD2 key
16 MD4 b2691811dc19cfc0e2f9bcacd74213f29812183d # MD4 key
17 MD5 e4d6735b8bdad58ec5ffcb087300a17f7fef1f7c # MD5 key
18 MDC2 a8d5e2315c025bf3a79174c87fbd10477de2eabc # MDC2 key
19 RIPEMD160 77ca332cafb30e3cafb174dcd5b80ded7ba9b3d2 # RIPEMD160 key
20 AES128CMAC f92ff73eee86c1e7dc638d6489a04e4e555af878 # AES128CMAC key
.Ed
.D1 Figure 1. Typical Symmetric Key File
.Pp
Figure 1 shows a typical symmetric keys file used by the reference
implementation.
Following the header the keys are entered one per line in the format
.D1 Ar keyno Ar type Ar key
where
.Ar keyno
is a positive integer in the range 1\-65535;
.Ar type
is the key type for the message digest algorithm, which in the absence of the
OpenSSL library must be
.Cm MD5
to designate the MD5 message digest algorithm;
if the OpenSSL library is installed, the key type can be any
message digest algorithm supported by that library;
however, if compatibility with FIPS 140\-2 is required,
the key type must be either
.Cm SHA
or
.Cm SHA1 ;
.Ar key
is the key itself,
which is a printable ASCII string 20 characters or less in length:
each character is chosen from the 93 printable characters
in the range 0x21 through 0x7e (
.Ql !
through
.Ql ~
\&) excluding space and the
.Ql #
character, and terminated by whitespace or a
.Ql #
character.
An OpenSSL key consists of a hex\-encoded ASCII string of 40 characters, which
is truncated as necessary.
.Pp
Note that the keys used by the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
programs
are checked against passwords requested by the programs
and entered by hand, so it is generally appropriate to specify these keys
in human readable ASCII format.
.Pp
The
.Nm
program generates a symmetric keys file
.Pa ntpkey_MD5key_ Ns Ar hostname Ns . Ns Ar filestamp .
Since the file contains private shared keys,
it should be visible only to root and distributed by secure means
to other subnet hosts.
The NTP daemon loads the file
.Pa ntp.keys ,
so
.Nm
installs a soft link from this name to the generated file.
Subsequently, similar soft links must be installed by manual
or automated means on the other subnet hosts.
While this file is not used with the Autokey Version 2 protocol,
it is needed to authenticate some remote configuration commands
used by the
.Xr ntpq @NTPQ_MS@
and
.Xr ntpdc @NTPDC_MS@
utilities.
.Sh "OPTIONS"
.Bl -tag
.It Fl b Ar imbits , Fl \-imbits Ns = Ns Ar imbits
identity modulus bits.
This option takes an integer number as its argument.
The value of
.Ar imbits
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the identity modulus. The default is 512.
.It Fl c Ar scheme , Fl \-certificate Ns = Ns Ar scheme
certificate scheme.
.sp
scheme is one of
RSA\-MD2, RSA\-MD5, RSA\-MDC2, RSA\-SHA, RSA\-SHA1, RSA\-RIPEMD160,
DSA\-SHA, or DSA\-SHA1.
.sp
Select the certificate signature encryption/message digest scheme.
Note that RSA schemes must be used with a RSA sign key and DSA
schemes must be used with a DSA sign key. The default without
this option is RSA\-MD5.
.It Fl C Ar cipher , Fl \-cipher Ns = Ns Ar cipher
privatekey cipher.
.sp
Select the cipher which is used to encrypt the files containing
private keys. The default is three\-key triple DES in CBC mode,
equivalent to "\fB\-C des\-ede3\-cbc\fP". The openssl tool lists ciphers
available in "\fBopenssl \-h\fP" output.
.It Fl d , Fl \-debug\-level
Increase debug verbosity level.
This option may appear an unlimited number of times.
.sp
.It Fl D Ar number , Fl \-set\-debug\-level Ns = Ns Ar number
Set the debug verbosity level.
This option may appear an unlimited number of times.
This option takes an integer number as its argument.
.sp
.It Fl e , Fl \-id\-key
Write IFF or GQ identity keys.
.sp
Write the public parameters from the IFF or GQ client keys to
the standard output.
This is intended for automatic key distribution by email.
.It Fl G , Fl \-gq\-params
Generate GQ parameters and keys.
.sp
Generate parameters and keys for the GQ identification scheme,
obsoleting any that may exist.
.It Fl H , Fl \-host\-key
generate RSA host key.
.sp
Generate new host keys, obsoleting any that may exist.
.It Fl I , Fl \-iffkey
generate IFF parameters.
.sp
Generate parameters for the IFF identification scheme, obsoleting
any that may exist.
.It Fl i Ar group , Fl \-ident Ns = Ns Ar group
set Autokey group name.
.sp
Set the optional Autokey group name to name. This is used in
the file name of IFF, GQ, and MV client parameters files. In
that role, the default is the host name if this option is not
provided. The group name, if specified using \fB\-i/\-\-ident\fP or
using \fB\-s/\-\-subject\-name\fP following an '\fB@\fP' character,
is also a part of the self\-signed host certificate subject and
issuer names in the form \fBhost@group\fP and should match the
\'\fBcrypto ident\fP' or '\fBserver ident\fP' configuration in the
\fBntpd\fP configuration file.
.It Fl l Ar lifetime , Fl \-lifetime Ns = Ns Ar lifetime
set certificate lifetime.
This option takes an integer number as its argument.
.sp
Set the certificate expiration to lifetime days from now.
.It Fl m Ar modulus , Fl \-modulus Ns = Ns Ar modulus
prime modulus.
This option takes an integer number as its argument.
The value of
.Ar modulus
is constrained to being:
.in +4
.nf
.na
in the range 256 through 2048
.fi
.in -4
.sp
The number of bits in the prime modulus. The default is 512.
.It Fl M , Fl \-md5key
generate symmetric keys.
.sp
Generate symmetric keys, obsoleting any that may exist.
.It Fl P , Fl \-pvt\-cert
generate PC private certificate.
.sp
Generate a private certificate. By default, the program generates
public certificates.
.It Fl p Ar passwd , Fl \-password Ns = Ns Ar passwd
local private password.
.sp
Local files containing private data are encrypted with the
DES\-CBC algorithm and the specified password. The same password
must be specified to the local ntpd via the "crypto pw password"
configuration command. The default password is the local
hostname.
.It Fl q Ar passwd , Fl \-export\-passwd Ns = Ns Ar passwd
export IFF or GQ group keys with password.
.sp
Export IFF or GQ identity group keys to the standard output,
encrypted with the DES\-CBC algorithm and the specified password.
The same password must be specified to the remote ntpd via the
"crypto pw password" configuration command. See also the option
-\-id\-key (\-e) for unencrypted exports.
.It Fl s Ar host@group , Fl \-subject\-name Ns = Ns Ar host@group
set host and optionally group name.
.sp
Set the Autokey host name, and optionally, group name specified
following an '\fB@\fP' character. The host name is used in the file
name of generated host and signing certificates, without the
group name. The host name, and if provided, group name are used
in \fBhost@group\fP form for the host certificate subject and issuer
fields. Specifying '\fB\-s @group\fP' is allowed, and results in
leaving the host name unchanged while appending \fB@group\fP to the
subject and issuer fields, as with \fB\-i group\fP. The group name, or
if not provided, the host name are also used in the file names
of IFF, GQ, and MV client parameter files.
.It Fl S Ar sign , Fl \-sign\-key Ns = Ns Ar sign
generate sign key (RSA or DSA).
.sp
Generate a new sign key of the designated type, obsoleting any
that may exist. By default, the program uses the host key as the
sign key.
.It Fl T , Fl \-trusted\-cert
trusted certificate (TC scheme).
.sp
Generate a trusted certificate. By default, the program generates
a non\-trusted certificate.
.It Fl V Ar num , Fl \-mv\-params Ns = Ns Ar num
generate <num> MV parameters.
This option takes an integer number as its argument.
.sp
Generate parameters and keys for the Mu\-Varadharajan (MV)
identification scheme.
.It Fl v Ar num , Fl \-mv\-keys Ns = Ns Ar num
update <num> MV keys.
This option takes an integer number as its argument.
.sp
This option has not been fully documented.
.It Fl \&? , Fl \-help
Display usage information and exit.
.It Fl \&! , Fl \-more\-help
Pass the extended usage information through a pager.
.It Fl > Oo Ar cfgfile Oc , Fl \-save\-opts Oo Ns = Ns Ar cfgfile Oc
Save the option state to \fIcfgfile\fP. The default is the \fIlast\fP
configuration file listed in the \fBOPTION PRESETS\fP section, below.
The command will exit after updating the config file.
.It Fl < Ar cfgfile , Fl \-load\-opts Ns = Ns Ar cfgfile , Fl \-no\-load\-opts
Load options from \fIcfgfile\fP.
The \fIno\-load\-opts\fP form will disable the loading
of earlier config/rc/ini files. \fI\-\-no\-load\-opts\fP is handled early,
out of order.
.It Fl \-version Op Brq Ar v|c|n
Output version of program and exit. The default mode is `v', a simple
version. The `c' mode will print copyright information and `n' will
print the full copyright notice.
.El
.Sh "OPTION PRESETS"
Any option that is not marked as \fInot presettable\fP may be preset
by loading values from configuration ("RC" or ".INI") file(s) and values from
environment variables named:
.nf
\fBNTP_KEYGEN_<option\-name>\fP or \fBNTP_KEYGEN\fP
.fi
.ad
The environmental presets take precedence (are processed later than)
the configuration files.
The \fIhomerc\fP files are "\fI$HOME\fP", and "\fI.\fP".
If any of these are directories, then the file \fI.ntprc\fP
is searched for within those directories.
.Sh USAGE
.Sh "ENVIRONMENT"
See \fBOPTION PRESETS\fP for configuration environment variables.
.Sh "FILES"
See \fBOPTION PRESETS\fP for configuration files.
.Sh "EXIT STATUS"
One of the following exit values will be returned:
.Bl -tag
.It 0 " (EXIT_SUCCESS)"
Successful program execution.
.It 1 " (EXIT_FAILURE)"
The operation failed or the command syntax was not valid.
.It 66 " (EX_NOINPUT)"
A specified configuration file could not be loaded.
.It 70 " (EX_SOFTWARE)"
libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
Copyright (C) 1992\-2023 The University of Delaware and Network Time Foundation all rights reserved.
This program is released under the terms of the NTP license, <http://ntp.org/license>.
.Sh BUGS
It can take quite a while to generate some cryptographic values.
.Pp
Please report bugs to http://bugs.ntp.org .
.Pp
Please send bug reports to: https://bugs.ntp.org, bugs@ntp.org
.Sh NOTES
Portions of this document came from FreeBSD.
.Pp
This manual page was \fIAutoGen\fP\-erated from the \fBntp\-keygen\fP
option definitions.
diff --git a/usr.sbin/ntp/config.h b/usr.sbin/ntp/config.h
index 34264c0b9759..f01a67545276 100644
--- a/usr.sbin/ntp/config.h
+++ b/usr.sbin/ntp/config.h
@@ -1,1839 +1,1839 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */
/* $FreeBSD$ */
/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */
/* Is adjtime() accurate? */
/* #undef ADJTIME_IS_ACCURATE */
/* Support NTP Autokey protocol? */
/* #define AUTOKEY 1 */
/* why not HAVE_P_S? */
/* #undef CALL_PTHREAD_SETCONCURRENCY */
/* ACTS modem service */
#define CLOCK_ACTS 1
/* Arbiter 1088A/B GPS receiver */
#define CLOCK_ARBITER 1
/* ARCRON support? */
#define CLOCK_ARCRON_MSF 1
/* Austron 2200A/2201A GPS receiver? */
#define CLOCK_AS2201 1
/* PPS interface? */
#define CLOCK_ATOM 1
/* Datum/Bancomm bc635/VME interface? */
/* #undef CLOCK_BANC */
/* Chronolog K-series WWVB receiver? */
#define CLOCK_CHRONOLOG 1
/* CHU modem/decoder */
#define CLOCK_CHU 1
/* Diems Computime Radio Clock? */
/* #undef CLOCK_COMPUTIME */
/* Datum Programmable Time System? */
#define CLOCK_DATUM 1
/* ELV/DCF7000 clock? */
/* #undef CLOCK_DCF7000 */
/* Dumb generic hh:mm:ss local clock? */
#define CLOCK_DUMBCLOCK 1
/* Forum Graphic GPS datating station driver? */
#define CLOCK_FG 1
/* GPSD JSON receiver */
#define CLOCK_GPSDJSON 1
/* TrueTime GPS receiver/VME interface? */
/* #undef CLOCK_GPSVME */
/* Heath GC-1000 WWV/WWVH receiver? */
#define CLOCK_HEATH 1
/* HOPF 6021 clock? */
/* #undef CLOCK_HOPF6021 */
/* HOPF PCI clock device? */
#define CLOCK_HOPF_PCI 1
/* HOPF serial clock device? */
#define CLOCK_HOPF_SERIAL 1
/* HP 58503A GPS receiver? */
#define CLOCK_HPGPS 1
/* IRIG audio decoder? */
#define CLOCK_IRIG 1
/* JJY receiver? */
#define CLOCK_JJY 1
/* Rockwell Jupiter GPS clock? */
#define CLOCK_JUPITER 1
/* Leitch CSD 5300 Master Clock System Driver? */
#define CLOCK_LEITCH 1
/* local clock reference? */
#define CLOCK_LOCAL 1
/* Meinberg clocks */
#define CLOCK_MEINBERG 1
/* Magnavox MX4200 GPS receiver */
/* #undef CLOCK_MX4200 */
/* NeoClock4X */
#define CLOCK_NEOCLOCK4X 1
/* NMEA GPS receiver */
#define CLOCK_NMEA 1
/* Motorola UT Oncore GPS */
#define CLOCK_ONCORE 1
/* Palisade clock */
#define CLOCK_PALISADE 1
/* PARSE driver interface */
#define CLOCK_PARSE 1
/* Conrad parallel port radio clock */
#define CLOCK_PCF 1
/* PCL 720 clock support */
/* #undef CLOCK_PPS720 */
/* PST/Traconex 1020 WWV/WWVH receiver */
#define CLOCK_PST 1
/* DCF77 raw time code */
#define CLOCK_RAWDCF 1
/* RCC 8000 clock */
/* #undef CLOCK_RCC8000 */
/* RIPE NCC Trimble clock */
/* #undef CLOCK_RIPENCC */
/* Schmid DCF77 clock */
/* #undef CLOCK_SCHMID */
/* SEL240X protocol */
/* #undef CLOCK_SEL240X */
/* clock thru shared memory */
#define CLOCK_SHM 1
/* Spectracom 8170/Netclock/2 WWVB receiver */
#define CLOCK_SPECTRACOM 1
/* KSI/Odetics TPRO/S GPS receiver/IRIG interface */
/* #undef CLOCK_TPRO */
/* Trimble GPS receiver/TAIP protocol */
/* #undef CLOCK_TRIMTAIP */
/* Trimble GPS receiver/TSIP protocol */
/* #undef CLOCK_TRIMTSIP */
/* Kinemetrics/TrueTime receivers */
#define CLOCK_TRUETIME 1
/* Spectracom TSYNC timing board */
/* #undef CLOCK_TSYNCPCI */
/* TrueTime 560 IRIG-B decoder? */
/* #undef CLOCK_TT560 */
/* Ultralink M320 WWVB receiver? */
#define CLOCK_ULINK 1
/* VARITEXT clock */
/* #undef CLOCK_VARITEXT */
/* WHARTON 400A Series clock */
/* #undef CLOCK_WHARTON_400A */
/* WWV audio driver */
#define CLOCK_WWV 1
/* Zyfer GPStarplus */
#define CLOCK_ZYFER 1
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/
/* #undef CRAY_STACKSEG_END */
/* Define to 1 if using `alloca.c'. */
/* #undef C_ALLOCA */
/* Enable debugging code? */
/* #undef DEBUG */
/* Enable processing time debugging? */
/* #undef DEBUG_TIMING */
/* Declaration style */
/* #undef DECL_ADJTIME_0 */
/* Declaration style */
/* #undef DECL_BCOPY_0 */
/* Declaration style */
/* #undef DECL_BZERO_0 */
/* Declaration style */
/* #undef DECL_CFSETISPEED_0 */
/* Declare errno? */
/* #undef DECL_ERRNO */
/* Declaration style */
/* #undef DECL_HSTRERROR_0 */
/* Declare h_errno? */
#define DECL_H_ERRNO 1
/* Declaration style */
/* #undef DECL_INET_NTOA_0 */
/* Declaration style */
/* #undef DECL_IOCTL_0 */
/* Declaration style */
/* #undef DECL_IPC_0 */
/* Declaration style */
/* #undef DECL_MEMMOVE_0 */
/* Declaration style */
/* #undef DECL_MKSTEMP_0 */
/* Declaration style */
/* #undef DECL_MKTEMP_0 */
/* Declaration style */
/* #undef DECL_NLIST_0 */
/* Declaration style */
/* #undef DECL_PLOCK_0 */
/* Declaration style */
/* #undef DECL_RENAME_0 */
/* Declaration style */
/* #undef DECL_SELECT_0 */
/* Declaration style */
/* #undef DECL_SETITIMER_0 */
/* Declaration style */
/* #undef DECL_SETPRIORITY_0 */
/* Declaration style */
/* #undef DECL_SETPRIORITY_1 */
/* Declaration style */
/* #undef DECL_SIGVEC_0 */
/* Declaration style */
/* #undef DECL_STDIO_0 */
/* Declaration style */
/* #undef DECL_STIME_0 */
/* Declaration style */
/* #undef DECL_STIME_1 */
/* Declaration style */
/* #undef DECL_STRERROR_0 */
/* Declaration style */
/* #undef DECL_STRTOL_0 */
/* Declare syscall()? */
/* #undef DECL_SYSCALL */
/* Declaration style */
/* #undef DECL_SYSLOG_0 */
/* Declaration style */
/* #undef DECL_TIMEOFDAY_0 */
/* Declaration style */
/* #undef DECL_TIME_0 */
/* Declaration style */
/* #undef DECL_TOLOWER_0 */
/* Declaration style */
/* #undef DECL_TOUPPER_0 */
/* What is the fallback value for HZ? */
#define DEFAULT_HZ 100
/* Default number of megabytes for RLIMIT_MEMLOCK */
#define DFLT_RLIMIT_MEMLOCK -1
/* Default number of 4k pages for RLIMIT_STACK */
#define DFLT_RLIMIT_STACK 50
/* Directory separator character, usually / or \\ */
#define DIR_SEP '/'
/* use old autokey session key behavior? */
/* #undef DISABLE_BUG1243_FIX */
/* synch TODR hourly? */
/* #undef DOSYNCTODR */
/* The number of minutes in a DST adjustment */
#define DSTMINUTES 60
/* support dynamic interleave? */
#define DYNAMIC_INTERLEAVE 0
/* number of args to el_init() */
#define EL_INIT_ARGS 4
/* Provide the explicit 127.0.0.0/8 martian filter? */
#define ENABLE_BUG3020_FIX 1
/* Enable CMAC support? */
#define ENABLE_CMAC 1
/* nls support in libopts */
/* #undef ENABLE_NLS */
/* force ntpdate to step the clock if !defined(STEP_SLEW) ? */
/* #undef FORCE_NTPDATE_STEP */
/* What is getsockname()'s socklen type? */
#define GETSOCKNAME_SOCKLEN_TYPE socklen_t
/* Do we have a routing socket (rt_msghdr or rtattr)? */
#define HAS_ROUTING_SOCKET 1
/* via __adjtimex */
/* #undef HAVE_ADJTIMEX */
/* Define to 1 if you have `alloca', as a function or macro. */
#define HAVE_ALLOCA 1
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
*/
/* #undef HAVE_ALLOCA_H */
/* Define to 1 if you have the `arc4random_buf' function. */
#define HAVE_ARC4RANDOM_BUF 1
/* Define to 1 if you have the <arpa/nameser.h> header file. */
#define HAVE_ARPA_NAMESER_H 1
/* Define to 1 if you have the `atomic_thread_fence' function. */
/* #undef HAVE_ATOMIC_THREAD_FENCE */
/* Do we have audio support? */
#define HAVE_AUDIO /**/
/* Define to 1 if you have the <bstring.h> header file. */
/* #undef HAVE_BSTRING_H */
/* Define to 1 if you have the `canonicalize_file_name' function. */
/* #undef HAVE_CANONICALIZE_FILE_NAME */
/* Define to 1 if you have the `chmod' function. */
#define HAVE_CHMOD 1
/* Do we have the CIOGETEV ioctl (SunOS, Linux)? */
/* #undef HAVE_CIOGETEV */
/* Define to 1 if you have the `clock_getres' function. */
#define HAVE_CLOCK_GETRES 1
/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1
/* Define to 1 if you have the `clock_settime' function. */
#define HAVE_CLOCK_SETTIME 1
/* Define to 1 if you have the <cthreads.h> header file. */
/* #undef HAVE_CTHREADS_H */
/* Define to 1 if you have the `daemon' function. */
#define HAVE_DAEMON 1
/* Define to 1 if you have the declaration of `siglongjmp', and to 0 if you
don't. */
#define HAVE_DECL_SIGLONGJMP 1
/* Define to 1 if you have the declaration of `sigsetjmp', and to 0 if you
don't. */
#define HAVE_DECL_SIGSETJMP 1
/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
don't. */
#define HAVE_DECL_STRERROR_R 1
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#define HAVE_DIRENT_H 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Use Rendezvous/DNS-SD registration */
/* #undef HAVE_DNSREGISTRATION */
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
/* #undef HAVE_DOPRNT */
/* Can we drop root privileges? */
#define HAVE_DROPROOT
/* Define to 1 if you have the <errno.h> header file. */
#define HAVE_ERRNO_H 1
/* Define to 1 if you have the `EVP_MD_do_all_sorted' function. */
#define HAVE_EVP_MD_DO_ALL_SORTED 1
/* Define to 1 if you have the `fchmod' function. */
#define HAVE_FCHMOD 1
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define to 1 if you have the `finite' function. */
/* #undef HAVE_FINITE */
/* Define to 1 if you have the `fnmatch' function. */
#define HAVE_FNMATCH 1
/* Define to 1 if you have the <fnmatch.h> header file. */
#define HAVE_FNMATCH_H 1
/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1
/* Define to 1 if you have the `fstat' function. */
#define HAVE_FSTAT 1
/* Define to 1 if you have the `getbootfile' function. */
#define HAVE_GETBOOTFILE 1
/* Define to 1 if you have the `getclock' function. */
/* #undef HAVE_GETCLOCK */
/* Define to 1 if you have the `getdtablesize' function. */
#define HAVE_GETDTABLESIZE 1
/* Define to 1 if you have the `getifaddrs' function. */
#define HAVE_GETIFADDRS 1
/* Define to 1 if you have the `getpassphrase' function. */
/* #undef HAVE_GETPASSPHRASE */
/* Define to 1 if you have the `getrusage' function. */
#define HAVE_GETRUSAGE 1
/* Define to 1 if you have the `getuid' function. */
#define HAVE_GETUID 1
/* if you have GNU Pth */
/* #undef HAVE_GNU_PTH */
/* Define to 1 if you have the <histedit.h> header file. */
#define HAVE_HISTEDIT_H 1
/* Define to 1 if you have the <history.h> header file. */
/* #undef HAVE_HISTORY_H */
/* Obvious */
#define HAVE_HZ_IN_STRUCT_CLOCKINFO 1
/* Define to 1 if you have the <ieeefp.h> header file. */
#define HAVE_IEEEFP_H 1
/* have iflist_sysctl? */
#define HAVE_IFLIST_SYSCTL 1
/* Define to 1 if you have the `if_nametoindex' function. */
#define HAVE_IF_NAMETOINDEX 1
/* inline keyword or macro available */
#define HAVE_INLINE 1
/* Define to 1 if the system has the type `int16_t'. */
#define HAVE_INT16_T 1
/* Define to 1 if the system has the type `int32'. */
/* #undef HAVE_INT32 */
/* int32 type in DNS headers, not others. */
/* #undef HAVE_INT32_ONLY_WITH_DNS */
/* Define to 1 if the system has the type `int32_t'. */
#define HAVE_INT32_T 1
/* Define to 1 if the system has the type `int8_t'. */
#define HAVE_INT8_T 1
/* Define to 1 if the system has the type `intmax_t'. */
/* #undef HAVE_INTMAX_T */
/* Define to 1 if the system has the type `intptr_t'. */
#define HAVE_INTPTR_T 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the `isfinite' function. */
#define HAVE_ISFINITE 1
/* Define to 1 if you have the <kvm.h> header file. */
#define HAVE_KVM_H 1
/* Define to 1 if you have the `kvm_open' function. */
/* #undef HAVE_KVM_OPEN */
/* Define to 1 if you have the `gen' library (-lgen). */
/* #undef HAVE_LIBGEN */
/* Define to 1 if you have the <libgen.h> header file. */
#define HAVE_LIBGEN_H 1
/* Define to 1 if you have the `intl' library (-lintl). */
/* #undef HAVE_LIBINTL */
/* Define to 1 if you have the <libintl.h> header file. */
/* #undef HAVE_LIBINTL_H */
/* Define to 1 if you have the <libscf.h> header file. */
/* #undef HAVE_LIBSCF_H */
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* using Linux pthread? */
/* #undef HAVE_LINUXTHREADS */
/* Do we have Linux capabilities? */
/* #undef HAVE_LINUX_CAPABILITIES */
/* Define to 1 if you have the <linux/if_addr.h> header file. */
/* #undef HAVE_LINUX_IF_ADDR_H */
/* if you have LinuxThreads */
/* #undef HAVE_LINUX_THREADS */
/* Define to 1 if you have the `localeconv' function. */
/* #undef HAVE_LOCALECONV */
/* Define to 1 if you have the <locale.h> header file. */
/* #undef HAVE_LOCALE_H */
/* Define to 1 if the system has the type `long double'. */
/* #undef HAVE_LONG_DOUBLE */
/* Define to 1 if the system has the type `long long'. */
#define HAVE_LONG_LONG 1
/* Define to 1 if the system has the type `long long int'. */
/* #undef HAVE_LONG_LONG_INT */
/* if you have SunOS LWP package */
/* #undef HAVE_LWP */
/* Define to 1 if you have the <lwp/lwp.h> header file. */
/* #undef HAVE_LWP_LWP_H */
/* Define to 1 if you have the <machine/inline.h> header file. */
/* #undef HAVE_MACHINE_INLINE_H */
/* Define to 1 if you have the <machine/soundcard.h> header file. */
/* #undef HAVE_MACHINE_SOUNDCARD_H */
/* define if you have Mach Cthreads */
/* #undef HAVE_MACH_CTHREADS */
/* Define to 1 if you have the <mach/cthreads.h> header file. */
/* #undef HAVE_MACH_CTHREADS_H */
/* Define to 1 if you have the <math.h> header file. */
#define HAVE_MATH_H 1
/* Define to 1 if you have the `MD5Init' function. */
#define HAVE_MD5INIT 1
/* Define to 1 if you have the <md5.h> header file. */
#define HAVE_MD5_H 1
/* Define to 1 if you have the `memlk' function. */
/* #undef HAVE_MEMLK */
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `mkstemp' function. */
#define HAVE_MKSTEMP 1
/* Define to 1 if you have the `mktime' function. */
#define HAVE_MKTIME 1
/* Define to 1 if you have the `mlockall' function. */
#define HAVE_MLOCKALL 1
/* Define to 1 if you have the `mmap' function. */
#define HAVE_MMAP 1
/* Define to 1 if you have the `nanosleep' function. */
#define HAVE_NANOSLEEP 1
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
/* #undef HAVE_NDIR_H */
/* Define to 1 if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <netinet/in_system.h> header file. */
/* #undef HAVE_NETINET_IN_SYSTEM_H */
/* Define to 1 if you have the <netinet/in_systm.h> header file. */
#define HAVE_NETINET_IN_SYSTM_H 1
/* Define to 1 if you have the <netinet/in_var.h> header file. */
#define HAVE_NETINET_IN_VAR_H 1
/* Define to 1 if you have the <netinet/ip.h> header file. */
#define HAVE_NETINET_IP_H 1
/* NetInfo support? */
/* #undef HAVE_NETINFO */
/* Define to 1 if you have the <netinfo/ni.h> header file. */
/* #undef HAVE_NETINFO_NI_H */
/* Define to 1 if you have the <net/if6.h> header file. */
/* #undef HAVE_NET_IF6_H */
/* Define to 1 if you have the <net/if.h> header file. */
#define HAVE_NET_IF_H 1
/* Define to 1 if you have the <net/if_var.h> header file. */
#define HAVE_NET_IF_VAR_H 1
/* Define to 1 if you have the <net/route.h> header file. */
#define HAVE_NET_ROUTE_H 1
/* Define to 1 if you have the `nice' function. */
#define HAVE_NICE 1
/* Define to 1 if you have the <nlist.h> header file. */
#define HAVE_NLIST_H 1
/* via __adjtimex */
#define HAVE_NTP_ADJTIME 1
/* via __ntp_gettime */
#define HAVE_NTP_GETTIME 1
/* Do we want support for Samba's signing daemon? */
#define HAVE_NTP_SIGND 1
/* if you have NT Event Log */
/* #undef HAVE_NT_EVENT_LOG */
/* if you have NT Service Manager */
/* #undef HAVE_NT_SERVICE_MANAGER */
/* if you have NT Threads */
/* #undef HAVE_NT_THREADS */
/* Define to 1 if you have the <openssl/cmac.h> header file. */
#define HAVE_OPENSSL_CMAC_H 1
/* Define to 1 if you have the <openssl/hmac.h> header file. */
#define HAVE_OPENSSL_HMAC_H 1
/* Define to 1 if the system has the type `pid_t'. */
#define HAVE_PID_T 1
/* Define to 1 if you have the `plock' function. */
/* #undef HAVE_PLOCK */
/* Define to 1 if you have the <poll.h> header file. */
#define HAVE_POLL_H 1
/* Do we have the PPS API per the Draft RFC? */
#define HAVE_PPSAPI 1
/* Define to 1 if you have the <priv.h> header file. */
/* #undef HAVE_PRIV_H */
/* Define if you have POSIX threads libraries and header files. */
/* #undef HAVE_PTHREAD */
/* define to pthreads API spec revision */
#define HAVE_PTHREADS 10
/* Define to 1 if you have the `pthread_attr_getstacksize' function. */
#define HAVE_PTHREAD_ATTR_GETSTACKSIZE 1
/* Define to 1 if you have the `pthread_attr_setstacksize' function. */
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
/* define if you have pthread_detach function */
#define HAVE_PTHREAD_DETACH 1
/* Define to 1 if you have the `pthread_getconcurrency' function. */
#define HAVE_PTHREAD_GETCONCURRENCY 1
/* Define to 1 if you have the <pthread.h> header file. */
#define HAVE_PTHREAD_H 1
/* Define to 1 if you have the `pthread_kill' function. */
#define HAVE_PTHREAD_KILL 1
/* Define to 1 if you have the `pthread_kill_other_threads_np' function. */
/* #undef HAVE_PTHREAD_KILL_OTHER_THREADS_NP */
/* define if you have pthread_rwlock_destroy function */
#define HAVE_PTHREAD_RWLOCK_DESTROY 1
/* Define to 1 if you have the `pthread_setconcurrency' function. */
#define HAVE_PTHREAD_SETCONCURRENCY 1
/* Define to 1 if you have the `pthread_yield' function. */
#define HAVE_PTHREAD_YIELD 1
/* Define to 1 if you have the <pth.h> header file. */
/* #undef HAVE_PTH_H */
/* Define to 1 if the system has the type `ptrdiff_t'. */
#define HAVE_PTRDIFF_T 1
/* Define to 1 if you have the `pututline' function. */
/* #undef HAVE_PUTUTLINE */
/* Define to 1 if you have the `pututxline' function. */
#define HAVE_PUTUTXLINE 1
/* Define to 1 if you have the `RAND_bytes' function. */
#define HAVE_RAND_BYTES 1
/* Define to 1 if you have the `RAND_poll' function. */
#define HAVE_RAND_POLL 1
/* Define to 1 if you have the <readline.h> header file. */
/* #undef HAVE_READLINE_H */
/* Define if your readline library has \`add_history' */
#define HAVE_READLINE_HISTORY 1
/* Define to 1 if you have the <readline/history.h> header file. */
#define HAVE_READLINE_HISTORY_H 1
/* Define to 1 if you have the <readline/readline.h> header file. */
#define HAVE_READLINE_READLINE_H 1
/* Define to 1 if you have the `readlink' function. */
#define HAVE_READLINK 1
/* Define to 1 if you have the `recvmsg' function. */
#define HAVE_RECVMSG 1
/* Define to 1 if you have the <resolv.h> header file. */
#define HAVE_RESOLV_H 1
/* Define to 1 if you have the `res_init' function. */
#define HAVE_RES_INIT 1
/* Do we have Linux routing socket? */
/* #undef HAVE_RTNETLINK */
/* Define to 1 if you have the `rtprio' function. */
#define HAVE_RTPRIO 1
/* Define to 1 if you have the <runetype.h> header file. */
#define HAVE_RUNETYPE_H 1
/* Obvious */
#define HAVE_SA_SIGACTION_IN_STRUCT_SIGACTION 1
/* Define to 1 if you have the <sched.h> header file. */
#define HAVE_SCHED_H 1
/* Define to 1 if you have the `sched_setscheduler' function. */
#define HAVE_SCHED_SETSCHEDULER 1
/* Define to 1 if you have the `sched_yield' function. */
#define HAVE_SCHED_YIELD 1
/* Define to 1 if you have the <semaphore.h> header file. */
#define HAVE_SEMAPHORE_H 1
/* Define to 1 if you have the `sem_timedwait' function. */
#define HAVE_SEM_TIMEDWAIT 1
/* Define to 1 if you have the <setjmp.h> header file. */
#define HAVE_SETJMP_H 1
/* Define to 1 if you have the `setlinebuf' function. */
#define HAVE_SETLINEBUF 1
/* Define to 1 if you have the `setpgid' function. */
#define HAVE_SETPGID 1
/* define if setpgrp takes 0 arguments */
/* #undef HAVE_SETPGRP_0 */
/* Define to 1 if you have the `setpriority' function. */
#define HAVE_SETPRIORITY 1
/* Define to 1 if you have the `setrlimit' function. */
#define HAVE_SETRLIMIT 1
/* Define to 1 if you have the `setsid' function. */
#define HAVE_SETSID 1
/* Define to 1 if you have the `settimeofday' function. */
#define HAVE_SETTIMEOFDAY 1
/* Define to 1 if you have the `setvbuf' function. */
#define HAVE_SETVBUF 1
/* Define to 1 if you have the <sgtty.h> header file. */
/* #undef HAVE_SGTTY_H */
/* Define to 1 if you have the `sigaction' function. */
#define HAVE_SIGACTION 1
/* Can we use SIGIO for tcp and udp IO? */
/* #undef HAVE_SIGNALED_IO */
/* Define to 1 if you have the `sigset' function. */
#define HAVE_SIGSET 1
/* Define to 1 if you have the `sigvec' function. */
#define HAVE_SIGVEC 1
/* sigwait() available? */
#define HAVE_SIGWAIT 1
/* Define to 1 if the system has the type `size_t'. */
#define HAVE_SIZE_T 1
/* Define if C99-compliant `snprintf' is available. */
#define HAVE_SNPRINTF 1
/* Define to 1 if you have the `socketpair' function. */
#define HAVE_SOCKETPAIR 1
/* Are Solaris privileges available? */
/* #undef HAVE_SOLARIS_PRIVS */
/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define to 1 if you have the <stdatomic.h> header file. */
#define HAVE_STDATOMIC_H 1
/* Define to 1 if stdbool.h conforms to C99. */
#define HAVE_STDBOOL_H 1
/* Define to 1 if you have the <stddef.h> header file. */
/* #undef HAVE_STDDEF_H */
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `stime' function. */
/* #undef HAVE_STIME */
/* Define to 1 if you have the `strchr' function. */
#define HAVE_STRCHR 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the `strerror_r' function. */
#define HAVE_STRERROR_R 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strlcat' function. */
#define HAVE_STRLCAT 1
/* Define to 1 if you have the `strlcpy' function. */
#define HAVE_STRLCPY 1
/* Define to 1 if you have the <stropts.h> header file. */
/* #undef HAVE_STROPTS_H */
/* Define to 1 if you have the `strrchr' function. */
#define HAVE_STRRCHR 1
/* Define to 1 if you have the `strsignal' function. */
#define HAVE_STRSIGNAL 1
/* Define to 1 if you have the `strtoll' function. */
#define HAVE_STRTOLL 1
/* Define to 1 if `decimal_point' is a member of `struct lconv'. */
/* #undef HAVE_STRUCT_LCONV_DECIMAL_POINT */
/* Define to 1 if `thousands_sep' is a member of `struct lconv'. */
/* #undef HAVE_STRUCT_LCONV_THOUSANDS_SEP */
/* Do we have struct ntptimeval? */
#define HAVE_STRUCT_NTPTIMEVAL 1
/* Define to 1 if `time.tv_nsec' is a member of `struct ntptimeval'. */
#define HAVE_STRUCT_NTPTIMEVAL_TIME_TV_NSEC 1
/* Does a system header define struct ppsclockev? */
/* #undef HAVE_STRUCT_PPSCLOCKEV */
/* Do we have struct snd_size? */
#define HAVE_STRUCT_SND_SIZE 1
/* Does a system header define struct sockaddr_storage? */
#define HAVE_STRUCT_SOCKADDR_STORAGE 1
/* struct timespec declared? */
#define HAVE_STRUCT_TIMESPEC 1
/* Define to 1 if you have the <sun/audioio.h> header file. */
/* #undef HAVE_SUN_AUDIOIO_H */
/* Define to 1 if you have the <synch.h> header file. */
/* #undef HAVE_SYNCH_H */
/* Define to 1 if you have the `sysconf' function. */
#define HAVE_SYSCONF 1
/* Define to 1 if you have the <sysexits.h> header file. */
#define HAVE_SYSEXITS_H 1
/* */
#define HAVE_SYSLOG_FACILITYNAMES 1
/* Define to 1 if you have the <sys/audioio.h> header file. */
/* #undef HAVE_SYS_AUDIOIO_H */
/* Define to 1 if you have the <sys/capability.h> header file. */
#define HAVE_SYS_CAPABILITY_H 1
/* Define to 1 if you have the <sys/clockctl.h> header file. */
/* #undef HAVE_SYS_CLOCKCTL_H */
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_DIR_H */
/* Define to 1 if you have the <sys/file.h> header file. */
#define HAVE_SYS_FILE_H 1
/* Define to 1 if you have the <sys/i8253.h> header file. */
/* #undef HAVE_SYS_I8253_H */
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#define HAVE_SYS_IOCTL_H 1
/* Define to 1 if you have the <sys/ipc.h> header file. */
#define HAVE_SYS_IPC_H 1
/* Define to 1 if you have the <sys/limits.h> header file. */
/* #undef HAVE_SYS_LIMITS_H */
/* Define to 1 if you have the <sys/lock.h> header file. */
#define HAVE_SYS_LOCK_H 1
/* Define to 1 if you have the <sys/mac.h> header file. */
#define HAVE_SYS_MAC_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
#define HAVE_SYS_MMAN_H 1
/* Define to 1 if you have the <sys/modem.h> header file. */
/* #undef HAVE_SYS_MODEM_H */
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
/* #undef HAVE_SYS_NDIR_H */
/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/pcl720.h> header file. */
/* #undef HAVE_SYS_PCL720_H */
/* Define to 1 if you have the <sys/poll.h> header file. */
#define HAVE_SYS_POLL_H 1
/* Define to 1 if you have the <sys/ppsclock.h> header file. */
/* #undef HAVE_SYS_PPSCLOCK_H */
/* Define to 1 if you have the <sys/ppstime.h> header file. */
/* #undef HAVE_SYS_PPSTIME_H */
/* Define to 1 if you have the <sys/prctl.h> header file. */
/* #undef HAVE_SYS_PRCTL_H */
/* Define to 1 if you have the <sys/procset.h> header file. */
/* #undef HAVE_SYS_PROCSET_H */
/* Define to 1 if you have the <sys/proc.h> header file. */
#define HAVE_SYS_PROC_H 1
/* Define to 1 if you have the <sys/resource.h> header file. */
#define HAVE_SYS_RESOURCE_H 1
/* Define to 1 if you have the <sys/sched.h> header file. */
/* #undef HAVE_SYS_SCHED_H */
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1
/* Define to 1 if you have the <sys/shm.h> header file. */
#define HAVE_SYS_SHM_H 1
/* Define to 1 if you have the <sys/signal.h> header file. */
#define HAVE_SYS_SIGNAL_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define to 1 if you have the <sys/sockio.h> header file. */
#define HAVE_SYS_SOCKIO_H 1
/* Define to 1 if you have the <sys/soundcard.h> header file. */
#define HAVE_SYS_SOUNDCARD_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/stream.h> header file. */
/* #undef HAVE_SYS_STREAM_H */
/* Define to 1 if you have the <sys/stropts.h> header file. */
/* #undef HAVE_SYS_STROPTS_H */
/* Define to 1 if you have the <sys/sysctl.h> header file. */
#define HAVE_SYS_SYSCTL_H 1
/* Define to 1 if you have the <sys/syssgi.h> header file. */
/* #undef HAVE_SYS_SYSSGI_H */
/* Define to 1 if you have the <sys/systune.h> header file. */
/* #undef HAVE_SYS_SYSTUNE_H */
/* Define to 1 if you have the <sys/termios.h> header file. */
#define HAVE_SYS_TERMIOS_H 1
/* Define to 1 if you have the <sys/timepps.h> header file. */
#define HAVE_SYS_TIMEPPS_H 1
/* Define to 1 if you have the <sys/timers.h> header file. */
#define HAVE_SYS_TIMERS_H 1
/* Define to 1 if you have the <sys/timex.h> header file. */
#define HAVE_SYS_TIMEX_H 1
/* Define to 1 if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H 1
/* Define to 1 if you have the <sys/tpro.h> header file. */
/* #undef HAVE_SYS_TPRO_H */
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Use sys/uio.h for struct iovec help */
/* #undef HAVE_SYS_UIO_H */
/* Define to 1 if you have the <sys/un.h> header file. */
#define HAVE_SYS_UN_H 1
/* Define to 1 if you have the <sys/var.h> header file. */
/* #undef HAVE_SYS_VAR_H */
/* Define to 1 if you have the <sys/wait.h> header file. */
#define HAVE_SYS_WAIT_H 1
/* Define to 1 if the system has the type `s_char'. */
/* #undef HAVE_S_CHAR */
/* Define to 1 if you have the <termios.h> header file. */
#define HAVE_TERMIOS_H 1
/* Define to 1 if you have the <termio.h> header file. */
/* #undef HAVE_TERMIO_H */
/* if you have Solaris LWP (thr) package */
/* #undef HAVE_THR */
/* Define to 1 if you have the <thread.h> header file. */
/* #undef HAVE_THREAD_H */
/* Define to 1 if you have the `thr_getconcurrency' function. */
/* #undef HAVE_THR_GETCONCURRENCY */
/* Define to 1 if you have the `thr_setconcurrency' function. */
/* #undef HAVE_THR_SETCONCURRENCY */
/* Define to 1 if you have the `thr_yield' function. */
/* #undef HAVE_THR_YIELD */
/* Obvious */
#define HAVE_TICKADJ_IN_STRUCT_CLOCKINFO 1
/* Define to 1 if you have the `timegm' function. */
#define HAVE_TIMEGM 1
/* Define to 1 if you have the <timepps.h> header file. */
/* #undef HAVE_TIMEPPS_H */
/* Define to 1 if you have the `timer_create' function. */
/* #undef HAVE_TIMER_CREATE */
/* Define to 1 if you have the <timex.h> header file. */
/* #undef HAVE_TIMEX_H */
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Do we have the TIOCGPPSEV ioctl (Solaris)? */
/* #undef HAVE_TIOCGPPSEV */
/* Do we have the TIOCSPPS ioctl (Solaris)? */
/* #undef HAVE_TIOCSPPS */
/* Do we have the TIO serial stuff? */
/* #undef HAVE_TIO_SERIAL_STUFF */
/* Are TrustedBSD MAC policy privileges available? */
#define HAVE_TRUSTEDBSD_MAC 1
/* Define to 1 if the system has the type `uint16_t'. */
#define HAVE_UINT16_T 1
/* Define to 1 if the system has the type `uint32_t'. */
#define HAVE_UINT32_T 1
/* Define to 1 if the system has the type `uint8_t'. */
#define HAVE_UINT8_T 1
/* Define to 1 if the system has the type `uintmax_t'. */
/* #undef HAVE_UINTMAX_T */
/* Define to 1 if the system has the type `uintptr_t'. */
#define HAVE_UINTPTR_T 1
/* Define to 1 if the system has the type `uint_t'. */
/* #undef HAVE_UINT_T */
/* Define to 1 if you have the `umask' function. */
#define HAVE_UMASK 1
/* Define to 1 if you have the `uname' function. */
#define HAVE_UNAME 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* deviant sigwait? */
/* #undef HAVE_UNIXWARE_SIGWAIT */
/* Define to 1 if the system has the type `unsigned long long int'. */
#define HAVE_UNSIGNED_LONG_LONG_INT 1
/* Define to 1 if you have the `updwtmp' function. */
/* #undef HAVE_UPDWTMP */
/* Define to 1 if you have the `updwtmpx' function. */
/* #undef HAVE_UPDWTMPX */
/* Define to 1 if you have the <utime.h> header file. */
#define HAVE_UTIME_H 1
/* Define to 1 if you have the <utmpx.h> header file. */
#define HAVE_UTMPX_H 1
/* Define to 1 if you have the <utmp.h> header file. */
/* #undef HAVE_UTMP_H */
/* Define to 1 if the system has the type `u_int32'. */
/* #undef HAVE_U_INT32 */
/* u_int32 type in DNS headers, not others. */
/* #undef HAVE_U_INT32_ONLY_WITH_DNS */
/* Define to 1 if you have the <values.h> header file. */
/* #undef HAVE_VALUES_H */
/* Define to 1 if you have the <varargs.h> header file. */
/* #undef HAVE_VARARGS_H */
/* Define to 1 if you have the `vfork' function. */
#define HAVE_VFORK 1
/* Define to 1 if you have the <vfork.h> header file. */
/* #undef HAVE_VFORK_H */
/* Define to 1 if you have the `vprintf' function. */
#define HAVE_VPRINTF 1
/* Define if C99-compliant `vsnprintf' is available. */
#define HAVE_VSNPRINTF 1
/* Define to 1 if you have the <wchar.h> header file. */
#define HAVE_WCHAR_H 1
/* Define to 1 if the system has the type `wchar_t'. */
#define HAVE_WCHAR_T 1
/* Define to 1 if the system has the type `wint_t'. */
#define HAVE_WINT_T 1
/* Define to 1 if `fork' works. */
#define HAVE_WORKING_FORK 1
/* Define to 1 if `vfork' works. */
#define HAVE_WORKING_VFORK 1
/* define if select implicitly yields */
#define HAVE_YIELDING_SELECT 1
/* Define to 1 if the system has the type `_Bool'. */
#define HAVE__BOOL 1
/* Define to 1 if you have the `_exit' function. */
#define HAVE__EXIT 1
/* Define to 1 if you have the </sys/sync/queue.h> header file. */
/* #undef HAVE__SYS_SYNC_QUEUE_H */
/* Define to 1 if you have the </sys/sync/sema.h> header file. */
/* #undef HAVE__SYS_SYNC_SEMA_H */
/* Define to 1 if you have the `__adjtimex' function. */
/* #undef HAVE___ADJTIMEX */
/* defined if C compiler supports __attribute__((...)) */
#define HAVE___ATTRIBUTE__ /**/
/* define away __attribute__() if unsupported */
#ifndef HAVE___ATTRIBUTE__
# define __attribute__(x) /* empty */
#endif
#define ISC_PLATFORM_NORETURN_PRE
#define ISC_PLATFORM_NORETURN_POST __attribute__((__noreturn__))
/* Define to 1 if you have the `__ntp_gettime' function. */
/* #undef HAVE___NTP_GETTIME */
/* Define to 1 if you have the `__res_init' function. */
/* #undef HAVE___RES_INIT */
/* Does struct sockaddr_storage have __ss_family? */
/* #undef HAVE___SS_FAMILY_IN_SS */
/* Handle sockaddr_storage.__ss_family */
#ifdef HAVE___SS_FAMILY_IN_SS
# define ss_family __ss_family
#endif /* HAVE___SS_FAMILY_IN_SS */
/* Define to provide `rpl_snprintf' function. */
/* #undef HW_WANT_RPL_SNPRINTF */
/* Define to provide `rpl_vsnprintf' function. */
/* #undef HW_WANT_RPL_VSNPRINTF */
/* Retry queries on _any_ DNS error? */
/* #undef IGNORE_DNS_ERRORS */
/* Should we use the IRIG sawtooth filter? */
/* #undef IRIG_SUCKS */
/* Enclose PTHREAD_ONCE_INIT in extra braces? */
/* #undef ISC_PLATFORM_BRACEPTHREADONCEINIT */
/* Do we need to fix in6isaddr? */
/* #undef ISC_PLATFORM_FIXIN6ISADDR */
/* ISC: do we have if_nametoindex()? */
#define ISC_PLATFORM_HAVEIFNAMETOINDEX 1
/* have struct if_laddrconf? */
/* #undef ISC_PLATFORM_HAVEIF_LADDRCONF */
/* have struct if_laddrreq? */
/* #undef ISC_PLATFORM_HAVEIF_LADDRREQ */
/* have struct in6_pktinfo? */
#define ISC_PLATFORM_HAVEIN6PKTINFO 1
/* have IPv6? */
#define ISC_PLATFORM_HAVEIPV6 1
/* struct sockaddr has sa_len? */
#define ISC_PLATFORM_HAVESALEN 1
/* sin6_scope_id? */
#define ISC_PLATFORM_HAVESCOPEID 1
/* missing in6addr_any? */
/* #undef ISC_PLATFORM_NEEDIN6ADDRANY */
/* Do we need netinet6/in6.h? */
/* #undef ISC_PLATFORM_NEEDNETINET6IN6H */
/* ISC: provide inet_ntop() */
/* #undef ISC_PLATFORM_NEEDNTOP */
/* Declare in_port_t? */
/* #undef ISC_PLATFORM_NEEDPORTT */
/* ISC: provide inet_pton() */
/* #undef ISC_PLATFORM_NEEDPTON */
/* enable libisc thread support? */
#define ISC_PLATFORM_USETHREADS 1
/* Does the kernel have an FLL bug? */
/* #undef KERNEL_FLL_BUG */
/* Does the kernel support precision time discipline? */
#define KERNEL_PLL 1
/* Define to use libseccomp system call filtering. */
/* #undef KERN_SECCOMP */
/* What is (probably) the name of DOSYNCTODR in the kernel? */
#define K_DOSYNCTODR_NAME "_dosynctodr"
/* What is (probably) the name of NOPRINTF in the kernel? */
#define K_NOPRINTF_NAME "_noprintf"
/* What is the name of TICKADJ in the kernel? */
#define K_TICKADJ_NAME "_tickadj"
/* What is the name of TICK in the kernel? */
#define K_TICK_NAME "_tick"
/* define to 1 if library is thread safe */
#define LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE 1
/* leap smear mechanism */
#define LEAP_SMEAR 1
/* Define to any value to include libseccomp sandboxing. */
/* #undef LIBSECCOMP */
/* Should we align with the NIST lockclock scheme? */
/* #undef LOCKCLOCK */
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#define LT_OBJDIR ".libs/"
/* Does the target support multicast IP? */
#define MCAST 1
/* Should we recommend a minimum value for tickadj? */
/* #undef MIN_REC_TICKADJ */
/* Define to 1 if the compiler does not support C99's structure
initialization. */
/* #undef MISSING_C99_STRUCT_INIT */
/* having to fork the DNS worker early when doing chroot? */
/* #undef NEED_EARLY_FORK */
/* Do we need HPUX adjtime() library support? */
/* #undef NEED_HPUX_ADJTIME */
/* Do we want the HPUX FindConfig()? */
/* #undef NEED_HPUX_FINDCONFIG */
/* We need to provide netsnmp_daemonize() */
/* #undef NEED_NETSNMP_DAEMONIZE */
/* pthread_init() required? */
/* #undef NEED_PTHREAD_INIT */
/* use PTHREAD_SCOPE_SYSTEM? */
/* #undef NEED_PTHREAD_SCOPE_SYSTEM */
/* Do we need the qnx adjtime call? */
/* #undef NEED_QNX_ADJTIME */
/* Do we need extra room for SO_RCVBUF? (HPUX < 8) */
/* #undef NEED_RCVBUF_SLOP */
/* Do we need an s_char typedef? */
#define NEED_S_CHAR_TYPEDEF 1
/* Might nlist() values require an extra level of indirection (AIX)? */
/* #undef NLIST_EXTRA_INDIRECTION */
/* does struct nlist use a name union? */
/* #undef NLIST_NAME_UNION */
/* nlist stuff */
#define NLIST_STRUCT 1
/* Should we NOT read /dev/kmem? */
#define NOKMEM 1
/* Should we avoid #warning on option name collisions? */
/* #undef NO_OPTION_NAME_WARNINGS */
/* Is there a problem using PARENB and IGNPAR? */
/* #undef NO_PARENB_IGNPAR */
/* define if you have (or want) no threads */
/* #undef NO_THREADS */
/* Default location of crypto key info */
#define NTP_KEYSDIR "/etc/ntp"
/* Path to sign daemon rendezvous socket */
#define NTP_SIGND_PATH "/var/run/ntp_signd"
/* Do we have ntp_{adj,get}time in libc? */
#define NTP_SYSCALLS_LIBC 1
/* Do we have ntp_{adj,get}time in the kernel? */
/* #undef NTP_SYSCALLS_STD */
/* Do we have support for SHMEM_STATUS? */
#define ONCORE_SHMEM_STATUS 1
/* Use OpenSSL? */
/* #define OPENSSL */
/* Should we open the broadcast socket? */
#define OPEN_BCAST_SOCKET 1
/* need to recreate sockets on changed routing? */
/* #undef OS_MISSES_SPECIFIC_ROUTE_UPDATES */
/* wildcard socket needs REUSEADDR to bind interface addresses */
/* #undef OS_NEEDS_REUSEADDR_FOR_IFADDRBIND */
/* Do we need to override the system's idea of HZ? */
#define OVERRIDE_HZ 1
/* Name of package */
#define PACKAGE "ntp"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "http://bugs.ntp.org./"
/* Define to the full name of this package. */
#define PACKAGE_NAME "ntp"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "ntp 4.2.8p16"
+#define PACKAGE_STRING "ntp 4.2.8p17"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "ntp"
/* Define to the home page for this package. */
#define PACKAGE_URL "http://www.ntp.org./"
/* Define to the version of this package. */
-#define PACKAGE_VERSION "4.2.8p16"
+#define PACKAGE_VERSION "4.2.8p17"
/* data dir */
#define PERLLIBDIR "/usr/share/ntp/lib"
/* define to a working POSIX compliant shell */
#define POSIX_SHELL "/bin/sh"
/* PARSE kernel PLL PPS support */
/* #undef PPS_SYNC */
/* Preset a value for 'tick'? */
#define PRESET_TICK 1000000L/hz
/* Preset a value for 'tickadj'? */
#define PRESET_TICKADJ 500/hz
/* Should we not IGNPAR (Linux)? */
/* #undef RAWDCF_NO_IGNPAR */
/* enable thread safety */
#define REENTRANT 1
/* Basic refclock support? */
#define REFCLOCK 1
/* Do we want the ReliantUNIX clock hacks? */
/* #undef RELIANTUNIX_CLOCK */
/* define if sched_yield yields the entire process */
/* #undef REPLACE_BROKEN_YIELD */
/* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void
/* saveconfig mechanism */
#define SAVECONFIG 1
/* Do we want the SCO clock hacks? */
/* #undef SCO5_CLOCK */
/* The size of `char *', as computed by sizeof. */
#ifdef __LP64__
#define SIZEOF_CHARP 8
#else
#define SIZEOF_CHARP 4
#endif
/* The size of `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of `long', as computed by sizeof. */
#ifdef __LP64__
#define SIZEOF_LONG 8
#else
#define SIZEOF_LONG 4
#endif
/* The size of `long long', as computed by sizeof. */
#define SIZEOF_LONG_LONG 8
/* The size of `pthread_t', as computed by sizeof. */
#define SIZEOF_PTHREAD_T 8
/* The size of `short', as computed by sizeof. */
#define SIZEOF_SHORT 2
/* The size of `signed char', as computed by sizeof. */
#define SIZEOF_SIGNED_CHAR 1
/* The size of `time_t', as computed by sizeof. */
#if defined(__i386__) || defined(__powerpc__)
#define SIZEOF_TIME_T 4
#else
#define SIZEOF_TIME_T 8
#endif
/* Does SIOCGIFCONF return size in the buffer? */
/* #undef SIZE_RETURNED_IN_BUFFER */
/* Slew always? */
/* #undef SLEWALWAYS */
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
/* #undef STACK_DIRECTION */
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Step, then slew the clock? */
/* #undef STEP_SLEW */
/* Define to 1 if strerror_r returns char *. */
/* #undef STRERROR_R_CHAR_P */
/* canonical system (cpu-vendor-os) of where we should run */
#if defined(__alpha__)
#define STR_SYSTEM "alpha-undermydesk-freebsd"
#elif defined(__sparc64__)
#define STR_SYSTEM "sparc64-undermydesk-freebsd"
#elif defined(__amd64__)
#define STR_SYSTEM "amd64-undermydesk-freebsd"
#elif defined(__powerpc64__)
#define STR_SYSTEM "powerpc64-undermydesk-freebsd"
#elif defined(__powerpc__)
#define STR_SYSTEM "powerpc-undermydesk-freebsd"
#elif defined(__mips64)
#define STR_SYSTEM "mips64-undermydesk-freebsd"
#elif defined(__mips__)
#define STR_SYSTEM "mips-undermydesk-freebsd"
#elif defined(__aarch64__)
#define STR_SYSTEM "arm64-undermydesk-freebsd"
#elif defined(__arm__)
#define STR_SYSTEM "arm-undermydesk-freebsd"
#elif defined(__sparc64__)
#define STR_SYSTEM "sparc64-undermydesk-freebsd"
#elif defined(__sparc__)
#define STR_SYSTEM "sparc-undermydesk-freebsd"
#elif defined(__ia64__)
#define STR_SYSTEM "ia64-undermydesk-freebsd"
#else
#define STR_SYSTEM "i386-undermydesk-freebsd"
#endif
/* Does Xettimeofday take 1 arg? */
/* #undef SYSV_TIMEOFDAY */
/* Do we need to #define _SVID3 when we #include <termios.h>? */
/* #undef TERMIOS_NEEDS__SVID3 */
/* enable thread safety */
#define THREADSAFE 1
/* enable thread safety */
#define THREAD_SAFE 1
/* Is K_TICKADJ_NAME in nanoseconds? */
/* #undef TICKADJ_NANO */
/* Is K_TICK_NAME in nanoseconds? */
/* #undef TICK_NANO */
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1
/* Define to 1 if your <sys/time.h> declares `struct tm'. */
/* #undef TM_IN_SYS_TIME */
/* Provide a typedef for uintptr_t? */
#ifndef HAVE_UINTPTR_T
typedef unsigned int uintptr_t;
#define HAVE_UINTPTR_T 1
#endif
/* What type to use for setsockopt */
#define TYPEOF_IP_MULTICAST_LOOP u_char
/* Do we set process groups with -pid? */
/* #undef UDP_BACKWARDS_SETOWN */
/* Must we have a CTTY for fsetown? */
#define USE_FSETOWNCTTY 1
/* Use OpenSSL's crypto random functions */
/* #define USE_OPENSSL_CRYPTO_RAND 1 */
/* OK to use snprintb()? */
/* #undef USE_SNPRINTB */
/* Can we use SIGPOLL for tty IO? */
/* #undef USE_TTY_SIGPOLL */
/* Can we use SIGPOLL for UDP? */
/* #undef USE_UDP_SIGPOLL */
/* Version number of package */
-#define VERSION "4.2.8p16"
+#define VERSION "4.2.8p17"
/* vsnprintf expands "%m" to strerror(errno) */
#define VSNPRINTF_PERCENT_M 1
/* configure --enable-ipv6 */
#define WANT_IPV6 1
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined(__ARMEB__) || defined(__MIPSEB__) || defined(__powerpc__) || \
defined(__powerpc64__) || defined(__sparc64__)
#define WORDS_BIGENDIAN 1
#endif
/* routine worker child proc uses to exit. */
#define WORKER_CHILD_EXIT exit
/* Define to 1 if on MINIX. */
/* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
/* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */
/* enable thread safety */
#define _REENTRANT 1
/* enable thread safety */
#define _SGI_MP_SOURCE 1
/* enable thread safety */
#define _THREADSAFE 1
/* enable thread safety */
#define _THREAD_SAFE 1
/* Define to 500 only on HP-UX. */
/* #undef _XOPEN_SOURCE */
/* Are we _special_? */
/* #undef __APPLE_USE_RFC_3542 */
/* Define to 1 if type `char' is unsigned and you are not using gcc. */
#ifndef __CHAR_UNSIGNED__
/* # undef __CHAR_UNSIGNED__ */
#endif
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1
#endif
/* deviant */
/* #undef adjtimex */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef gid_t */
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
/* #undef inline */
#endif
/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
not define. */
/* #undef intmax_t */
/* deviant */
/* #undef ntp_adjtime */
/* deviant */
/* #undef ntp_gettime */
/* Define to `long int' if <sys/types.h> does not define. */
/* #undef off_t */
/* Define to `int' if <sys/types.h> does not define. */
/* #undef pid_t */
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
#if !defined(_KERNEL) && !defined(PARSESTREAM)
/*
* stdio.h must be included after _GNU_SOURCE is defined
* but before #define snprintf rpl_snprintf
*/
# include <stdio.h>
#endif
/* Define to rpl_snprintf if the replacement function should be used. */
/* #undef snprintf */
/* Define to `int' if <sys/types.h> doesn't define. */
/* #undef uid_t */
/* Define to the widest unsigned integer type if <stdint.h> and <inttypes.h>
do not define. */
/* #undef uintmax_t */
/* Define to the type of an unsigned integer type wide enough to hold a
pointer, if such a type exists, and if the system does not define it. */
/* #undef uintptr_t */
/* Define as `fork' if `vfork' does not work. */
/* #undef vfork */
/* Define to empty if the keyword `volatile' does not work. Warning: valid
code using `volatile' can become incorrect without. Disable with care. */
/* #undef volatile */
/* Define to rpl_vsnprintf if the replacement function should be used. */
/* #undef vsnprintf */
#ifndef MPINFOU_PREDECLARED
# define MPINFOU_PREDECLARED
typedef union mpinfou {
struct pdk_mpinfo *pdkptr;
struct mpinfo *pikptr;
} mpinfou_t;
#endif
#if !defined(_KERNEL) && !defined(PARSESTREAM)
# if defined(HW_WANT_RPL_VSNPRINTF)
# if defined(__cplusplus)
extern "C" {
# endif
# include <stdarg.h>
int rpl_vsnprintf(char *, size_t, const char *, va_list);
# if defined(__cplusplus)
}
# endif
# endif
# if defined(HW_WANT_RPL_SNPRINTF)
# if defined(__cplusplus)
extern "C" {
# endif
int rpl_snprintf(char *, size_t, const char *, ...);
# if defined(__cplusplus)
}
# endif
# endif
#endif /* !defined(_KERNEL) && !defined(PARSESTREAM) */
/*
* FreeBSD specific: Explicitly specify date/time for reproducible build.
*/
#define MKREPRO_DATE "Aug 19 2018"
#define MKREPRO_TIME "01:24:29"

File Metadata

Mime Type
application/octet-stream
Expires
Fri, Jun 28, 9:18 AM (2 d)
Storage Engine
chunks
Storage Format
Chunks
Storage Handle
v4gReaDGijTc
Default Alt Text
(7 MB)

Event Timeline